大家好:
这段时间我们公司正在开发一个新项目,板子是自己设计的,使用的主芯片是TI的LM4F232H5QC,使用20针JTAG接口一直都无法下载程序。我的情况说明如下。
1、仿真器使用的是TI的代理商捷恩斯威公司设计的专门针对TI的M3/M4的仿真器S-LINK(该仿真器已经集成了ICDI功能,可以用来下载、仿真和解锁TI的M3/M4的程序。我可以保证该仿真器是可以正常工作的,也就是说我的问题是与仿真器无关的)。
2、使用的MDK版本是Keil Realview MDK4.72,点击LOAD按钮,弹出对话框“Could not initialize the target device.Please power cycle the board and try again!”。 附加说明:MDK中Flash Configuration Tools菜单下的Debug和Utilities选项均是选择Stellaris ICDI,并且点击Utilities选项Stellaris ICDI右边的Setting按钮,弹出Stellaris Debug Interface DLL对话框,Attached Devices下拉菜单出现Stellaris USB ICDI(SN:MFG-TEST),即可以检测到仿真器,Debug 模式选择的是JTAG,时钟是500KHz。
3、起初,我怀疑是芯片解锁了。为了解锁芯片,点击TI的闪存工具LM FLASH Programmer的Other Utility的Unclock按钮,弹出ERROR:Failed to unlock connected device,即不能解锁。附加说明:我的板子是没有使用/RST按键复位的,为了模拟按键复位,我点击Unlock按钮,弹出消息“Assert and hold reset while powering up the device”,然后我将LM4F232H5QC的第63个管脚,即RST管脚直接接地,这相当于按键复位了。
4、我的板子只是使用了上电复位POR,没有使用/RST按键复位(出于产品安全考虑,板子不能使用按键)。20帧JTAG只是使用到了4个接口TCK,TMS,TDI,TDO。/TRST没有使用到,这可以从LM4F232H5QC的datasheet中查到。TI的M4芯片的POR复位和/RST复位管脚合二为一了。
5、根据datasheet说明,如果使用POR复位,芯片的/RST管脚必须通过一个0--100K欧姆的上拉电阻连接到3.3V的电源。我使用的是10K的上拉电阻,并且为了保证供电稳定,上拉电阻的另一边还串联了0.1uF的电容(电容另一端接地)。
6、主板上的晶振是16MHz的。MDK中的Flash Configuration Tools菜单下的Target选项中晶振设置也是16MHz。
各位大侠,谁遇到过这种问题的,该如何解决,知道的还请指教一下,万谢!
此帖出自
小平头技术问答
我建议,如果板子硬件没有问题,可以尝试用别的仿真器来试试.
比如 JLink-V8,我在淘宝上买的, 60 来块钱,很好用.
不排除和 ICDI 在 PC 上的驱动有关系,也就是 MDK 需要的 DLL 版本也许太低了,对LM4F232 的支持需要较新版本的 DLL 文件.
一周热门 更多>