日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

玩转TM4C1294XL(5)——PWM配置(死区互补输出)

發(fā)布時(shí)間:2023/12/20 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 玩转TM4C1294XL(5)——PWM配置(死区互补输出) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.簡(jiǎn)介
???????簡(jiǎn)單介紹芯片內(nèi)部的PWM模塊,分享PWM的配置。本人是邊學(xué)習(xí)邊記錄,內(nèi)容僅作參考,有錯(cuò)誤的地方請(qǐng)見諒。

2.PWM介紹
???????本部分內(nèi)容參考自TI官方手冊(cè)。
???????芯片內(nèi)部有一個(gè)獨(dú)立的PWM產(chǎn)生模塊,相比于使用Timer的PWM模式,這個(gè)獨(dú)立的PWM模塊功能更強(qiáng),帶有死區(qū)控制,最多可以輸出4組帶死區(qū)的互補(bǔ)PWM,這樣的功能還是很不錯(cuò)的,用來(lái)驅(qū)動(dòng)H橋電路或者三相逆變橋還是很實(shí)用的。
???????除了基本特性外,PWM還有一些其他特性,比如支持外部故障輸入,觸發(fā)ADC等。外部故障輸入我的理解就是檢測(cè)到外部故障信號(hào)生效時(shí)快速關(guān)斷PWM,比如PWM驅(qū)動(dòng)H橋,H橋輸出短路時(shí),電路檢測(cè)到故障生成一個(gè)故障信號(hào)反饋到芯片內(nèi)部,PWM檢測(cè)到這個(gè)故障信號(hào)可以快速關(guān)斷PWM信號(hào)防止H橋上的管子損壞。PWM模塊也支持中斷,支持的中斷也有挺多種,上面說(shuō)的檢測(cè)到故障可以進(jìn)中斷,同時(shí)4個(gè)PWM模塊又有自己獨(dú)立的中斷控制器,中斷控制十分靈活。總之這個(gè)獨(dú)立的PWM模塊功能非常多,更詳細(xì)的內(nèi)容可以查看手冊(cè)。

圖1 PWM模塊功能框圖

3.PWM配置
???????PWM配置實(shí)現(xiàn)M0PWM0輸出1k頻率25%占空比的信號(hào)。M0PWM2和M0PWM3輸出一組互補(bǔ)的信號(hào),20k頻率50%占空比,上升沿和下降沿死區(qū)時(shí)間均為500ns。

void bsp_InitPwm(void) {uint32_t ui32PWMClockRate;/********* M0PWM0輸出1k 25%占空比的pwm ************/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); //PWM時(shí)鐘源4分頻 120M/4=30Mui32PWMClockRate = 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)); //1k頻率PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0,PWMGenPeriodGet(PWM0_BASE, PWM_GEN_0) / 4); //脈寬1/4周期PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT, true);PWMGenEnable(PWM0_BASE, PWM_GEN_0);/******* 一組20k帶 500ns死區(qū)的pwm **********/SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);GPIOPinConfigure(GPIO_PF2_M0PWM2); //配置IO功能為PWM輸出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)); //20k頻率PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2,PWMGenPeriodGet(PWM0_BASE, PWM_GEN_1) / 2); //50% Duty PWMDeadBandEnable(PWM0_BASE, PWM_GEN_1, 15, 15); //上升沿和下降沿都是500ns的死區(qū)PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT | PWM_OUT_3_BIT, true);PWMGenEnable(PWM0_BASE, PWM_GEN_1); }

???????配置步驟,開啟外設(shè)時(shí)鐘->配置PWM輸出引腳->配置PWM時(shí)鐘->配置PWM頻率->配置脈寬->設(shè)置輸出狀態(tài)true->開啟對(duì)應(yīng)模塊的輸出。對(duì)于帶死區(qū)時(shí)間的互補(bǔ)輸出,需要在輸出前配置死區(qū)時(shí)間,上升沿和下降沿的死區(qū)時(shí)間都是獨(dú)立可設(shè)置的。互補(bǔ)輸出的PWM需要是同一個(gè)PWM模塊下的一組信號(hào),01、23、45、67這樣四組信號(hào)可以配置成互補(bǔ)輸出。

圖2 1kHz 25%占空比PWM

圖3 20kHz 500ns死區(qū)互補(bǔ)輸出PWM

PWM配置keil工程下載

總結(jié)

以上是生活随笔為你收集整理的玩转TM4C1294XL(5)——PWM配置(死区互补输出)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。