作者shineboss (小E)
看板Electronics
标题[问题] 利用DSP2407开发版写SPWM调变讯号
时间Tue Sep 28 20:19:53 2010
各位大大我在利用DSP撰写spwm调变讯号遇到一些问题
我选用的载波频率为21.6kHz 等於每一个角度开出一个脉波
而DSP设置CPUCLK为40000000(40MHz)
所以切换频率为PERIOD 925(40000000/2/21600=925)
用过DSP2407也知道因为选择上下数所以要设置载波频率的两倍
我再来是先建立一组SINE TABLE表总共600比其中第0~360比为第一相的spwm
第120~480比为第二相的spwm
第240~600比为第三组的spwm
在利用FOR回圈去抓这些data则我for回圈写法为
for(i=0;i<364;i++)
{
CMPR1=sine_table[i]*ma+20;
CMPR2=sine_table[i+120]*ma+20;
CMPR3=sine_table[i+240]*ma+20;
}
其中20为我设置deadtime为1us所以必须把此段时间考虑进去
结果是成功的输出60Hz三相弦波。
但是我利用相同方式建立一组单相spwm table表总共540比其中
第0~360比为an的spwm
第180~540比bn的spwm
在利用FOR回圈去抓这些data则我for回圈写法为
for回圈写法为
for(i=0;i<360;i++)
{
CMPR1=sine_table[i]+20;
CMPR2=sine_table[i+180]+20;
}
结果我出来的弦波为137Hz不清楚是哪边错了,希望大大能帮我看一下
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.178.72