介紹:
利用微處理器的數字輸出來對模擬電路進行控制 (很厲害哦)
對模擬電平信號進行數字編碼,只要帶寬足夠,任何模擬值都可以用PWM進行編碼
特點:
簡單靈活 動態響應好
應用:
電動機控制(比如機器人內的電機控制,STM32中一個芯片可以控制很多電機)、功率控制、
轉換原理:
將模擬的信號(連續的曲線)分割,計算每塊地面積,轉換成數字信號的面積(不同的面積有不同的寬度,這也就是寬度調制這個名字的由來)
PWM輸出源和輸出數量
STM32除了TIM6,7(基本定時器),TIM1,8可以產生7路,共14路;通用定時器TIM2,3,4,5每個4路,共16路,所以STM32可以產生30路PWM輸出。
控制原理
占空比:高電平持續時間占總時間的比例。
STM32 的PWM是TIMx_ARR寄存器確定頻率(周期)、由TIMx_CCRx寄存器確定占空比的信號
PWM模式:
脈沖寬度調制模式可以產生一個由 TIM1_ARR 寄存器確定頻率、由TIM1_CCRx寄存器確定占空比的信號。在 TIM1_CCMRx寄存器中的OCxM位寫入“110”(PWM 模式 1)或“111”(PWM 模式 2),【模式1,2選擇輸出的高低電平】能夠獨立地設置每個通道工作在 PWM模式,每個 OCx 輸出一路 PWM。必須通過設置 TIM1_CCMRx 寄存器 OCxPE 位使能相應的預裝載寄存器,最后還要設置 TIM1_CR1 寄存器的 ARPE 位使能自動重裝載的預裝載寄存器(在向上計數或中心對稱模式中)。
向上計數配置
當 TIM1_CR1 寄存器中的 DIR 位為低的時候執行向上計數。
在 PWM 模式 1,當 TIM1_CNT【計數器值】< TIM1_CCRx 時 PWM 參考信號,OCxREF 為高,否則為低。如果 TIM1_CCRx中的比較值大于自動重裝載值(TIM1_ARR),則 OCxREF 保持為“1"。如果比較值為 0,則 OCxREF 保持為“0"。 圖 128 為 TIM1_ARR=8 時邊沿對齊的 PWM 波形實例
【不同的模式,1和0代表的電平高低不同,不是1是高,0是低】
第一行是采用模式1的,模式2與模式1原理相同不過1和0代表的高低電平相反
還有向下計數模式(與向上技術模式相反),中央對齊模式,
最后,重點是要通過兩個寄存器TIMx_ARR寄存器,TIMx_CCRx寄存器控制