|
学AVR后一直想做一个JTAG来玩玩,但由于懒得做PCB板,所以一直都只是停留在空想之中。直到前段时间网友solojimes在年前有JTAG的PCB空板免费大赠送我才开始了我的JTAG制作(在这里要感谢solojimes送我的PCB板,板子画得很漂亮)。
虽然solojimes给我的资料里有hex烧写文件,但由于我不太清楚作为JTAG其熔丝位应该怎么设置,所以我把元件焊接完毕后曾一度把它放在一边。后来想起以前曾经看过一本书,里面有介绍怎么制作简易JTAGICE的内容的,书里是利用了AVR Studio对JTAGICE的升级功能来制作的。于是找到之前买的那本书《AVR-GCC与AVR单片机C语言开发》,按照里面的方法利用AVR Studio的升级文件完成了JTAGICE的制作。
细心的朋友会发现AVR的ISP脚全部都包含在JTAG的输出脚里面,所以可以把其JTAG输出用线接出来作为ISP输入来对JTAG的通信用的mega16烧写程序。我在网上找来了bootice16.rom文件。
首先,用PonyProg2000通过ISP擦除芯片(eraser all),然后将bootice16.rom写入芯片(write all)。
2,调出熔丝位,将熔丝按下图修改后写入芯片:1![](http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_215575.JPG)
3,将修改后的JTAG接到电脑,打开avr studio,在AVR Studio软件中选择Tools菜单,在里面选择AVR Prog..选项,如果AVR Studio检测到硬件,会出现AVR Prog烧写程序的界面。然后利用AVR Prog将X:Program Files\Atmel\AVR Tools\JTAGICE\upgrade.ebn文件调入,然后Program Flash将upgrade.ebn文件写入芯片。写入后会出现数据校验失败的提示。
4,取下JTAG,接回到ISP,调出熔丝,将熔丝修改成如图的配置:2![](http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_215576.JPG)
自此,该简易JTAG的软件部分工作做完了,应该可以使用了。
赶紧按照网站上的JTAG接口图做好与m16实验板的接口,上电打开AVR Studio,点击连接硬件,出现一个错误提示:The JTAG ICE adapter was deteted, but the target device did not return a valid JTAG ID...大致意思就是说我的JTAG工作正常,但没有收到目标板的回应。上网搜索了一下,有说jtag接口的连线可能有误,有说可能是电压问题,也有说可能是232芯片问题。仔细对照我的板:1连线没问题;2电压是5v,电压没问题;3,MAX232芯片在用AVR Studio升级时都可以与电脑正常通信,不可能有问题。
左想右想,突然想起曾经见过双龙的JTAG调试器在对JTAG接口的设计描述时,TDI,TDO,TMS,TCK这几根接口线在上拉电阻的选用时,用的不是10K,而是4.7K,以前就曾经对这个奇怪过,我现在用的是10K,可能是这个问题,于是在这四个上拉电阻上分别并多了一个10K的电阻,组成四个5K的上拉电阻。一切就绪后重新连接好硬件,上电打开AVR Studio,点击连接目标板硬件,终于看到了那可爱的连接正常的界面了:1![](http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_215577.JPG)
这种制作方法利用了AVR Studio的升级功能,可以使你的JTAGICE与你的AVR Studio保持版本的兼容,不会出现因版本问题而无法调试的情况(就是它自己的文件,怎么可能不兼容)。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|