| 网站首页 | 精品文章 | 下载中心 | 本站教程 | 邮购须知 | 电子商城 | 网站简介 | 常见问题集锦 | 
您现在的位置: 单片机启点网 >> 本站教程 >> 本站产品 >> 本站教程正文 用户登录 新用户注册
[组图]AVRJTAG & STK500二和一 仿真器          【字体:
AVRJTAG & STK500二和一 仿真器
作者:天安电子…    本站教程来源:本站原创    点击数:    更新时间:2007-03-13
对于具有JTAG接口的AVR Mega系列单片机来讲,JTAG片上调试系统是一个完美的工具。
JTAG接口是一个完全兼容IEEE1149标准的4线TAP控制器。IEEE1149的制定和发展,为PCB的断通测试提供了标准。ATMEL的 AVRMEGA系列单片机对此标准进行了扩展。使之可以具有完全的编程能力和完全的实时在线仿真特性,而价格仅是其他仿真系统的一小部分。
实物图片如下:



JTAG仿真器的特点
同时完全支持AVR Studio 3.XX和4.XX版本。
支持所有具有JTAG接口的AVR系列单片机
完全真实的实现AVR单片机的所有的电性能
可以完全实现片内的数字或模拟功能
可以在程序执行过程中实现单步(step)、连续(run)、断点(breakpoint)、变量(watch
具有数据或程序空间断点
支持汇编和高级语言开发
PC机可通过RS232串口或USB口对目标板进行编程和控制
同时具有串行下载(ISP)功能,可以对AVR全系列单片机实现下载烧写芯片
针对不同用户可以灵活选择USB口或串口通讯的仿真器
可以使用PC机的USB口直接作为电源,也可以不使用外接电源而直接由目标板供电。
本JTAG仿真器的监控软件使用AVR Studio,由美国ATMEL 公司免费提供,具体下载和升级信息请访问www.atmel.com

  1. JTAG 片内调试系统的概念:

下面将介绍JTAG接口的片内调试系统(On Chip Debug)的概念以及与其他的在线仿真器(In Circuit Emulator)有什么区别。
1、仿真器同片内调试系统对比:
在线仿真器是一个用来仿真一个或一组器件特性的设备。例如要仿真mega32,在线仿真器要通过设定使自己模拟mega32 的特性。其特性越是接近实际中的mega32仿真的效果就好。下面是一个典型在线仿真器的简单框图。



JTAG仿真器通过不同方法实现。JTAG仿真器联系的内部片上调试系统存在于目标板的AVR处理器上。使用兼容IEEE1149标准的JTAG接口监视和控制运行中的实际器件,可以这样理解JTAGICE的工作,所有具有JTAG接口的AVR单片机都有一个使用JTAG界面的片内调试系统,片内调试系统可以控制器件的运行,就像传统仿真器模拟仿器件特性一样。JTAG仿真是控制实际器件的外设和代码执行,下面是一个片内调试系统OCD框图:



使用JTAGICE可以精确实现器件的时序和电特性。但另一方面,一些传统仿真器可以实现的一些对器件内部资源附加控制,在JTAGICE中无法做到。在代码调试过程中,知道一些JTAG的操作是必要的。在下面的内容里,将会说明一些注意事项
2、运行模式:
代码完全独立自主地运行不受JTAGICE的影响,JTAGICE会连续检查是否执行到断点,在遇到断点时,OCD会打断程序运行,并把所有可能需要的信息通过JTAG接口由JTAGICE传送给AVR Studio。由于代码独立运行不受JTAGICE控制,所以在断点发生前的状态是未知的。
3、停止模式:
在执行到断点时,OCD会将CPU挂起,但IO仍在运行。例如在一个USART发送过程中发生断点,传统仿真器能把整个系统挂起,发送过程也会停止,而在使用OCD时,USART将继续运行直至整个发送完成。
4、断点:
AVR的OCD具有两类断点:硬断点和软断点。
硬断点:
在OCD系统中由四个用于存储程序存储器地址的计数器,他们每个可以存储一个地址。由于JTAG ICE要使用一个寄存器存储单步断点,只有三个寄存器的组合可用于硬件断点。由于软件断点要重写整页的FLASH数据,在断点经常改变时推荐使用硬件断点。
软断点:
软断点是在FLASH中写入一个断点指令,当在AVR Studio中发出一个断点指令后,就有一个打断指令写入FLASH,当程序执行到此处时就会挂起,要继续运行就必须由OCD系统发出一个开始指令,一旦开始继续运行,在FLASH中的程序运行前,断点指令会重新放置。
5、IO寄存器:
JTAGICE在观察IO寄存器时的限制:
在AVR器件运行到断点时,OCD系统会读出所有的寄存器内容,而当一些寄存器内容读出后,另一些寄存器的内容就无法读取了(如读USART数据寄存器,导致RXC清零)特别需要注意事项中列出的所有JTAGICE不能访问的IO寄存器。
一些IO寄存器需要在控制信号后特定的时钟周期内读写。在停止模式时,IO时钟和外设是继续全速运行的。单步执行过这样的代码时经常无法得到正确的时序。因为在单步操作过程中已经执行过了无数个IO时钟周期。要避免错误结果,应该尽量使用宏,函数,或执行到光标的操作。
6、支持的设备:
JTAGICE支持全部带有JTAG接口的AVR处理器,ATMEL公司推出的以下系列:
ATmega16/162/164/165/169,ATmega32/324/325/3250/329/3290,ATmega406,ATmega64
/640/644/645/649/6490,ATmega128/1280/1281,ATmega256/2560/2561,AT90CAN128。
ATMEL未来推出的AVR芯片部分亦带JTAG接口,只要目标AVR MCU带有JTAG接口,即可进行JTAG仿真调试。
7、STK500功能支持当前全部AVR单片机的编程下载,以及ATMEL未来推出的芯片。
二、使用入门
1、打开包装
包装盒内有下列物品:
1、JTAGICE主机和数据通信电缆(1条)
2、9针 RS232通信电缆(只针对串口产品)。
3、USB通信电缆
4、内有软件和数据手册的随机光盘
5、全中文使用说明书(电子版)
系统最低配置:
1、486处理器,操作系统为WIN95、98、98SE、MW、XP、2000等。
2、16M RAM
3、50MB 的硬盘空间
4、最高通信速率为115200BPS串行口
5、至少一个USB口


4、其他:
使用JTAGICE进行编程操作:JTAGICE不但可以进行片内调试,还能为MCU烧录程序,JTAGICE的烧录软件是对STK系列烧录程序进行了扩展。编程时一定注意不要禁止JTAG Enable熔丝位。
5、注意事项:
1外设的问题:注意在OCD断点处于停止模式时,只是CPU挂起,大部分设备继续全速运行。但有两个例外的设备:
定时计数器和看门狗,定时计数器可以通过菜单设定在停止模式时运行还是停止。看门狗会在进入停止模式时挂起。
2单步问题:由于停止模式时,IO口的继续全速运行使我们应该充分注意其产生的时序误差。
例如:OUT? PORTB, ??0xAA
IN??? TEMP? ,? PINB
在正常运行过程中不能等到正常结果,要在OUT和IN之间加一个NOP延时。而在使用JTAGICE单步时,TEMP始终等于0xAA,正是因为单步的延迟口锁存器有足够的时间完成所需要的IO操作。
3软件断点:
有的AVRCPU有断点指令,可以通过OCD设置软件断点。但要考虑到软件断点是向FLASH中插入指令,如果频繁设置或移动断点,不但缩短FLASH寿命,还会耗费OCD的时间。
4目标CPU复位或掉电
JTAGICE在调试过程中掉电,适配器就会复位和失去通信。假如目标CPU掉电或进入POWER DOWN模式,在其重新执行命令前,AVR Studio不会显示新的状态。
5、 JTAG 相关的熔丝位设定:
两个相关的熔丝位必须激活(AVRStudio可以自动设定OCD位),才能通过JTAG进行仿真调试或烧录程序。两个熔丝位在出厂时设为激活状态。如果被禁止就要通过其他的ISP工具激活两个熔丝位才能使用JTAG接口。
6、 JTAGICE只允许一个设备在JTAG链上
7访问IO寄存器:
在AVRStudio中改变IO寄存器的内容在单步或全速运行前不会写到实际的寄存器中。要留意在调试某些寄存器时,对ADC SPI USART的影响。

8、 如果JTAG界面处于激活状态,相应的引脚不能用于其他功能。

    • STK500功能介绍:

    该产品提供串行下载(ISP)功能和并行高压方式下载编程,可以对AVR全系列单片机实现下载编程。ISP下载编程模式在AVRStudio里识别为STK500 V2(目前很多编译软件也支持STK500,比如ICCAVR等),它支持全系列的AVR芯片的下载编程(包括支持ATMEL未来推出的AVR芯片),STK500是官方唯一推荐的下载方式,是目前下载速度最快的方式,比AVRISP快近1倍,比一般的并口ISP快10倍。

    1. 可使用STK500下载接口对目标MCU进行编程。与JTAG不同的是,JTAG必须占用JTAG对应的IO口。(比如目标AVR MCU为ATmega16,那么使用JTAG进行仿真或下载将占用PC2-PC5这四个口)另外,使用JTAG接口无法对某些熔丝位进行恢复,比如使用JTAG接口设置了JTAGEN=0,(仿真不允许),那么将无法再使用JTAG接口进行仿真调试、非仿真方式烧写程序、熔丝位等。而使用STK500则可以!

    2、STK500附带实用的解锁功能:利用它的可调频率输出可解锁系统时钟误设为RC振荡器,
    而外部无RC振荡电路的AVRMCU。另外,在某些AVR控制实验中可以利用这个功能测试您的程序是否正常工作,比如测试ICP,测试频率计算等。可编程频率输出端口位置见下图:



    3、可对AVR器件进行串、并行高压编程,高压编程最大的优势是可以自由修改各个熔丝位,
    使一些被关掉ISP(串行下载使能位)和JTAG_EN使能位的AVR单片机,“起死回生”。当然您也可以使用它故意关掉ISP和JTAG_EN位,这样您的产品不再具有下载功能,可以防止
    您的软件被非法读出、复制,最大限度地保护您的软件知识产权不被侵犯。
    4、JTAG和STK500固件程序均可自动检测AVRStudio的新版本,您可以不断升级它们的固件
    程序。如果未来您使用了更新的AVRStudio版本,请您升级它们的固件程序。这样可不断支持
    ATMEL推出的最新的AVR芯片。独家推出的JTAG/STK500自升级自动模式,您可以随时随地更改您的固件版本号,即可以升级,也可以降级。
    5、多种供电模式:出厂默认使用目标系统给仿真下载器供电,目标系统必须有电源提供;当
    然您也可使用USB连接线给仿真下载器和目标系统供电(需要切换内部开关,由于USB输出电流有限,如果您的目标系统需要超过500MA的电流支持,那么请不要这么做。
    6、有些具体的使用问题建议参考英文原版文档。
    该产品已经过多次改进升级,并已批量发售,性能更稳定可靠!


    AVR JTAG/STK500二和一 仿真器与美国ATMEL公司的原装JTAGICE和STK500完全兼容,因此我们对ATMEL 原装JTAGICE和STK500的用户手册的部分章节进行了翻译,并在翻译的过程中根据我们产品的情况对原文有一定的修改。由于译者英文水平有限,请使用者在必要时参考英文文档。有关仿真器使用的其他问题,可发邮件到shnd@tom.comshnd@eyou.com查询
本站教程录入:江在流    责任编辑:江在流 
  • 上一篇本站教程:

  • 下一篇本站教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关本站教程
    没有相关本站教程
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)