[求助] DSP烧录到Flash中去了,仿真可运行,拔掉仿真器,开电重启不能运行

nuanyi   2016-7-8 17:11 楼主
初接触DSP,遇到了问题,望各位大神能帮我分析一下问题,不胜感激。一、问题描述:
1、F28335用CCS4仿真;
2、共两块一样的板子,第一块无论仿真或者拔掉仿真器单机运行都可以正常运行;
3、第二块复制的板子,仿真可以正常运行;然后退出仿真模式,但是仿真器不拔,板子也能正常运行;最后板子断电,拔掉仿真器(两端都拔掉了),然后上电重启,程序不能正常运行;


二、曾经测试以及尝试过的解决办法(以下均为单机运行测试):
1、电源用到5v,3.3v,1.8v,分别测得实际是4.75v,3.25v,1.77v,电源应该是没有问题的;
2、reset 电路测试,上电后reset引脚为高电平,因为采用的是TPS3823专用复位芯片,没有设置手动复位,所以至于有没有正常复位,不是很好判断,所以我采用上电后在地和reset引脚之间用导线手动连接了一下,模拟手动复位后断开,然后软件还是米有正常工作,所以我判断应该不是复位电路的问题(不知道这里的测试方法可靠不哈,如果有问题,望大神提出指正意见)
3、晶振采用33.3333MHZ有源晶振,示波器测试频率正常;
4、是否成功下载到FLASH检查:工程文件中有F28335.cmd文件,DSP2833x_CodeStartBranch.asm,下载时显示擦除flash section后显示load成功,且第一块板子同样的方法单机能够从正常运行,应该是成功下载到Flash中了吧!5、上电引导是否正确:通过资料得知DSP的Flash启动过程如下:
(1)首先硬件配置GPIO84~87上拉为1,即处于Flash启动过程。检查我的84~87引脚全部为高电平。
(2)当DSP复位后,会从复位向量0x3FFFC0处取得复位向量,并跳转到InitBoot处开始执行,InitBoot会读GPIO84~87的值发现全为1判断为Flash启动方式。
(3)然后会跳到0x33FFF6处执行。
总的来说就是:Reset(0x3fffc0)—>initBoot()—>判断启动方式—>codestart(0x33fff6)—>_c_int00—>main函数

我的工程的cmd文件中有如下代码:
MEMORY
{
PAGE 0 :
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Boot to M0 will go here */
...
}
SECTIONS
{...
codestart : > BEGIN PAGE = 0
...}

我的 DSP2833x_CodeStartBranch.asm里面有如下代码:
code_start:
    .if WD_DISABLE == 1
        LB wd_disable       ;Branch to watchdog disable code
    .else
        LB _c_int00         ;Branch to start of boot.asm in RTS library
    .endif
如果说这两个文件是正确的而且复位成功的话,应该能直接引导到main函数执行程序,可是事实上程序好像并没有进入主程序运行.

三、以上方法都检查过,还是找不到原因所在,真是抓狂啊,求高手指导还有可能是什么问题啊?谢谢,非常感谢,感激涕零,重要的事情说三遍,嘿嘿!






回复评论 (13)

说明楼主的程序没问题。问题出在电路上。

楼主看看BOOT ROM这个文档,应该能找到答案的。
点赞  2016-7-8 18:48
引用: dontium 发表于 2016-7-8 18:48
说明楼主的程序没问题。问题出在电路上。

楼主看看BOOT ROM这个文档,应该能找到答案的。

首先,谢谢您的回复,在我的第二块解决方法的第5种方法中,我有去寻找过boot room的问题,可是没有找到,不知道是不是我的方法不对,能不能麻烦您看一下我的第5种方法的描述,给出一些新的指导意见
点赞  2016-7-8 19:48
调试用的外部电压源一样吗?
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2016-7-8 21:30
引用: elvike 发表于 2016-7-8 21:30
调试用的外部电压源一样吗?

是一样的
点赞  2016-7-8 21:38
GPIO84~87上拉电阻多大?会不会因为干扰使它在最初时发生错误呢?把电阻改小看看,或直接接到电源上(要保证程序没有用到这几个脚)。

点赞  2016-7-8 22:03
这是我的电路图的四个引脚的连接状况,因为分别是TCK,EMU1,EMU0,VSS3VFL,所以必须有所连接,但是可以看到的是EMU1,EMU0,VSS3VFL,都连接了上拉电阻,F28335的TCK引脚与JTAG的TCK引脚相连接,而JTAG的TCK引脚是有内部上拉电阻的,所以相当于这四个引脚都连接有上拉电阻,应该不存在上电初始状态出现错误的情况吧?
  • 1.png
  • 2.png
点赞  2016-7-8 22:15
下载一个TI的例程试试看?
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2016-7-9 00:44
引用: elvike 发表于 2016-7-9 00:44
下载一个TI的例程试试看?

在一个例程中添加了点亮二极管的操作,结果出现一模一样的问题,仿真正常,上电,二极管不亮
点赞  2016-7-9 19:18
引用: nuanyi 发表于 2016-7-9 19:18 在一个例程中添加了点亮二极管的操作,结果出现一模一样的问题,仿真正常,上电,二极管不亮
spraas1c.pdf (311.13 KB)
(下载次数: 17, 2016-7-9 19:56 上传)
spraas1c.pdf (311.13 KB)
(下载次数: 17, 2016-7-9 19:56 上传)
jtag.png trst.png 你原理图上的TRST是拉高还是拉低了?TRST用个2.2K电阻下拉,然后电阻并一个20pf的电容 本帖最后由 elvike 于 2016-7-9 20:00 编辑
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2016-7-9 19:58
引用: elvike 发表于 2016-7-9 19:58
你原理图上的TRST是拉高还是拉低了?TRST用个2.2K电阻下拉,然后电阻并一个20pf的电容
...

十分感谢你能一直回答我的问题,毕竟第一次发帖,昨天把问题解决了,我对自己甚是无语,之前我说电源是没问题的,可是就在昨天发现我的内核电源1.8V,从5V分出后是没问题的,可是接了一个电感之后供给DSP后低到了1.5V,所以导致DSP上电不能正常工作,我之前测得是电感的另一端,测错了。虽然很不应该犯这个错误,但是因为这个错误对DSP各种问题的认识和了解更加加深了,也学习到了一些新的东西,姑且这样安慰自己吧!
总结:
1、事实印证我之前的推测是正确的,是硬件出的问题,因为一样的程序,软件配置,在同样设计的两块板子上一个正常一个不能运行,大对数情况下应该是硬件的问题;
2、硬件出问题后,先检查电源,直接测试DSP端的电源输入;再有就是晶振是否起振,复位电路是否正确,这些是程序能正常运行的基本要求
3、关于FLASH下载,按我的了解就是保证工程中添加的是flash对应的cmd文件,且保证硬件相应引脚为jump to flash时应该有的电平状态(一般参见所使用芯片的boot room文件,即上电引导相关文件),应该就可以正常下载到flash中了,下载到flash的过程中一般可以看见分为两个过程,第一个过程是erase flash section,第二个是load,不报错的话应该就下载成功了,断电程序也会保存在芯片中

点赞  2016-7-10 09:46
引用: nuanyi 发表于 2016-7-10 09:46
十分感谢你能一直回答我的问题,毕竟第一次发帖,昨天把问题解决了,我对自己甚是无语,之前我说电源是没 ...

我也学习了,楼主加油
作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅! EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
点赞  2016-7-10 16:41
我用F28027芯片几年了。编一个小程序都会跑,程序写多了。怎么就跑不动了,也不知什么原因。也不知去哪找个答案。
点赞  2016-7-11 08:39
群主,我的TMS320F28027也出现了和你一模一样的问题,请问内核电源是哪个脚供电?
点赞  2016-7-24 12:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复