Stm32高級定時器(四)
1 編碼器接口模式
1.1 編碼器原理
什么是正交?如果兩個信號相位相差90度,則這兩個信號稱為正交。由於兩個信號相差90度,因此可以根據兩個信號哪個先哪個后來判斷方向、根據每個信號脈沖數量的多少及整個編碼輪的周長就可以算出當前行走的距離、如果再加上定時器的話還可以計算出速度。
增量式旋轉編碼器通過內部兩個光敏接受管轉化其角度碼盤的時序和相位關系,得到其角度碼盤角度位移量增加(正方向)或減少(負方向)。
A,B兩點對應兩個光敏接受管,A,B兩點間距為 S2 ,碼盤的光柵間距分別為S0和S1。S0+S1的距離是S2的四倍。這樣保證了A,B波形相位相差90度。旋轉的反向不同,鋸齒波A,B先到達高電平的順序就會不同,如上圖左側所示,順序的不同,就可以得到旋轉的方向。
以上兩圖說明,編碼器的計數方向可以判別TI1與TI2的先后關系,繼而得到外部的正反轉關系。
1.2 配置步驟
CC1S=01 (TIMx_CCMR1寄存器,IC1FP1映射到TI1)
CC2S=01 (TIMx_CCMR2寄存器,IC2FP2映射到TI2)
CC1P=0 (TIMx_CCER寄存器,IC1FP1不反相,IC1FP1=TI1)
CC2P=0 (TIMx_CCER寄存器,IC2FP2不反相,IC2FP2=TI2)
SMS=011 (TIMx_SMCR寄存器,所有的輸入均在上升沿和下降沿有效).
CEN=1 (TIMx_CR1寄存器,計數器使能)
2 與霍爾傳感器的接口模式
使用高級控制定時器(TIM1或TIM8)產生PWM信號驅動馬達時,可以用另一個通用TIMx(TIM2、TIM3、TIM4或TIM5)定時器作為“接口定時器”來連接霍爾傳感器,3個定時器輸入腳(CC1、CC2、CC3)通過一個異或門連接到TI1輸入通道(通過設置TIMx_CR2寄存器中的TI1S位來選擇),“接口定時器”捕獲這個信號。
即:
TIM1產生PWM信號驅動馬達
TIMx(TIM2、TIM3、TIM4或TIM5) 定時器作為“接口定時器”來連接霍爾傳感器,捕獲霍爾傳感器接口的信息(轉速等),反饋給TIM1改變PWM的輸出,控制轉速。
3 理解更深
如需理解更深,請看通用定時器一章,定時器同步,更好的理解定時器的工作狀態。
4 參考文獻
[3] 編碼器速度和方向檢測






