JTAG ICE 仿真器

来源:百度文库 编辑:神马文学网 时间:2024/04/25 03:06:14
记得那是三年前刚学单片机的时候,经询问得知在所有的开发工具中只有并口下载线最便宜,接着到深圳赛格花了100元买了双龙的并口下载线,其实我不是一定要买双龙的而是只有双龙的卖,在接下来的学习过程中知道并口下载线其实很简单利润也不错,如是也做了一个并口的下载线来卖,不过现在已经很廉价了;后来阿莫的OURAVR开张了,一开始搞了一个AVR JTAG仿真器的自制活动,在当时AVR JTAGICE仿真器在一些单片机网站都卖到几百甚至上千元,在这些资料公开的同时也终结了兼容JTAG仿真器的高价,再后来又掀起一股STK500下载器热,在阿莫的宣传:STK500下载器下载速度是并口下载线的十倍以上,我在惊喜和怀疑之中从OURAVR网站邮购了STK500下载器和JTAG仿真器,刚开始我的串口能和JTAG通讯但不能和STK500通讯,后来阿莫给我换了一个依然如故,即使是这样我仍然不死心,接着我卖掉旧电脑买回新电脑,这回STK500下载器正常了,经过测试发现下载速度确实很快,接着我就淘汰了相伴几年的并口下载线,但是有的时候用过的某些旧芯片不能读写,但是先用并口下载线擦除一遍又可以用了。   到现在为止我深信STK500会成为AVR单片机的主流下载器,接着我收集资料分别DIY了AVR910串口下载线,AVRISP下载线,STK500下载线JTAG仿真器等一些工具,在参考了包括atmel原装在内的各种各样的AVR STK500和AVR JTAGICE的线路之后,我设计了这个RSR232/USB双接口的STK500ISP/JTAG二合一的产品,为什么做了个2合1的东西?主要是由于大部分人不喜欢用仿真器,但是RS232有了,USB有了,外壳有了,PCB只想做一次,虽说是2合1其实只是通讯线路用电子开关切换来共用,其它都是分开的并且和atmel的固件完全一样,为了加上USB接口我到市场买回好几种USB转串口线进行测试,经过测试比较发现芯片为PL-2303HX的转换线兼容性和稳定性较好,最后就选定了这个芯片做USB接口,线路设计出来后又想让它工作于STK500的下载界面(一般大家叫的STK500下载器工作于AVRISP下载界面)因此加了一个74HC165,再后来一想我不能比别人做得更完善一些吗?接着又加了一个tiny2313用于STK500的自动升级与自修复,因此就有了现在的这个AVRISP/STK500下载界面相兼容并且STK500可以ebn文件自动升级的PCB。查看原理图 商城有供DIY的PCB和其它配件出售。
在按照原理图DIY通过之后开始选外壳,多方比较最终选择了质量最好的这个:

外壳选定之后开始设计PCB,完工之后就是这个样子:(部分元件装背面)板上有三组拨动开关,第一组4位称为k1全部拨到ON的位置,是用自身的STK500对JTAG的那个mega16进行写初始程序或手工升级和修复用的,默认k1全部拨到OFF为JTAG正常使用;中间2位的那一组称为k2,k2-1拨到ON的位置用于强制使用RS232通讯,这个时候USB只有取电的作用,k2-1默认拨到OFF则RS232/USB自动转换,没有插USB的时候RS232会和仿真器接通,这个时候由目标板给仿真器供电,插入USB的时候通讯由USB取代;k2-2默认拨到OFF的位置,拨到ON则对STK500进行stk500.ebn文件升级或修复(AVRISP界面直接点Upgrade就可以升级);右边那一组称为k3用于控制供电模式,默认k3-1为ON由USB给仿真器供电,k3都拨到ON则系统由USB供电并对外输出4.2V@200mA的电源。

装上芯片之后:那个2303(或FT232RL)芯片旁边有没有晶体振荡器都是正常的,没有的话就是内置晶振,有就是外置晶振。

到现在才发现最难的工作还在后头,此外壳从宁波三和壳体公司定购,质量绝对一流,到货之后发愁了,串口和USB插头的位置要开孔,首先想到的是数控激光切割机开孔,经过实验一般的激光切割机虽然可以切10mm厚的压克力但是切不动3mm厚的这个外壳,铣床加工经过试验效率太低废品率居高不下,¥6.5元一个的外壳一下报废一个实在心疼,看来这个方法也不行,最后抱着试试看找了一家模具雕刻厂总算是比较满意了,慢工出细活换来的是成本的上升但看上去更专业。

此外壳侧边有一个孔正好做可编程频率输出端子,刚好可以插一根杜邦插线,具体输出频率是多少请在STK500下载界面Board菜单中选取,2006年1月8日以后出售的2in1这个频率输出端还有一个启动STK500估件升级的功能:在断电并拔掉所有联机线的情况下,用杜邦插线将频率输出端和ISP插座左下角GND的那根插针连接,然后插入USB电缆接着启动AVRProg进行升级或修复STK500固件,早先要拨一个开关才能更新或维修STK500现在不用拨了。

看看底部的接口吧,左边是STK500ISP接口,右边是JTAGICE仿真器接口

接通USB插头,左边第一个红色LED为电源指示灯(USB-power),第二个绿色LED为STK500电源指示(STK500-power),第三个黄色LED为STK500ISP下载指示灯(STK500-RUN),第四个绿色LED为JTAG连接到目标板的电源指示灯(Board-power),第五个LED为JTAGICE仿真器运行指示灯(JTAG-RUN),虽说ISP和JTAG两条10芯扁平电缆插错不一定损坏设备,但是不做保证也不推荐这样做,即使两条电缆同时插上STK500ISP和JTAG端口,这时设备会选择接通JTAG工作但是仍然不推荐用户这样做,应该根据需要该插哪条就插哪条。                  最后打包:串口延长线×1  USB连接线×1  ISP线×2+1  频率输出杜邦插线×1 2合1主机×1  USB Driver 1CD

目标AVR器件的编程
可以用AVR Studio的4.0或更高版本控制STK500和JTAGICE,选择STK500or AVRISP和Auto或者具体的COM?端口进行联机,点击avr studio主窗口中的图标前面标有Con的那个图标,然后按下图选择即可进行STK500或者JTAG的联机,由于avrstudio会记忆用户使用的设备是STK500ISP还是JTAG并且同时会记忆用户使用的COM号,如果下次和上次使用的是相同的设备并且没有更换COM口,那么下次使用的时候直接点击右边标有AVR的那个图标就可以快速进入联机状态;如果下次和上次使用了不同的设备或不同的COM口请使用Con图标进行联机。
连接STK500ISP:

连接JTAGICE仿真器:联机之前请确保本设备已经和目标板有连接且LED4点亮。

进行JTAGICE联机时请确保目标AVR选中如下熔丝项:如下图

下图是在avrstudio里打开STK500 program的联机图片1,在ISP下面有高压编程选项但不可使用,在“program”标签中的下拉菜单中选择AVR目标器件,在Flash标签的浏览按钮处装载intel-hex文件。

下图是在avrstudio里打开STK500 program的联机图片2,有一个STK500Osc选项,它从可编程频率输出端输出一个频率可选为3.69M 1.84M 1.23M32.7KHZ的方波信号,我没有示波器也没有频率计无法准确的去测量,将我的MEGA16试验板熔丝选为外部晶体振荡器,接着我拆掉晶体并且从Osc端接一根线到XTAL一端,试验板上的AVR开始运行了,如果选择频率为STOP则实验板单片机停止运行,看来这个频率输出端是可用的;如果你的目标AVR不小心将熔丝设成了外部时钟而锁住,这个可编程频率输出端就可以派上用场啦,另外你还可以用VTarget测量出目标板或者STK500编程器本身的供电电压,另外还有一个ISP选项,一般来说其频率必须等于或小于目标单片机运行频率的1/4,否则不能正常下载。

下图是在avrstudio里打开STK500 program的联机图片,可以读出AVR芯片的特征字,还可以对内部RC振荡器频率进行校准,校准字可以选择写入flash或者eeprom里面。

熔丝选择项:

锁定位选项:

批量自动编程选项:

关于在AVR studio中详细使用STK500和JTAG ICE请参考马潮老师翻译的avrstudio中文帮助
STK500常见故障现象:如下图,表示STK500设备本身是好的,请检查BoardISP选项,一般来说其频率必须等于或小于目标单片机运行频率的1/4否则不能下载或读取到错误的溶丝位等,比如目标AVR时钟1M选115KHz,2M以上选460KHz,7.3728M及以上选1.845M

JTAG常见故障现象:如下图,表示JTAG本身是好的,只是无法和目标AVR联机,请检查目标AVR芯片和JTAG接线是否正确?JTAG溶丝使能设置好没有?JTAG电缆可能有断线更换一条再试。

avr stk500支持的装置列表:
AT86RF401 90CAN128
AT89S51 AT89S52 AT90PWM2AT90PWM3
90s1200 90s2313 90s2323 90s2343 90s4414 90s4433 90s4434 90s8515 90s8535
mega103 mega128mega16 mega161 mega162 mega163 mega165 mega168 mega169 mega32 mega323mega325 mega329 mega406 mega48
mega64 mega8 mega8515mega8535 mega88 mega2560 mega2561 mega3250 mega3290 mega644 mega645mega6450 mega649 mega6490
tiny11 tiny12 tiny15 tiny22tiny2313 tiny22 tiny24 tiny26 tiny28 tiny45
stk500下载器固件下载压缩包里有2个hex文件,一个是旧版本,一个是新版本,不过使用了这个套件之后你已经用不着它们了,因为你现在可以直接把avrstudio里面带的那个stk500.ebn升级用的固件直接烧进去就好了,使用之前请先下载对应你操作系统的USB驱动并安装。查看mega8535的熔丝位