數(shù)字控制芯片dsPIC33C的PWM運(yùn)行模式簡析
掃描二維碼
隨時隨地手機(jī)看文章
dsPIC33C系列芯片的PWM功能較以往更復(fù)雜,功能更加靈活,PWM的工作模式上和以往芯片也有一些不同之處,由于篇幅所限,本文側(cè)重分析一下PWM模塊運(yùn)行模式的分類及特性。
一.PWM運(yùn)行模式概述
圖1 PWM的運(yùn)行模式分類
從圖1上看,PWM的工作模式主要有幾種,如獨(dú)立邊沿PWM模式,這也是默認(rèn)設(shè)置的工作模式,變相位PWM模式,獨(dú)立邊沿PWM雙輸出模式,中心對齊模式,雙更新中心對齊模式,雙邊沿中心對齊模式等六種,其中后三種都是和中心對齊模式有關(guān)的模式。在這些PWM工作模式中,值得注意的是,有些模式采用多個PWM的計(jì)數(shù)器周期去產(chǎn)生單個PWM周期。
圖2 PWM控制寄存器Low
圖3 PWM控制寄存器Low中的模式選擇位
在配置PWM的工作模式中,首先通過圖2,3所示的寄存器配置PWM運(yùn)行模式。
二.獨(dú)立邊沿PWM模式
獨(dú)立邊沿的PWM模式,用于產(chǎn)生邊沿對齊的PWM信號,或者產(chǎn)生任意相位偏移的PWM信號,需要兩個獨(dú)立的寄存器去定義PWM波形的上升沿和下降沿位置。具體來說,通過PGxPHASE去定義PWM信號的上升沿位置相對于PWM周期計(jì)數(shù)器的起點(diǎn)的位置,而PGxDC用于定義相對于PWM周期計(jì)數(shù)器起點(diǎn),到PWM波形下降沿的位置。PGxPER用于確定PWM計(jì)數(shù)器的周期。
另外,除了可以設(shè)定單個的PWM波形為獨(dú)立邊沿模式,還可以通過PGxPHASE寄存器來設(shè)定多個PWM信號之間同步,只要將PGxPHASE值設(shè)為相同值即可。
另外,還有一些特殊情況,比如當(dāng)PGxPHASE=PGxDC時,則PWM脈沖占空比為0,而當(dāng)設(shè)為PGxDC>PGxPER時,則PWM脈沖的占空比為100%。
圖4 獨(dú)立邊沿PWM模式的波形示例
通過圖4所示的獨(dú)立邊沿PWM模式波形示例,可以看出PGxPHASE和PGxDC都是基于同一個起點(diǎn)開始計(jì)算,就是PWM周期計(jì)數(shù)器的起點(diǎn),所以PHASE設(shè)置會占用脈寬大小的部分。
三.變相位PWM模式
變相位PWM模式,它和獨(dú)立邊沿PWM模式不同,其中一個寄存器決定從PWM周期計(jì)數(shù)器起點(diǎn)開始計(jì)算的相位偏移的寬度,另一個寄存器決定從相位偏移開始計(jì)算的脈沖寬度。
圖5 變相位模式的SFR和波形關(guān)系
這種模式下,PGxPHASE決定相位偏移寬度,而PGxDC決定脈沖寬度,PGxPER決定PWM的周期。當(dāng)用戶希望固定脈寬,來調(diào)制相位偏移時,或者固定相位偏移,來調(diào)制脈寬時,則這種模式比較有用。
圖6 變相位的PWM模式波形示例
從圖6的變相位PWM模式的波形示例來看,PGxPHASE對相位偏移的設(shè)定并不占用PGxDC對脈寬的設(shè)定部分,二者是獨(dú)立的。
在使用變相位模式時,可以通過MDC去對所有PWM的脈寬進(jìn)行統(tǒng)一設(shè)定。但是也要注意一個問題,就是變相位PWM模式并不支持跨周期運(yùn)行的情況,也就是說PGxPHASE+PGxDC一定要小于PGxPER這樣的關(guān)系。
圖7 多個PWM使用變相位模式波形示例
在圖7中,PWM1-4都是用變相位模式,四個PWM設(shè)置相同的脈寬值,但是設(shè)定為了不同的相位偏移,注意此處是滿足PGxPHASE+PGxDC小于PGxPER這個關(guān)系的。
四.雙PWM輸出模式
雙PWM輸出模式,即在PWMxH和PWMxL上都輸出獨(dú)立的PWM波形。PWM雙輸出模式和PWM獨(dú)立邊沿模式不同,它允許在第二個PWM pin上輸出波形,且在獨(dú)立模式下。
第二個PWM的輸出信號的上升沿寬度是由PGxTRIGA決定,而下降沿寬度由PGxTRIGB決定,另外一點(diǎn)需要注意的是,在高分辨率模式下,PWM雙輸出模式不能和PWM互補(bǔ)輸出模式一起使用。(關(guān)于PWM的I/O輸出模式,我們后面進(jìn)一步討論)。
圖8 PWM雙輸出模式波形示例
在PWM雙輸出模式中,注意PGxTRIGA和PGxTRIGB都是基于PWM周期計(jì)數(shù)器起點(diǎn)開始計(jì)算寬度的。
值得注意的是,在雙輸出模式下,PGxTRIGA,PGxTRIGB作為正常的事件輸出信號還是正常工作的,比如相位偏移觸發(fā),或者ADC觸發(fā)信號等,如果需要一個純粹的信號去做觸發(fā)功能,可以選擇PGxTRIGC來使用。
五.中心對齊PWM模式
中心對齊PWM模式,和邊沿對齊模式PWM不同,它可以避免PWM占空比不同時,上升沿或者下降沿重疊,因此導(dǎo)致紋波或者濾波的需求,因此,在一些場合如逆變器中有所用途。
中心對齊模式PWM的脈寬是對稱于兩個PWM周期計(jì)數(shù)器的,當(dāng)占空比增加時,則上升沿和下降沿部分都在增加,以保持對稱。基于這個概念,中心對齊模式PWM脈沖波形是由兩個PWM周期計(jì)數(shù)周期組成。
圖9 中心對齊PWM模式的SFR和波形的關(guān)系
中心對齊PWM模式采用PGxDC決定從兩個PWM周期中間開始計(jì)算的脈沖寬度,即真實(shí)脈寬的一半,而PGxPER決定每一個PWM周期計(jì)數(shù)器的周期。
圖10 中心對齊PWM模式的波形示例
中心對齊PWM的上升沿位置在PGxPER-PGxDC+1處,而下降沿位置在PGxDC處。值得注意的是更新PWM的buffer寄存器,如PGxDC或者PGxPER等,只能在第一個PWM周期計(jì)數(shù)器開始處更新,這一點(diǎn)可以通過判斷CAHALF位來判定是否處于第一個PWM計(jì)數(shù)周期處,當(dāng)CAHALF為0時為第一個PWM計(jì)數(shù)周期,CAHALF為1時為第二個PWM計(jì)數(shù)周期。
另外一點(diǎn),從圖上可以看出,EOC中斷事件,是在兩個PWM計(jì)數(shù)周期結(jié)束后才產(chǎn)生的。
六.雙更新中心對齊PWM模式
雙更新中心對齊模式,和普通的中心對齊模式是類似的,只不過有兩次EOC中斷,和兩次PWM數(shù)據(jù)寄存器更新。雙更新的好處是減小的環(huán)路處理延時,但是有可能造成脈寬波形不對稱。
圖11 雙更新中心對齊PWM模式
七.雙邊沿的中心對齊PWM模式
雙邊沿的中心對齊PWM模式,和雙更新的PWM中心對齊模式類似,在雙邊沿中心對齊模式中,允許對上升沿寬度和下降沿部分寬度做相應(yīng)控制,這同樣會造成波形的不對稱性。
這個模式的特點(diǎn)就是,給預(yù)用戶足夠的靈活性,增加了對兩個邊沿的控制之外,還可以減小中斷事件的頻率。
圖12 雙邊沿的中心對齊PWM模式寄存器和波形關(guān)系
具體來說,通過PGxPHASE來實(shí)現(xiàn)對上升沿部分脈沖寬度的控制,通過PGxDC來實(shí)現(xiàn)對下降沿部分脈沖寬度的控制。
有一個非常靈活之處,就是在雙邊沿中心對齊PWM模式中,用戶可以設(shè)置為單更新模式,也可以設(shè)置為雙更新模式。單更新模式就是說,用戶隨時在允許改寫寬度的階段去改寫PGxPHASE或者PGxDC,而在下一個完整PWM周期初始處去更新之。
圖13 雙邊沿中心對齊PWM模式---單更新模式
如圖13所示,我們可以看出,在PWM周期中改寫了PGxDC和PGxPHASE的值,然后在下一個周期中才進(jìn)行更新數(shù)據(jù)Buffer。同時,EOC中斷事件也是每一個完整PWM信號周期中斷一次。
和單更新對應(yīng)的,就是雙更新模式,在這個模式中,對應(yīng)每一個PWM計(jì)數(shù)周期都有一個EOC事件中斷,也有一個PWM數(shù)據(jù)更新。
圖14 雙邊沿中心對齊PWM模式---雙更新模式
在雙更新的模式中,注意改寫和更新的時刻,在上升沿PWM計(jì)數(shù)周期初始時刻,只能更新PGxPHASE的值,而在下降沿PWM計(jì)數(shù)周期初始時刻,只能更新PGxDC的值,用戶可以用CAHALF來決定合適的寄存器改寫時刻,比如,在CAHALF=0時,前面的一個PWM計(jì)數(shù)周期中,只能改寫PGxDC的值,然后在后面的一個PWM計(jì)數(shù)周期初始時刻更新。而在CAHALF=1時,后面的一個PWM計(jì)數(shù)周期中,只能改寫PGxPHASE的值,然后在第一個PWM計(jì)數(shù)周期初始時刻更新。每一個PWM計(jì)數(shù)周期結(jié)束后,都會進(jìn)行EOC中斷。總的說來,就是說先寫入,然后在下一個PWM計(jì)數(shù)周期初始更新。
總結(jié),主要分析和總結(jié)dsPIC33C系列的PWM工作模式的一些細(xì)節(jié),后續(xù)我們會進(jìn)一步討論與運(yùn)行模式相關(guān)的PWM的I/O輸出模式的配置。





