PWM脈寬調(diào)制技術(shù)在控制領(lǐng)域中是非常常用的技術(shù),電機(jī)控制、電源控制等都是通過PWM進(jìn)行驅(qū)動IGBT或MOSFET等開關(guān)器件進(jìn)行相關(guān)控制的。
目前所在公司的項目中需要用到PWM驅(qū)動功率放大電路,用以控制電流輸出,同時也是通過EPWM觸發(fā)ADC進(jìn)行采樣電流,故此進(jìn)行學(xué)習(xí)總結(jié)。
本次總結(jié)主要有以下內(nèi)容:
1、PWM波的產(chǎn)生過程;
2、如何觸發(fā)ADC?
1、PWM的介紹
1.1 時鐘
我一直在強(qiáng)調(diào)時鐘的重要性,因為沒有時鐘,芯片的很多外設(shè)模塊是無法工作的,在你編程的過程中可能就會遇到因為沒有使能時鐘導(dǎo)致模塊無法工作的情況,所以當(dāng)你的程序其他配置沒有問題,卻無法進(jìn)行具體的寄存器操作時,你應(yīng)該考慮查看是否打開了時鐘。
EPWM的時基模塊工作需要的時鐘信號,通過對系統(tǒng)時鐘的分頻得到時基時鐘(紅圈1)進(jìn)行設(shè)置,主要是通過 時基控制寄存器(TBCTL) 的高速時基時鐘分頻位 **HSPCLKDIV[9:7] 和時基時鐘分頻位 CLKDIV[12:10] **進(jìn)行分頻設(shè)置,通常設(shè)置為 1分頻 ,即 時基時鐘為系統(tǒng)時鐘 。
TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV)
// 設(shè)置TBCLK
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x0U;
EPwm1Regs.TBCTL.bit.CLKDIV = 0x0U;
注意: TBCLK時基時鐘是否使能,EPWM模塊時鐘是否使能(如下圖Figure1),對TBCLK時基時鐘以及使用的EPWM1模塊時鐘進(jìn)行使能,在程序中(DSP2833x_SysCtrl.c中)置1,具體程序如下所示:
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; // ePWM1
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK within the ePWM
1.2 ePWM結(jié)構(gòu)及組成單元
F28335的PWM模塊是加強(qiáng)模塊,這個加強(qiáng)表現(xiàn)在它各個ePWM的獨立性,每個ePWM小模塊都由兩路ePWM輸出組成,分別為ePWMxA和ePWMxB,這一對PWM輸出,可以配置成三種輸出:
- 兩路獨立的單邊沿PWM輸出;
- 兩路獨立的但互相對稱的雙邊沿PWM輸出;
- 一對雙邊沿非對稱的PWM輸出;
DSP28335共有18路PWM,6組 * 2 EPWM(A、B)+ 6路APWM,結(jié)構(gòu)圖如下所示。
每組EPWM包括7個模塊:
時基模塊TB
比較計數(shù)模塊CC
動作模塊AQ
死區(qū)模塊DB
斬波模塊DC
事件觸發(fā)模塊ET
錯誤聯(lián)防模塊TZ
每個模塊各自作用如下:
TB :為輸出PWM產(chǎn)生始終基準(zhǔn)TBCLK,配置PWM的時鐘基準(zhǔn)計數(shù)器TBCTR,設(shè)置計數(shù)器的計數(shù)模式,配置硬件或軟件同步時鐘基準(zhǔn)計數(shù)器,確定ePWM同步信號輸出源;
CC:確定PWM占空比,以及ePWM輸出高低電平切換時間;
AQ:確定計數(shù)器和比較寄存器匹配時產(chǎn)生動作,即ePWM 高低電平的切換;
DB:配置輸出PWM上升沿或下降沿延時時間,也可以將A、B兩通道配置成互補模式,我做的逆變器就是將ePWM配置成互補模式。死區(qū)時間可以編程確定;
PC:產(chǎn)生高頻PWM載波信號;
TZ:當(dāng)外部有錯誤信號產(chǎn)生時,對PWM輸出進(jìn)行相應(yīng)處理,比如全置高,或拉低,或置為高阻態(tài),從而起到保護(hù)作用。當(dāng)然該功能也可以通過軟件強(qiáng)制產(chǎn)生;
EZ:使能ePWM中斷,使能ePWM觸發(fā)ADC采樣,確定事件產(chǎn)生觸發(fā)的速度和清除相關(guān)事件標(biāo)志位。
ePWM模塊的7個模塊就像一條生產(chǎn)線,一級一級的經(jīng)過,但DSP更高級,可以實現(xiàn)通過配置,使得ePWM只經(jīng)過我選擇的生產(chǎn)線,沒有被選擇上的就不要經(jīng)過。
例如,死區(qū)控制模塊可以需要也可以不需要,這就看實際系統(tǒng)需不需要了。在實際使用ePWM時,正常的發(fā)出PWM波往往只要要配置TB、CC、AQ、DB、ET五個模塊。
上面講了那么多,那PWM波到底是如何產(chǎn)生的呢?接下來就開始講解這個問題。
2、PWM的產(chǎn)生
2.1 時基模塊-設(shè)置PWM產(chǎn)生的三種模式
PWM產(chǎn)生的三種模式分別為:up模式、down模式、up-down模式。
PWM產(chǎn)生的本質(zhì)是信號通過與載波比較,根據(jù)設(shè)置輸出高低電平,占空比由一個周期內(nèi)高電平的時間決定。 在實際實現(xiàn)上,載波通過計數(shù)器計數(shù)得到,其周期值TBPRD即為載波計數(shù)最大值(峰值),信號是根據(jù)具體需求經(jīng)過PI控制器輸出得到,與載波進(jìn)行比較后產(chǎn)生相應(yīng)占空比。如up-down模式,如下圖1-2-1所示。
2.2 周期和頻率的計算
1、up和down模式是向上計數(shù)和向下計數(shù),其周期和頻率的計算公式一致,為:
Tpwm = (TBPRD+1)* t_TBCLK
Fpwm= 1 / Tpwm
2、up-down模式是先向上計數(shù)后向下計數(shù),其周期和頻率的計算公式為:
Tpwm = 2 * TBPRD*t_TBCLK
Fpwm= 1 / Tpwm
在實際開發(fā)中,一般選用up-down模式,較前兩種模式優(yōu)勢在于增長平滑,無較大突變,更適合實際應(yīng)用。
實際設(shè)置PWM的頻率為10KHz,TBCLK為150MHz,則可計算出周期為:
PRD = 150 000 000 / (10 000 * 2)= 7500
2.3 計數(shù)比較模塊-比較事件產(chǎn)生,決定占空比
計數(shù)比較模塊主要是通過時基計數(shù)的值與比較寄存器CMPA、CMPB進(jìn)行比較,比如圖1-2-1的值3900設(shè)置為CMPA的值,根據(jù)設(shè)置,當(dāng)計數(shù)值大于或小于CMPA的值,AQ進(jìn)行相應(yīng)動作(置高或置低),就能得到相應(yīng)占空比的PWM波。
比較主要有四種情況:
1、TBCTR = CMPA,PWM根據(jù)AQ動作;
2、TBCTR = CMPB,PWM根據(jù)AQ動作;
3、TBCTR = PRD,PWM根據(jù)AQ動作;
4、TBCTR = 0,PWM根據(jù)AQ動作;
注意: up或down模式只比較一次,而up-down模式比較兩次。
實際過程中,比較的這個值時不斷變化的,根據(jù)具體需求(參考值)通過PID控制器在不斷調(diào)整,輸出不同占空比的PWM,達(dá)到控制的目的。
2.3 動作模塊AQ–根據(jù)比較結(jié)果動作,決定占空比
動作模塊AQ根據(jù)動作模塊寄存器AQCTLA、AQCTLB的設(shè)置對比較事件進(jìn)行動作。
主要有四種動作模式:
1、不動作
2、置低
3、置高
4、翻轉(zhuǎn)
動作模塊事件優(yōu)先級
不同模式下的動作事件是有優(yōu)先級的,up-down模式在向上計數(shù)和向下計數(shù)的過程中,事件優(yōu)先級不一樣。所有模式下,軟件強(qiáng)制事件的優(yōu)先級最高。
至此,PWM的產(chǎn)生基本得到解答。具體是:
1、設(shè)置TBCLK時鐘以及模塊時鐘使能;
2、選擇up-down模式,確定頻率,得到周期值;
3、確定比較事件以及動作模式,決定PWM的占空比,即可得到PWM波。=
3、如何觸發(fā)ADC?
這里主要講解一下思路。
觸發(fā)ADC的事件主要涉及到PWM模塊的事件觸發(fā)模塊ET,根據(jù)時基模塊和計數(shù)比較模塊輸入的比較事件以及CTR_Dir時基計數(shù)方向產(chǎn)生相應(yīng)事件,設(shè)置事件觸發(fā)選擇寄存器ETSEL,選擇觸發(fā)ADC啟動轉(zhuǎn)換或進(jìn)行中斷請求。
ADC啟動轉(zhuǎn)換觸發(fā)信號為EPWMxSOCA和EPWMxSOCB,根據(jù)ADC的設(shè)置選擇某個信號或兩個信號。
觸發(fā)ADC啟動轉(zhuǎn)換的具體設(shè)置為:
1、設(shè)置哪種觸發(fā)事件,
TBCTR = CMPA
TBCTR = CMPB
TBCTR = PRD
TBCTR = 0
2、什么事件模式下情況觸發(fā)
每個事件、每2個事件、每3個事件,一般是設(shè)置為每個事件觸發(fā)ADC啟動轉(zhuǎn)換。
-
功率放大器
+關(guān)注
關(guān)注
102文章
3573瀏覽量
131826 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120252 -
逆變器
+關(guān)注
關(guān)注
283文章
4715瀏覽量
206715 -
ADC驅(qū)動器
+關(guān)注
關(guān)注
0文章
35瀏覽量
13935 -
PWM波
+關(guān)注
關(guān)注
0文章
99瀏覽量
16855
發(fā)布評論請先 登錄
相關(guān)推薦
評論