生活随笔
收集整理的這篇文章主要介紹了
玩转TM4C1294XL(5)——PWM配置(死区互补输出)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.簡介
???????簡單介紹芯片內部的PWM模塊,分享PWM的配置。本人是邊學習邊記錄,內容僅作參考,有錯誤的地方請見諒。
2.PWM介紹
???????本部分內容參考自TI官方手冊。
???????芯片內部有一個獨立的PWM產生模塊,相比于使用Timer的PWM模式,這個獨立的PWM模塊功能更強,帶有死區控制,最多可以輸出4組帶死區的互補PWM,這樣的功能還是很不錯的,用來驅動H橋電路或者三相逆變橋還是很實用的。
???????除了基本特性外,PWM還有一些其他特性,比如支持外部故障輸入,觸發ADC等。外部故障輸入我的理解就是檢測到外部故障信號生效時快速關斷PWM,比如PWM驅動H橋,H橋輸出短路時,電路檢測到故障生成一個故障信號反饋到芯片內部,PWM檢測到這個故障信號可以快速關斷PWM信號防止H橋上的管子損壞。PWM模塊也支持中斷,支持的中斷也有挺多種,上面說的檢測到故障可以進中斷,同時4個PWM模塊又有自己獨立的中斷控制器,中斷控制十分靈活。總之這個獨立的PWM模塊功能非常多,更詳細的內容可以查看手冊。
圖1 PWM模塊功能框圖
3.PWM配置
???????PWM配置實現M0PWM0輸出1k頻率25%占空比的信號。M0PWM2和M0PWM3輸出一組互補的信號,20k頻率50%占空比,上升沿和下降沿死區時間均為500ns。
void bsp_InitPwm(void)
{uint32_t ui32PWMClockRate
;SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0
);SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF
);GPIOPinConfigure(GPIO_PF0_M0PWM0
);GPIOPinTypePWM(GPIO_PORTF_BASE
, GPIO_PIN_0
);PWMClockSet(PWM0_BASE
, PWM_SYSCLK_DIV_4
); ui32PWMClockRate
= SystemCoreClock
/ 4;PWMGenConfigure(PWM0_BASE
, PWM_GEN_0
,PWM_GEN_MODE_UP_DOWN
| PWM_GEN_MODE_NO_SYNC
);PWMGenPeriodSet(PWM0_BASE
, PWM_GEN_0
, (ui32PWMClockRate
/ 1000)); PWMPulseWidthSet(PWM0_BASE
, PWM_OUT_0
,PWMGenPeriodGet(PWM0_BASE
, PWM_GEN_0
) / 4); PWMOutputState(PWM0_BASE
, PWM_OUT_0_BIT
, true
);PWMGenEnable(PWM0_BASE
, PWM_GEN_0
);SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0
);SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF
);GPIOPinConfigure(GPIO_PF2_M0PWM2
); GPIOPinConfigure(GPIO_PF3_M0PWM3
);GPIOPinTypePWM(GPIO_PORTF_BASE
, GPIO_PIN_2
);GPIOPinTypePWM(GPIO_PORTF_BASE
, GPIO_PIN_3
);PWMGenConfigure(PWM0_BASE
, PWM_GEN_1
,PWM_GEN_MODE_UP_DOWN
| PWM_GEN_MODE_NO_SYNC
);PWMGenPeriodSet(PWM0_BASE
, PWM_GEN_1
, (ui32PWMClockRate
/ 20000)); PWMPulseWidthSet(PWM0_BASE
, PWM_OUT_2
,PWMGenPeriodGet(PWM0_BASE
, PWM_GEN_1
) / 2); PWMDeadBandEnable(PWM0_BASE
, PWM_GEN_1
, 15, 15); PWMOutputState(PWM0_BASE
, PWM_OUT_2_BIT
| PWM_OUT_3_BIT
, true
);PWMGenEnable(PWM0_BASE
, PWM_GEN_1
);
}
???????配置步驟,開啟外設時鐘->配置PWM輸出引腳->配置PWM時鐘->配置PWM頻率->配置脈寬->設置輸出狀態true->開啟對應模塊的輸出。對于帶死區時間的互補輸出,需要在輸出前配置死區時間,上升沿和下降沿的死區時間都是獨立可設置的。互補輸出的PWM需要是同一個PWM模塊下的一組信號,01、23、45、67這樣四組信號可以配置成互補輸出。
圖2 1kHz 25%占空比PWM
圖3 20kHz 500ns死區互補輸出PWM
PWM配置keil工程下載
總結
以上是生活随笔為你收集整理的玩转TM4C1294XL(5)——PWM配置(死区互补输出)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。