原创 JTAG

2009-10-13 13:30 2803 7 8 分类: EDA/ IP/ 设计与制造
但却经常发现,新手经常提出调试与连接的问题。虽然我们反复强调,本网站的资料没有错误,但却不足以解决新手的问题。

我花了一个晚上,模拟了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 晶振)

armok0116242.jpg





调试要点四:保证你的目标板上的JTAG接口已经加了四支上拉电阻及4、7脚接VCC。
目标板(实验板)上的接线图为:

点击看大图

如果上图连接错误,就会出现非常出名的 OCD JTAG错误信息:

点击看大图

最逗的是,我测试时发现,就算你的上图连接没有错误,但插入JTAG 双十针线时,插反了,也会出现这个提示!!

如果上图连接无误,用万用表量JTAG目标板上的1、3、5、7、9脚,应该都是接近5伏。 如果有某一脚不是5V,证明你的焊接有误。

注: 测试时我发现,上面的电路图四支10K 电阻不接JTAG也能正常工作。不过,既然ATMEL官方文档推荐这四支上拉电阻,大家不要省略了,以免出现莫名其妙的错误。





调试要点五:保证你的JTAG上的RS232线路工作正常。

RS232 其实就是一个电平转换反相器。所以,大家可以用模拟输入的方法,测试输出,判断RS232线路是否能正常工作。

我在制作JTAG时,使用的是分立件的232线路,用模拟输入,发现有只三极管不能工作。更换合格的管后,问题就解决了。

注:有时5V能正常工作的JTAG,在3V供电时,会提示上面的 OCD JTAG错误信息,证明你的232电路无法在这么低的电压下工作,请更换合适的元件。
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户229965 2009-12-10 20:33

很好的博文,可惜图不能显示。
相关推荐阅读
用户407031 2014-09-25 23:05
DB 分贝
功率和dB的关系应该如下: 1.dB的引入是为了把乘除关系变换为加减,便于工程中的运算。 2.[dB] = 10lg(输出功率W/输入功率W)。如:输入功率为1W而输出功率为1000W,则...
用户407031 2013-03-24 11:50
C语言二进制除法用左右移位来表示
有些编译器和硬件是支持乘除法和浮点运算,运用起来也是很方便!唯一让我不满的就是很占用ROM ! 所以某些平台恰好可以用移位来换算! 学习推算心得: 分母是为 2的平方...
用户407031 2011-09-14 13:53
labview 回调VI
LabVIEW界面程序最常用的结构就是循环事件结构。用事件结构截获用户在界面上对控件的操作,然后做出相应处理。 在文本语言中,常用的事件处理方法与LabVIEW是不同的。文本语言常常使用回调函数来处...
用户407031 2011-08-31 00:02
SIT and Simulink
运行通过仿真接口工具包(SIT)生成的VI时输入控件和显示控件变为灰色 主要软件:LabVIEW Toolkits>>LabVIEW Simulation Interface Toolki...
用户407031 2011-05-10 11:10
Step7 功能保护
在STEP7中对程序块加密   您能够通过STEP7软件的KNOW_HOW_PROTECT功能实现对您程序代码的加密保护。如果您双击鼠标打开经过加密的程序块时,您只能看到该程序块的接口数据(即IN,...
用户407031 2011-02-19 13:21
step7 指针
西门子PLC程序中的地址指针如何理解,我至今还是搞不明白程序中的地址指针,看书似乎明白了。遇到实际问题,还是不明白。下面是一个通用的读输入输出的程序。FC100的变量声明表:四个变量, 语句表程序 N...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条