Board logo

标题: 用DSP56F805 PWM模块输出高频正弦波(2) [打印本页]

作者: yuyang911220    时间: 2016-11-21 11:49     标题: 用DSP56F805 PWM模块输出高频正弦波(2)

3 硬件电路

采用通用输出口PB0作为脉冲输出口,然后配以简单的阻容电路进行滤波,便可实现所需的各种频率的高频正弦波。正弦波输出电路如图2所示。



4 软件设计
根据计算出的脉冲开关时间点,通过软件延时的方法来控制每个脉冲的开关时间,以完成脉冲输出的程序。但是,如果想得到相应的频率,必须对xy作相应的变换。
以一个周期16个脉冲为例,计算出一个基准周期内各个脉冲的起停位置xy[1]~xy[31],如果需要其它频率值,可通过相应的数值变换得到。
例如,要获得6OOHz的正弦波,作如下变换:
for(i=0;i<33;i++)
SinDataF2=(UWord32)xy*237/(10*Fs)
其中Fs-600。
因此,输出一个周期正弦波算法的流程图如图3所示。


具体实现程序如下:
void SpwmGenerate(UWordl6 FI,UWordl6 F2){
intl;
UWordl6j;
UWordl6*pSinDataFlF2;
asm(bfclr#$8101,x:(PWMA_BASE+$3))
while(SpwmRun){
pSinDataFlF2=pSinDataFlF2reg;
for(i=0;i<32;i++,pSinDataFlF2++){
for(j=1;J<*pSinDataFlF2;j++);
asm(bfchg#$8101,xPWMA-BASE+$3));
}
}
}
5 结论
经过调试发现,输出正弦波有很好的特性,可以谓制出不同频率的正弦信号,在DSP的其它应用方面有一定参考价值。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0