本文來源電子發燒友社區,作者: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文章
82瀏覽量
5461 -
開發板試用
+關注
關注
3文章
301瀏覽量
2329
發布評論請先 登錄
相關推薦
熱點推薦
搭載OpenHarmony操作系統,視美泰SC-3568HA開發板免費試用
: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開發板免費

基于RK處理器,創龍TL3562-MiniEVM開發板試用體驗
數量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開發板免費

性能強悍!合眾HZ-RK3568開發板試用體驗
月19日 ? 評測數量: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開發板免費

有獎丨米爾 NXP i.MX91開發板免費試用來啦
米爾與NXP合作發布的新品基于NXPi.MX91應用處理器的MYD-LMX91開發板免費試用名額來啦~~米爾提供了3套價值588元的MYD-LMX91開發板發起試用活動您不僅可以免費體

2025電子發燒友開發板評測大賽開啟!三大賽道火力全開,頂級開發板等你來戰!
開發板免費試用https://bbs.elecfans.com/try_CF5010RBT60.html
【RISC-V專題】中科昊芯Cor
發表于 05-15 15:09
中科昊芯DSP產品及公司信息
庫和驅動庫,幫助用戶降低遷移成本,縮短開發周期。同時,公司還推出了多種開發板和核心板,如Core_DSC28027和Start_DSC280
發表于 04-07 09:16
免費丨米爾 STM32MP257開發板有獎試用
米爾與ST合作發布的新品基于STM32MP257應用處理器的MYD-LD25X開發板免費試用活動來啦~~米爾提供了2塊價值488元的MYD-LD25X開發板發起試用活動您不僅可以免費

有獎丨米爾 瑞芯微YR3562開發板免費試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3562應用處理器的MYD-YR3562開發板免費試用活動來啦~~米爾提供了3塊價值599元的MYD-YR3562

追加名額丨米爾瑞芯微RK3576開發板有獎試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576

PWM調制技術在LED亮度調節中的使用
調制技術因其在調節精度、響應速度和能耗方面的優勢,成為了LED亮度調節的首選技術之一。 PWM調制技術原理 PWM調制技術是一種通過改變脈沖
有獎丨米爾 瑞芯微RK3576開發板免費試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576

評論