DSP C2000系列DB模塊配置ePWM死區(qū)(TMS320F280039)
由于TMS320F280039主頻為120MHz,EPWM時(shí)鐘與SYSCLK相同,故計(jì)數(shù)器的一個(gè)時(shí)鐘周期為1 / 120M = 8.3ns、例如設(shè)計(jì)死區(qū)時(shí)間為220ns,對(duì)應(yīng)的DB計(jì)數(shù)器的值為26 (EPWM_DEAD_BAND * fEpwm) / S2NS,其中S2NS意思為秒到毫秒的進(jìn)制轉(zhuǎn)換,S2NS = 1000000000(10的9次方),這樣就可以讓EPWMA在上升沿延遲26個(gè)Counter上拉,在下降沿提前26個(gè)Counter下拉
故可設(shè)置計(jì)算參數(shù)宏定義如下:
#define PWMC_CAL_DEADBAND_COUNT(DEADBAND_VALUE)? ? (((DEADBAND_VALUE) * PWMC_EPWM_CLOCK / PWMC_EPWM_DIV) / S2NS
死區(qū)配置程序如下:
// 高有效死區(qū)設(shè)置,即在死區(qū)時(shí)間內(nèi),A和B都輸出低電平
? ? // Active high complementary PWMs - Set up the deadband
? ?pwm_db_ticks_hs =?PWMC_CAL_DEADBAND_COUNT(220u); EPWM_setDeadBandCounterClock(base1,EPWM_DB_COUNTER_CLOCK_FULL_CYCLE);
? ? EPWM_setRisingEdgeDelayCount(base1,pwm_db_ticks_hs);
? ? EPWM_setFallingEdgeDelayCount(base1,pwm_db_ticks_hs);
? ? EPWM_setDeadBandDelayMode(base1,EPWM_DB_RED,true);
? ? EPWM_setDeadBandDelayMode(base1,EPWM_DB_FED,true);
? ? EPWM_setRisingEdgeDeadBandDelayInput(base1,EPWM_DB_INPUT_EPWMA);
? ? EPWM_setFallingEdgeDeadBandDelayInput(base1,EPWM_DB_INPUT_EPWMA);
? ? EPWM_setDeadBandDelayPolarity(base1,EPWM_DB_FED,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? EPWM_DB_POLARITY_ACTIVE_LOW);
? ? EPWM_setDeadBandDelayPolarity(base1,EPWM_DB_RED,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? EPWM_DB_POLARITY_ACTIVE_HIGH);
下圖所示開關(guān)位置為默認(rèn)位置,即如果不使用代碼配置,則信號(hào)將按照?qǐng)D中的方式進(jìn)行傳遞,對(duì)應(yīng)庫(kù)函數(shù)功能已在圖中標(biāo)出

將出現(xiàn)的經(jīng)典死區(qū)波形如下:
