PWM

脈沖寬度調(diào)制(英語:Pulse-width modulation,縮寫:PWM),簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的技術(shù)嚼松。PWM技術(shù)是一種對模擬信號電平的數(shù)字編碼方法,通過使用高分辨率計數(shù)器(調(diào)制頻率)調(diào)制方波的占空比锰扶,從而實(shí)現(xiàn)對一個模擬信號的電平進(jìn)行編碼献酗。

占空比:在規(guī)定的時間間隔或“周期”中接通(ON)的比例,公式為D = PW/T *100%坷牛,其中 pw為脈沖寬度(調(diào)制周期中脈沖持續(xù)時間)罕偎。100%完全打開,當(dāng)數(shù)字信號的一半時間處于打開狀態(tài)京闰,而另一半時間處于關(guān)閉狀態(tài)時颜及,該數(shù)字信號的占空比為50%,類似于“方波”蹂楣。 低占空比對應(yīng)于低功耗俏站,因?yàn)榇蠖鄶?shù)時候電源都處于關(guān)閉狀態(tài)。


簡單來說痊土,假設(shè)PWM時間周期設(shè)定為計數(shù)80肄扎,我們再設(shè)定一個比較值是10,那么從0計數(shù)到10時(這時計數(shù)器還是一直往上計數(shù)赁酝,直到計數(shù)到設(shè)定值80)犯祠,單片機(jī)就會根據(jù)設(shè)定,控制某個IO口在這個時候是輸出1還是輸出0酌呆,因此我們只需要提供寬雷则、窄不同的數(shù)字式脈沖,即可簡單地實(shí)現(xiàn)改變輸出電流肪笋。這里,通過改變80大小可以改變PWM的輸出頻率度迂,改變10的大小就是改變占空比藤乙。PWM特別適用于運(yùn)行慣性負(fù)載,這些負(fù)載不易受這種離散開關(guān)的影響惭墓,我們常用PWM來驅(qū)動LED的暗亮程度坛梁,電機(jī)的轉(zhuǎn)速等。PWM也被用于某些通信系統(tǒng)腊凶,其占空比被用來通過通信信道傳輸信息划咐。

PWM的基本原理:

脈寬調(diào)制(PWM)基本原理:控制方式就是對逆變電路開關(guān)器件的通斷進(jìn)行控制拴念,使輸出端得到一系列幅值相等的脈沖,用這些脈沖來代替正弦波或所需要的波形褐缠。
逆變電路是與整流電路(Rectifier)相對應(yīng)政鼠,把直流電變成交流電稱為逆變。
在采樣控制理論中有一個重要結(jié)論:沖量(脈沖的面積)相等而形狀不同窄脈沖队魏,分別加在具有慣性環(huán)節(jié)的輸入端公般,其輸出響應(yīng)波形基本相同,也就是說胡桨,盡管脈沖形狀不同官帘,但只要脈沖面積相等,其作用的效果基本相同昧谊。
根據(jù)沖量相等效果相同的原理刽虹,PWM波形和正弦半波是等效的,下圖所示為正弦波PWM調(diào)制波形呢诬。

PWM的優(yōu)點(diǎn):

  1. 電源的輸出電壓在工作時保持恒定涌哲,是利用微處理器的數(shù)字信號對模擬電路進(jìn)行控制的。
  2. 在模擬電路中馅巷,電壓和電流可直接用來進(jìn)行控制對象膛虫。但模擬電路有諸多的問題:例如控制信號容易隨時間漂移(如溫度影響),難以調(diào)節(jié)钓猬;功耗大稍刀;易受噪聲和環(huán)境干擾等等。與模擬電路不同敞曹,數(shù)字電路是在預(yù)先確定的范圍內(nèi)取值账月,在任何時刻,其輸出只可能為ON和OFF兩種狀態(tài)澳迫。
  3. 從處理器到被控系統(tǒng)信號都是數(shù)字形式的局齿,無需進(jìn)行數(shù)模轉(zhuǎn)換。讓信號保持為數(shù)字形式可將噪聲影響降到最小橄登。

一抓歼、PWM 使用

參考STM32 參考手冊
STM32 的定時器除了 TIM6 和 7。其他的定時器都可以用來產(chǎn)生 PWM 輸出拢锹。其中高級定時器 TIM1 和 TIM8 可以同時產(chǎn)生多達(dá) 7 路的 PWM 輸出谣妻。而通用定時器也能同時產(chǎn)生多達(dá) 4路的 PWM 輸出,這樣卒稳, STM32 最多可以同時產(chǎn)生 30 路 PWM 輸出蹋半!

1.1高級控制定時器(TIM1和TIM8)

1.1.1 TIM1和TIM8 定時器介紹

高級控制定時器(TIM1和TIM8)由一個16位的自動裝載計數(shù)器組成,它由一個可編程的預(yù)分頻器驅(qū)動(計數(shù)器時鐘由預(yù)分頻器分頻得到)充坑。
它適合多種用途减江,包含測量輸入信號的脈沖寬度(輸入捕獲)染突,或者產(chǎn)生輸出波形(輸出比較、PWM辈灼、嵌入死區(qū)時間的互補(bǔ)PWM等)份企。
使用定時器預(yù)分頻器和RCC時鐘控制預(yù)分頻器,可以實(shí)現(xiàn)脈沖寬度和波形周期從幾個微秒到幾個毫秒的調(diào)節(jié)茵休。

TIM1和TIM8定時器功能:

  1. 16位向上薪棒、向下、向上/下自動裝載計數(shù)器
  2. 16位可編程(可以實(shí)時修改)預(yù)分頻器榕莺,計數(shù)器時鐘頻率的分頻系數(shù)為1~65535之間的任意
    數(shù)值
  3. 多達(dá)4個獨(dú)立通道:
    ─ 輸入捕獲
    ─ 輸出比較
    ─ PWM生成(邊緣或中間對齊模式)
    ─ 單脈沖模式輸出
  4. 死區(qū)時間可編程的互補(bǔ)輸出
    死區(qū)時間是指控制不到的時間域俐芯,在變頻器里一般是指功率器件輸出電壓、電流的“0”區(qū)钉鸯,在傳動控制里一般是指電機(jī)正反向轉(zhuǎn)換電壓吧史、電流的過零時間。死區(qū)時間當(dāng)然越小越好唠雕。但是所以設(shè)置死區(qū)時間贸营,是為了安全。因此又不可沒有岩睁。最佳的設(shè)置是:在保證安全的前提下钞脂,越小越好。以不炸功率管捕儒、輸出不短路為目的冰啃。

1.1.2 TIM1和TIM8 定時器概念介紹

● 計數(shù)器寄存器(TIMx_CNT):
● 預(yù)分頻器寄存器 (TIMx_PSC,prescaler):將計數(shù)器的時鐘頻率按1到65536之間的任意值分頻刘莹。新的預(yù)分頻寄存器的參數(shù)在下一次更新事件UEV(update event)時被使用阎毅。
● 自動裝載寄存器 (TIMx_ARR,anto reload):預(yù)先裝載,寫或讀自動重裝載寄存器將訪問預(yù)裝載寄存器
● 重復(fù)次數(shù)寄存器 (TIMx_RCR)
重復(fù)次數(shù)寄存器設(shè)置后点弯,達(dá)到重復(fù)次數(shù)產(chǎn)生更新時間扇调,否則計數(shù)器寄存器每次溢出時產(chǎn)生更新事件。


預(yù)分頻1到4時序圖

時鐘選擇
計數(shù)器時鐘可由下列時鐘源提供:
● 內(nèi)部時鐘(CK_INT)
● 外部時鐘模式1:外部輸入引腳
● 外部時鐘模式2:外部觸發(fā)輸入ETR
● 內(nèi)部觸發(fā)輸入(ITRx):使用一個定時器作為另一個定時器的預(yù)分頻器抢肛。如可以配置一個定時器Timer1而作為另一個定時器Timer2的預(yù)分頻器狼钮。

1.1.3 TIM1和TIM8 定時器 捕獲/比較

每一個捕獲/比較通道(capture/compare channels,CCR)都是圍繞著一個捕獲/比較寄存器捡絮,包括捕獲的輸入部分(數(shù)字濾波燃领、多路復(fù)用和預(yù)分頻器),和輸出部分(比較器和輸出控制)锦援。

  1. 輸入捕獲:簡單的說就是通過檢測 TIMx_CHx (定時器X的通道X)上的 邊沿信號,在邊沿信號發(fā)生跳變(比如上升沿/下降沿)的時候剥悟,將當(dāng)前定時器的值(TIMx_CNT) 存放到對應(yīng)的通道的捕獲/比較寄存器(TIMx_CCRx)里面灵寺,完成一次捕獲曼库。同時還可以配置捕獲時是否觸發(fā)中斷/DMA 等。
  2. 輸出比較模式: 用來控制一個輸出波形略板,或者表示出一段給定的的時間已經(jīng)到時毁枯。(indicating when a period time has elapsed)。

1.1.4 TIM1和TIM8 定時器 寄存器

TIM1和TIM8定時器里面有很多的寄存器叮称,如控制寄存器CR种玛、狀態(tài)寄存器SR、捕獲比較寄存器CCR等瓤檐,一共21個寄存器赂韵,這里挑選與PWM密切相關(guān)的寄存器進(jìn)行說明。

  1. 捕獲/比較模式寄存器(TIMx_CCMR1/2)


    TIMx_CCMR1

位7 OC1CE:輸出比較1清’0’使能 (Output Compare 1 clear enable)
0: OC1REF 不受ETRF輸入的影響挠蛉;
1:一旦檢測到ETRF輸入高電平祭示,清除OC1REF=0。

位6:4: OC1M[2:0]:輸出比較1模式 (Output Compare 1 mode)
該3位定義了輸出參考信號OC1REF的動作谴古。
其中质涛,110: PWM模式1- 在向上計數(shù);111: PWM模式2- 在向上計數(shù)時

位3 OC1PE: 輸出比較1預(yù)裝載使能 (Output Compare 1 preload enable):是否使能預(yù)裝載

位2 OC1FE: 輸出比較1 快速使能 (Output Compare 1 fast enable):該位用于加快CC輸出對觸發(fā)輸入事件的響應(yīng)

位1:0 CC1S[1:0]:捕獲/比較1 選擇(Capture/Compare 1 selection):定義通道的方向(輸入/輸出)掰担,及輸入腳的選擇
00: CC1通道被配置為輸出汇陆;
01: CC1通道被配置為輸入, IC1映射在TI1上带饱;
10: CC1通道被配置為輸入毡代, IC1映射在TI2上;
11: CC1通道被配置為輸入纠炮, IC1映射在TRC上月趟。此模式僅工作在內(nèi)部觸發(fā)器輸入被選中時(由
TIMx_SMCR寄存器的TS位選擇)。


image.png

我們想要的是PWM模式恢口,所以CCxM位必須是110/111孝宗;CCxS位為0。

  1. 捕獲/比較使能寄存器(TIMx_CCER)


    TIMx_CCER

    CCxE:CC1E: 輸入/捕獲1輸出使能 (Capture/Compare 1 output enable)
    位為1: 開啟- OC1信號輸出到對應(yīng)的輸出引腳
    CCxP: 輸入/捕獲1輸出極性 (Capture/Compare 1 output polarity):可以設(shè)置OCX高電平有效還是低電平有效耕肩。
    輸出時:0: OC1高電平有效因妇;1: OC1低電平有效
    CCxNE: CC1NE:輸入/捕獲1互補(bǔ)輸出使能 (Capture/Compare 1 complementary output enable)
    CCxNP:CC1NP:輸入/捕獲1互補(bǔ)輸出極性 (Capture/Compare 1 complementary output polarity)

我們只要配置使能位CCxE和極性。

  1. 捕獲/比較寄存器(TIMx_CCR)


    TIMx_CCR1

輸出模式下猿诸,該寄存器的值與CNT值進(jìn)行比較婚被,通過修改這個寄存器的值,就可以控制PWM的輸出脈寬梳虽。
脈沖寬度調(diào)制模式可以產(chǎn)生一個由TIMx_ARR寄存器確定頻率址芯、由TIMx_CCRx寄存器確定占空比的信號。

PWM舉例

OCxREF:output compare signal
CCxIF: sets a flag in the interrupt status register(CCxIF bit in the TIMx_SR register)
CC1IF: 捕獲/比較1中斷標(biāo)記 (Capture/Compare 1 interrupt flag)
如果通道CC1配置為輸出模式:
當(dāng)計數(shù)器值與比較值匹配時該位由硬件置1,但在中心對稱模式下除外(參考TIMx_CR1寄存器的CMS位)谷炸。它由軟件清’0’北专。
0:無匹配發(fā)生;
1: TIMx_CNT的值與TIMx_CCR1的值匹配旬陡。
當(dāng)TIMx_CCR1的內(nèi)容大于TIMx_APR的內(nèi)容時拓颓,在向上或向上/下計數(shù)模式時計數(shù)器溢出,或向下計數(shù)模式時的計數(shù)器下溢條件下描孟, CC1IF位變高

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驶睦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匿醒,更是在濱河造成了極大的恐慌场航,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件青抛,死亡現(xiàn)場離奇詭異旗闽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蜜另,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門适室,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人举瑰,你說我怎么就攤上這事捣辆。” “怎么了此迅?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵汽畴,是天一觀的道長。 經(jīng)常有香客問我耸序,道長忍些,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任坎怪,我火速辦了婚禮罢坝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘搅窿。我一直安慰自己嘁酿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布男应。 她就那樣靜靜地躺著闹司,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沐飘。 梳的紋絲不亂的頭發(fā)上游桩,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天牲迫,我揣著相機(jī)與錄音,去河邊找鬼众弓。 笑死恩溅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谓娃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼蜒滩,長吁一口氣:“原來是場噩夢啊……” “哼滨达!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俯艰,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤捡遍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后竹握,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體画株,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年啦辐,在試婚紗的時候發(fā)現(xiàn)自己被綠了谓传。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡芹关,死狀恐怖续挟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侥衬,我是刑警寧澤诗祸,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站轴总,受9級特大地震影響直颅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怀樟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一功偿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧漂佩,春花似錦脖含、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瘩缆,卻和暖如春关拒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工着绊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谐算,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓归露,卻偏偏與公主長得像洲脂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子剧包,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容