STM32 編碼器模式 疑惑解讀

2021-10-03 18:36:50 字數 1308 閱讀 8692

在參考手冊上有這樣的乙個圖,其中的相對訊號的電平很難理解。運用編碼器計數方向的圖來對照比較,終於找出了其中的規則。

我們都知道編碼器轉動一圈輸出脈衝,而輸出的脈衝數量取決於編碼器的線數。如線數為500,則a\b轉動一圈各輸出脈衝500,但是存在相位差,通常相位差為90。根據輸出訊號的相位差來對比,我們就可以分析編碼器轉動的方向。

以編碼器訊號「正向輸入」為例,編碼器的輸入訊號a、b分別連線ti1、ti2,脈衝計數值為cnt。按照有效邊沿為ti1進行計數,也就是指,觀察a的邊沿變化

位置1:

a為上公升沿,因而ti1產生上公升沿,經濾波後成為ti1fp1訊號,即「ti1fp1=上公升」。

而此時相對訊號的電平,從正向輸出的脈衝圖中可以看出,也就是b,為低。按照參考手冊,此時計數器應「向上計數」,此時cnt+1。

位置2:

a為下降沿,而b的訊號為「高」,同樣是「向上計數」,cnt+1。

位置3:

完成乙個脈衝週期後同位置1,a/b訊號相對情況不變,持續保持正向,故持續向上計數。

從這我們也可以看出,在採取單邊沿計數時,雖然編碼器只產生了一次脈衝,但是stm32的編碼器模式下的計數器記2次,也就是計數值=編碼器實際脈衝*2。

按照手冊的規則進行同樣推演,最終參考手冊的這個表傳達的意思總結如下:

1、計數器向上計數,則編碼器正向轉動;向下計數則反向。(前提:不改變訊號極性)

2、單邊沿計數時(無論在ti1/ti2),計數值=編碼器實際脈衝 * 2。

雙邊沿計數時,計數值=編碼器實際脈衝 * 4。

1、tix: 定時器連線通道的訊號。如ti1,指timx _ch1接入的訊號。

2、tixfpx:指來自定時器通道x,經濾波器連線至比較通道x的訊號。

3、相對訊號的電平: 編碼器接入stm32的是兩條數量相同但相位不同的訊號,得知此時捕捉的邊沿(上公升或下降),再得知此刻相對訊號的電平,正是為了確定編碼器的轉動方向。

STM32控制編碼器

編碼器是一種將角位移或者角速度轉換成一連串電數字脈衝的旋轉式感測器。可以用來測量位置,測量速度。四倍頻的方法是測量a相和b相的上公升沿和下降沿 stm32控制編碼器可以採用timer的編碼器模式,tim1 8的ch1和ch2分別對應a相和b相 選擇編碼器介面模式的方法是 如果計數器只在ti2的邊沿計...

STM32正交編碼器介面

晶元型號 使用引腳及初始化程式原始碼 tim2埠重對映問題 與jtag介面衝突時的現象及解決方法 晶元型號 stm32f103ret6 使用定時器 tim2 tim3 tim4 tim5 使用引腳 tim2 pa15 pb3 remap tim3 pa6 pa7 tim4 pb6 pb7 tim5 ...

STM32正交編碼器測速

一 正交編碼解碼原理 二 解碼思路 1 方法一 使用定時器的輸入捕獲功能,配置好tim icinittypedef即可獲取一定時間內的脈衝個數,並可根據b相上公升沿時a相所處的電平判斷電機正轉還是反轉。中斷型別配置為更新事件和上公升沿觸發,更新事件的時間由定時器配置的引數計算出,在更新事件中斷中計算...