STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應用專門設計的ARM Cortex-M3 內核。按性能分成兩個不同的系列: STM32F103 “增強型”系列和STM32F101“基本型”系列。增強型系列時鐘頻率達到72MHz,是同類產品中性能最高的產品。
基本型時鐘頻率為36MHz,以16位產品的價格得到比16位產品大幅提升的性能,是16位產品用戶的最佳選擇。兩個系列都內置32K到128K的閃存,不同的是SRAM的最大容量和外設接口的組合。時鐘頻率72MHZ時,從閃存執行代碼,STM32功耗36mA,是32位市場上功耗最低的產品。
脈沖寬度調制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調制,是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。簡單一點,就是對脈沖寬度的控制。一般用來控制步進電機的速度等等。
STM32的定時器除了TIM6和TIM7之外,其他的定時器都可以用來產生PWM輸出,其中高級定時器TIM1和TIM8可以同時產生7路的PWM輸出,而通用定時器也能同時產生4路的PWM輸出。
PWM輸出介紹
PWM輸出模式
STM32的PWM輸出有兩種模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位確定的(“110”為模式1,“111”為模式2)。模式1和模式2的區別如下:
110:PWM模式1-在向上計數時,一旦TIMx_CNT《TIMx_CCR1時通道1為有效電平,否則為無效電平;在向下計數時,一旦TIMx_CNT》TIMx_CCR1時通道1為無效電平(OC1REF=0),否則為有效電平(OC1REF=1)。
111:PWM模式2-在向上計數時,一旦TIMx_CNT《TIMx_CCR1時通道1為無效電平,否則為有效電平;在向下計數時,一旦TIMx_CNT》TIMx_CCR1時通道1為有效電平,否則為無效電平。
由此看來,模式1和模式2正好互補,互為相反,所以在運用起來差別也并不太大。
而從計數模式上來看,PWM也和TIMx在作定時器時一樣,也有向上計數模式、向下計數模式和中心對齊模式,關于3種模式的具體資料,可以查看《STM32參考手冊》的“14.3.9 PWM模式”一節,在此就不詳細贅述了。
PWM輸出管腳
PWM的輸出管腳是確定好的,具體的引腳功能可以查看《STM32參考手冊》的“8.3.7 定時器復用功能重映射”一節。在此需要強調的是,不同的TIMx有分配不同的引腳,但是考慮到管腳復用功能,STM32提出了一個重映像的概念,就是說通過設置某一些相關的寄存器,來使得在其他非原始指定的管腳上也能輸出PWM。
但是這些重映像的管腳也是由參考手冊給出的。比如說TIM3的第2個通道,在沒有重映像的時候,指定的管腳是PA.7,如果設置部分重映像之后,TIM3_CH2的輸出就被映射到PB.5上了,如果設置了完全重映像的話,TIM3_CH2的輸出就被映射到PC.7上了。
PWM輸出信號
PWM輸出的是一個方波信號,信號的頻率是由TIMx的時鐘頻率和TIMx_ARR預分頻器所決定的,具體設置方法在前面一個學習筆記中有詳細的交代。而輸出信號的占空比則是由TIMx_CRRx寄存器確定的。
其公式為“占空比=(TIMx_CRRx/TIMx_ARR)*100%”,因此,可以通過向CRR中填入適當的數來輸出自己所需的頻率和占空比的方波信號。
評論
查看更多