使用ATJTAGICE3进行debugWIRE调试 (2012-03-03 10:38:47)

ATMEL将开发工具AVR Studio升级到5.0和5.1,一些老的开发工具在5.x下不再支持,比如串口的JTAGICE。目前流行的仿真器有两种,JTAGICE3和JTAGICE MKII。从官方资料看,这两款仿真器支持的芯片种类差不多,但前者$199,后者$299。综合比较下来,我选择购买了JTAGICE3。

官方地址:  http://www.atmel.com/tools/JTAGICE3.aspx?tab=overview 

Key Features

  • Supports JTAG, aWire, SPI and PDI interfaces
  • 3 hardware program breakpoints and 1 maskable data breakpoint (depending on the OCD module on the AV
  • Symbolic debug of complex data types including scope information
  • Up to 128 software breakpoints
  • 1.8V to 5.5V target operation
  • Uploads 256KB code in ~14 seconds (XMEGA using JTAG interface)
  • USB powered
MKII比它多了个RS232下载口,可以支持外部供电,估计可以不用电路板的外部电源,而JTAGICE3要外部电源。

还有更重要的一点差别是,MKII支持 AVR Studio 4.13,而JTAGICE3只有在 AVR Studio 5.x以上版本才获得支持。

我的观点是:铆上一种单片机,用的挺好的,就不换了,比如AVR。这个系列的有几种代表性产品,比如, ATmega48/88/168 就是兼容的功能和管脚,差别在FLASH和RAM容量。最近又出了一款328,FLASH容量达到32K字节,这对不断的需求来说是难能可贵的。

2,JTAGICE3的使用

安装AVR Studio 5.1,即可安装其驱动程序。打开 AVR Studio 5.1,提示更新固件,按步骤更新即可。

仿真器主要有连个功能:一个是仿真,一个是下载。选择不同器件,有的支持JTAG仿真,有的支持DebugWire仿真。为此,JTAGICE3配备了四个接头,分别是10针JTAG、6针DebugWire、3针的微小间距DebugWire、以及10针散线自插的接头。这些连接器在提供仿真功能的同时,还有ISP下载功能。

对普通的JTAG接头,仿真和下载两种功能无须区分。对支持DebugWire仿真的开发工具来说,需要特别说明如下:
  • 器件出厂设置为ISP模式(DWEN=1,未编程),可以直接使用菜单命令 工具 -> AVR Programming,来启动ISP界面。这里可以修改编程速度,将速度提高之后,它的编程速度远远大于双龙的USBISP速度。这里可以下载HEX文件,其格式与之前的标准格式没有差别。可以改写熔丝位,可以加密。
  • 缺点是,下载文件处,不识别中文目录和文件名。初步测试,无法读进IAR AVR开发的项目执行文件.D90进行调试。
  • 熔丝位DWEN是使能DebugWire,将它允许后,将不再可以进入下载功能。即,DebugWire和ISP是互斥的。
  • 我日,允许DWEN之后,单线调试好使了,但怎么改回去啊,无法ISP下载程序了。界面那个"Disable Debugwire and Close"功能无法操作,.NET直接报错,不灵了。
  • 换台机器,重装5.1,还是不灵。啊,苍天呐!
3,JTAGICE3用户手册关于debugWIRE的说明

debugWIRE通讯管脚(dW)物理上与外部复位信号(RESET)的管脚相同,共用一条线。因此,当debugWIRE接口使能时,无法支持外部的复位源。

为了使用debugWIRE 接口,应该设置目标器件上的debugWIRE使能熔丝位 (DWEN)AVR器件出厂时,这个熔丝位缺省是未编程的。debugWIRE接口自身不能设置这个熔丝。为了设置DWEN熔丝,应该使用SPI编程模式。上层应用软件可以自动地提供必需的SPI管脚连接来解决这个熔丝问题,这一熔丝也可以从Atmel Studio编程对话框的使用SPI编程来设置。

方法一:

尝试启动一个debugWIRE调试会话。如果debugWIRE未被使能,Atmel Studio将给出重试,或者尝试使用SPI编程来使能debugWIRE。如果你连接了全部功能的SPI插头(即,6针插座,带SCK等线,译者),debugWIRE将被使能,并且你将被要求重启目标板的电源——这将有效地改变熔丝。

方法二:

打开编程对话框,使用SPI模式,并且校验芯片ID从而确保芯片选择正确。勾选DWEN熔丝来使能debugWIRE

注意,去掉勾选SPIEN熔丝编程时,RSTDISBL熔丝不要编程,这点非常重要!RSTDISBL用来禁止RESET复位功能,将RESET对应的管脚用作普通IO。不这样做的话,将使得器件卡死在debugWIRE模式,必须使用高压编程才能重置DWEN位。

为了禁止debugWIRE接口,使用高压编程来去掉DWEN熔丝位。作为一种替代,使用debugWIRE接口可以禁止自身的debugWIRE功能,进而通过设置SPIEN熔丝位,来允许SPI编程。

注意:如果SPIEN熔丝没有去掉勾选(即,SPIENDWEN同时勾选,译者),Atmel Studio将无法完成这个操作,此时只能用高压编程。

  • 在一个调试会话期间,从“调试”菜单选择“Disable debugWIRE and Close”命令,DebugWIRE将临时被禁止,并且Atmel Studio使用SPI编程来去掉DWEN熔丝位的编程。
  • DWEN熔丝使能之后,在所有睡眠状态下,系统时钟的一部分会一直运行。这将增加AVR睡眠模式的功耗。因此,在不使用debugWIRE时,DWEN熔丝应该被禁止。

 设计一块目标应用的PCB时,如果使用debugWIRE调试,则应考虑下列事项,以确保正取操作: 

  • dW/(RESET)线上的上拉电阻应该不小于10 kΩ。这个上拉电阻对于debugWIRE功能来说是不必要的,因为仿真器内部提供了这个电阻。
  • RESET管脚直接连到VCC将造成debugWIRE功能失效,并且可能损坏ATJTAGICE3
  • 使用debugWIRE时,应该去掉任何连接到RESET管脚的稳定电容,因为它们可能会影响到debugWIRE接口的正确操作。
  • 不要在RESET线上连接任何外部复位源或者其它有效的驱动器件,因为它们可能会影响到debugWIRE接口的正确操作。
  •  不要对器件的加密位(lock-bits)编程,debugWIRE接口需要这些加密位被清除,以使其功能正确。

 4,总结

  • 无须在SPI下载窗口改变DWEN熔丝,即便这里修改了该熔丝,能否进入debugwWIRE功能也是不确定的,这个界面只是完成程序下载功能。
  • 调试过程正确的次序是:从DEBUG菜单启动调试会话,提示SPI修改DWEN熔丝,进入debugWIRE模式;选择YES,会改变熔丝;然后提示重新上电,上电后即可进入调试状态。调试完成后,则选择菜单中的禁止debugWIRE命令,即可改写DWEN熔丝,清除调试使能。此步骤当与下列小日本链接的过程完全一致。
  • 非常重要的是,去掉RESET管脚的复位电容(剩下10k以上的上拉电阻可以不理睬),否则无法进入调试状态。
  • 所有调试结束,正式发行时,可以恢复RESET周边电路,并去掉DWEN熔丝,省电。
5,其它

    目前, Atmel Studio 最高版本是6.0bate,粗略看起来,比5.1增加了对两类新的芯片支持。


ATMEL官方论坛:  http://www.avrfreaks.net
ATMEL官方技术支持: http://support.atmel.com/bin/customer.exe?=action=     慢的要死,值得忽略。
一个小日本的站点: http://www.xstech.co.jp/AVRStudio5/Debug/AVR_Debug.html

你可能感兴趣的:(使用ATJTAGICE3进行debugWIRE调试 (2012-03-03 10:38:47))