J-Link作为当今灰常流行的ARM核的JTAG(现在又支持SWD)调试器,以其价格便宜(市场上七八十块钱一个,最新版为V8版)、调试方便、下载速度快等优点,得到很多嵌入式开发者的青睐(咳咳,我不是做广告的,哈哈)。不过可能好多人都遇到由于某些误操作造成J-Link无法识别和调试灯不亮等问题,然后在多次试用仍旧无果的情况下就判定了它死刑,放在桌子的角落里等着落灰,呵呵。
本篇博客的目的就是介绍让J-Link起死回生之术,传授大家妙手回春之能,嘿嘿。我想说的是其实出现上面那种情况,绝大数情况不是J-Link硬件上的问题(可能第一次遇到这种情况的人第一反应估计都是硬件上出了什么问题,然后拿着万用表就到处乱杵一番,然后本来没坏的也被杵坏了,哈哈),而是由于我们的某些操作破坏了J-Link内部芯片(AT91SAM7S64)的固件导致其无法识别。其实之所以发现这个问题也是得感谢我同学校的一位好友(他用J-Link调STM32,我用J-Link调Kinetis,我俩都用的v7版),最开始是他的J-Link出现了该问题,然后他找到了解决办法之后在得知我也遇到了该问题后及时跟我分享了经验,在经过修复之后插上USB线,当电脑音响里再次听到那经典的熟悉悦耳的USB识别声音和小灯重新点亮的时候,我俩都是一个感觉,爽,哈哈。其实解决方法早已有高手给出了,我俩就是整理了网上的一些资料和高手的经验,然后完美的解决了该问题,哈哈,所以值此篇博客发表之际,感谢我的好友和最开始给出解决方案的高手,也因为这个原因我没敢用【原创】作为标题的开头,而是作为【经验笔记】分享给大家,虽然我也做了些总结和修改,嘿嘿。那下面进入正题,enjoy it:
首先需要提的是,J-Link内部采用的主控芯片为Atmel的ARM7处理器AT91SAM7S64,打开盖子清晰可见,虽然目前国内市场上关于J-Link的PCB都做滥了,不过毕竟都是根据其官方给出的解决方案(即原理图,不过不同的J-Link版本,其原理图是不一样的),所以芯片还是一样的,下图为我拍下的一款J-Link v8和v7内部PCB(前v8后v7,手机像素有限,嘿嘿):
注意可能有网友会发现手里J-Link的PCB版会跟我的不一样,不过不用担心,本篇解决方法我做了些改进,按照我的方法可以实现不同版本的J-Link修复。呵呵,说了这么多,做了这么充足的准备,那下面就给出修复的流程了:
1.既然了然了主芯片是Atmel家的ARM7,那就好办了,需要一款Atmel的Flash ISP下载软件,为了方便大家,我传到附件里了,可以解压后直接安装Install AT91-ISP v1.13.exe文件即可,当然也可以直接到官网直接去下载,网址为 http://www.atmel.com/tools/ATMELSAM-BAIN-SYSTEMPROGRAMMER.aspx
2.安装之后,可以看到桌面上有两个执行程序的快捷方式如下图,我们需要用到的是SAM-PROG这个Flash编程软件。
3.在所需软件准备就绪之后,下面需要做就是本篇的重点了——擦除AT91SAM7S64 Flash(因为内部固件已经损坏,所以这步是必须的)然后进入编程模式,具体操作流程如下:
(1)首先找到PCB板子的Erase脚和TST脚,一般J-Link都预留出这两个重要管脚,如下图,分别给出了v8版的这两个管脚的预留位置:
当然如果你的PCB版跟我的不一样,我也给出了解决方案,即根据芯片AT91SAM7S64的引脚排列找到其Erase脚和TST脚,AT91SAM7S64管脚排列如下图所示:
(2)这两个重要的管脚找到之后,然后通过USB数据线连接J-Link和电脑,给J-Link供电(注意这一步小灯可能不亮,但电源已经加到J-Link板子上了);
(3)短接Erase区的两个过孔(即Erase与VDD3.3v)约5s以后,断开该连接,这时擦除完毕,最后断开USB电源,停止给J-Link供电。(注意先后顺序)
(4)短接TST区的两个过孔(即TST与VDD3.3v),然后再连接USB数据线给J-Link供电(注意顺序),约10s以后,拔掉USB电源,再断开TST区的连接,这时进入编程模式;
(5)上面成功完成之后,打开上面提到的SAM-PROG软件,运行后设置如下图,固件在我上传的附件里:
(6)J-Link通过USB线与电脑连接。此时,SAM-PROG v2.4软件中的Write Flash按钮将变为有效。(注意,先打开SAM-PROG v2.4再连接J-Link)。
(7)点击Write Flash 按钮,烧录固件,待烧录完成后,Active Connection:将变为1,然后拔掉USB数据线即可。
下面就是见证奇迹的时刻(嘿嘿,套用下时下时髦的话),当我们再次把USB数据线与J-Link连接之后,动听的USB设备识别声音出现了,并且弹出驱动安装,我们点击自动安装即可,这样我们损坏的J-Link就起死回生了,很神奇,有木有,哈哈~
如上所述,我以修复v8为例介绍了整个流程,其实经过我的验证v7也可以,而且在附件里我也上传了v7和v8两版固件程序,很周到吧,有木有,哈哈。希望大家能有所收获,未完待续~
附件为AT91-ISP安装文件和v7、v8两版的固件程序。