首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用DSP56F805 PWM模块输出高频正弦波(2)

用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的其它应用方面有一定参考价值。
继承事业,薪火相传
返回列表