基于TMS320F28335的运动控制器--开发与调试记录2
新板子回来了,经过焊接调试,终于可以了,晶振正常起振,JTAG连接正常,可以下载程序。各个模块:CAN接口,SPI接口,外扩RAM等都调试正常。调试RAM的时候发现写入的数据和要传的不一致,仔细测量了一下引脚发现D0和D1短路了,改正后正常工作。
我也不是很确定到底为什么第一版的晶振不起振,第二版相对于第一版进行的改动:
1、第一版晶振引脚距离芯片过远,负载电容距晶振过远,在第二版进行修改。
2、第一版的JTAG各引脚没有加上拉电阻和下拉电阻,仔细查看TI的datasheet进行如下图改动(PS:datasheet真是一定一定要仔细看的,我犯的蠢错误基本上都是因为没有仔细的阅读datasheet,自己想当然,其实只要照着人家工程师推荐的来,硬件基本是不会出问题的)
3、JTAG的VCC改为+5V,但是在一些资料上看好像+3V也可以,没有经过验证。
4、还是因为没仔细看datasheet,因为项目没有使用ADC模块,第一版把ADC的相关引脚全部忽略了。电源啊,地啊,IO啊,全都处于悬空状态。不知道这对DSP正常工作是否有影响,在第二版按照TI推荐的来,全部连接。
说一下刚开始困扰了我好久的问题,第一版调试时Debug时报这个错误:The JTAG IR and DR scan-paths cannot circulate bits, they may be broken. An attempt to scan the JTAG scan-path has failed. The target's JTAG scan-path appears to be broken with a stuck-at-ones or stuck-at-zero fault.
这个错误让我非常困扰,在网上查大家都说原因很多啊,软件,线啊,板子,仿真器都有可能。一看这不扯淡么,现在调好了一想确实就是这样。硬件做出来什么都有可能有问题,我们就是要仔细排查。遇到问题先测关键引脚的波形和电平,我测量后发现TCK引脚没有波形。进而测晶振,没有起振。JTAG是基于TCK的上升沿开始对数据进行一个扫描,没有TCK当然无法工作。
最后,提醒自己以后注意:做东西不能急躁,不能毫无方向,冷静下来,发现问题,解决问题。接下来就是和伺服电机以SPI协议联调了。遇到的问题会在下一篇文章写出来-------。