本文来源电子发烧友社区,作者: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文章
79浏览量
5139 -
开发板试用
+关注
关注
3文章
301浏览量
2033
发布评论请先 登录
相关推荐
有奖丨米尔 瑞芯微RK3576开发板免费试用
米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器的MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的MYD-LR3576
喜报!中科昊芯荣获国家级专精特新“小巨人”企业称号
喜讯!近日,国家工业和信息化部门正式揭晓了第六批国家专精特新“小巨人”企业名单,中科昊芯凭借卓越的技术实力和创新能力,荣获了专精特新“小巨人”企业殊荣。这一荣誉不仅是对中科
如何在NXP源码基础上适配ELF 1开发板的PWM功能
本次源码适配项目是在NXP i.MX6ULL EVK评估板所搭载的Linux内核源码(版本为Linux-imx_4.1.15)基础上进行的,主要目标是通过调整功能接口引脚配置,使其适应ELF 1
【龙芯2K0300蜂鸟板试用】开箱体验
本帖最后由 ele2022 于 2024-8-13 19:54 编辑
首先感谢电子发烧友和龙芯中科提供的试用机会。
今天开箱体验龙芯中科的一款2K0300蜂鸟开发板。龙芯2K03
发表于 08-12 19:59
点击参与米尔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)亮度
【先楫HPM5361EVK开发板试用体验】GPIO使用,点灯
(General Purpose Input/Output)来控制输入输出功能。
GPIO使用是HPM5361EVK开发板的一个重要特性,可以通过简单的配置来实现对IO口进行控制。在
发表于 12-10 16:57
【先楫HPM5361EVK开发板试用体验】PWM输出测试-呼吸灯
Emulator;
3)Go.
可以看到在Terminal Emulator窗口输出如下内容:
在运行代码之前接好示波器,探头测开发板的PWM_WH端。运行代码时,示波器上能看到波形变化。
1)示波器波形显示
实测的示波器波形变化如顶部视频
2)
发表于 12-03 19:35
【ELF 1开发板试用】+ RGB LED及按键的控制
1开发板上,自然也不会少了它,其在开发板上的位置如图1所示,共有3个,其颜色分别为红、绿、黄3个色彩。
图1LED灯
3个LED灯的电路见图2所示,由此可知其是低电平点亮。
图2
发表于 11-21 11:11
【爱芯派 Pro 开发板试用体验】开箱测试
的各种纸盒包装结实很多。
打开后发现,其中包括一个开发板和电源。还有一个口袋里面有个螺母,不知道什么用途,我现在把它安装在电源的接头上了,好像也不是特别合适。
开发板上的各种接口似乎都是双份,包括
发表于 11-20 22:09
评论