PWM 常見(jiàn)問(wèn)題以及注意事項(xiàng)
賽元常規(guī)芯片具有多路共周期,單獨(dú)可調(diào)占空比的 8~12 位 PWM,此外賽元還有多路 PWM 芯片,型號(hào)為 SC92FW40/24/26 以及 SC95FW40/24/16,多路 PWM 芯片提供 2 組 共用周期、單獨(dú)可調(diào)占空比的 12 位 PWM,最多有 40 路 PWM 輸出口;如果客戶需要兩個(gè) 周期不同的 PWM,可以選擇 FW 系列芯片,或者是采用其中一路 PWM 采用軟件模擬,軟 件模擬建議選擇周期較大的 PWM 進(jìn)行模擬,這樣軟件操作比較方便。?
此文檔主要對(duì) PWM 使用過(guò)程中常見(jiàn)的問(wèn)題以及相關(guān)注意事項(xiàng)進(jìn)行說(shuō)明,包含以下幾個(gè) 內(nèi)容:?
1、PWM 使用設(shè)置注意事項(xiàng);?
2、PWM 的周期是否是共用的;?
3、PWM 啟動(dòng)后沒(méi)有波形輸出;?
4、PWM 的精度是多少;?
5、如何用 PWM 功能實(shí)現(xiàn)霧化器追頻功能;?
6、周期和占空比是否可以在程序中進(jìn)行調(diào)節(jié);?
7、PWM 獨(dú)立模式與互補(bǔ)模式;?
8、PWM 互補(bǔ)模式下的死區(qū)設(shè)置。?
以下為具體內(nèi)容,請(qǐng)用戶根據(jù)需求自行查閱:?
1、PWM 使用設(shè)置注意事項(xiàng)?
1) 關(guān)閉 PWM 后,IO 口會(huì)由 PWM 輸出變?yōu)?GPIO 口,而此時(shí)的 IO 口輸出為不確定 狀態(tài),所以建議將 PWM 輸出口所在的 IO 口根據(jù)實(shí)際應(yīng)用情況設(shè)置為輸出高,輸 出低或輸入帶上拉模式;
2) 使用 10 位 PWM 時(shí),為保證 PWM 設(shè)置準(zhǔn)確,需要先配置低 2 位的,再配置高 8 位;?
3) PWM 的占空比要小于 PWM 周期,否則 PWM 輸出口會(huì)一直為高電平;?
4) 賽元大部分芯片的各路 PWM 周期都是共用的,占空比單獨(dú)可調(diào),只有 PWM 專用 芯片 92FW 系列或者 95FW 系列的芯片有 2 組共用周期,占空比單獨(dú)可調(diào);?
5) 賽元部分芯片的 PWM 具有故障檢測(cè)的功能,用戶使能故障檢測(cè)功能后,不能懸空 FLT 管腳,否則 PWM 輸出異常;當(dāng)故障發(fā)生時(shí),PWM 停止輸出,PWM 口處于 高阻狀態(tài)。故障檢測(cè)模式分為立即模式和鎖存模式,鎖存模式下,故障信號(hào)滿足失 能條件后,硬件不會(huì)自動(dòng)清除故障檢測(cè)狀態(tài)標(biāo)志位,用戶可通過(guò) PWMFLT &= 0x7f 軟件清零。?
6) 賽 元 SC95F 系 列 芯 片 MCU PWM 在 互 補(bǔ) 模 式 下 時(shí) , PWM40/PWM41,PWM42/PWM43,PWM50/PWM51 和 PWM52/PWM53 分為四 組,分別通過(guò) PDT40[11:0]、PDT42[11:0]、PDT50[11:0]和 PDT52[11:0]調(diào)節(jié)占空 比;此時(shí)寄存器 PDT41[11:0]、PDT43[11:0]、PDT51[11:0]和 PDT53[11:0]無(wú)效; 但各 PWMxy(x=4~5,y=0~3)輸出和反向依然由相應(yīng)的 ENPxy 和 INVxy 獨(dú)立控制?
2、PWM 的周期是否是共用的?
賽元大部分芯片的各路 PWM 周期都是共用的,占空比單獨(dú)可調(diào),只有 PWM 專用芯片 92FW 系列或者 95FW 系列的芯片有 2 組共用周期,占空比單獨(dú)可調(diào),如果實(shí)際應(yīng)用需 要輸出不同周期的波形,周期較大的波形可以使用定時(shí)器和 IO 口來(lái)模擬 PWM 輸出,軟 件模擬時(shí)要注意定時(shí)器中斷需要設(shè)置為高優(yōu)先級(jí),其它中斷設(shè)置為高優(yōu)先級(jí),這樣 PWM 的周期不會(huì)受其他中斷影響。?
3、PWM 啟動(dòng)后沒(méi)有波形輸出?
1) PWM 所在的 IO 口是否有其他外圍電路將 IO 口電平拉住了;?
2) 賽元部分芯片的 PWM 輸出可以選擇不同的 IO 口,需要通過(guò)寄存器設(shè)置選擇將 PWM 輸出到哪個(gè) IO 口,查看是否設(shè)置正確;?
3) 在開(kāi)啟和關(guān)閉 PWM 時(shí),用戶需要根據(jù)實(shí)際應(yīng)用需求對(duì) PWM 對(duì)應(yīng) IO 口的輸出寄 存器進(jìn)行設(shè)置,查看是否將對(duì)應(yīng)的 IO 口設(shè)置為了 PWM 輸出口,如果沒(méi)有設(shè)置, 此 IO 口為 GPIO 模式,不能輸出 PWM 波形;?
4) 查看 PWM 周期和占空比的設(shè)置,如果占空比大于了周期,那么 PWM 輸出口的波 形就是持續(xù)的高電平。?
4、PWM 的精度是多少?
賽元芯片的 PWM 有三種精度,分別為 12 位、10 位、8 位,不同型號(hào)的芯片 PWM 精度 不同,具體請(qǐng)參照對(duì)應(yīng)芯片型號(hào)的規(guī)格書(shū),芯片規(guī)格書(shū)可以到賽元官網(wǎng)(www.socmcu.com) 搜索芯片型號(hào)獲取。?
5、如何用 PWM 功能實(shí)現(xiàn)霧化器追頻功能?
賽元大部分型號(hào)的芯片都具有 PWM 功能,可以實(shí)現(xiàn) PWM 追頻驅(qū)動(dòng)霧化器霧化片,賽元 芯片的追頻原理為先設(shè)置 PWM 周期接近霧化片中心頻率,然后調(diào)節(jié)芯片 HRC,從而微調(diào) PWM 輸出頻率,找到霧化片的最佳頻率,賽元全部的芯片 HRC 均可以調(diào),調(diào)節(jié)步進(jìn)有 0.23%和 0.18%兩種規(guī)格,可以根據(jù)追頻精度要求進(jìn)行選擇;?
以 92F7251 為例,7251 主頻 12M,要輸出 1.7MHz 的 PWM,需設(shè)置 PWM 時(shí)鐘來(lái)源為 Fsys,12M/1.7M=7.05,PWM 周期設(shè)置寄存器賦值為 7-1=6,這樣輸出的 PWM 頻率為 12M/7=1.714MHz,然后調(diào)節(jié)芯片 HRC,每步調(diào)節(jié)精度為 0.23%,即每部的調(diào)節(jié)大小為 3.9KHz;同樣的,如果需要輸出 2.4M 中心頻率的 PWM 波形,PWM 周期設(shè)置為 4 即可, 然后調(diào)節(jié) HRC 進(jìn)行追頻,追頻精度同樣為 0.23%;?
如果需要追頻精度更高就需要選擇 HRC 調(diào)節(jié)精度為 0.18%的芯片,另外如果需要調(diào)節(jié)更 精細(xì)的占空比,需要選擇系統(tǒng)頻率更高的芯片,如 95 系列最高主頻 32M 的芯片,占空比 的調(diào)節(jié)可以比 12M 主頻芯片的占空比調(diào)節(jié)高 2-3 倍。?
6、周期和占空比是否可以在程序中進(jìn)行調(diào)節(jié) 當(dāng) PWM 輸出波形時(shí),若需改變占空比,可通過(guò)改變高電平設(shè)置寄存器(PDTn)的值實(shí)現(xiàn)。 但需要注意:更改 PDTn 的值,占空比不會(huì)立即改變,而是等待本周期結(jié)束,在下個(gè)周期 改變,如下圖:

若需改變占空比,可通過(guò)改變高電平設(shè)置寄存器(PDTxy)的值實(shí)現(xiàn)。但需要注意:更改 PDTxy 的值,占空比不會(huì)立即改變,而是等待本周期結(jié)束,在下個(gè)周期改變,如下圖:

7、PWM 獨(dú)立模式與互補(bǔ)模式 賽元部分芯片的 PWM 功能可設(shè)置為獨(dú)立模式和互補(bǔ)模式。?
獨(dú)立模式下,PWM 通道的占空比均可獨(dú)立設(shè)置。用戶配置好 PWM 的輸出狀態(tài)及周期, 再通過(guò)配置相應(yīng) PWM 通道的占空比寄存器即可按固定占空比輸出 PWM 波形。?
互補(bǔ)模式下,兩個(gè) PWM 通道為互補(bǔ)波形,設(shè)置其中一路 PWM 的占空比寄存器,兩路互 補(bǔ) PWM 通道的占空比同時(shí)生效,部分占空比設(shè)置的寄存器無(wú)效,具體的 PWM 互補(bǔ)通道 以及互補(bǔ) PWM 占空比的設(shè)置寄存器以規(guī)格書(shū)中“PWM 互補(bǔ)模式”章節(jié)的描述為準(zhǔn),芯片 規(guī)格書(shū)可以到賽元官網(wǎng)(www.socmcu.com)搜索芯片型號(hào)獲取?;パa(bǔ)模式下可以設(shè)置死 區(qū)時(shí)間,死區(qū)控制模塊能夠防止互補(bǔ)輸出的兩路 PWM 信號(hào)有效時(shí)區(qū)的互相交疊,以保證 實(shí)際應(yīng)用中 PWM 信號(hào)驅(qū)動(dòng)的一對(duì)互補(bǔ)功能開(kāi)關(guān)管不會(huì)同時(shí)導(dǎo)通。
8、PWM 互補(bǔ)模式下的死區(qū)設(shè)置?
互補(bǔ)模式下可以設(shè)置死區(qū)時(shí)間,死區(qū)控制模塊能夠防止互補(bǔ)輸出的兩路 PWM 信號(hào)有效時(shí) 區(qū)的互相交疊,以保證實(shí)際應(yīng)用中 PWM 信號(hào)驅(qū)動(dòng)的一對(duì)互補(bǔ)功能開(kāi)關(guān)管不會(huì)同時(shí)導(dǎo)通。 死區(qū)時(shí)間有相應(yīng)的 PWM 死區(qū)時(shí)間設(shè)置寄存器,可分別設(shè)置上升沿死區(qū)和下降沿死區(qū),不 同型號(hào)的芯片,設(shè)置 PWM 的死區(qū)時(shí)間計(jì)算方式略有差異,在規(guī)格書(shū)中的 PWM 死區(qū)時(shí)間 設(shè)置寄存器下有具體的時(shí)間計(jì)算公式,請(qǐng)以規(guī)格書(shū)上的計(jì)算公式為準(zhǔn),死區(qū)輸出波形示例 如下圖:

