TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP2812的SCI通讯奇怪现象

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

Jones Chen:

程序烧到Flash之后,请用不要断开仿真器,用Load Symbols将程序加载,然后运行,Flash在线调试,看看程序跑到什么地方了?

另外,程序中是否使用Delay_us()函数,此函数是否已经copy到Ram中执行。

Stack的大小开的是否足够?

看看程序是否进入了什么illegal ISR?

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

ke xu:

回复 Jones Chen:

你可以先将仿真器卸掉,试试  有可能是连接仿真器的原因,有时烧写完成程序以后等你在重新上电时,仿真器就认为是复位状态的。

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

jie chen:

回复 ke xu:

@ Jones Chen:尝试用Flash在线调试,发现这时用串口调试助手收发数据都很正确,和用仿真器仿真结果一样,但是拔掉仿真器,启动装置,就再也回不来数据了

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

Jones Chen:

回复 jie chen:

你的上电Boot引脚是怎么接的?一共有4个引脚来决定上电时的Boot位置。你是否对这四个引脚有拉低的行为?

另外,为了确保程序在Flash能够跑起来,请用一个闪灯程序测试一下,看看是否程序都没有跑起来。

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

jie chen:

回复 Jones Chen:

现在情况是这样的。。仿真依旧正常,但烧写完成后,用串口发送数据10次,可能其中就有一次回过来,或者几率更小。

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

Zitong Wang:

回复 Jones Chen:

我也遇到了类似的问题,烧到flash里后连着仿真器非常正常,去掉仿真器就有一定的误码率。

后来不使用DELAY-US来延时,用定时中断就不会出现这个问题了。

DELAY——US在程序里已经  .sect "ramfuncs",是不是已经声明为RAM运行?

还用不用在主程序里做一些处理?

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

Johnson Chen1:

回复 Zitong Wang:

请楼主确认是否正确初始化FLASH waitstates,通过以下方法:

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

// Call Flash Initialization to setup flash waitstates

// This function must reside in RAM

  InitFlash();

//

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

jie chen:

回复 Johnson Chen1:

是的。。

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

jie chen:

回复 jie chen:

/*** Copy all FLASH sections that need to run from RAM (use memcpy() from RTS library) ***/

// Section secureRamFuncs contains user defined code that runs from CSM secured RAM

memcpy( &secureRamFuncs_runstart,

&secureRamFuncs_loadstart,

&secureRamFuncs_loadend – &secureRamFuncs_loadstart);

//copy from the flash to the ram  for change the registers of the flash,

/*** Initialize the FLASH ***/

InitFlash();

我做的DSP系统和PC机的调试通讯方式是2812的串口转422通讯,然后422再转换成串口接到PC机的COM1上,现在的问题是:我将程序用560仿真器仿真时,在CCS中点击运行,通过串口助手可以正常通讯,比如DSP向PC机周期性的发送00 00;但我如果退出CCS环境,将程序烧入FLASH,DSP重新上电,只通过串口助手来通讯,这时串口通讯不正常,DSP向PC机周期性的发送诸如A0 C2的字节。而且,我发命令,DSP也不响应。

jie chen:

回复 Johnson Chen1:

@ Johnson Chen,这种现象是不是主要还是cmd文件的问题?您能留个联系方式吗?

赞(0)
未经允许不得转载:TI中文支持网 » DSP2812的SCI通讯奇怪现象
分享到: 更多 (0)