Time Base(TB)時間基礎方塊
TBPRD:Time base period,也就是計數的周期是多少TBCLK。TBCLK:Time base clock是由SYSCLKOUT prescale,做為TB的CLOCK,在
TBCTL.CLKDIV去設置。
TBCTR:Time base counter計數暫存器,可以向上也可以向下計數。
TBPHS:Time base phase相位暫存器,用來同步不同的ePWM模組。在觸發
ePWMxSYNCI事件,各個ePWM模組就將各自TBPHS裡的值載入到
TBCTR。這個功能可以在TBCTL.PHSEN開啟或關閉。
TBCTL:Time base control 控制暫存器,用來設置TB裡的參數,如Clcok
prescale, 計數器是,向上計數/向下計數/向上向下計數方式,active
與shadow模式的選擇。
在TBPRD、CMPA、CMPB有分成兩種模式,分別是active與shadow,在設置為
active mode的情況下,在更新TBPRD暫存器後,就會立即影響硬體,偵測到觸
發事件就會立即響應。在shadow mode則有緩衝,在更新TBPRD後,要等到
TBCTR為0,才會將TBPDR在shadown暫存器裡的值,更新到active暫存器,也
才會偵測硬體事件。這樣可以避免在軟體配置暫存器時,與硬體不同步而造成
系統崩潰或故障。
EPWMxSYNCI,同步信號脈衝,讓計數直接載入(跳到)TBPHS所設定的值。
Counter ccompare(CC)計數比較方塊
CMPA:Counter Compare A resigster計數比較暫存器A,在這個暫存器設定一個數
值,與TBCTR的值做比較,用來設定PWM訊號的Duty。
CMPB:Counter Compare B resigster計數比較暫存器B
CMPCTL:Counter compare control計算比較的控制暫存器,裡面包括了CMPA/B要
CMPB:Counter Compare B resigster計數比較暫存器B
CMPCTL:Counter compare control計算比較的控制暫存器,裡面包括了CMPA/B要
被設為shadow或active模式。在shadow模式下,CMPA/B在更新後,是
要在CTR=PRD or CTR=0才去載入更新後的值。
Action Qualifier(AQ)動作限定方塊
AQCTLA:AQ控制暫器器A,在接收到TB送來的觸發信號CTR=PRT, CTR=ZERO,與CC送來的觸發信號CTR=CMPA,CTR=CMPB,由這4個信號來控制EPPWMA的輸出。
設置AQCSFRC是在active模式還是shadow模式。
AQCTLB:AQ控制暫器器B
AQSFRC:AQ software force軟體強制暫存器,由軟體強制EPWM輸出為low/high/toggle
,toggle就是反轉,改變到相反準位。
AQCSFRC:AQ continute software force連續軟體強制
向上計數的範例,從AQCTLA/B去設置TBCTR=0,EPWMxA輸出high。TBCTR=CA,
EPWMxA輸出low。TBCTR=TBPRD,EPWMxA輸出high。
POLSEL、OUT_MODE的開關。由IN_Mode
DBRED:Dead Band Rising Edge Delay死區上升邊緣暫存器
DBFED:Dead Band Falling Edge Delay死區下降邊緣暫存器
從上面的真值表來看,再對應Figure 32的波形,可以看出不同模式下EPWMxA與
AQCTLB:AQ控制暫器器B
AQSFRC:AQ software force軟體強制暫存器,由軟體強制EPWM輸出為low/high/toggle
,toggle就是反轉,改變到相反準位。
AQCSFRC:AQ continute software force連續軟體強制
向上計數的範例,從AQCTLA/B去設置TBCTR=0,EPWMxA輸出high。TBCTR=CA,
EPWMxA輸出low。TBCTR=TBPRD,EPWMxA輸出high。
Dead-Bamd Generator(DB)死區方塊
DBCTL:Dead Band control死區控制暫存器,如下圖Figure31, BTCTL控制IN_MODEPOLSEL、OUT_MODE的開關。由IN_Mode
DBRED:Dead Band Rising Edge Delay死區上升邊緣暫存器
DBFED:Dead Band Falling Edge Delay死區下降邊緣暫存器
從上面的真值表來看,再對應Figure 32的波形,可以看出不同模式下EPWMxA與
EPWMxB的變化。DBCTL(IN_MODE)為"00",也就是從EPWMxA信號源來做為
EPWMxA與EPWMxB輸出。
Mode1:DBCTL(OUT_MODE)為00,表示Dead Band不動作。
Mode6:DBCTL(OUT_MODE)為01,作為FED,只有Falling Edge Delay方塊動作。
Mode7:DBCTL(OUT_MODE)為10,作為RED,只有Rising Edge Delay方塊動作。
Mode 2~5:DBCTL(OUT_MODE)為11,表示Rise edge與Falling edge delay方塊都
動作。EPWMxA的輸出經過上升延遲,EPWMxB的輸出經過下降延
遲delay。由DBCTL(OUT_POLSEL)來設置是否EPWMxA/B信號是否反
相。
Mode2:DBCTL(OUT_POLSEL)=10,EPWMxA/B互補,EPWMxB輸出反相, 與
Mode2:DBCTL(OUT_POLSEL)=10,EPWMxA/B互補,EPWMxB輸出反相, 與
EPWMxA輸出相反。
Mode3:DBCTL(OUT_POLSEL)=01,EPWMxA/B互補,EPWMxA輸出反相, 與
Mode3:DBCTL(OUT_POLSEL)=01,EPWMxA/B互補,EPWMxA輸出反相, 與
EPWMxB輸出相反。
Mode4:DBCTL(OUT_POLSEL)=00,EPWMxA/B信號同相。
Mode5:DBCTL(OUT_POLSEL)=11,EPWMxA/B信號都進行反相,所以兩個信
Mode4:DBCTL(OUT_POLSEL)=00,EPWMxA/B信號同相。
Mode5:DBCTL(OUT_POLSEL)=11,EPWMxA/B信號都進行反相,所以兩個信
號還是同相。
1.可由程式設置斬波頻率
2.可由程式設置第一個脈衝寬度
3.可由程式設置第2個脈衝以及後面脈衝的占空比(Duty cycle)
4.也可以旁路掉(Bypass)斬波功能
由於大多數功率器件如MOSFET,開通通電要比維持電流大得多,所以第一
PWM-Chopper(PC)PWM斬波方塊
PWM斬波的功能如下1.可由程式設置斬波頻率
2.可由程式設置第一個脈衝寬度
3.可由程式設置第2個脈衝以及後面脈衝的占空比(Duty cycle)
4.也可以旁路掉(Bypass)斬波功能
由於大多數功率器件如MOSFET,開通通電要比維持電流大得多,所以第一
個脈衝需要比較大的脈寬來導通MOSFET,後來的脈衝就可以用比較小的脈
寬來維持MOSFET的導通。
PCCTL:PWM Chopper control斬波控制暫存器
PCCTL[OSHTWTH]:設置第一個脈衝的脈寬。可設定1~16倍SYSCLKOUT/8
PCCTL:PWM Chopper control斬波控制暫存器
PCCTL[OSHTWTH]:設置第一個脈衝的脈寬。可設定1~16倍SYSCLKOUT/8
的時間寬度。
PCCTL[CHPDUTY]:設置脈衝的占空比,從12.5%~87.5%
PCCTL[CHPFREQ]:除頻設置,從不除頻到8除頻。假設SYSCLKOUT為
PCCTL[CHPDUTY]:設置脈衝的占空比,從12.5%~87.5%
PCCTL[CHPFREQ]:除頻設置,從不除頻到8除頻。假設SYSCLKOUT為
100MHz,在經過"/8"後,變成12.5MHz,再經過CHFREQ
設置的除頻,"8除頻",PSCLK就為1.56MHz。
在第一次脈衝會由one-shot輸出,經由OSHT控制EPWM輸出,第一次脈衝後,
就由PSCLK來控制EPWM輸出。
1.有輸入腳TZ1~TZ6對應到6組ePWM模組
2.在錯誤事件發生後,可以強制EPWMxA/B為高、低、高阻抗、無動作共4種
Trip-Zone錯誤聯防方塊
Trip-Zone的功能如下1.有輸入腳TZ1~TZ6對應到6組ePWM模組
2.在錯誤事件發生後,可以強制EPWMxA/B為高、低、高阻抗、無動作共4種
動作。
3.在短路或過電流事件發生時,支援一次性錯誤聯防觸發(OSHT)。
4.在限流操作時,支援周期性錯誤聯防觸發(CBC)。
5.每個TZ腳位,都可以設置成OSHT或CBC,也都可以設置為中斷來源。
6.支援軟體強制錯誤聯防。也可以將錯誤聯防關閉。
TZSEL:TZ選置暫存器,個別設置TZ1~TZ6開啟或關閉錯誤聯防功能,並且為
3.在短路或過電流事件發生時,支援一次性錯誤聯防觸發(OSHT)。
4.在限流操作時,支援周期性錯誤聯防觸發(CBC)。
5.每個TZ腳位,都可以設置成OSHT或CBC,也都可以設置為中斷來源。
6.支援軟體強制錯誤聯防。也可以將錯誤聯防關閉。
TZSEL:TZ選置暫存器,個別設置TZ1~TZ6開啟或關閉錯誤聯防功能,並且為
一次性或周期性錯誤聯防,
TZCTL:TZ控制暫存器,設置錯誤聯防事件發生後,ePWMxA與ePWMxB各進
TZCTL:TZ控制暫存器,設置錯誤聯防事件發生後,ePWMxA與ePWMxB各進
行這四個動作邏輯"高、低、高阻抗、無動作"的那一個。
TZINT:TZ中斷致能暫存器,設置一次性(OSHT)與周期性(CBC)事件發生後,
TZINT:TZ中斷致能暫存器,設置一次性(OSHT)與周期性(CBC)事件發生後,
是否觸發EPWMx_TZINT中斷。
TZFLG:TZ中斷旗標暫存器,裡面的TZFLG.OST,TZFLG.CBC表示一次
TZFLG:TZ中斷旗標暫存器,裡面的TZFLG.OST,TZFLG.CBC表示一次
性(OSHT)與周期性(CBC)事件 是否 發生。當OST或CBC其中一個事件
發生,並且PIE中斷也被致能,就會設置TZFLG.INT,表示
EPWMx_TZINT中斷。
TZCLR:當TZFLG裡的OSHT或CBC被設為"1"表示發生事件,就設置TZCLR裡
的OST與CBC為"1",來將TZFLG的旗標清除。當TZFLG.INT為"1",就
要設置TZCLR.INT來將TZFLG.INT清除為"0"。
TZFRC:錯誤聯防中斷強制暫存器,可以設置TZFRC.OST 或 TZFRC.CBC來強
制TZFLG.OST與TZFLG.CBC為"1"。
一次性錯誤聯防發生後,需要軟體去將這個事件旗標(flag)清除,而周期性錯誤
一次性錯誤聯防發生後,需要軟體去將這個事件旗標(flag)清除,而周期性錯誤