STM32F429第二十篇之高级定时器——PWM(OSSI,OSSR)
文章目錄
- 前言
- 高級(jí)定時(shí)器
- PWM模式
- 互補(bǔ)通道與剎車
- 重要寄存器
前言
從本文開(kāi)始,介紹F429的高級(jí)時(shí)鐘特性。本文主要介紹高級(jí)時(shí)鐘的PWM功能的應(yīng)用。關(guān)于PWM,本文重點(diǎn)介紹實(shí)現(xiàn)帶有斷路功能的雙通道互補(bǔ)無(wú)延時(shí)的PWM波的實(shí)現(xiàn)方式。
本文主要參考文獻(xiàn)為:
- ST.RM0090 參考手冊(cè)
- 劉火良.STM32庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南.機(jī)械工業(yè)出版社
更新列表:
- 2021.02.23——更新關(guān)于OSSI與OSSR分析。
- 2021.04.16——更新關(guān)于PWM時(shí)序
高級(jí)定時(shí)器
本文不打算詳細(xì)介紹高級(jí)定時(shí)器的每個(gè)特點(diǎn),因?yàn)楦呒?jí)定時(shí)器的內(nèi)容太多瑣碎與復(fù)雜。本文決定通過(guò)以實(shí)驗(yàn)的方式,分別介紹高級(jí)定時(shí)器的三個(gè)應(yīng)用場(chǎng)景:
- PWM波輸出
- 輸入捕獲
- 編碼器功能
通過(guò)三個(gè)比較常用的應(yīng)用場(chǎng)景,比較全面的將高級(jí)定時(shí)器分解介紹。若以后遇到其他的應(yīng)用場(chǎng)景,再詳細(xì)介紹。
首先,我們看一下官方提供的高級(jí)定時(shí)器框圖。該框圖相對(duì)于基本定時(shí)器十分復(fù)雜,先大致了解一下即可。在此處,本文重點(diǎn)介紹高級(jí)定時(shí)器與芯片外部的接口。在框圖中,輸入接口在框圖的左邊,輸出接口在框圖的右邊。通過(guò)觀察該框圖,可以了解到:F429的高級(jí)定時(shí)器與外部的物理接口可以大致分成以下三種類型:
其中,前兩種接口在圖上比較明確不再詳細(xì)展開(kāi),下面重點(diǎn)講解一下四通道接口:
在高級(jí)定時(shí)器中,每個(gè)定時(shí)器有4個(gè)通道。而每個(gè)通道與芯片外部都有對(duì)應(yīng)的物理接口。需要注意的是,其中輸入接口是的對(duì)應(yīng)關(guān)系可以通過(guò)寄存器配置,而輸出接口是直接對(duì)應(yīng)無(wú)法改變的。輸入接口與通道是一一對(duì)應(yīng)的,而每個(gè)通道提供輸出接口的同時(shí)還提供對(duì)應(yīng)的互補(bǔ)接口。也就是說(shuō),每一個(gè)通道對(duì)應(yīng)兩個(gè)輸出接口。另外需要注意的就是,雖然在框圖中將每個(gè)通道輸入接口和輸出接口分開(kāi)畫(huà)在框圖的左右兩側(cè),其實(shí)在物理上,名稱相同的接口為同一個(gè)接口。
高級(jí)定時(shí)器與通用定時(shí)器的對(duì)外接口與F429的管腳對(duì)應(yīng)關(guān)系總結(jié)如下:
| CH1 | PA8/PE9/PC10 | PC6/PI15 | PA0/PA5/PA15 | PA0/PH10 | PA6/PC6/PB4 | PD12/PB6 | PE5/PA2 | PF6/PB8 | PF7/PB9 | PH6/PB14 | PF8/PA6 | PF9/PA7 |
| CH1N | PA7/PE8/PB13 | PA5/PA7/PH13 | ||||||||||
| CH2 | PE11/PA9 | PC7/PI6 | PA1/PB3 | PA1/PH11 | PA7/PC7/PB5 | PD13/PB7 | PE6/PA3 | PH9/PB15 | ||||
| CH2N | PB0/PE10/PB14 | PB0/PB14/PH14 | ||||||||||
| CH3 | PE13/PA10 | PC8/PI7 | PA2/PB10 | PA2/PH12 | PB0/PC8 | PD14/PB8 | ||||||
| CH3N | PB1/PE12/PB15 | PB1/PB15/PH15 | ||||||||||
| CH4 | PE14/PA11 | PC9/PI2 | PA3/PB11 | PA3/PI0 | PB1/PC9 | PD15/PB9 | ||||||
| ETR | PE7/PA12 | PA0/PI3 | PA0/PA5/PA15 | PD2 | PE0 | |||||||
| BKIN | PA6/PE15/PB12 | PA6/PI4 |
PWM模式
PWM即脈沖寬度調(diào)制模式,PWM的頻率由TIMx_ARR寄存器值確定,其占空比由比較寄存器TIMx_CCRx值確定。
在PWM模式中,信號(hào)流經(jīng)的主要模塊已經(jīng)通過(guò)紅色方框圈起來(lái),大致分成以下三個(gè)部分:
關(guān)于基本定時(shí)器的更多知識(shí),可以參考博客<STM32F429第十八篇之基本定時(shí)器> 。
其基本原理是,隨著內(nèi)部時(shí)鐘的脈沖,CNT的計(jì)數(shù)值不斷變化。當(dāng)CNT的值產(chǎn)生溢出或者等于Capture/Compare 1 寄存器時(shí),其OCxREF的電平發(fā)生變化,從而輸出通道與互補(bǔ)輸出通道的電平跟著變化。所以,自動(dòng)重載寄存器(AutoReload Register)的值決定了計(jì)數(shù)器(CNT)的計(jì)數(shù)周期,也就是PWM的頻率。而比較寄存器(Capture/Compare 1 Register)的值決定了PWM的占空比。
以邊緣對(duì)齊模式為例,只要 TIMx_CNT < TIMx_CCRx,PWM 參考信號(hào) OCxREF 便為 高電平,否則為低電平。如果 TIMx_CCRx 中的比較值大于自動(dòng)重載值(TIMx_ARR 中),則 OCxREF 保持為“1”。如果比較值為 0,則 OCxRef 保持為“0”。
注意:
互補(bǔ)通道與剎車
互補(bǔ)通道與剎車功能是高級(jí)寄存器特有的功能。
在使用互補(bǔ)通道時(shí),往往還需要考慮死區(qū)等特殊功能。而本文為了簡(jiǎn)單起見(jiàn),不再考慮死區(qū)區(qū)間。通過(guò)配置TIMx_CCER寄存器,來(lái)使能互補(bǔ)通道,且將OCxREF 重定向到 OCx 輸出或 OCxN 輸出。
互補(bǔ)信號(hào) OCx 和 OCxN 通過(guò)以下多個(gè)控制位的組合進(jìn)行激活:TIMx_CCER 寄存器中的 CCxE 和 CCxNE 位以及 TIMx_BDTR 和 TIMx_CR2 寄存器中的 MOE、OISx、OISxN、OSSI 和 OSSR 位。
注意:
此處中文文檔過(guò)于陳舊,最新的英文參考手冊(cè)有不同的描述,如下所示:
關(guān)于OSSR和OSSI的作用,看文檔有點(diǎn)云里霧里,通過(guò)實(shí)驗(yàn),我個(gè)人認(rèn)為其主要作用如下:
OSSR在MOE=1時(shí)起作用,即PWM處于運(yùn)行狀態(tài)。下面分條陳述:
若OSSR=0,則禁用端口輸出高阻(存疑),與CCxP或者CCxNP無(wú)關(guān)。
若OSSR=1,則禁用端口輸出無(wú)效電平。假設(shè)OC1N為被禁用,即(CC1NE=0),則此時(shí)OC1N的輸出為無(wú)效電平,即CC1NP為0時(shí),高電平有效,輸出電平為0,CC1NP為1是,低電平有效,輸出電平為1。
OSSI與OSSR的作用很類似,其只有在MOE=0時(shí)起作用,即PWM處于高阻狀態(tài)。我們假定互補(bǔ)的兩個(gè)通道都使能,下面分條陳述:
上面3種情況是OSSI=1的效果,若OSSI=0,此時(shí)輸出高阻(存疑)。
可以這樣理解:若是OISx=OSIxN且CCxP=CCxNP時(shí),此時(shí)輸出的是無(wú)效電平。其余的時(shí)候,OCxN=OSIxN,OCx=OISx。
真值表如下:
| OSIx | x | 0 | 0 | 1 | 1 |
| OSIxN | x | 0 | 1 | 0 | 1 |
| CCxP | x | 1 | x | x | 0 |
| CCxNP | x | 1 | x | x | 0 |
| OCx | x | 1 | 0 | 1 | 0 |
| OCxN | x | 1 | 1 | 0 | 0 |
| CCxP | x | 使能 | 使能 | 0 | 1 |
| CCxNP | x | 0 | 1 | 使能 | 使能 |
| OCx | x | 使能 | 使能 | 0 | 1 |
| OCxN | x | 0 | 1 | 使能 | 使能 |
發(fā)生斷路(斷路輸入上出現(xiàn)所選電平)時(shí):
重要寄存器
與PWM通道相關(guān)的重要寄存器如下所示:
CCMR1
在該寄存器中,需要配置以下幾位:
CR1
在該寄存器中,需要配置以下幾位:
EGR
CCER
BDTR
CR2
總結(jié)
以上是生活随笔為你收集整理的STM32F429第二十篇之高级定时器——PWM(OSSI,OSSR)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 22-0001 淘宝店铺搜索界面
- 下一篇: 二手交易商城开发,节约、高效的回收平台