- MCU型号:S32K146
- 开发工具:S32DS
- 烧录工具:J-Flash v7.54、J-Link Commander v7.54
- 操作系统:Windows7(32-bits)
- 问题概述:使用J-Flash烧录了一个hex文件后,无法再连接J-Flash。
- 问题详述:
- 在连接J-Link的时候采用SWD方式,连接VCC、GND、SWDIO、SWCLK四根线。设备先上电然后连接电脑,电脑打开J-Flash烧录了一个hex文件后Disconnect掉MCU,然后拔掉J-Link与电脑的连接。
- 立即再次连接电脑后发现点击connect报错,内容如下:
可见芯片在初始化连接时就遇到问题,上网查找资料得知可能是芯片锁住了(烧录代码后热插拔仿真器)。
- 对芯片使用J-Link Commander里的 Unlock Kinetis 指令,报错如下:
- 联系板卡供应商,建议在烧录时连接reset引脚,即连接VCC、GND、SWDIO、SWCLK、RESET五根线。
- 连接RESET后,能够对板卡使用 Unlock Kinetis 指令不报错,但是解锁后仍然无法连接,报错同之前一样。
- 继续查找资料+无数次穷举试验后发现了一个特别牛的脚本,使用方法:首先运行Windows命令行并把路径调整到JLink软件安装目录,比如我的在这个目录:
接着保持命令行的路径先放一边,保证断开板卡电源、烧录器等一切外部物理连接,然后将reset引脚拉低(或者按住Reset按钮不放开),接着连接电源和JLink仿真器(电脑和板卡),然后在刚才的命令行运行指令 jlink.exe erase_all_pin.jlk 回车后会有几次要求选择设备、连接方式等需要用户正确输入然后回车,最后脚本直到运行结束如果没报错(如果你是SWD连接,最后说你JTAG连接不上,忽略即可)就可以恢复Reset连接到仿真器(或者松开Reset按钮)了。
- 这个时候就又可以正常使用板卡了(但愿)。
- 问题总结:
- 烧录代码后不要直接拔掉仿真器(特别是仿真器没连接reset引脚以及使用S32K)。
- 仿真器上最好还是连接reset引脚,下载程序后软件会帮你复位芯片。
- 一次不行多试几次或者换一下操作顺序。
- 最后附上文中用到的资源链接:【免费】CommunicationerrorwhileaccessingMDM-AP问题解决方案资源-CSDN文库