天天看點

Stm32進階定時器(二)

談論主從,可知至少有兩個以上的觸發或者驅動信号,stm32内部有多個定時器,可以互相之間驅動或者控制。

Stm32進階定時器(二)

1 主從模式:主?從?

  1. 主模式:定時器使能隻受驅動時鐘控制或者輸出控制信号(TRGO)。
  2. 從模式:複位模式, 在發生一個觸發輸入事件時,計數器和它的預分頻器能夠重新被初始化;同時,如果IMx_CR1寄存器的URS 位為低,還産生一個更新事件UEV ;然後所有的預裝載寄存器(TIMx_ARR ,TIMx_CCRx)都被更新了。
  3. 從模式:門控模式, 計數器的使能依賴于選中的輸入端的電平。
  4. 從模式:觸發模式, 計數器的使能依賴于選中的輸入端上的事件。
  5. 從模式:外部時鐘模式+觸發模式, 外部時鐘模式2可以與另一種從模式(外部時鐘模式1和編碼器模式除外)一起使用。這時,ETR信号被用作外部時鐘的輸入,在複位模式、門控模式或觸發模式可以選擇另一個輸入作為觸發輸入。不建議使用TIMx_SMCR寄存器的TS位選擇ETR作為TRGI。
Stm32進階定時器(二)
Stm32進階定時器(二)
Stm32進階定時器(二)

2 PWM輸入模式

Stm32進階定時器(二)

該模式是輸入捕獲模式的一個特例,特點:

  • 兩個ICx信号被映射至同一個TIx輸入。
  • 這2個ICx信号為邊沿有效,但是極性相反。
  • 其中一個TIxFP信号被作為觸發輸入信号,而從模式控制器被配置成複位模式。

2.1 PWM捕獲結果

TIMx通過過複位啟動,複位計數器,TIMx_CCR1捕獲TI1的上升沿得到此刻CNT中的值,TIMx_CCR2捕獲TI1的下降沿得到此刻CNT中的值,那麼有他們的關系就可以得到:

  • TI1周期 = TIMx_CCR1 × CNT周期
  • 占空比 = TIMx_CCR2/ TIMx_CCR1

2.2 配置執行個體

測量輸入到TI1上的PWM信号的長度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2 寄存器),具體步驟如下(取決于CK_INT的頻率和預分頻器的值)

1. 選擇TIMx_CCR1的有效輸入:置TIMx_CCMR1寄存器的CC1S=01(選中TI1)。

2. 選擇TI1FP1的有效極性(用來捕獲資料到TIMx_CCR1中和清除計數器):置CC1P=0(上升沿有效)。

3. 選擇TIMx_CCR2的有效輸入:置TIMx_CCMR1寄存器的CC2S=10(選中TI1)。

4. 選擇TI1FP2的有效極性(捕獲資料到TIMx_CCR2):置CC2P=1(下降沿有效)。

5. 選擇有效的觸發輸入信号:置TIMx_SMCR寄存器中的TS=101(選擇TI1FP1)。

6. 配置從模式控制器為複位模式:置TIMx_SMCR中的SMS=100。

7. 使能捕獲:置TIMx_CCER寄存器中CC1E=1且CC2E=1。

3 PWM輸出模式

脈沖寬度調制模式可以産生一個由TIMx_ARR寄存器确定頻率、由TIMx_CCRx寄存器确定占空比的信号。

由下圖可知,TIMx_ARR=8(周期),TIMx_CCRx=4(占空比)

Stm32進階定時器(二)

形而上者謂之道 形而下者謂之器。

繼續閱讀