標籤:
總結一下28027的PWM模組。
28027包含PWM1,PWM2,PWM3,PWM4四個PWM模組,所有的PWM模組的寄存器結構都一樣,唯一的區別就是同步時的操作順序不一樣。
PWM模組可以分為時基(Timer base),計數器比較(Counter Compare),PWM波形發生器(Action Qualifer),死區設定(Dead Band),高頻PWM斬波(PWM chopper),錯誤處理(Trip Zone) , 事件觸發及中斷(Event Trigger and Interrupt)等子模組組成,基本框圖如下。
下面按照文檔SPRUGE9E的順序逐個來看這些子模組:
1. 時間基準
這個模組的作用就是產生三個訊號,
CTR=PRD 計數寄存器的值等於周期寄存器時,產生的脈衝序列
CTR=0 計數寄存器的值等於0時,產生的脈衝序列
CTR-DIR 表示計數方向,計數器向上計數時常為1;向下計數時常為0,向上計數到Period後向下到0(up-down)則為1-0交替。
另外這個模組能接受上個PWM模組發來的同步訊號,並向下一個PWM模組發送同步訊號。
TBCTL設定項如下:
計數模式(up,down,up-down),
同步使能(收到同步訊號時是否載入相位寄存器的值到計數寄存器),
周期寄存器的操作方式(直接讀寫 或先寫入 shadow寄存器然後在某時刻載入到周期寄存器)
同步訊號輸出觸發方式
軟體同步
分頻係數(設定PWM模組的時鐘頻率)
同步後計數方向設定(在up-down計數模式時,設定同步後的計數方向,其他模式下,該設定無效)
模擬時PWM計數設定
TBSTS PWM狀態寄存器
TBPHS 相位寄存器 (僅在同步時用到)
TBCTR 計數寄存器
TBPRD 周期寄存器
其他寄存器在高解析度的PWM時才用到,現在先不管
PWM模組同步可以理解為 多個周期相等的PWM模組發出PWM訊號時,計數器的值相等或保持固定的差值。這個在做空間向量電壓時很重要。
28027的同步過程如:
PWM1可以接受外部的同步訊號,然後發出一個同步訊號給PWM2,同樣PWM2產生一個同步訊號給PWM3 。。。
只有PWM1可以接受外部的同步訊號(引腳名 EPWM1SYNCI),其他PWM模組可以接受上一個模組的同步訊號。
每個PWM模組都能發出同步訊號給下一個模組,具體設定在TBCTL寄存器(SYNCOSEL)。(00 - 輸入同步訊號觸發; 01- CTR=0 觸發; 10 -CTRCMPB 觸發;11- 禁止發出同步訊號)
時間基準模組有幾個設定執行個體的時序圖,這裡選了一個。其中在PWM模組收到同步訊號時,計數寄存器將載入相位寄存器的值。
2. 計數比較模組
這個模組的作用就是將比較寄存器CMPA,CMPB的值與前面的計數寄存器TBCTR 進行比較,產生CTR=CMPA和CTR=CMPB兩個脈衝序列訊號。
這個模組的相關寄存器如下
CMPCTL 可以設定CMPA,CMPB的從shadow載入
CMPA,CPMB 16位元值寄存器
3. PWM波形發生器 (Action Qualifier)
該模組產生兩路PWM波 :PWMA,PWMB。
前面產生的 CTR=CMPA, CTR=CMPB CTR=PRD,CTR=0,來決定PWMA和PWMB,什麼時候是1,什麼時候是0,或者什麼時候翻轉
相關寄存器如下:
AQCTLA 設定PWMA在 CTR=CMPA(上升沿,下降沿), CTR=CMPB(上升沿,下降沿), CTR=PRD,CTR=0時分別進行什麼操作(清0;置1;翻轉 或 Do nothing)
AQCTLB 設定PWMB在 CTR=CMPA(上升沿,下降沿), CTR=CMPB(上升沿,下降沿), CTR=PRD,CTR=0時分別進行什麼操作(清0;置1;翻轉 或 Do nothing)
AQSFRC 設定單次軟體觸發,以及軟體觸發對 PWMA PWMB的影響。
AQCSFRC 連續軟體觸發對PWMA PWMB的影響。(編者註:不知道連續軟體觸發是怎麼產生的,單次軟體觸發可以在AQSFRC裡面設定。)
4. 死區設定
設定死區,可以方便地產生兩路互補或一樣的PWM波形。
相關寄存如
DBCTL設定中的六個開關,在s0,s1都為0時,死區設定無效;s0,s1 = 1,1,s4,s5=0,0,則EPWMxB無效,可以由EPWMxA產生兩路一樣或互補的PWM。
DBRED,DBFED設定上升沿和下降沿的延隔時間。
5. PWM斬波
斬波部分只有一個控制寄存器,就不多說,反正我用不到,也不知道哪裡會需要用到這個。
大致的功能如,將輸入的PWM波形的與高頻訊號PCLK(接近於時間頻率,該訊號的占空比可在([1,7]/8)範圍內調整)疊加。
、
6.錯誤處理(Trip-zone)
按照文檔上的說明,這個模組是根據TZ1-6訊號(可以是外部訊號,也可以在內部產生)來控制PWM的行為。可以用來做過流保護,電流限制等等
TZSEL 選擇TZ訊號(DCAEVT1/2, DCBEVT1/2 , TZ1-6) (One shot 和 cycle by cycle兩種模式 )
TZDCTL 設定TZ訊號對應的操作 (置1,清零, 高阻,Do nothing)
TZDCSEL 設定產生數字比較子事件的條件
TZEINT 對應訊號的中斷使能
TZFLG TZ 觸發標誌
TZCLR TZ觸發標誌清零
TZFRC 軟體觸發TZ事件
7.事件觸發(Event-Trigger)
事件觸發模組產生 EPWMxINT EPWMxSOCA EPWMxSOCB 三個訊號,可以用來觸發AD轉換
ETSEL 使能並選擇事情觸發源
ETPS 選擇分頻係數(1;1/2;1/3)
ETFLG 事件觸發狀態標識
ETCLR 清除狀態標識
ETFRC 軟體觸發對應是事件
TMS320F28027 之PWM 模組