JTAG 制作调试技巧,新手调试JTAG必读
由于本网站最近公布了JTAG的制作资料,并搞了一个JTAG制作活动但却经常发现,新手经常提出调试与连接的问题。虽然我们反复强调,本网站的资料没有错误,但却不足以解决新手的问题。
我花了一个晚上,模拟了JTAG出故障的各种情况,编写了本文。但愿本文能解决新手的JTAG调试问题,让大家能从这类问题中解脱出来。
调试要点一:保证你的PCB板焊接无错漏。
这是先决性的条件。在回答大家的问题时,发现90% 以上的故障,均来自焊接的线路问题。
调试要点二:保证你的AVR芯片的供电电压是5V。
虽然JTAG可以在3伏的电压下也能工作,但实际应用时,发现有些RS232芯片或分立件只能工作在5V。所以,调试时请先设置在5V。等5V 成功了,才去试验3伏。
调试要点三:保证你的目标板上的AVR芯片的熔丝位正确。
目标板是指你的实验板。只有支持JTAG接口的芯片才能进行JTAG仿真。支持清单为:ATmega128, ATmega128L, ATmega16, ATmega162, ATmega162V, ATmega165, ATmega165V, ATmega169, ATmega169V, ATmega16L, ATmega32, ATmega323, ATmega323L, ATmega32L, ATmega64, ATmega64L 。所以,不要指望用JTAG来仿真Mega8 啊!
以Mega16为例,目标板(实验板)上的熔丝位配置图为:(内部8M RC 晶振)
http://cache.amobbs.com/bbs_upload782111/files_1/armok0116242.jpg
调试要点四:保证你的目标板上的JTAG接口已经加了四支上拉电阻及4、7脚接VCC。
目标板(实验板)上的接线图为:
http://cache.amobbs.com/bbs_upload782111/files_1/armok0116262.jpg
如果上图连接错误,就会出现非常出名的 OCD JTAG错误信息:
http://cache.amobbs.com/bbs_upload782111/files_1/armok0116282.jpg
最逗的是,我测试时发现,就算你的上图连接没有错误,但插入JTAG 双十针线时,插反了,也会出现这个提示!!
如果上图连接无误,用万用表量JTAG目标板上的1、3、5、7、9脚,应该都是接近5伏。 如果有某一脚不是5V,证明你的焊接有误。
注: 测试时我发现,上面的电路图四支10K 电阻不接JTAG也能正常工作。不过,既然ATMEL官方文档推荐这四支上拉电阻,大家不要省略了,以免出现莫名其妙的错误。
调试要点五:保证你的JTAG上的RS232线路工作正常。
RS232 其实就是一个电平转换反相器。所以,大家可以用模拟输入的方法,测试输出,判断RS232线路是否能正常工作。
我在制作JTAG时,使用的是分立件的232线路,用模拟输入,发现有只三极管不能工作。更换合格的管后,问题就解决了。
注:有时5V能正常工作的JTAG,在3V供电时,会提示上面的 OCD JTAG错误信息,证明你的232电路无法在这么低的电压下工作,请更换合适的元件。
后记: 欢迎大家补充 ! 这类的技术文章其实很有价值。希望本文能起到抛砖引玉,鼓励大家多点编写这类文档。 目标板上的也要先配置熔丝吗? 当然!上面我已经写得非常清楚。 好啊,真是多谢了
虽然我还没开始用,但我一直在收集这方面的信息,邮购的JTAG还没有到,等到了要好好看看了。
站长真是费心了 晕,怪不得我的不行,我再试试 这个自制的JTAGICE使用时,不要在它还在运行时与目标板断开(热拔),否则JTAGICE的程序会丢失。类似的情况在ATMEL的原装ISPPROG的文档中有写。不过ISPROG可用内带的BOOTLOADER恢复程序。而对于自制的JTAGICE,现在暂时就只好拔下M16重写了。 类似的情况在ATMEL的原装ISPPROG的文档中有写? bbear 能否提供这份文档的有关描述?谢谢。 armok,现在我这台电脑没装AVRSTUDIO。记得好象在AVRSTUDIO的HELP/TOOLS HELP/ISPPROG的一片CHM帮助文档中,关于如何给ISPPROG的FIRMWARE升级的一段,并有图片指示如何使ISPPROG进入BOOTLOAD模式然后用AVRSTUDIO更新软件。ISPPROG热拔损坏的一个主要现象是DONWLOAD速度非常慢而且EEPROM无法被DOWNLOAD。而关于这个自制的JTAGICE程序丢失的根本原因,我现在还不是很清楚,但猜测应该和ISPPROG有类似的原因。 目前只能这么认为:关于这个自制的JTAGICE程序丢失的事情,并没有证实。只有零星的个案说会丢失,并且,均不是本网站的会员,也不是完全同本网站的推荐的线路一致。
按本网站JTAG制作的实例已经超过30个,没有人反映出现过这种问题。有人号称是按本网站的制作,但最后证实并不一样。 我在杭州1200RMB买了JTAG仿真器,原来那个东西那么便宜的,我狂吐,那商家太毒(又黑),晕。 嘿嘿,咋晚挑灯夜战,总算搞定了JTAG,小试了一把,还真不错,刚开始线接反了。好像那个10针的座子没有标准的吗?我刚开始按照一个PDF文档里面写的顺序,死活不通,后来细一看,原来线弄反了。改过来就好了。 我用的是JTAG ICE mkII,忘了加上拉电阻却仍然工作正常。这样做对器件有损害吗? 11楼及12楼反映的问题,我上面的文档都有提到。 atmega8515好像不能用,有没有可以给8515用的jtag?我现在只有8515 ICE200 或 ICE50 适合你。均不能自制。前者约1000元人民币,后者约3万元。
详细请参考:http://www.ouravr.com/es_avr_serial_emluator.html 自已动手制作JtagICE中的原理图有一个齐纳二极管(D2)
> 没有表明具体型号,我想知道他是5v的吗,还有那个跳线(jp1)说得isp是指它被烧写还是指这个jtag还可以作串口的isp烧写别的片子,问题很浅陋,望包含,谢谢。 D2 只是普通的二极管,1N4148即可。 感謝阿莫,Jtag/ISP試制成功,可以好好玩玩AVR了.如果Jtag支持89s51就妙不可言了 我刚接触AVR,对AVR还不太了解有几点疑惑想问问大家。网站上的图看了不明白第38脚是I/O口为什么可以直接VCC呀,还有上面用的晶振必须是7.3728MHz吗,最后一个是和17楼的一样jtag还可以作串口的isp烧写别的片子是吗?问题很多,麻烦站长了,在这里先谢了。 感谢站长:
avr接触1年多了,偶然发现该站觉得办的很好!!
按照给的资料很快制作了JTAG简易仿真器非常好用! 没人解决我的问题呀。 你学过单片机没?
管脚设为输入就可以接VCC了。
跟外部设备通讯是有一定的条件要求,比如串口就要求双方的速率一样,由于程序已定,所以晶振不能变了。
标准的JTAG不能做ISP下载线用。
其他疑问,请用 "JTAG" 或 "ISP" 关键字查找。 就算是把引脚设为输入那把它接到电源上有什么用呢?难道是看共给单片机的电源有没有。
我学过51,51的引脚可以在任何时候直接接地但不能直接接VCC。难道你不知道吗?
还有串口的速率是可调的难道你不知道吗,因为我这不好买7.3728MHz的晶振,所以想问问能不能改成别的。
第三就是串口下载器与这个JTAG差不多,难道不能一机多用吗?就算不能难道不想让他功能更多吗? 我按网站的资料做了JTAG,但调试时出现如下问题.
在调试时提示:
"The JTAG ICE is present,but there is no target power (or the target power is to low to ensure correct communication whith the device).The detected voltage is ~0.0V.Required minimum voltage is 1.7V.
Apply sufficiect power to the target application or target device and click Retry. To abort, click Cancel"
??????
我是按照网站资料作的,请问该怎么处理?
好象是说没检测到目标板电压,是否是通过JTAG的M16的ADC2检测的?我也按两种方式接了,一个是直接接VCC,还有是通过36K和150K分压,但问题依旧.
我用的是MEGA16L,AVRSTUDIO4.09/4.07
谢谢!! 哦,问题已经搞定,原来是INT1上的那个下拉电阻坏了,我用示波器表笔往上一放就能下入程序,后来就找到了,还是很谢谢大家! 在烧写jtag的rom文件时的时钟用8m可不可以的?? 请教各位:支持debugWIRE仿真方式的,能仿M48/88的仿真器能不能IDY一个????谢谢啊莫!
JTAG ICE都能做了,如果JTAG ICE MKII也可以DIY那不更好! JTAG ICE 是单车
JTAG ICE MKII是摩托车DIY很难。 啊,只好放一次血了,2000多就2000多吧,唉,如果真那样还是没白花 放血吧。MKii 估计一年内都不会有人能做出来。就算能做出来,估计也比较贵。不如买原装的。 犯不着为制作JTAG花那么多的时间,真正做起单片机谁有么多的时间用JTAG来调试。简单的任务直接运行调试。复杂的用软件模拟再直接运行调试,又快又好。
我从来不用JTAG。 我买的JTAG也调不好,不过并不影响我调试程序,我一板在程序中插入PUTCHAR();语句,可以把过程参数发到PC上看,还有可以知道程序在哪儿进入死循环,真的很灵。 请问,我的16芯片是QFP封装的,板子没有设计ISP接口,有JTAG接口,但JTAG连接失败,我用JTAG连接马老师实验板是成功的,有没有办法知道熔丝是否正确?还是别的可能性? 今天做成了,发帖以感谢班主。
用的是avr Studio 4.07,
纯汇编语言仿真速度很快。
有一点提醒大家,在烧入flash.bin文件时可能会出现verify failed,此时将mega16的内容先全部erase后再试。 flash.bin烧完完再烧入eeprom.bin 我有一处不懂的地方想大家请教,网站提供了avrstudio 4.10版的烧录程序,这是什么意思呢?如果将JTAG放到avrstudio 4.07版的调试系统下会有什么情况? 上面提到OCD错误的出现有一项原因是十针插座的1、3、5、7、9万用表测应该是5v,可是我的JTAG 上电后不接目标板测这几个引脚发现1、5、9、都是低,不知为什么,是不是写的源程序不对啊
写了N遍源程序了,写过后测m16的mosi和tck也就是PB5和PB7立马就变成0V,这到底对还是不对啊?
哪位知道请指点一下。
-----此内容被jun80592于2005-07-24,22:29:49编辑过
-----此内容被jun80592于2005-07-25,11:21:30编辑过 我的连接没有问题,熔丝也都按照上面的进行设置的,但是仍然出现上面的"非常出名的 OCD JTAG错误信息",请问这是为什么呀?
我都搞了一天了,仍然没有收获,帮帮我吧,同胞们! “OCD JTAG错误信息”也不是坏事,最起码表明JTAGICE跟电脑连接是OK的,只是跟目标板的连接有问题。
可能是连线问题,目标板MCU的JTAGEN熔丝位或时钟选择搞错了。 由于“非常出名的 OCD JTAG错误信息”的问题困扰我两天了
最终我还是投降了--我实在找不到在什么地方出了问题了!
算了吧,放弃了,JTAG,我想它好像不大欢迎我用它吧
呵呵…… 我在用JTAG调试时,目标板AVR 如果设为外部晶振(4M)的话,调试老是失败啊!目标板的几个上拉电阻没有接,不知道是不是因为这个问题? to zx962032 火狐狸:
用一片新的M16试一试,出厂状态是打开了JTAGEN的。
to lcs00:
请问8MHz是能行吗?如果可以,可能是因为JTAG的TCK时钟过高。请调回标准的250KHz 为何我做的JTAG,用万用表量JTAG目标板上的1、3、5、7、9脚,都是接近5伏.可接上JTAG仿真器后,还会出现OCD JTAG错误信息,如标题楼图片所示提示。问题何在,请多多指教。 本人自己制作了一个JTAG,很好用,就是出现了一个比较低级的错误,
目标板上的JTAG针脚弄反了,很是郁闷!还好右边一排用的口不多,
就一个电源,又重新补了个线脚!
见笑!;) 我做的第一个JTAG成功了!不过我把电路改了改,只要插上这个JTAG就可以看到上面那个著名的错误,(这样做有个好处是,不一定要连接上目标板才知道这个JTAG是否成功,有了这个错误提示,至少表明JTAG是OK的,剩下的问题多半是连目标板有问题而已,可以说JTAG是OK的了)!我曾经把那个JTAG到电脑的搞好了,但是就是连不上目标板,当然是JTAG同目标板之间的问题了! 我做了一个,出现“非常出名的 OCD JTAG错误信息”,但测1、3、5、7、9脚不全是高电平。其中只有5、7脚是高电平,2脚只有1.4V的电压,其它为0。
不知是哪里出了问题。
目标板上的熔丝位也设过了。
我目标板到仿真器的线是直连的,就是SCK-SCK,MISO-MISO,MOSI-MOSI、TMS-TMS.这样对吗?
要不要像串口那样交错呢? 看来我们得提供一个服务:
不能制作成功的,请支付来回的快递费,及适当的检测费。我们可为大家检测不能制作成功的原因。 是这样的,两块JTAG板,一个作仿真器,一个作目标板。1脚对1脚...10脚对10脚连起来。这样对吗?
不过没加上拉电阻。
呵呵,是不是MISO-MISO,MOSI-MOSI就该换一下?输入对输入,输出对输出这样行吗?
-----此内容被lmh0519于2005-10-06,17:24:03编辑过 按照红日所给的图:
两块JTAG板,一个作仿真器,一个作目标板。往仿真器里烧flash.bin和eeprom.bin,往目标板烧了一个DA转换程序.在AVRstudio中总是出现
Could not connect to JTAG ICE on port COM1
根本连不上 com2行不行?
把作仿真器的接在COM1,作目标板要排在后面的COM2或不接。 按照红日所给的图:
点击此处打开armok0183626.pdf
两块板,一个作仿真器,一个作目标板。往仿真器里烧flash.bin和eeprom.bin.用COM1连仿真器.在AVRstudio中总是出现 Could not connect to JTAG ICE on port COM1
根本连不上 HE!看了两天,终于明白了,jtag是仿真机来的。isp是提供写好的程序(hex)下载到目标板上的芯片中(如m8,m88,m16等),还有马老师的多功能板是不能做仿真机用的。只能做为目标板调试用。你们邮购的另一款atmega16小板,就相当于马老师的多功能板的简化。今天做好74hc244+5.1V稳压isp下载线很好用。等会睡醒了再做个jtag仿真机。谢谢版主,此网站很好,我会天天上这来的。 发了几小时做的仿真机,并调试成功,真的很好用。首先要保证:1.监控程序atmega16的熔丝位为,cf,19,ff.然后写入,falsh,eeprom,很容易混的是有时把这个写入了目标板的熔丝位。
2.目标板的熔丝位,就是你要在哪块板上做实验(我是用多功板)所以用下载线把多功能板上的芯片熔丝位写入,e4,19,ff.写完就OK.
3,就可以进行仿真调试呢?he,真的不错,很爽呀!http://cache.amobbs.com/bbs_upload782111/files_4/armok0184806.jpg
http://cache.amobbs.com/bbs_upload782111/files_4/armok0184807.jpg 我按网站的资料做了JTAG,但调试时出现如下问题.
在调试时提示:
"The JTAG ICE is present,but there is no target power (or the target power is to low to ensure correct communication whith the device).The detected voltage is ~0.0V.Required minimum voltage is 1.7V.
Apply sufficiect power to the target application or target device and click Retry. To abort, click Cancel"
??????
我是按照网站资料作的,请问该怎么处理?
好象是说没检测到目标板电压,是否是通过JTAG的M16的ADC2检测的?我也按两种方式接了,一个是直接接VCC,还有是通过36K和150K分压,但问题依旧.
我用的是MEGA16L,AVRSTUDIO4.09/4.07
谢谢!!
25楼的问题我也遇见了,但我仿真mega16没有任何问题,仿真mega128就出现上边提示的问题了,我的仿真器上的int1上的电阻没有坏,请问怎么解决?谢谢!我的email:LCHMYH@126.com 请问为什么要"保证你的目标板上的JTAG接口已经加了四支上拉电阻"?
另外你给的电路中,四个上拉电阻为什么还要加四下开关?
如果我用的是JTAG mk II 是不是可以不用上拉电阻。我看到有人就没用。
谢谢! 怎么没人回答我的??? 我按照本网站的简易的JTAG仿真器自己做了一个,并用烧录了V4.12的程序,
在用AVR Studio4.12 SP2调试时,在菜单"TOOLS->program AVR->Auto Connect"连接JATG,在"Program"选项卡中的"FLASH"框中点击"READ",系统提示JTAG MODE ERROR!
其它的像写入FLASH的"VERIFY"和"PROGRAM"都能正常操作JATG...
EEPROM是可以正常读写的,其它选项卡中除了读取FLASH外都可以正常操作.
难到是我操作不对?还是JATG程序有问题?我重烧录了V4.08的也出现同样问题.
站长和各位朋友,能帮我分析一下吗?
谢谢...! 怎么没有人帮我解答呀?!!!!!! http://cache.amobbs.com/bbs_upload782111/files_6/armok01124478.JPG
各位好,我用AVR mkII 下载出现ISP Mode Error ,我试过所有的下载频率没用。请问有没有人能帮忙解决,多谢了! 我已经按照楼主说的,检测JTAG的几个脚,电压是正常的,没有插反,可是用AVR STUDIO选择JTAG ICE时,只看到仿真器灯闪了几下,然后AVR STUDIO显示如下画面,究竟什么原因啊?
http://cache.amobbs.com/bbs_upload782111/files_6/armok01124967.JPG
我的熔丝烧写 如下:
http://cache.amobbs.com/bbs_upload782111/files_6/armok01124968.JPG 后来静下心检查了一下,发现是MAX232坏了,现换了一个,好了 我也终于可以了!!!呵呵……
一句话,只要硬件没有接错,目标板的芯片可以用(使能JTAG口),熔丝位设对了就可以了,如果保证没问题成功率100000000000000000%!!!!!!哈哈!!! 求救啦......用万用表量JTAG目标板上的jtag电平都正确,可还是OCD JTAG错误。测试晶振没有起振,可能是熔丝位没有设置,可是进不去改不了熔丝设置,该怎么办啊? 我一开始可以下载,后来就不行了,出现OCD典型问题,不知道这个问题如何解决, 学习了,很有用 好东西 好 学习 收藏+学习! 请问JTAG的上拉R为何要加开关隔离呢?有何用意,谢谢指点!
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_441495.JPG
(原文件名:jtag2.JPG) 问一下 armok 这个
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=935084&bbs_page_no=1&search_mode=1&search_text=jtag&bbs_id=1000
里面的 hex 写到仿真器 的时候 熔丝是怎么 配置的? 学习 以前一直没有问题的,用JTAG调试好几次了。突然 就一直出现OCD JTAG错误,怎么办? 顶!标记! 记号 久搞不到的东西。。 学习中~~~ 如果目标板的熔丝位没有被编程,即使没有其它错误,也会出现OCD JTAG错误。 http://cache.amobbs.com/bbs_upload782111/files_17/ourdev_477385.JPG
(原文件名:错误.JPG)
请教各位,当我upgrade的时候出现这个画面是怎么回事呀 把8脚的针拔掉,再把JTAG的8脚用胶封死,怎么都不会接反。我用的DSP仿真器就是这么干的 mark. 出现OCD错误,是不是芯片已经被锁了 站长辛苦了!!敬礼! 顶一下! 好实用学习下 mark 制作成功 mark ~ 请问啊莫,哪一个贴才是本网站公布的JTAG的制作资料,能否给个链接。 好东东,有空也试一下 回复【81楼】lovely-teddy
-----------------------------------------------------------------------
lovely-teddy你好:
你的那个问题解决了吗?我现在也遇到和你一样的问题了,很困惑啊!
如果你解决了的话就指导一下我,非常感谢了啊!!谢谢!! 回复【81楼】lovely-teddy
-----------------------------------------------------------------------
呵呵,我弄好了 本人新手,先收藏了,以后用的时候在参与讨论。 cool mark AVR jtag
东西都买了
等着入门!自己动手 回复【96楼】ggdsj0624
-----------------------------------------------------------------------
哥们,你在升级的时候,遇到和你一样的问题。也出现了这个校验失败界面,如何处理的?? 等待中。。。 mark mark mark
页:
[1]
2