具体设计主要是定时器的使用问题,百度文库有许多关于PWM产生的文章。
在文库下搜索“DSP PWM”即可。
推荐一篇:
>
1:PWM就是PULSE WIDTH Modulation 脉宽调制 - 矩形脉冲波形,你可理解为占空比可调的方波。
2DSP直接可以输出PWM波,所以不需要额外的硬件连接。但是DSP输出的驱动能力有限,驱动电机必须额外加放大驱动电路。
3以DSP的EVA单元为例子,EVA的2个通用定时器可以产生2路独立的PWM波,3个比较单元能够产生6对带死区的PWM波。(1)T1CNT为连续计数模式产生不对称的PWM波,此时PWM的周期为(t1pr+1)/tclk,t1pr为周期寄存器值,TCLK为当前定时器每计数一次所需时间。(2)T1CNT为连续增减计数产生对称的PWM波。周期为2T1PR/tclk程序如下:void InitEV(void) {
EvaRegsT1PR=5000;EvaRegsT1CMPR=2500//没用这种方式产生;EvaRegsT1CNT=0//定时器1初值设0;EvaRegsT1CONALL=0x144E//连续增模式,使能定时器1和设置T1P的周期;EvaRegsCMPR1=500;//使用比较单元输出PWM;EvaRegsACTRall=0x0006//设置输出管教地有效还是高有效;EvaRegsDBTCONall=0x0530//使能死区定时器,死区时间为5倍定时器时间;EvaRegsCOMCONAall=0xa600//比较器控制A *** 作时能
}
不知道你用的是什么样的DSP 拿TI的28335来说吧 有专用的ePWM发生模块发出PWM波,可以通过相应的寄存器设置 TB CMPA 等参数以实现对PWM周期(即频率)的设定,也包括死区的设置,DSP发出PWM不是像书本上一个正弦波和一个三角波比较实现的,它是通过比较设定好的寄存器数值和定时等数字方式来实现的
main函数完成的功能是device configuration and initialization,then wait for interrupt。
pwm是一个结构体或是一个类,它的作用是产生PWM(脉宽调制)波形输出(个人猜测),init为pwm结构体/类中的一个成员函数,它的作用是对pwm进行初始化。pwminit(&pwm) 的作用就是调用pwm的成员函数init,并对pwm结构体/类初始化。
你的问题看似简单!
实际还真有讲究,因为多数人没有真正看过!
对于PWM波输出,用示波器观察,对示波器是有要求的,即要求在时间轴单位较大时,仍能保证较高的采样频率。
原因是我们看PWM波时,是希望看到一个以上完整的基波周期,比如说,PWM的基波周期为50Hz,那么,示波器整个横坐标的时长应该在20mS以上。大多示波器在这个时候,会降低采样频率,实际采样频率可能只有几kHz。
但是,PWM波的开关频率(假设2kHz)远远高于基波频率,并且开关脉冲含有丰富的谐波,也就是说,实际信号的带宽很宽(至少要保证20kHz以上,才会失真较小),根据采样定理,必须有足够高的采样频率,采样频率必须大于40kHz。
而此时,示波器的采样频率只有几kHz,显然不能正确观测。
这就是前面说的“要求在时间轴单位较大时,仍能保证较高的采样频率。”,当然,如果有诸如AnyWay变频功率分析仪等具备定采样频率的示波设备就更好了。
以上就是关于你好 我看过你的一个关于DSP显示PWM波形的回答。我想问一下怎样用DSP显示波形并用示波器输出。全部的内容,包括:你好 我看过你的一个关于DSP显示PWM波形的回答。我想问一下怎样用DSP显示波形并用示波器输出。、DSP怎么用SPWM产生正弦波、1,说明PWM波的基本构成 2,画出基于DSP的PWm波形发生器的硬件连接图,说明工作原理 3,软件编程要C语言的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)