本文來源電子發(fā)燒友社區(qū),作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2286741_1_1.html
這塊板子最大的特點是mcu帶dsp。dsp最大的特點是有非常豐富的計算指令,而且計算指令占用系統(tǒng)時鐘周期特別短。今天來玩pwm。
這塊板子最大的特點是mcu帶dsp。dsp最大的特點是有非常豐富的計算指令,而且計算指令占用系統(tǒng)時鐘周期特別短。今天來玩pwm。
1.pwm是啥
PWM是一種對模擬信號電平進行數字編碼的方法。通過高分辨率計數器的使用,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。PWM信號仍然是數字的,因為在給定的任何時刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM進行編碼。
2.pwm可以用來干啥
pwm輸出可以接到led燈上,通過調節(jié)占空比可以達到調整led的亮度。pwm輸出還可以接到蜂鳴器上,通過占空比調節(jié)聲音頻率,可以讓蜂鳴器唱歌。這些都是大材小用。其實pwm最大的作用是做精密電源,或者做電機驅動。
3.上代碼
我看了下板子上有的LED資源是接了OPWM4B和OPWM4A,正好可以用來驗證。
復制代碼
復制代碼
4.效果圖
2.pwm可以用來干啥
pwm輸出可以接到led燈上,通過調節(jié)占空比可以達到調整led的亮度。pwm輸出還可以接到蜂鳴器上,通過占空比調節(jié)聲音頻率,可以讓蜂鳴器唱歌。這些都是大材小用。其實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為系統(tǒng)時鐘,不進行分頻*/
- 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: 死區(qū)采用 2 倍 TBCLK 時鐘;
- HALFEN 位=1: 死區(qū)采用 TBCLK 時鐘;
- */
- EPwm4Regs.DBCTL.bit.HALFEN = 1;
- // EPwm4Regs.DBCTL.bit.HALFCYCLE = 1;
- /*死區(qū)輸出模式配置,配置輸出雙邊沿延時*/
- EPwm4Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
- /*死區(qū)極性配置,配置EPWMxA輸出置高,EPWMxB輸出置低*/
- EPwm4Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
- /*死區(qū)輸入模式配置,配置輸入的上升沿與下降沿延時來源為EPWMxA*/
- EPwm4Regs.DBCTL.bit.IN_MODE = DBA_ALL;
- /*死區(qū)時間配置,配置輸出上升沿延時5us*/
- EPwm4Regs.DBRED = 600;
- /*死區(qū)時間配置,配置輸出下降沿延時5us*/
- EPwm4Regs.DBFED = 600;
- }
- int main(void)
- {
- /*系統(tǒng)時鐘初始化*/
- InitSysCtrl();
- /*EPWM外設引腳初始化配置*/
- InitEPwm4Gpio();
- InitPieCtrl();
- /*清中斷,關中斷*/
- IER = 0x0000;
- IFR = 0x0000;
- /*中斷向量表初始化配置*/
- InitPieVectTable();
- EALLOW;
- /*配置EPWM1_INT中斷向量表指向執(zhí)行相應的中斷服務程序*/
- 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里設置刷新時間和觀察的變量后,非常方便調試。再加上對變量值的以采樣時間為橫軸畫圖,真的就能達到示波器的效果,思路非常不錯。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
中科昊芯
+關注
關注
5文章
83瀏覽量
5547 -
開發(fā)板試用
+關注
關注
3文章
302瀏覽量
2410
發(fā)布評論請先 登錄
相關推薦
熱點推薦
【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+SCI測試與代碼解讀
Core_DSC280025C核心板使用了昊芯HXS320F28025CRISC-V DSP芯片,該芯片集成了吳芯自主研發(fā)的H28x內核。核
發(fā)表于 07-17 10:42
【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+epwm輸出測試與代碼解讀
Core_DSC280025C核心板使用了昊芯HXS320F28025CRISC-V DSP芯片,該芯片集成了吳芯自主研發(fā)的H28x內核。核
發(fā)表于 07-14 19:15
【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+3.DSP基礎外設調試(含源碼)
前言
大家好,非常感謝電子發(fā)燒友與中科昊芯提供的DSC280025C開發(fā)板,這是一款DSP的開發(fā)板
發(fā)表于 07-13 16:07
【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+2.RAM工程與FLASH工程對比
前言
大家好,非常感謝電子發(fā)燒友與中科昊芯提供的DSC280025C開發(fā)板,這是一款DSP的開發(fā)板
發(fā)表于 07-04 10:37
【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+1.開箱之浮點計算對比
【中科昊芯Core_DSC280025C開發(fā)板試用體驗】+1.開箱之浮點計算對比
前言
大家好,
發(fā)表于 06-29 10:01
有獎丨米爾 瑞芯微RK3506開發(fā)板免費試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3506應用處理器的MYD-YR3506開發(fā)板免費試用名額來啦~~米爾提供了3塊價值299元的MYD-YR3506

中科昊芯Core_DSC280025C開發(fā)板免費試用
Core_DSC280025C核心板使用了昊芯HXS320F28025C RISC-V ? DSP芯片,該芯片集成了吳芯自主研發(fā)的H28x內

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

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

有獎丨米爾 瑞芯微RK3576開發(fā)板免費試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發(fā)板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576

評論