Section 1

导言

ATICE10

感谢您购买和使用ATICE10 AVR ® In-Circuit Emulator (ICE) 硬件在线仿真器。ICE10是一款功能齐全，使用方便，专为Atmel公司AVR系列单片机提供开发与调试的高端仿真器。

使用手册

本使用说明是 Atmel AVR ® ICE10 在线硬件仿真器的参考资料。它不仅简要地说明了如何使用 ICE10，同时也为高级用户提供一份详细的参考。在本手册中，相关的AVR单片机型号都是以简称形式出现的，例如：AT90s2313简称为S2313等等。

概述

Atmel AVR ? ICE10 是一款针对大部分AVR单片机的实时在线硬件仿真器。该仿真器必须在AVR Stadio 3.5或更高版本的支持下工作。

ICE10 特性

  • 该仿真器支持下列器件: ATtiny11, ATtiny12, ATtiny15, ATtiny22, ATtiny28 AT90S1200, AT90S2313, AT90S/LS2323, AT90S/LS2343, AT90S/LS2333, AT90S/LS4433, AT90S4414, AT90S8515, AT90S/LS4434, AT90S/LS8535
  • 实现仿真芯片上所有数字和模拟功能
  • 跟踪缓冲区(32K x 96位)
  • 无限断点设置
  • 可以查看和访问寄存器组，堆栈指针寄存器（SP），程序计数器（PC），存储器
  • 访问所有的输入输出寄存器
  • 逻辑分析接口
  • 支持汇编与C语言调试
  • 5路触发输出
  • 5路触发输入
  • 支持内部和外部时钟方式
  • 外部数据存储器仿真
  • 2.7 - 6.0V工作电压
  • 通过软件升级可实现对AVR系列新器件的支持。

ICE10 产品目录

ATICE10 包含以下单元：

  • ICE10 在线仿真单元
  • 带电缆线的ATtiny15POD板
  • 带电缆线的AT90ADCPOD板
  • RS-232 电缆
  • 通用电源适配器(100-240V, 50-60Hz)
  • 美式电源线
  • 欧式电源线
  • 包含相关软件的CD
  • ATICE10 使用说明
  • 注意事项

系统要求

为了正确使用ICE10，需要满足下列硬件与软件要求。

硬件要求

奔腾系列个人电脑：

  • 32 MB 内存
  • 20 MB 空余硬盘空间
  • CD-ROM驱动器或网络接口(用于获得相关软件和数据手册）
  • 显示器（VGA monitor）
  • 19200 bps RS-232 接口(COM 接口)

软件要求

下列操作系统都支持 AVR Studio：

  • Windows 95
  • Windows 98 (SE) (ME)
  • Windows NT 3.51
  • Windows NT 4.0
  • Windows 2000

工作环境

  • 工作温度：0C - 70C
  • 工作湿度：10 - 90% RH(无冷凝)

主机接口

  • RS-232C @ 19200 bps, N81
  • 9针孔型连接器
其它相关内容:

  • ICE10使用须知

  • ICE10使用说明

  • AT90ADCPOD配置

  • 硬件描述

  • 特殊注意事项

  • 故障排除


新增功能

ATICE10 2.0版本

通过使用AVR studio 中工具菜单栏中的ICE10 配置工具，可将ATICE10 从 1.10版本升级为2.0版本。如果要仿真AT90S8535芯片，1.10版本的ICE10必须根据应用笔记AVR070"Modifying AT90ICEPRO and ATICE10 to Support Emulation of AT90S8535"中所描述的那样进行额外的修改,详见ATMEL网站www.atmel.com 。


Section 2

ICE10使用须知

使用仿真器前必须正确连接和配置ICE10。这部分内容将介绍如何连接系统，以及如何选取和使用特定的POD板来仿真相应的AVR芯片。

硬件概述

下图是ICE10连接到目标板上的简图。一旦仿真器正确的连接和配置好后，它就能象要仿真的芯片一样在线实时运行，实现对应用程序的在线调试仿真。

ICE10 连接到目标板
ICE10 仿真单元

ICE10仿真单元包括仿真AVR数字功能所需要的逻辑电路，以及和与AVR Studio通讯的硬件电路，它的配置可在AVR Studio的控制下完成。

ATtiny15POD

上图是仿真ATtiny15时使用的ATtiny15POD板，该板不仅为仿真单元提供一个保护缓冲，还提供一个带差分输入和可调增益的四通道10bitA/D转换器。该POD板的配置是在AVR Studio中实现的，无须手动跳线设置。

AT90ADCPOD

上图是AT90ADCPOD板，它将用于仿真调试大部分型号的AVR芯片。这个POD板必须通过人工跳线才能正确的配置使用。有关AT90ADCPOD板的配置过程将在下面详细说明，用户也可以在AVR Studio 的在线帮助(on-line help)下，对AT90ADCPOD进行配置。

ICE10仿真器配有许多不同的排线连接电缆（Probe cable）。每次只能使用一个POD板和一个排线连接电缆进行仿真。所使用排线连接电缆的针数和式样必须和被仿真的芯片相同。

ATtiny15POD板仅能配合8-pin DIP的排线连接电缆使用。使用AT90ADCPOD板时，应该根据被仿真的芯片选择合适的排线连接电缆。

ICE10与PC的连接

ICE10通过标准RS-232(COM接口)连接到PC上。RS-232电缆用于连接ICE10和PC上一个未使用的COM接口。AVR Studio将自动对PC上所有的COM口进行搜索，检查是否连接了仿真器。

  • 如果其它设备已经占用了COM接口，就必须在打开AVR Studio前关闭该设备。因为如果有其他设备(例如：Modem,IrDA,PDA等)占用了COM口，AVR Studio是不能强制使用该端口的。

ICE10与目标板的连接

用户应根据其所要仿真的AVR芯片的型号，在ATtiny15POD和AT90ADCPOD两块不同的POD板中选择合适的一块连接到ICE10的POD接口上。下表给出了两种POD板所支持的芯片型号。

POD 支持的芯片
POD板 | 支持的AVR芯片
ATtiny15POD | ATtiny15
AT90ADCPOD | ATtiny11, ATtiny12, ATtiny22, ATtiny28 AT90S1200, AT90S2313, AT90S/LS2323,AT90S/LS2343, AT90S/LS2333, AT90S/LS4433, AT90S4414, AT90S8515, AT90S/LS4434, AT90S/LS8535

简而言之，ATtiny15POD板只支持ATtiny15，其余所有列出的芯片都是使用AT90ADCPOD板进行仿真。

跳线设置

ATtiny15POD板和AT90ADCPOD板的配置方式是不同的。AT90ADCPOD板必须由人工方式，通过跳线设置来配置。而ATtiny15POD板无须跳线设置，它是在 AVR Studio中直接完成配置的，更详细的资料请看这里。

电源连接

ICE10系统含有一个可提供15W@5V功率的电源适配器。ICE10本身的消耗大约10W，因此ICE10所配备的电源适配器能完全满足仿真器的需要。如果使用其他的外接直流电源，输出电压必须在9-15V，功率至少为20W。ICE10使用一个标准的，中心拄直径为2.1 mm的连接器作为电源接口。电源连接器的中心拄必须与地连接。

  • 当仿真器电源关闭前，必须先断开目标板上的电源，否则可能会引起POD板的损坏。

总结

在使用排线连接电缆将ICE10连接到用户的目标板前，须完成下面一系列的工作：

  • 将ICE10和PC的串口用RS-232电缆连接起来。

  • 使用所提供的宽排线连接电缆，将正确选择的POD板连接到ICE10上。

  • 选择正确排线连接电缆与POD板连接。

  • 确认并检查AT90ADCPOD板上的跳线设置正确。

  • 将ICE10仿真器连上电源(9-15VDC)。

  • 打开电源，检查红色电源指示LED灯是否点亮。

  • 经过一短暂时间(<10s)后，绿色LED灯亮，这意味着ICE10系统已经准备好了。

  • 关闭ICE10电源。

  • 将排线连接电缆（probe）插到目标板/适配器上。注意：当排线连接电缆（PROBE）已经与目标板处于连接状态并且仿真器电源关闭的情况下，切记不要将目标板上电。注意连接方位要正确。如果没有正确连接，ICE10系统可能被损坏。

  • 打开ICE10上的电源。

  • 目标板上电。

  • 运行AVR Studio。

其它相关内容:

  • 导言

  • ICE10使用说明

  • AT90ADCPOD配置

  • 硬件描述


Section 3

ICE10使用说明

这部分内容包含了使用ICE10和AVR Studio 仿真AVR芯片的主要特性和一些注意事项。AVR Studio是面向用户的专用软件，既支持汇编，也支持高级语言调试。如果没有在线仿真器与AVR Studio连接，AVR Studio则可以进行软件模拟仿真。在 AVR Studio 的在线帮助中提供了详细的使用说明，用户应仔细阅读，以充分了解和使用 AVR Studio 的功能和特点。

AVR Studio的安装

安装AVR Studio时，将配套的Atmel CD插入电脑中， 由"Products -> AVR 8-bit RISC -> Software"路径进入软件安装，在其中"astudio3.exe"文件上单击鼠标右键选择"save link as"，将"astudio3.exe"保存到硬盘的一个空目录下，然后运行"astudio3.exe" 。该文件是一个自解压的文件，它可以自动将您所需要的全部文件保存在当前目录下。最后运行"Setup.exe"进入安装环境，并根据提示进行系统安装。

  • ICE10仿真器需要在AVR Stadio 3.5或更高版本的支持下工作。

使用ICE10进行仿真

假定用户已经掌握了AVR Studio使用的基本知识，以下内容主要介绍ATICE10仿真器的特点和在使用中的一些注意事项。

初始设置

在使用ICE10进行仿真前，POD板和排线连接电缆（Probe）必须连接配置正确。详细内容请看这里。

启动和运行AVR Studio

当系统正确连接并上电后，首先要启动运行AVR Studio。当软件启动后，AVR Studio将自动检查在PC的COM口上是否有其所支持的设备工具。需要注意的是，AVR Studio是以顺序的方式检查PC上所有的COM口的，因此如果有其它的ATMEL设备连接到COM口上时，必须关掉它们的电源或断开其连接。这是因为AVR Studio会搜索任何其所支持的设备，并连接上第一个检查到的设备。

  • 确定没有其他设备（程序）连接（控制）ICE10所使用的COM口。

ICE10仿真器选项

当仿真器开始运行，并打开一个新的工程时，将弹出"Emulator Options"对话框。这个对话框中的设置，将决定仿真器如何工作。

  • 只有在AVR Studio 检测到仿真器并且加载了一个工程文件后，仿真器选项对话框(Options -> Emulator options)才会有效。

芯片确定

选择确定所要仿真芯片，灰色选项表示不支持的型号，表明仿真器不支持该芯片的仿真操作。使用ATtiny15POD时，所有的配置完全在该选项对话框中完成，而使用AT90ADCPOD时，则还需要在POD板上的跳线配置与选项一致，具体细节请看这里。

时钟源

采用AT90ADCPOD板仿真时，有三种时钟源可供选择作为系统时钟：使用ICE10内部的可编程时钟，使用用户板上的晶振或外部振荡源。使用时只能选择三个时钟源中的一个。而采用ATtiny15POD板仿真时只能使用（ICE10的）内部时钟。

内部时钟频率

ICE10的内部时钟源频率可在400kHz到20MHz范围内进行调整和选择，其产生频率的精度优于200PPM之上。另外，当采用AT90ADCPOD板仿真时，还必须进行相应的跳线设置，详细内容请看这里。

外部时钟频率范围

当使用目标板上的外部时钟时，频率必须在32.768kHz和10MHz之间，并在选项菜单中选择External Oscillator选项。当使用用户板上的外部晶振时，必须在外部频率范围的菜单中选择相应的频率范围，以使时钟系统能正常工作。

  • AT90ADCPOD板上的跳线设置必须与在仿真器菜单中选定相一致。

仿真器的配置

ICE10仿真单元中的Flash存储器可以同时保存6种不同芯片的仿真配置表。用户可在AVR Studio中的AVR仿真器配置选项(Tools -> ICEPRO/ AVRICE/ICE10 Configuration system)中，选择确定要仿真的芯片型号，将其配置表装载到仿真器中，此时ICE10才能对该型号的芯片进行仿真操作。下图是AVR配置系统的对话框，在这里可以对ICE10仿真单元中Flash存储器内保存的芯片仿真配置表进行删除和添加。

AVR配置系统对话框

上图左边一栏给出了目前没有在ICE10的Flash中保存的，但仿真器可支持的芯片类型。如要希望ICE能够仿真其中的一种，应从中选择该芯片，然后按下"Add" 键，将该芯片的仿真配置表加入到ICE10的Flash中。

  • 如果ICE10的Flash中已保存了6种芯片的仿真配置表，则应先删除掉不准备使用的芯片配置表，然后才能加入新芯片的配置表。

当所希望仿真芯片的型号都被加入到右边一栏中后（最多6种）按下载按钮，此时AVR Stdiou开始更新ICE10的Flash中保存的芯片仿真配置表。更新过程需要几分钟的时间，在此过程中绿色LED灯会一直闪烁。升级完成结束后，会弹出对话框提示更新过程完成。

  • 更新过程完成后，必须重新启动ICE，新的配置才能有效。

断点

ICE10支持无限断点设置。断点可以直接在源程序中设置。程序在运行过程中，一旦执行到设置为断点的语句前，程序的执行将会暂停。ICE10不支持复杂的断点设置。关于断点及其使用的详细介绍请参阅AVR Studio在线帮助。

跟踪

ICE10有32K x 96-bit缓冲区，用于记录每个时钟周期的程序运行信息。当仿真器停止时，可以通过检查跟踪缓冲区中的数据了解程序运行过程中的信息。关于在跟踪缓冲区中记录了那些数据以及如何查询请参阅AVR Studio在线帮助。当跟踪缓冲区满时，缓冲区将循环返回从头重新开始，覆盖掉以前的数据。

跟踪缓冲区能在程序的任何地方被打开或关闭，这就可以跳过一些延时循环或没必要记入程序运行信息的子程序，使跟踪缓冲区不会被不必要的数据覆盖掉。默认情况下跟踪缓冲区处于未被激活状态。如要跟踪整个程序，跟踪标记应放在程序的第一行。

关于跟踪功能和跟踪缓冲的进一步介绍请参阅AVR Studio中的在线帮助。

触发

ICE10提供了5路外部触发信号输入口和5路触发信号输出口，它们都连接到POD连接插座旁边的辅助连接座上。

输入的触发信号可以作为仿真器的暂停信号，同时也可被记录在跟踪缓冲区中。当某一个输入触发口设定为输入触发有效后，一旦在端口上出现上升沿时，仿真器的仿真过程就会暂停。

  • 在AVR Studio中的代码窗口中，可以设置任何一条指令为输出触发信号的触发点。如果一条指令被标记为触发输出点，当程序执行到这条指令时，被指定的触发输出端口会出现一个宽度为一个AVR时钟周期的高电平，该信号可用于触发逻辑分析仪或示波镜。
辅助连接座
辅助连接座的引脚定义
信号
辅助连接座
信号

GND

Pin 1

Pin 2

GND

Input 0

Pin 3

Pin 4

Output 0

Input 1

Pin 5

Pin 6

Output 1

Input 2

Pin 7

Pin 8

Output 2

Input 3

Pin 9

Pin 10

Output 3

Input 4

Pin 11

Pin 12

Output 4

GND

Pin 13

Pin 14

GND

在ICE10中有三个全局的屏蔽寄存器，它们用于控制上述触发端口的作用：

  • 触发输出全局屏蔽寄存器。该寄存器用于选择和确定在代码中设定的触发信号将从哪个触发输出端口输出。当某个触发输出端口在寄存器中被禁止，那么即使在代码中设置了触发信号从该端口输出，该端口也将一直保持为低电平。

  • 触发输入全局屏蔽寄存器。该寄存器用于选择和确定哪个触发输入端口的触发信号可以暂停仿真器的仿真。如果有多个触发输入端口被允许，那么任何一个被允许的输入端口的触发信号都会使仿真器的仿真暂停，但此时在跟踪缓冲区中并不能记录下是由于哪个输入端口引起的暂停。需要注意的是，触发输入端口有内部的上拉电阻，不使用的触发输入端口应该被禁止掉。

  • 外部跟踪屏蔽寄存器。该寄存器用于选择和确定哪个触发输入端口的信号被跟踪记录和存储跟踪缓冲区中。在这个寄存器中被禁止的触发输入端口，其端口信号在跟踪缓冲区中记为零。如果需要对一个触发输入端口进行跟踪记录，在外部跟踪屏蔽寄存器中应设置允许被跟踪记录。输入端口上的信号在AVR系统时钟的上升沿时将被保存在跟踪缓冲区中，因此输入的触发信号应在AVR系统时钟的上升沿时保持稳定有效，并持续50ns。当然此时的跟踪缓冲区应该是处于激活状态的。

触发输入允许和对触发输入信号的跟踪是作用在同一触发输入端口上的两个独立功能。需要注意的是，触发逻辑是边沿异步触发的，而跟踪逻辑则是由AVR的系统时钟锁定的，因此可能一个很窄的触发输入信号能暂停仿真器运行但不会被跟踪记录下来。

关于如何设置屏蔽寄存器，以及设置触发输入输出端口的详细内容请参阅AVR Studio的帮助。

逻辑分析接口

ICE10有两个标着“Logic Analyzer 1”和“Logic Analyzer 2”的接口。这两个接口提供了AVR的地址总线和数据总线上的信号，这就允许用户使用外部的逻辑分析仪通过这两个接口去监视两个总线上的信号。

逻辑分析接口1和2的插座

逻辑分析接口1的引脚定义
信号
逻辑分析接口1
信号

AVRCLK

Pin 1

Pin 2

低电平

Low

Pin 3

Pin 4

A15

A14

Pin 5

Pin 6

A13

A12

Pin 7

Pin 8

A11

A10

Pin 9

Pin 10

A9

A8

Pin 11

Pin 12

A7

A6

Pin 13

Pin 14

A5

A4

Pin 15

Pin 16

A3

A2

Pin 17

Pin 18

A1

A0

Pin 19

Pin 20

GND

逻辑分析接口2的引脚定义
信号
逻辑分析接口2
信号

AVRCLK

Pin 1

Pin 2

低电平

Low

Pin 3

Pin 4

D15

D14

Pin 5

Pin 6

D13

D12

Pin 7

Pin 8

D11

D10

Pin 9

Pin 10

D9

D8

Pin 11

Pin 12

D7

D6

Pin 13

Pin 14

D5

D4

Pin 15

Pin 16

D3

D2

Pin 17

Pin 18

D1

D0

Pin 19

Pin 20

GND

其它相关内容:

  • 导言

  • ICE10使用须知

  • AT90ADCPOD 配置

  • 硬件描述


Section 4

AT90ADCPOD配置

说明

这部分说明如何配置和使用AT90ADCPOD板。用户也可以在AVR Studio的帮助下完成配置过程。

AT90ADCPOD板能够支持以下芯片的仿真：

  • AT90S1200
  • AT90S2313
  • AT90S2323
  • AT90S2333
  • AT90S2343
  • AT90S4414
  • AT90S4433
  • AT90S4434
  • AT90S8515
  • AT90S8535
  • ATtiny11
  • ATtiny12
  • ATtiny22
  • ATtiny28
AT90ADCPOD的元器件位置图

AT90ADCPOD板包含以下功能：

  • 模拟比较器
  • 管理控制时钟振荡和来自目标板上XTAL信号的时钟电路
  • 模拟数字转换器
  • I/O信号电平转换的总线转换开关

在AT90ADCPOD板上，有11个跳线和1个开关，它们必须根据所仿真芯片的需要进行正确配置。

配置AT90ADCPOD

AT90ADCPOD板需要通过一条宽的电缆线（POD CABLE）连接到ICE10上。同时使用8针，20针，28针或40针的窄电缆排线与目标板连接。

正确地将窄电缆排线与目标板连接是非常重要的。每次只能使用上述4条窄电缆排线中的一条与目标板连接，窄电缆排线上标为彩色的一根线对应与AVR芯片的1号引脚。

必须选择使用正确的窄电缆排线与目标板连接，并插入POD板上标有相对应器件型号的插座中。注意，错误的连接有可能损坏ICE10。

仿真8个引脚的AVR芯片时需要注意，他们的PB3，PB4，PB5引脚有不同的功能，详细信息请参阅数据手册。跳线标号PB3和PB4应正确标注，以便正确设置PB3，PB4。请看下图：

仿真ATtiny11, ATtiny12, ATtiny22, AT90S2323 and AT90S2343 时的跳线设置
芯 片 | PB3/J310 | PB4/J311 | 跳线设置
AT90S2323，ATtiny11，ATtiny12，使用外部晶振 | OFF | OFF |
AT90S2343，ATtiny11，ATtiny12，ATtiny22，使用外部时钟源 | OFF | ON |
AT90S2343，ATtiny11，Attiny12，ATtiny22，使用内部时钟 | ON | ON |

以上跳线设置不会影响到其他芯片的仿真。

仿真ATtiny11和ATtiny12，如果要把PB5作为一个通用I/O使用，而不是作为RESET使用时，需要将PB5与外部RESET信号断开，此时只须将标为RST的跳线设置为OFF，就可把PB5作为一个通用I/O使用了。仿真其他芯片时，跳线RST必须设置为ON。

仿真AT90S2333，AT90S4433，AT90S4434和AT90S8535时，还需要使用一条10针的排线，将POD板上的2个10芯的插座连接起来，其中一个插座标为ADC，而另一个为ADC28或ADC40。

10针电缆的连接
芯 片 | 10针电缆
AT90S2333 和 AT90S4433 | 将 ADC 和 ADC28 连接
AT90S4434 和 AT90S8535 | 将 ADC 和 ADC40 连接

10针电缆的连接不会影响到其他芯片的仿真。

ICE10的电源

ICE10配备的电源转换器能够提供5V15W的电源。ICE10自身工作需要10W，所以如果目标板要从ICE10上获取电源，目标板的功耗应不超过5W(例如1A/5V)。如果超过这个值，可能导致ICE10损坏或无法正常工作。

ICE10提供的电源转换器已能够满足仿真器的要求。如果使用其他直流电源，输出电压应为9到15VDC，规律至少为20W。ICE10使用一个标准的，中心拄直径为2.1 mm的连接器作为电源接口。电源连接器的中心拄必须与地连接。

目标板的电源

如果目标板要从ICE10获得电源，POD板上的"EXT.POWER"跳线应短接，同时将跳线"PW2", "PW1"和"PW0"断开。

如果目标板使用自己的电源供电，POD板上的跳线"EXT.POWER"应断开，同时"PW2"，"PW1"和"PW0"跳线必须按下图正确设置，转换ADCPOD部分的供电电压与目标板的电源电压相符合。

PW2，PW1和PW0跳线设置表
目标板电源电压Vcc | PW2 | PW1 | PW0
2.7 - 2.9V | (ON) | (ON) | (ON)
3.0 - 3.3V | (ON) | (ON) | (OFF)
3.4 - 3.7V | (ON) | (OFF) | (ON)
3.8 - 4.1V | (ON) | (OFF) | (OFF)
4.2 - 4.5V | (OFF) | (ON) | (ON)
4.6 - 4.8V | (OFF) | (ON) | (OFF)
4.9 - 5.1V | (OFF) | (OFF) | (ON)
5.2 - 5.5V | (OFF) | (OFF) | (OFF)

ICE10的时钟系统

AVR ICE10可以使用3种时钟源：

  • ICE10的内部可编程时钟源
  • 用户目标板上或其它的晶体
  • 用户板目标上或其它的外部时钟源

ICE10的内部时钟源的频率可从400kHz到20MHz任意选择，其大部分的频率精度都在200PPM之上。

如果使用目标板上或其它的外部时钟源时，频率范围应在32.768kHz到10MHz范围之间，同时需要在AVR Studio的仿真器菜单选项中选择External Oscillator，当使用外部晶体时，必须在AVR Studio的频率范围菜单中选择与晶体相配的频率，使时钟系统能正常工作。

在POD板上，通过一条2线电缆将2个XTAL引脚连接到ICE10。该2线电缆一端与J103连接，另一端根据仿真芯片的不同，连接到靠近所使用的窄排线（probe）座附近的一个2芯座上，具体连接见下表。

仿真不同芯片时的2线电缆连接表
芯 片 | 2线电缆
S1200，S2313 | 连接J103和J305
S4414，S8515 | 连接J103和J306
tiny11，tiny12，tiny22，S2323，S2343 | 连接J103和J307
S4434，S8535 | 连接J103和J308
tiny28，S4433，S2333 | 连接J103和J309

J103、J305-J309的插座上，标有“*”标记为1号脚。

如果ICE10的时钟系统使用目标板上或外接的晶振时，J101跳线必须断开。而当ICE10的系统时钟使用目标板上或其它的外部时钟源时，J101跳线必须短接。下表给出J101的跳线设置。注意，在两种情况下，跳线S101都必须为短开状态（OFF）。

J101的跳线设置
系统时钟源 | 跳线设置
晶振 | (OFF)
外部振荡源 | (ON)

当外接晶振到POD板振荡电路的线路过长时，就可能会引起问题。靠近J103的旁边有一个插座用于安装外接晶振，此时就不需要使用2线电缆了。如果外接晶振的频率超过1MHz，同时在AVR Studio中仿真选项中上进行了选择确定，那么S101应该设置为ON。其他状态下，S101应设置为OFF。

当仿真AT90S2343或ATtiny22时，不能使用外接晶振。

实时时钟振荡器

这部分内容仅用于S4434和S8535的仿真。

在POD板上有一个32.768 kHz的晶体构成的实时时钟振荡器。由于目标板和POD板上实时时钟振荡电路之间电缆线太长，就不能使用目标板上的表用晶振来构成实时时钟振荡源用于仿真实时时钟了。如果实时时钟采用其它的外部时钟信号作为时钟源时，应将跳线J104短接，其它情况时J104应断开。

模拟比较器

只有跳线S0和S1正确设置，POD板上的模拟比较器才能正常工作。下表给出了跳线的设置。

模拟比较器的跳线设置
芯 片 | S1/J105 | S0/J106
tiny11，tiny12，tiny28，S1200，S2313 | (ON) | (ON)
S2333，S4433 | (ON) | (OFF)
S4414，S4434，S8515，S8535 | (OFF) | (ON)
跳线设置不会影响到其他没有模拟比较功能的芯片。

未提及的接口

POD上的6针接口是用于产品测试的。

跳线设置参考表

以上介绍了POD板上的所有跳线设置。对于有经验的用户，可以参考下表进行跳线的设置。

跳线设置参考
标 号 | 名 称 | 描 述 | 初始化设置
J101 |  | 如果使用目标板上的外部时钟信号(不是晶振)作为ICE10的时钟源时，短接该跳线（ON）。 | (OFF)
J102 | EXT.POWER | 如果目标板上的电源由ICE10(Vcc= 5V)提供，短接该跳线。 | (ON)
J103 |  | 当使用外接晶振或外部时钟源作为ICE10的系统时钟时，须使用2芯电缆将其与J305-J309中的一个相连接。 | 未连接
J305-J309 |  | 当使用外接晶振或外部时钟源作为ICE10的系统时钟时，须使用2芯电缆将J305-J309中的一个与J103相连接。 | 未连接
J104 |  | 当使用外部振荡器作为实时时钟的时钟源时，短接该跳线。 | (OFF)
J105 | S1 | 模拟比较器设置。见J101的设置描述。 | (ON)
J106 | S0 | 模拟比较器设置。见J101的设置描述。 | (OFF)
J109 | RST | RESET引脚的功能选择。如果外部复位引脚RESET无效，则跳线设置为OFF。该设置仅对于仿真tiny系列的AVR芯片有效。 | (ON)
S101 |  | 当POD板上的外接晶体座上安装有频率超过1MHz的晶体时，该跳线设置为ON。 | (OFF)
J200 | PW0 | 电源转换设置 | (OFF)
J201 | PW1 | 电源转换设置 | (OFF)
J202 | PW2 | 电源转换设置 | (OFF)
J310 | PB3 | 8pin 芯片的时钟选择 |
J311 | PB4 | 8pin 芯片的时钟选择 |
J401 | ADC | A/D转换器的连接座。如果使用A/D转换，须使用10芯排电缆将其与J402或J403连接。 | 未连接
J402 | ADC28 | A/D转换器的连接座。仿真AT90S2333或AT90S4433时，使用10芯排电缆与J401连接。 | 未连接
J403 | ADC40 | A/D转换器的连接座。仿真AT90S4434或AT90S8535时，使用10芯排电缆与J401线接。 | 未连接

其中一些跳线设置仅对仿真某些特定的芯片有效：

  • 如果在AVR Studio中选择使用内部时钟源，则J101, J103和J305-J309跳线设置无效。
  • 当仿真的芯片没有ADC功能时，J401, J402和J403跳线设置无效。
  • 当仿真的芯片没有模拟比较功能时，S1和S0(J105和J106)跳线设置无效。
  • 对于20，28和40个引脚的芯片，PB3和PB4(J310和J311)跳线设置无效。

其它相关内容:

  • 导言

  • ICE10使用须知

  • ICE10使用说明

  • 硬件描述


Section 5

硬件描述

前置面板

ICE单元的前置面板

状态显示灯

ICE单元的前置面板如上图所示。两个LED作为指示仿真器的工作状态。上电后，红色LED亮表明电源正常供电，绿色LED会在初始化和自检完成后的几秒钟点亮，表明仿真器可以正常工作。

逻辑分析接口

逻辑分析接口用于连接外部的逻辑分析仪。接口的引脚定义和使用描述请参阅这里。

辅助接口

辅助接口与一个I/O口连接，作为触发信号的输入或输出。接口的引脚定义和使用描述请参阅这里。

POD板插座接口

ATtiny15POD板和AT90ADCPOD板都连接到这个接口上。关于POD板的使用请参阅这里。

后置面板

ICE单元的后置面板

序列号

每个ICE10都有一个唯一的序列号。如果需要技术支持，你需要提供该序列号以及问题的详细描述。序列号可以使技术支持人员了解你使用的ICE10的固件版本。

RS232串口

ICE单元是通过RS232电缆连接到PC上RS-232口的。串口通信方式为19200 bps，无校验位，8位数据，1位停止位。

并口

ICE10没有使用该并口。

AVR编程接口

ICE10没有使用该AVR编程接口。

AVR复位按钮

该复位按钮用于复位仿真目标。详见以下不同AVR复位选择的描述。

ICE复位按钮

为了安全原因，ICE的复位按钮隐藏在后置面板的里面。如果仿真器本身运行不正常，使用一个尖头工具按一下复位按钮。此时绿色LED会暗掉一会，当系统准备就绪后会再次点亮。当ICE10的复位按钮按下时，程序存储器里的程序都将被清除掉，所以在AVR Studio中必须关闭工程文件，等待ICE正常后再打开工程文件。

ON-OFF开关

仿真器电源开关。当目标板的电源未关闭时，不能关闭仿真器电源。否则可能可能损坏POD板。

12V的直流电源接口

ICE10使用一个标准的，中心拄直径为2.1 mm的连接器作为电源接口。电源连接器的中心拄必须与地连接。

电源系统

ICE10系统含有一个可提供15W@5V功率的电源适配器。ICE10本身的消耗大约10W，因此ICE10所配备的电源适配器能完全满足仿真器的需要。如果使用其他的外接直流电源，输出电压必须在9-15V，功率至少为20W。ICE10使用一个标准的，中心拄直径为2.1 mm的连接器作为电源接口。电源连接器的中心拄必须与地连接。

  • 当仿真器电源关闭前，必须先断开目标板上的电源，否则可能会引起POD板的损坏。

复位系统

ICE10有两个独立的复位系统。一个是用于ICE10自身的复位，一个是用于仿真的AVR器件的复位。ICE10自身复位的按钮在后置面板上。而AVR复位系统则在仿真器件的运行和停止状态都可以对仿真器件进行复位。以下几种情况都可以实现仿真器件的复位：

  • 按下ICE上的AVR RESET按钮(当程序运行时)
  • 按下POD板上的RESET按钮(当程序运行时)
  • 在AVR Studio中点击复位按钮。注意当程序正在仿真运行中时，点击AVR Studio中的复位按钮将终止整个仿真过程。
  • 用户板上产生的复位信号(仅当程序运行时)
  • 当仿真ATtiny15时，如果要使外部复位有效的话，需要在AVR Studio的仿真对话框中（AVR Studio Emulator Options）选定外部复位有效的选项（Enable External Reset）。

请注意，仅仅用户目标板上的复位信号能够对连接到目标板上AVR复位引脚上的其他元器件进行复位操作。

其他相关内容：

  • 导言

  • ICE10使用须知

  • ICE10使用说明

  • AT90ADCPOD配置


Section 6

特殊注意事项

使用ICE10仿真芯片和在实际的芯片里运行代码有许多不同，本节将罗列出一些差异。如要了解这方面更详细的情况，可以看配套的CD里的avrtools.pdf文档或从Atmel的网站(www.atmel.com)上获得最新的说明。

堆栈

在ICE10中没有硬件堆栈（HW stack）。所以当仿真那些使用硬件堆栈（HW stack）的AVR芯片（如AT90S1200）时，必须将硬件堆栈建立在仿真器的SRAM中。因此，需要增加使用下面两条在SRAM中建立堆栈的指令。

ldi r16, $6F

out $3D, r16

而后的程序中，则应避免对位于$3D和$3E处的I/O地址进行写操作。

汇编编译

某些AVR指令，尽管对于tiny系列的AVR芯片是无效的，但在ICE10中却能够执行。因此在汇编编译生成运行代码时，应使用指定器件的伪指令指明器件的型号，这样，一旦使用了指定器件所不支持的指令，编译系统会对使用这些非法指令产生警告。

ADC

在ATtiny15POD板上，通过一片AD转换芯片，多路数据选择器，一个可选的20倍增益放大器和一个差分输入模式的仪表放大器来实现和仿真ATtiny15的ADC功能。由于在POD板上采用了分离器件构成ADC，加上又是安装在开放的PCB板上，因此更易受到噪声的干扰。所以其电气特性与实际芯片中的ADC是不同的。

ATtiny15POD

POD板上内部的参考电压大约是2.495V(最小2.440V，最大2.550V)。该参考电压的范围在ATtiny15芯片的规范内（2.40V - 2.70V）。

当测量差分信号输入时，最小能通过的信号幅度大约是8 mV。对于任何低于这个值的信号，仪表放大器的输出电压都为8 mV(最大)。当测量单端信号输入时，输入信号不需要通过仪表放大器的放大，因此输入信号的范围为0V 到 VREF。

由于POD板上的差分放大器和增益放大器是由板上的7V电源供电的。所以为了保护ADC芯片，防止其输入电压超过5.8V(例如，使用了20倍增益放大，同时输入信号大于0.29V时)，在POD板上ADC的输入端使用了一个嵌位二极管，并串入了一个51Ω的电阻。

  • 输入ADC的信号电压乘以选定的增益(1x或20x)不得超过5.5V DC。

用于选定ADC内部参考电压的多路数据选择器的所有输入引脚上都有连接到VCC的嵌位二极管。所以当目标板上的电源打开，而仿真器的电源关闭时，在嵌位二极管上就会有产生电流到GND。因此，在外部参考电压输入回路中串接了两个470 Ω的限流电阻。

当仿真器关闭时，无论如何都不能将目标板的电源打开。

注意：由于POD板上ADC的噪声干扰，使用仿真器仿真ADC功能所测试的结果并不能代表使用实际ADC时的结果，(例如，测试一个充电器对锂电池充电的过程)。

  • POD板上ADC的特征 (仅给出与实际芯片不同点)

参数

条 件

最小值

典型值

最大值

单位

V IN

单端输入

0

5.5

V

差分输入，增益倍数为1

0.008

5.5

V

差分输入，增益倍数为20

8

275

mV

A REF

1.2

5.5

V

V INT

2.440

2.495

2.550

V

V BG

1.20

1.25

1.29

V

V REF

正常模式

1M

ohm

目标板电源打开，仿真器电源关掉

470

ohm

噪声消除模式

使用ICE10仿真ADC噪声消除模式（ADC noise canceler mode）时，是以空闲模式（idle mode）代替的，而不是象实际芯片那样为掉电模式（power-down mode）。

定时器1

由于CPU与定时器1的同步，当写数据到定时器1时，其写入操作要延迟一个CPU时钟周期。不管是实际的ATtiny15芯片，还是使用ICE10仿真ATtiny15，该过程都是一样的。正是由于这种同步结构，当在AVR Studio中的I/O VIEW窗口中改变TCNT1的值时，并不会马上更新定时器1（T/C1）。定时器1的更新是在执行一次单步运行后或写另一个I/O地址时才能完成。

模拟比较器

在ICE10中，模拟比较器的输入电压范围为0到3.5V。当两个输入电压都超过3.5V时，比较器的输出电压就不确定了。

其他相关内容：

  • 导言

  • ICE10使用须知

  • ICE10使用说明

  • AT90ADCPOD 配置

  • 硬件描述


Section 7

故障排除指导

故 障 排 除
问 题 | 解决方案
电源打开后红色LED不亮 | - 确定电源适配器的电源插座已插入墙上的插座中（110~220v） - 确定直流电源插座已连接到ICE上 - 确保您使用直流电源插头的中心头为负极
当一个文件在AVR Studio中打开时，AVR Studio就处于仿真状态 | - 确定你的PC和ICE已通过RS-232电缆连接好 - 重新启动PC，并确定与ICE连接的COM端口上没有其它的设备（如鼠标等） - 断开POD板与目标板的连接，然后重启仿真器
通过AVR Studio升级ICE后，打开电源，绿色的LED灯不亮 | - 等待10秒 - 重启仿真器 - 再次升级
程序不能在AVR Studio中进行仿真运行 | - 确定目标板电源的连接或目标板电源由仿真器提供 - 确定目标板的时钟是否连接或在AVR Studio里设置为使用内部时钟 - 断开POD板与目标板的连接后再执行程序，如果程序工作正常，则问题出在目标板上
当在下载程序时，AVR Studio输出"Error communicating with the emulator"的信息 | - 确定RS-232电缆线的连接 - 确定POD板与仿真器和目标板的连接是否正确 - 确定目标板电源已打开(在POD上的LED点亮) - 重启仿真器
其他相关内容：

  • 导言

  • ICE10使用须知

  • ICE10使用说明

  • AT90ADCPOD配置

  • 硬件描述


疑难解答

更新于2002年6月6日

ATICE10 v 2.0版本

  • ATTINY28上特别功能引脚IR

  • 高速运行时不能复位看门狗电路

  • I/O引脚的三态高阻状态

  • ICE复位过程中目标板也复位

  • 看门狗超时复位时间

  • 仿真器复位错误

  • 当ADSC标志位被清除后立即读ADC的数据寄存器

  • 内部参考电压的仿真支持

  • 使用外接晶振的问题

  • 在AVR STUDIO IO VIEW窗口中观察AT90S2313的TCNT1H, ICR1H和OCR1AH寄存器

  • AT90S4414 EEPROM的轮回复始空间

  • 在休眠状态中看门狗超时复位时会改变仿真器内核

  • SPI工作在SLAVE模式下出现错误

  • 外部存储器接口的ALE噪声

  • 休眠状态中的看门狗复位

  • LDS/STS指令后跟NOP指令以及使用STS指令写EECR寄存器时出现错误

ATTINY28上特别功能引脚IR

使用ICE10仿真ATTINY28的特别功能引脚IR时，仅能吸收16mA电流(实际芯片能吸收24mA)。

解决方案

没有办法

高速运行时不能复位看门狗电路

由于WDR仅保持一个时钟周期，因此当仿真器处于高速运行的状态时，WDR保持时间太短，不能对1MHz的看门狗电路进行复位操作。

解决方案

使用两条或多条WDR命令(每MHz使用一条WDR命令能可靠的复位)

I/O引脚的三态高阻状态

当I/O引脚处于三态高阻状态时，仍然使用了一个1Mohm电阻连接到Vcc上，形成微弱的上拉。仿真ATtiny15时，不存在这个问题。

解决方案

在5V系统中，可以将该上拉电阻被去掉。详细情况请联系avr@atmel.com。

ICE复位过程中目标板也复位

当ICE10在复位期间，目标板的复位信号为低电平时，会导致ICE10不能正常复位。

解决方案

应确定在ICE10复位期间，目标板的复位信号保持高电平。

看门狗超时复位时间

看门狗的超时复位时间是由WDTCR寄存器的值确定和改变的。一旦看门狗计数器值到达设定的超时时间，实际的看门狗超时复位时间可能比设定值稍早或晚一些，其偏差为±16ms的倍数。

解决方案

当需要设定看门狗超时复位时间时，可以增加一点余量。

仿真器复位错误

使用仿真器时，外部复位线必须保持长达250个时钟周期的低电平后仿真器才能进入复位操作。而实际芯片只需要50ns就够了。

解决方案

没有办法

当ADSC标志位被清除后立即读ADC的数据寄存器

使用ICE10仿真ADC，当清除ADCSR寄存器中的ADSC标志位后立即读取ADC数据寄存器时，读到的是ADC最后一次转换的值。而在实际的芯片中，读到的前一次转化的值。

解决方案

没有办法。这种情况可以通过在读ADC转换值之前轮巡判断ADIF标志位来避免。

内部参考电压的仿真支持

当仿真tiny12时，仿真器不支持使用内部参考电压。

解决方案

没有办法

使用外接晶振的问题

由于连接电缆太长，当ICE10上使用外接晶振作为系统时钟时可能会出现故障。

解决方案

最好将晶体插在POD板上的外接晶体座上。此外尽可能的使用内部时钟系统。如果在目标板上也需要AVR的时钟，该时钟信号从逻辑分析接口上获得。ICE10的内部时钟可在400khz到20Mhz范围内选择。

在AVR STUDIO IO VIEW窗口中观察AT90S2313的TCNT1H, ICR1H和OCR1AH寄存器

当读寄存器TCNT1L、TCNT1H；ICR1L、ICR1H和写寄存器OCR1AL、OCR1AH时（对16位寄存器操作），都要借助T/C1内部的一个辅助的TEMP寄存器(对T/C1中16位寄存器操作使用同一个TEMP寄存器)。使用ICE仿真2313时，AVR studio是读取内部TEMP寄存器的值来取代寄存器TCNT1H, ICR1H和OCR1AH中实际值的。但这不会影响程序的运行，只是在AVRstudio中的IO观察窗口中看到的值是不正确的。

解决方案

没有办法

AT90S4414 EEPROM的轮回复始空间

ICE10仿真AT90D4414时，EEPROM的轮回复始空间为512字节，而实际在AT90S4414中的EEPROM空间为256个字节。

解决方案

避免使用EEARH寄存器。

在休眠状态中看门狗超时复位时会改变仿真器内核

当循环多次的使用看门狗超时复位信号将AT90S8515从休眠模式下唤醒时，仿真器的内核有时会变成为AT90S1200的内核。

解决方案

一旦内核被改变，应该在AVR Studio的仿真器选项框中重新将AT90S8515的内核写到仿真器中。为了避免内核的改变，在休眠模式下最好不要使用看门狗的超时复位功能。

SPI工作在SLAVE模式下出现错误

在某些ICE10上，由于SS引脚上的噪声，造成SPI通信的不同步。

解决方案

没有办法

外部存储器接口的ALE噪声

由于ALE上的存在噪声，使得当在向外部存储器写入数据时外部RAM的地址会产生随机变化。

解决方案

在ALE信号线上并接一个电容，将频率大于50 MHz的信号滤去。建议使用680pF以上的电容。

休眠状态中的看门狗复位

当仿真2333, 4433, 4434或8535时，看门狗超时复位信号不能将仿真器从休眠状态中唤醒，不产生复位操作。

解决方案

没有办法

LDS/STS指令后跟NOP指令以及使用STS指令写EECR寄存器时出现错误

仿真8515/4414时，一旦在LDS指令后跟NOP指令一起使用（从外部的RAM中读数据到寄存器）时，会读到错误的数据到寄存器。同样，当STS指令后跟NOP一起使用（寄存器数据写入外部RAM中）时，会产生把数据写入到XRAM的同时也写入到R0寄存器中的错误。

使用STS指令对EECR寄存器中的EEWE位操作时，也会产生将数据写到EECR寄存器的同时也写到R0寄存器中的错误。AT90S8515/4414实际芯片中本身也存在这个问题。

解决方案

避免使用LDS/STS指令后紧跟NOP指令，写EECR寄存器时使用OUT指令。如果在LDS/STS后必须使用NOP指令延时，应该使用'mov r0, r0'来代替NOP指令。