第一次使用C28X信号生成库,我本想做一个三相的SPWM生成。所以会用到正弦信号。在前期我自己计算得到了三个数组分别代表三相A/B/C。打出的PWM不错。经过示波器的滤波后可以得到50Hz的三相正弦信号(三相的相移互差120度误差在1度左右)。可是我在用SGENT_3模块时,也能产生SPWM。但是A/B/C三相的相移不在是严格的120度了。相移是一直变化的,大概在60度到150度左右变化。反正效果不是很好。我是个刚接触DSP的新手。能告诉我,我的问题大概出在那里么?因为我用的是双核的DSP(F28M35H)。所以文档上的示例,我也没有严格的遵循。
1,我就仅仅在CMD文件里添加了如下代码。
dclfuncs : >> RAML0 | RAML1, PAGE = 0
SINTBL : >> RAML0 | RAML1, PAGE = 0,
2,把C28x_SGEN_Lib_fpu32.lib拷贝到工程目录下。
3,工程的属性设置如下:
然后剩下的就是调用已经定义好的结构体了。
定义:
配置如下:
然后在一个大概在6KHz的中断里调用
实验的结果没有自己做的三相正弦信号表的效果好,请问一下。我错在哪一步了。
mangui zhang:
频率确定都是一样的吗 如果一样
那只有可能是正弦波出的问题
第一次使用C28X信号生成库,我本想做一个三相的SPWM生成。所以会用到正弦信号。在前期我自己计算得到了三个数组分别代表三相A/B/C。打出的PWM不错。经过示波器的滤波后可以得到50Hz的三相正弦信号(三相的相移互差120度误差在1度左右)。可是我在用SGENT_3模块时,也能产生SPWM。但是A/B/C三相的相移不在是严格的120度了。相移是一直变化的,大概在60度到150度左右变化。反正效果不是很好。我是个刚接触DSP的新手。能告诉我,我的问题大概出在那里么?因为我用的是双核的DSP(F28M35H)。所以文档上的示例,我也没有严格的遵循。
1,我就仅仅在CMD文件里添加了如下代码。
dclfuncs : >> RAML0 | RAML1, PAGE = 0
SINTBL : >> RAML0 | RAML1, PAGE = 0,
2,把C28x_SGEN_Lib_fpu32.lib拷贝到工程目录下。
3,工程的属性设置如下:
然后剩下的就是调用已经定义好的结构体了。
定义:
配置如下:
然后在一个大概在6KHz的中断里调用
实验的结果没有自己做的三相正弦信号表的效果好,请问一下。我错在哪一步了。
xinghai wang:
回复 mangui zhang:
三相的频率是一样的,但是三相之间的相位是一直在变化的。您说的正选波出问题是指什么问题?我不太明白……