用DSP56F805 PWM模块输出高频正弦波(2)
- UID
- 1029342
- 性别
- 男
|
用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的其它应用方面有一定参考价值。 |
|
|
|
|
|