TI中文支持网
TI专业的中文技术问题咨询交流网站

DSP28335在RAM里面和FLASH里面运行时,效果差距很大。

你好,

我在使用DSP28335和主功率回路联调时候,出现了个问题。

在RAM里面,电路各项参数都调试好了,此时效果波形如下图

但是,同样的程序,烧录到FLASH里面,波形就变了

由上图可见,在RAM里面调试,控制效果很好,波形具有很好的正弦度,但是在FLASH里面,控制效果就大打折扣。

烧FLASH的时候,在主程序里面添加了相关的程序和配置文件,如下图

我感觉是程序底层的问题,请问,TI工程师有没有相关的解决方案?

Green Deng:

你好,程序中只是把DSP28x_usDelay函数复制到ram了吗?有没有把PWM中断加到ram中运行?

user6478480:

回复 Green Deng:

您好,感谢你的回复。

我调用了ADC采样程序,在InitADC();里面涉及到了DSP28X_usDelay的调用

我程序里面也调用了PWM中断,如下:

请问该怎么操作,等候您的回答

user6478480:

回复 Green Deng:

而且我把主要控制程序都写在PWM中断里面,包括了AD采样这类的调用程序。

user6478480:

回复 Green Deng:

非常希望得到您的回复,谢谢啦

Green Deng:

回复 user6478480:

就是跟DSP28x_usDelay一样加上一句

#pragma CODE_SECTION(epwm1_timer_isr,"ramfuncs");

user6478480:

回复 Green Deng:

我采用了您的方法,添加了相关程序,如下图

但是测试后,波形如下:

控制效果还是不行,请问还有其他什么方案吗?

Jun Zhang4:

回复 user6478480:

显然在flash运行还在ram运行并不是造成运行结果相差巨大的根本原因。

是否可能存在采样延时,中断延时等因素。正如前面回复,主要加了ramfunc标识,中断也是在RAM中运行的,没有差异。

user6478480:

回复 Jun Zhang4:

那这种采样延时,中断延时,有没有相关的解决方案,因为我把控制函数(包括AD采样的)都写在了PWM中断里面,PWM触发一次,进入中断后,再AD采样,再对采回来的数据进行处理,输出相应的PWM控制信号。这样是不是执行不过来。接下来是不是应该优化程序?

user6478480:

回复 Green Deng:

是否我需要改进程序等,调整程序结构?

Green Deng:

回复 user6478480:

你的程序主要涉及了哪些功能?我看你的程序中似乎也就是PWM的产生以及ADC采样功能,理论上来说,TI例程中就有这些程序,不太会出现你的问题。或者你可以参考一下例程来调整你的程序?可以在以下位置找到例程:
C:\ti\c2000\C2000Ware_3_03_00_00\device_support\f2833x\examples

赞(0)
未经允许不得转载:TI中文支持网 » DSP28335在RAM里面和FLASH里面运行时,效果差距很大。
分享到: 更多 (0)