本文來源電子發燒友社區,作者: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,正好可以用來驗證。
![pYYBAGKoo-yAHDJlAABAf5VzsvQ479.png](https://file.elecfans.com/web2/M00/4B/7A/pYYBAGKoo-yAHDJlAABAf5VzsvQ479.png)
- 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.效果圖
![poYBAGKoo-2AOW1YAAMffzHoz1M100.jpg](https://file.elecfans.com/web2/M00/4A/DE/poYBAGKoo-2AOW1YAAMffzHoz1M100.jpg)
5.IDE的神奇功效
IDE里有一個live view面板,我覺得live View可以代替示波器,在live View里設置刷新時間和觀察的變量后,非常方便調試。再加上對變量值的以采樣時間為橫軸畫圖,真的就能達到示波器的效果,思路非常不錯。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
中科昊芯
+關注
關注
5文章
73瀏覽量
5069 -
開發板試用
+關注
關注
3文章
299瀏覽量
1957
發布評論請先 登錄
相關推薦
【Start_DSC28034PNT湖人開發板免費體驗】Start_DSC28034PNT湖人開發板RS232 通信
Start_DSC28034PNT湖人開發板| 官網鏈接
[start28034湖人開發板_北京中科昊
發表于 09-12 12:34
【Start_DSC28034PNT湖人開發板免費體驗】Start_DSC28034PNT湖人開發板上電測試
Start_DSC28034PNT湖人開發板| 官網鏈接
[start28034湖人開發板_北京中科昊
發表于 09-12 12:09
【Start_DSC28034PNT湖人開發板免費體驗】Start_DSC28034PNT湖人開發板開箱視頻
| 官網鏈接
[start28034湖人開發板_北京中科昊芯科技有限公司]
官網圖片發布是這樣:
實物收到后有些出入:今天為大家介紹以下
發表于 08-23 00:17
【Start_DSC28034PNT湖人開發板免費體驗】Start_DSC28034PNT湖人開發板初體驗
官網鏈接
start28034湖人開發板_北京中科昊芯科技有限公司
官網圖片發布是這樣:
實物收到后有些出入:!
微信圖片_2023082
發表于 08-23 00:14
【Start_DSC28034PNT湖人開發板免費體驗】開發板使用2
接上文 【Start_DSC28034PNT湖人開發板免費體驗】開發板使用1
| # 導入工程選擇從下載的demo:H:\\\\武漢芯源CW32飯盒派\\\\
發表于 08-19 10:11
【Start_DSC28034PNT湖人開發板免費體驗】中科昊芯Start_DSC28034PNT PWM測試
中科昊芯Start_DSC28034PNT PWM測試
本次測試主要對PWM進行測試,嘗試使用D
發表于 08-05 19:40
【Start_DSC28034PNT湖人開發板免費體驗】開發板使用1
提取碼:yjyx
| # 導入工程選擇從下載的demo:H:\\\\武漢芯源CW32飯盒派\\\\中科昊芯Start_DSC28034PN
發表于 08-04 18:10
【Start_DSC28034PNT湖人開發板免費體驗】+開箱+軟件
感謝 發燒友學院以及中科昊芯提供產品Start_DSC28034PNT湖人開發板
打開快遞封裝的外包裹袋,里面有2個盒子。打開后是
發表于 08-04 14:31
【Start_DSC28034PNT湖人開發板免費體驗】DSC28034PNT-基于定時器和PWM輸出三色燈
DSC28034PNT-基于定時器和PWM輸出三色燈
概述
DSC28034PNT-基于定時器和PWM輸出三色燈項目旨在利用DSC28034
發表于 07-31 21:42
【Start_DSC28034PNT湖人開發板免費體驗】開發環境搭建
資源下載
總的資源,我放在自己的阿里云盤了,就是下面的三個地方的合集
中科昊芯Start_DSC28034PNT開發板
https://ww
發表于 07-30 16:27
【Start_DSC28034PNT湖人開發板免費體驗】(開源)控制機械臂小游戲3
【Start_DSC28034PNT湖人開發板免費體驗】定時器控制數字舵機
【Start_DSC28034PNT湖人開發板免費體驗】1初識中科
發表于 07-30 14:48
【Start_DSC28034PNT湖人開發板免費體驗】1初識中科昊芯
感謝 中科昊芯
感謝 電子發燒友社區
板子非常漂亮!
做工精良。
配套設施完善。
細節到位。
自研軟件。
界面優良。
發表于 07-18 00:52
【Start_DSC28034PNT湖人開發板免費體驗】中科昊芯Start_DSC28034PNT開箱測試
中科昊芯Start_DSC28034PNT開箱測試一、Haawking-IDE安裝與環境搭建1、 在中科
發表于 07-09 23:12
【Start_DSC28034PNT湖人開發板免費體驗】+兩種版本開發板的比較
從收集的資料及手頭的開發板來看Start_DSC28034PNT湖人開發板應有兩種版本,且存在的差異還比較大,為此對其加以相應的比較。
![【<b class='flag-5'>Start_DSC</b>28034PNT湖人<b class='flag-5'>開發板</b>免費體驗】+兩種版本<b class='flag-5'>開發板</b>的比較](https://file1.elecfans.com//web2/M00/8C/2A/wKgZomSmyGSADtMvAAEECNSEiFA122.jpg)
評論