本文來源電子發燒友社區,作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2286741_1_1.html
這塊板子最大的特點是mcu帶dsp。dsp最大的特點是有非常豐富的計算指令,而且計算指令占用系統時鐘周期特別短。今天來玩pwm。
這塊板子最大的特點是mcu帶dsp。dsp最大的特點是有非常豐富的計算指令,而且計算指令占用系統時鐘周期特別短。今天來玩pwm。
1.pwm是啥
PWM是一種對模擬信號電平進行數字編碼的方法。通過高分辨率計數器的使用,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。PWM信號仍然是數字的,因為在給定的任何時刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM進行編碼。
2.pwm可以用來干啥
pwm輸出可以接到led燈上,通過調節占空比可以達到調整led的亮度。pwm輸出還可以接到蜂鳴器上,通過占空比調節聲音頻率,可以讓蜂鳴器唱歌。這些都是大材小用。其實pwm最大的作用是做精密電源,或者做電機驅動。
3.上代碼
我看了下板子上有的LED資源是接了OPWM4B和OPWM4A,正好可以用來驗證。
復制代碼
復制代碼
4.效果圖
2.pwm可以用來干啥
pwm輸出可以接到led燈上,通過調節占空比可以達到調整led的亮度。pwm輸出還可以接到蜂鳴器上,通過占空比調節聲音頻率,可以讓蜂鳴器唱歌。這些都是大材小用。其實pwm最大的作用是做精密電源,或者做電機驅動。
3.上代碼
我看了下板子上有的LED資源是接了OPWM4B和OPWM4A,正好可以用來驗證。
- void InitEPwm4Example()
- {
- /*時鐘分頻標志位。 0: 不分頻 1: 2分頻*/
- EPwm4Regs.CLKDIV.bit.CLKDIV = 1;
- /*配置EPWM輸出頻率為TBCLK/3000/2=10kHz*/
- EPwm4Regs.TBPRD = 3000000;
- /*配置EPWM輸出相位不偏移*/
- EPwm4Regs.TBPHS.half.TBPHS = 0;
- /*配置EPWM的TBCTR計數初值為0*/
- EPwm4Regs.TBCTR = 0x0000;
- /*配置EPWM的占空比輸出為50%*/
- EPwm4Regs.CMPA.half.CMPA = 1500;
- EPwm4Regs.CMPB = 0;
- /*配置EPWM的TBCTR采用向上向下計數*/
- EPwm4Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
- /*配置EPWM輸出不裝載相位偏移*/
- EPwm4Regs.TBCTL.bit.PHSEN = TB_DISABLE;
- /*配置EPWM時基頻率TBCLK為系統時鐘,不進行分頻*/
- EPwm4Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
- EPwm4Regs.TBCTL.bit.CLKDIV = TB_DIV1;
- /*比較模塊CMPA采用影子寄存器裝載模式*/
- EPwm4Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
- EPwm4Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
- /*比較模塊CMPA從CTR=0時開始裝載*/
- EPwm4Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
- EPwm4Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
- /*TBCTR向上計數時,達到CMPA事件,EPWM1A產生置高動作*/
- EPwm4Regs.AQCTLA.bit.CAU = AQ_SET;
- /*TBCTR向下計數時,達到CMPA事件,EPWM1A產生置低動作*/
- EPwm4Regs.AQCTLA.bit.CAD = AQ_CLEAR;
- /*TBCTR向下計數時,達到CMPB事件,EPWM1B產生置低動作*/
- EPwm4Regs.AQCTLB.bit.CBD = AQ_CLEAR;
- /*TBCTR向上計數時,達到CMPB事件,EPWM1B產生置高動作*/
- EPwm4Regs.AQCTLB.bit.CBU = AQ_SET;
- /*中斷事件選擇,當CTR=0時開始產生事件中斷*/
- EPwm4Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
- /*中斷事件選擇,事件中斷的使能信號*/
- EPwm4Regs.ETSEL.bit.INTEN = 1;
- /*中斷事件分頻配置,一周期產生1次中斷*/
- EPwm4Regs.ETPS.bit.INTPRD = ET_1ST;
- /*
- HALFCYCLE 位無用, 配置無效;
- HALFEN 位=0: 死區采用 2 倍 TBCLK 時鐘;
- HALFEN 位=1: 死區采用 TBCLK 時鐘;
- */
- EPwm4Regs.DBCTL.bit.HALFEN = 1;
- // EPwm4Regs.DBCTL.bit.HALFCYCLE = 1;
- /*死區輸出模式配置,配置輸出雙邊沿延時*/
- EPwm4Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
- /*死區極性配置,配置EPWMxA輸出置高,EPWMxB輸出置低*/
- EPwm4Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
- /*死區輸入模式配置,配置輸入的上升沿與下降沿延時來源為EPWMxA*/
- EPwm4Regs.DBCTL.bit.IN_MODE = DBA_ALL;
- /*死區時間配置,配置輸出上升沿延時5us*/
- EPwm4Regs.DBRED = 600;
- /*死區時間配置,配置輸出下降沿延時5us*/
- EPwm4Regs.DBFED = 600;
- }
- int main(void)
- {
- /*系統時鐘初始化*/
- InitSysCtrl();
- /*EPWM外設引腳初始化配置*/
- InitEPwm4Gpio();
- InitPieCtrl();
- /*清中斷,關中斷*/
- IER = 0x0000;
- IFR = 0x0000;
- /*中斷向量表初始化配置*/
- InitPieVectTable();
- EALLOW;
- /*配置EPWM1_INT中斷向量表指向執行相應的中斷服務程序*/
- PieVectTable.EPWM1_INT = &epmw1_isr;
- EDIS;
- EALLOW;
- /*禁止EPWM的時基使能,允許EPWM初始化配置寫入*/
- SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
- EDIS;
- /*EPWM的初始化配置*/
- InitEPwm4Example();
- EALLOW;
- /*打開EPWM的時基使能,使EPWM的初始化配置起作用*/
- SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
- EDIS;
- /*使能打開IER的第3組中斷向量*/
- IER = M_INT3;
- /*使能打開IER的第3組中斷向量的第一個向量*/
- PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
- /*使能打開全局中斷*/
- EINT;
- while(1)
- {
- }
- return 0;
- }
4.效果圖
5.IDE的神奇功效
IDE里有一個live view面板,我覺得live View可以代替示波器,在live View里設置刷新時間和觀察的變量后,非常方便調試。再加上對變量值的以采樣時間為橫軸畫圖,真的就能達到示波器的效果,思路非常不錯。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
中科昊芯
+關注
關注
5文章
80瀏覽量
5211 -
開發板試用
+關注
關注
3文章
301瀏覽量
2135
發布評論請先 登錄
相關推薦
有獎丨米爾 全志T536開發板免費試用
米爾與全志合作發布的新品基于全志T536應用處理器的MYD-LT536-GK開發板免費試用活動來啦~~米爾提供了3塊價值750元的MYD-LT536-GK開發板發起試用活動您不僅可以免
瑞芯微主板/開發板Linux系統播放音頻方法,觸覺智能RK3562開發板演示
本文介紹瑞芯微方案主板/開發板Linux系統播放音頻的方法,觸覺智能RK3562開發板演示,通用RK3566、RK3568、RK3588等
追加名額丨米爾瑞芯微RK3576開發板有獎試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576
PWM調制技術在LED亮度調節中的使用
調制技術因其在調節精度、響應速度和能耗方面的優勢,成為了LED亮度調節的首選技術之一。 PWM調制技術原理 PWM調制技術是一種通過改變脈沖
有獎丨米爾 瑞芯微RK3576開發板免費試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576
喜報!中科昊芯榮獲國家級專精特新“小巨人”企業稱號
喜訊!近日,國家工業和信息化部門正式揭曉了第六批國家專精特新“小巨人”企業名單,中科昊芯憑借卓越的技術實力和創新能力,榮獲了專精特新“小巨人”企業殊榮。這一榮譽不僅是對中科
如何在NXP源碼基礎上適配ELF 1開發板的PWM功能
本次源碼適配項目是在NXP i.MX6ULL EVK評估板所搭載的Linux內核源碼(版本為Linux-imx_4.1.15)基礎上進行的,主要目標是通過調整功能接口引腳配置,使其適應ELF 1
點擊參與米爾NXP i.MX 93開發板有獎試用
米爾與NXP合作發布的新品基于NXPi.MX93應用處理器的MYD-LMX9X開發板免費試用活動來啦~~米爾提供了3塊價值678元的MYD-LMX9X開發板發起試用活動您不僅可以免費體
fpga開發板是什么?fpga開發板有哪些?
FPGA開發板是一種基于FPGA(現場可編程門陣列)技術的開發平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現各種數字電路和邏輯功能。FPGA
pwm調光是什么意思
PWM調光(Pulse Width Modulation Dimming)是一種利用脈沖寬度調制(PWM)技術來控制發光二極管(LED)亮度
評論