学习硬件日记:
不定期更新~
经过三天的摸索,我终于攻下了一个小水坑。
个人理解:JTAG与SWD
JTAG需要通过jlink下载程序到开发板,SWD是通过串口把程序下载到开发板。
在使用JTAG遇到的几个问题:
1)jlink指示灯不亮,jlink driver 电脑不读。
答:因为使用的是win10 ,之前自己一直也没考虑系统的原因,在网上搜到了几个解决方案,但是解决了一个晚上还是没有解决出来。后来,发现是win10系统使用烧固件的软件版本的原因。
以下这个是最终解决问题的版本。
0.开始前准备工具
1.SAM-BA v2.12.exe 用于烧写固件 下载地址:链接:https://pan.baidu.com/s/1qYfwqbM 密码:6q1c
新版本的SAM-BA(例如sam-ba v2.9)不能正确连接JLink,
所以还是用了这个版本
2.JLink v8固件 下载地址:链接:https://pan.baidu.com/s/1pL7i90B 密码:t4kd
请务必使用这个固件,其他固件会导致 J-LINK the connected emulator is a j-link clone 问题,即jlink不是正版,具体原因请查看此贴:http://blog.sina.com.cn/s/blog_8a30d1990102vo66.html
3.最新JLink驱动 下载地址J-Link downloads
1.首先是擦除JLink上flash的程序(芯片是Atmel的AT91SAM7S64),通过短接ERASE(图中A处)实现擦除:
步骤要求:
1)先通电。
2)短接ERASE,保持短接状态20s。
3)断电。
4)移除短接
2.然后将SAM-BA Boot 固件复制到FLASH的前两个扇区,通过短接TST(图中B)实现
步骤要求:
1)短接TST。
2)通电,并保持短接30s。
3)断电。
4)移除短接。
3.安装好 SAM-BA v2.12 后,重新连接jlink到电脑,会提示安装驱动,然而我用win10并没有看到安装驱动,都是系统自动安装,只是在设备管理器里看到这个,只要有这个就可以了,默认一定是有”串行设备”这几个字,如果不是这个可以试试回滚驱动或者更新驱动,驱动位置在sam-ba_2.12安装目录下的drv文件夹里
4.装好驱动,打开sam-ba_2.12程序,选择对应的com口,选择芯片型号,JLink默认的芯片就是AT91SAM7S64,然后connect进入主界面
5.默认配置就是如图所示,什么也不需要改,点击 Send File Name 右边的文件选择按钮,选择下载的 jlink-v8.bin 文件,然后点击Send File按钮进行固件烧写,烧写完后会提示是否锁定flash,点击“yes” 烧写完毕后,会再次出现对话框询问是否加锁刚才的区域,点击“No”(note:一定要先点yes再点no,否则Keil中不读)
2)jlink driver可以在设备管理器中查看,但是打开keil->魔术棒->dubug->硬件那边的setting,jlink读不出来,卡在那边。
答:是因为问题1)中,烧录的时候没有先点击Yes,再点击no,当时两个都是点的yes,个人认为是把jlink锁住了。
3)程序无法通过jtag下载到板子里头,出现no cortex-m sw device提示
答:是因为设置的jtag的频率问题,还有是因为jt,要设置flash ->configure flash tools 点击setting 设置add flash programming algorithm一下芯片 中的问题。