Introduction

简介

ATMEL 公司的 AVRISP 是专业的低价位的在线编程器，支持所有的 AVR 8位精简指令的单片机。AVRISP 可直接通过 RS232 串行接口与 PC 机连接。并且可以直接利用目标板上的电源而不需要额外供电。

AVR Studio作为前端处理软件，为你提供了高度集成的开发方案。.

特点：
  • AVR Studio 接口
  • 所有AVR芯片都可以使用ISP编程
  • 可以对Flash和EEPROM进行编程
  • 支持容丝位和锁定位的编程
  • 支持RC振荡器校准
  • 可以升级以支持最新的芯片
  • 可以工作在2.7伏到5.5伏电压之间
  • 速度可调，支持所有高于8KHZ的目标板
  • 使用RS-232接口连接到PC来实现编程和控制
  • 可直接利用目标板供电而不需要额外供电

AVR Studio完全支持 AVRISP，我们推荐使用最新的 AVR Studio 4.0

  1. AVRISP在系统（In-System）编程器
支持的芯片：

AVRISP支持所有的 8位RISC结构的 AVR 单片机（具备ISP特性），对新芯片的支持会在新版本的 AVR Studio 中添加。
最新版本的 AVR Studio可在 www.atmel.com 上下载

当 AVR Studio 发现你使用旧版本的 AVR ISP 固件，会自动提示用户进行升级。

以下是支持芯片的列表：

Classic | Tiny | Mega ① | 其他
AT90S1200 AT90S2313 AT90S/LS2323 AT90S/LS2343 AT90S/LS2333 AT90S4414 AT90S/LS4433 AT90S/LS4434 AT90S8515 AT90S/LS8535 | ATtiny12 ATtiny13 ATtiny15 ATtiny22 ATtiny24 ATtiny26 ATtiny2313 | ATmega8 ATmega16 ATmega32 ATmega48 ATmega64 ATmega88 ATmega103 ATmega128 ATmega161 ATmega162 ATmega163 ATmega165 ATmega169 ATmega323 ATmega325 ATmega329 ATmega644 ATmega645 ATmega649 ATmega2560 ATmega2561 ATmega3250 ATmega3290 ATmega6450 ATmega6490 ATmega8515 ATmega8535 AT90CAN128 AT90PWM2 AT90PWM3 | AT86RF401 AT89S51 AT89S52

① 同样支持该列所有芯片的低电压版本

关于公司最新版本软件所支持的新芯片可以在AVR Studio的在线帮助系统中找到。

其他相关主题：

  • 入门指导

  • 新增功能

  • 疑难解答

  • 硬件描述

  • 前端处理软件（AVR Studio）

  • 命令行软件

  • 注意事项

  • 故障排除手册


新增功能

注意：AVR068的操作说明书上描述了固件版本2（V2）中使用的新的通信协议。请访问Atmel 网站了解更多信息

2005年4月11日 - 固件（FW）版本 v02.01

  • 新增对ATmega644的ISP支持

2004年1月27日 - v2.01

  • 新增对ATtiny24的ISP支持

  • 新增对ATmega645/6450的ISP支持

  • 新增对ATmega649/6490的ISP支持

2004年12月6日 - v2.00

  • 新增对ATmega2560的ISP支持

  • 新增对ATmega2561的ISP支持

2004年10月11日 - v1.53

  • 新增对AT90PWM2和AT90PWM3的ISP支持

  • 新增对ATtiny45的ISP支持

2004年8月4日 - v1.51

  • 新增对ATmega3250的ISP支持

  • 新增对ATmega3290的ISP支持

2004年7月23日 - v1.50

  • 新增对ATmega325的ISP支持

  • 新增对ATmega329的ISP支持

2004年7月8日 - v1.49

  • 新增对ATmega168的ISP支持

  • 根据应用说明书AVR053，新增了对AVR器件内部RC振荡器校准功能的支持

2004年5月5日 - v1.47

  • 新增对ATmega165的ISP支持

2004年3月8日 - v1.46

  • 新增对ATmega88的ISP支持

  • 新增对AT90CAN128的ISP支持


疑难解答

关于最新版本的疑难解答

ATtiny2313 编程问题

请注意，ATtiny2312的Rev.A并行编程接口有问题，因此它是不支持的。

警告：请避免设定熔丝位禁止ISP接口，这将造成芯片不能进一步编程。

时钟源和预分频

ATtiny2313有多种时钟源的选择和预分频设置， 记住在以下情况下可以使用 STK500/AVRISP 对器件进行ISP编程：

(1) ATtiny2313的预分频时钟源大于32KHz

且

(2)ATtiny2313的预分频时钟源等于或者小于STK500/AVRISP设定的晶振值

ATmega169编程问题

请注意对ATmega169 EEPROM用ISP编程时，Hex文件中不能含有连续的0xFF字节，否则会失败。

解决方法：用ISP 编程的话要首先擦除EEPROM，此时EEPROM中的每个字节都是0xFF，然后对Hex文件中不是0xFF的字节进行编程。

ATtiny13 编程问题

请注意ATtiny13E.S.（工程样品）有一个勘误页专门解决容丝位设置组合不当导致编程锁定问题。

下面的容丝位设置组合将导致这个结果：

晶振设置 | 延时启动时间(start-up time)设置 | Debugwire 和 复位设置
内部128KHz CKSEL[1..0] = 11 | 最短（shortest） SUT[1..0] = 00 | Debugwire = Enabled ( DWEN=0) 或者 Reset = Disabled (RSTDISBL = 0)
内部9.6 MHz CKSEL[1..0] = 10 | 最短 SUT[1..0] = 00 | Debugwire = Enabled ( DWEN=0) 或者 Reset = Disabled (RSTDISBL = 0)
内部4.8 MHz CKSEL[1..0] = 01 | 最短 SUT[1..0] = 00 | Debugwire = Enabled ( DWEN=0) 或者 Reset = Disabled (RSTDISBL = 0)
问题修正/解决方案

避免出现上面的熔丝位组合设置的情况。选择长一点的延时启动时间会解决上面的问题。

时钟源和预分频选项

ATtiny13有多种时钟源选择和预分频设置， 记住在以下情况下才能使用 STK500/AVRISP 对芯片进行ISP编程：

(1) ATtiny13的预分频时钟源大于32KHz

且

(2)ATtiny13的预分频时钟源等于或者小于STK500/AVRISP设定的晶振值

固件升级

为了能够成功升级固件，需要满足以下条件：

  • 目标板的电压至少稳定在2.7V
  • 目标板上没有其他的硬件使用ISP接口中的MISO, MOSI 或者 SCK引脚

向下兼容性

  • 注意通过固件升级后，AVRISP 只能与 AVR Studio4 兼容，而不能和 AVR Studio 3.56 兼容。


入门指导

打开产品包装

AVRISP产品包装内包含以下物品：

  • AVRISP 编程器
  • AVRISP 使用说明
  • 10针ISP连线(连接到AVRISP)
  • 6针ISP连线(配件)
  • 9针RS-232连线
系统要求

最低的软硬件需求是：

  • 486处理器(推荐奔腾系列)
  • 16 MB 内存
  • 15 MB 空闲硬盘空间
  • Windows®95，Windows98，Windows NT4.0,或Windows 2000
  • 115200 波特率的RS-232 端口 (COM口)

其他相关主题：

  • 硬件描述

  • 前端处理软件（AVR Studio）

  • 命令行软件

  • 注意事项

返回到简介


Hardware Description

硬件描述

主板描述

图1是AVRISP的方框图。AVRISP可分成三个部分：RS232接口部分，控制部分和ISP连接线部分。

图1: AVRISP的简要框图
串行RS-232接口

AVRISP使用标准的孔型DSUB，RS232口与前端处理软件（AVR Studio）通信，支持115200的通信速率。

控制部分

该部分控制目标芯片与前端处理软件（AVR Studio）软件之间的所有通信。AVRISP 完全由 AVR Studio 软件控制，不需要人工设置。

状态指示灯
Led 颜色 | 描述
红-黄-绿-关-绿 循环 | 上电阶段
黄 | 编程中....
红 | 编程失败
绿 | 准备就绪

一个3色的LED指示灯指示了AVRISP的工作状态。正在编程的时候，灯是黄色的；编程成功完成的时候，灯是绿色的；如果灯成红色表明编程失败，你可以查阅故障排除手册来查找编程失败的原因。系统上电的时候LED指示灯依次呈红－黄－绿，当最后变成绿色的时候表明已经上电成功。

ISP接口电缆

AVRISP既可以支持正常的6脚的连接插头，又可以支持10脚的连接插头（旧的STK200和STK300所使用的）。图2标明了6脚插头和10脚插头的引脚。

AVRISP 包装中带有6芯连接线和10芯ISP连接线。使用的时候选用与插头相匹配的连接线。但是注意，任何时候只能使用其中的一种，默认的是使用10芯连接线。

图 2: AVRISP 连接线引脚 (俯视图)

AVRISP 插头引脚
信号 | 6-Pin | 10-Pin | I/O | 描述。
VTG | 2 | 2 | - | 目标板上的电源。
GND | 6 | 3,4,6, 8,10 | - | 地。
MOSI | 4 | 1 | 输出 | AVRISP到目标芯片的指令或数据。
MISO | 1 | 9 | 输入 | 目标芯片到AVRISP的数据。
SCK | 3 | 7 | 输出 | 串行时钟，由AVRISP控制。
RESET | 5 | 5 | 输出 | 复位，由AVRISP控制。
AVRISP的电源要求和注意事项

因为AVRISP使用目标板提供电源，因此目标板要提供足够的能量保证正常运行。AVRISP可以吸入最大50MA,5.5V的能量。电流由VTG线吸入，因此目标板除了提供自己工作的电源外还要向AVRISP提供这么多的功率。

AVRISP没有配备电源开关，当AVRISP连接上目标板就上电了，不连接时即断电。

AVRISP与目标板的连接

AVRISP通过 3x2 或 5x2 的2.54毫米(1英寸)的连接线与目标板连接。应根据目标板上使用的是6脚接口还是10脚接口，来选择相应 AVRISP 连接线。

连结和断开时，目标板都要断开电源， 不支持热插拔，否则将损坏编程器。

更改连接线的时候必须要打开 AVRISP 的盒子，并插入正确的连接线。请参看图3和图4。注意同一时刻只能用其中的一种连接线，在插连接线的时候不要插反。

图 3: AVRISP 使用10脚ISP接口
图 4: AVRISP 使用6脚ISP接口
对ISP线的控制

当连接 AVRISP 和一个外部的目标板的时候，有一些需要注意的地方。以下部分将对这些需要注意的地方做一些说明，来确保 AVRISP 和目标板之间能自由通信。

目标板在正常电压下工作的时候，可以用 AVR Studio 软件的 In-System Programming (ISP) 方式编程。

要了解AVR Studio编程软件，请参考AVR Studio 部分。

VCC 和 GND

将 AVRISP ISP的电源线与 AVR 器件的电源线相连（最好是用6脚或10脚连接插头）。确保目标板工作于指定的电压范围 (2.7V - 5.5V)。确保目标板能提供足够的电能。

SCK

目标芯片的采样时钟信号来自 AVRISP，为了加强采样功能，目标器件XTAL1频率最好是编程频率的四倍。通过在 AVR Studio 中选择正确的频率，将自动生成正确的SCK，目标芯片最低工作频率应支持8KHz。

MOSI/MISO/SCK

如果应用的时候 MOSI, MISO 或 SCK 线还要被用作普通的I/O，那么我们建议做I/O用途的时候在接负载前要加上一串联电阻，而 AVRISP 和目标芯片之间就不要加任何电阻而直接相连就行了，如图5所示。

图 5: 用 MISO/MOSI/SCK 线输入/输出
RESET

为了进入编程模式，AVRISP需要拉低RESET引脚。RESET引脚上的外部上拉电阻不能太大以至于该引脚不能被拉低。为避免这个问题，推荐使用大于4.7K的上拉电阻。

其他相关主题：

  • 入门指导

  • AVR Studio 前端处理软件

  • 命令行软件

  • 注意事项


AVR Studio Software Front-end

AVR Studio 前端处理软件

简介

在所有的ATMEL AVR工具中，AVR Studio 的高度集成开发环境(IDE)是AVR开发的理想软件。它具有编辑器，汇编器，调试器，同时也是所有AVR仿真器、STK500 和 AVRISP 的前端必备软件。AVRISP 和 STK500 使用相同的编程接口。建议您定期的更新您的这些软件。 AVR Studio 会经常进行修正并发布新版本，在发布的新版本中也有会带有对各种AVR工具固件进行升级的升级包。最新的版本可以在 www.atmel.com 网站上下载。

AVR Studio 会不断的更新以支持新的芯片和添加新的功能。最新版本的AVR Studio可以在www.atmel.com网站上下载。

使用AVR Studio

假定读者对如何使用 AVR Studio 有一定的了解。AVR Studio 的使用包含在一个由不同内容的帮助文件构成的在线帮助系统中。在这一部分，我们将介绍与 AVRISP 相关的软件使用操作，以及一些更深一步的编程选项的设置。

运行windows软件

用于和 AVRISP 编程器通讯的软件已经包含在 AVR Studio 中。AVR Studio 安装成功后，双击 [image] 图标就可以启动 AVR Studio了。

启动AVRISP界面

点击AVR Studio工具栏上的 [image] 按钮，就会启动如下图所示的选择AVR编程器的对话框。

选择平台和端口，并点击Connect（连接）按钮。点击 [image] 按钮就会直接使用上次所使用过的选择项。

图 1: AVR Studio 使用 AVRISP 应用界面

注意STK500和AVRISP使用同一界面。因为STK500包含了AVRISP不支持的功能，所以在 AVRISP 界面中，某些功能不能被选择，只有所支持的功能可被选择。

同时使用 AVRISP 和 STK500

当 AVR Studio 扫描其所连接的设备时，它是顺序扫描COM口的。当它扫描到第一个设备时，即获得对此COM口的控制。在 AVR Studio 中不可以同时控制 STK500 和 AVRISP。要想实现这种功能必须同时打开两个 AVR Studio。编程界面的标题栏上会提示现在正在使用的是 AVRISP 还是 STK500。

AVRISP 用户界面

AVRISP用户界面包含了许多针对AVRISP在系统（In-System）编程器的强大功能。这些功能的设置被分在六个页面中，通过点击标签可以进行页面切换。由于不同的芯片有不同的特性，所以这些设置依赖于您所选择的芯片，不可用的选项会变灰。

"Program（编程）"设置

编程设置被分成4个不同的组。

图 2: 编程设置
Device（芯片）

芯片的选择是通过下拉菜单进行选择的。这一组还包含一个对编程芯片执行擦除的按钮，可以同时擦除 FLASH 和 EEPROM 存储器。

Programming Mode（编程模式）

这一组选择编程模式。 AVRISP仅支持ISP低压模式（ low voltage mode）。选中“Erase Device Before Programming（编程前擦除芯片）”将在编程前强制先擦除芯片。选中"Verify Device After Programming（编程后校验）"将强制AVRISP在编程完毕后进行校验。

Flash

如果AVRISP用户界面已经打开，但是在AVR Studio中没有打开任何工程文件，"（Use Current Simulator/Emulator FLASH Memory）将当前模拟/仿真程序烧入Flash存储器"选项将会变灰。当一个工程被打开以后，选中该选项就会允许用户将当前AVR Studio的Flash存储器视图界面中的内容烧入Flash中。(更多关于存储器视图界面的内容请参考AVR Studio帮助部分)。

如果没有工程运行，或源代码被存在另外的hex文件中，选择“导入hex文件”选项。 点击 [image] 按钮浏览并选择正确的文件，或者在文本区写上完整的路径名和文件名。选定的文件必须是"Intel-hex"格式或"扩展 Intel-hex" 格式。

EEPROM

如果AVRISP用户界面已经打开，但是在AVR Studio中没有打开任何工程文件，"（Use Current Simulator/Emulator EEPROM Memory）将当前模拟/仿真EEPROM内容烧入Flash存储器"选项会变灰。当一个工程被打开以后，选中该选项就会允许用户将当前AVR Studio的EEPROM存储器视图界面中的内容烧入Flash。(更多关于存储器视图界面的内容请参考AVR Studio帮助部分)。

如果没有工程运行，或源代码被存在另外的hex文件中，选择“导入hex文件”选项。点击 [image] 按钮浏览并选择正确的文件，或者在文本区写上完整的路径名和文件名。选定的文件必须是"Intel-hex"格式或"扩展 Intel-hex" 格式。

Fuses（熔丝位）设置

在熔丝位设置（Fuses Settings）标签中，将会显示当前芯片所能访问的熔丝位。有些熔丝位只能在并口/高压编程时更改，它们会被显示，但运行ISP编程模式时不可更改。点击"读（Read）"按钮获得当前的熔丝位的值，点击“写（write）“按钮将当前熔丝位设置烧入芯片。选定这些复选框表明这个熔丝位被允许/编程，即向实际芯片中写0。注意选定的熔丝位设置不会在按”擦除芯片（Chip Erase）“按钮后受影响。

  • 复选框描述

图标 | 描述
 | 未编程的熔丝位或锁定位。
 | 已编程的熔丝位或锁定位。
 | 不能读取该位的当前值，但是可以对此熔丝位编程。 (已编程，为0)
 | 不能读取该位的当前值，但是可以对此熔丝位编程。 (已未程，为1)
 | 读取到该熔丝位/锁定位的值为“未编程”，但是不允许写入。例如：不能在串口的模式下更改
 | 读取到该熔丝位/锁定位的值为“已编程”，但是不允许写入。例如：不能在串口的模式下更改
 | 不能读该熔丝位的值，也不允许写该熔丝位。

关于不同模式下到底有哪些熔丝位可以被访问，以及每一个熔丝位的功能等的详细信息可以在相应的用户手册（datasheet）中找到。 通过选定 "自动校验（Auto Verify）"复选框可以在每次编程后自动的进行校验工作。

如果你要改RSTDISBL和SPIEN熔丝位，要注意这种设置有可能使以后的ISP编程不能进行。

图 3: 熔丝位设置
Lock Bits（锁定位）设置

和容丝位设置一样，锁定位（lock bit）标签显示选定芯片的可用锁定位。所有的锁定位在ISP编程模式（ programming mode）时都是可访问的。一种锁定模式有很多锁定位共同决定组成。AVRISP用户界面会根据用户选择，将正确的锁定位按照选定的锁定模式自动编程。一旦一种锁定模式被允许，就不能通过选择另外一种低保护度的锁定模式来消除它。唯一去除锁定的办法就是彻底的擦除芯片，同时也擦除程序存储器和EEPROM存储器的内容。有一个例外：如果目标芯片的"EESAVE"熔丝位被编程，EEPROM中的数据会一直保留，甚至当擦除芯片的时候也会保留。通过选定 "自动校验（Auto Verify）"复选框可以在每次编程后自动的进行校验工作。

图 4: 锁定位设置
Advanced（高级）设置

高级标签被分成两组。

图 5: 高级设定

Signature Bytes（标志位）

通过点击“Read Signature（读标识字）”按钮，当前芯片的标识字节就会被读出来。标识字就像芯片的识别符一样。请参考AVR 的数据手册（datasheets）了解更多关于标识字的内容。

Oscillator Calibration Byte（振荡器频率校准字节）

对于使用内部RC振荡器的芯片，振荡器校准字节是在芯片出厂的时候被写入的。用户不能擦除和更改。振荡器校准字节的值是应该写入OSCCAL寄存器的调整值，这些调整值用于调节内部RC振荡器的振荡频率。

Reading Oscillator Calibration Byte(s)（读振荡器校准字节）

通过点击"Read Cal. Byte"按钮，校准值就会被读取，并显示在“Value”文本框中。注意有些芯片的振荡器校正字节在程序执行时是不能直接获得的。如果程序需要，只能在编程的时候写入存储器。如果这个选项为灰，表明当前芯片没有可调的内部RC振荡器。对于选定的芯片，RC振荡器出厂时已经都自动调整成默认的标称时钟频率，不需要用户人工设定。(更加详细的信息请查看用户手册（datasheet）).

Writing Oscillator Calibration Byte（写振荡器校准字节）

对于没有自动校准功能的芯片，如果由于调整位不能在程序执行时直接被访问，用户应该将校准字节保存在Flash或EEPROM的已知地方。将其在存储器中的地址写在"Write Address" 文本框中，然后点击"Write to Memory" 按钮。校准字节就会被写在"Flash"/"EEprom"单选框指定的地址中。

Board（开发板）设置

Board标签允许更改AVRISP编程器的工作条件。 AVRISP允许改变晶振的频率。

图 6: 开发板设置
Oscillator（晶振）和 ISP 时钟

ISP Freq（SCK）控制ISP的时钟

ISP frequency (SCK)必须小于目标芯片工作频率的1/4。还要求对目标芯片的时钟和ISP时钟都是50/50的占空比。在STK500中建议ISP频率小于目标芯片工作频率的1/5 。

一些AVR系列的芯片有 CKDIV 熔丝位，如果这个熔丝位被编程，AVR 内核的工作频率为经过分频的时钟频率，这会给编程带来不便。注意ISP频率要根据实际芯片的工作频率来设定。例如：如果 DIV8 熔丝位被编程，就要求ISP频率小于目标芯片工作频率的1/32。

revision（版本）

在版本栏中，显示了当前 AVRISP 的版本号。如果AVR Studio发现 AVRISP含有过时的版本，就会自动给出要求更新的提示信息。

Auto（自动）设置

当向多个相同芯片编程同一代码时，“自动”标签提供了一种按照用户自定义命令序列进行处理的强大的方式。这些按顺序排列的命令（如果选中）会被依次执行。将复选框选中，就会使相应的命令被执行。例如：如果你只选中"Program FLASH" 点击"Start"按钮，FLASH存储器会被按照“program”设置中指定的Hex文件编程。所有的命令都依赖和使用 AVRISP 用户界面中的设定。也可以选中“Log to file”复选框，将执行情况的日志保存在一个文本文件中。

图 7: 自动编程设置
设置系统用于自动编程

选中AVRISP用户界面中应该执行的命令的复选框。图7中展示了一种典型的先擦除后编程的方式。芯片首先被擦除，然后对Flash和EEPROM进行编程和校验。

一旦设定好了，每一次点击“Start”按钮的时候，就会按同样的命令顺序进行执行。这样不仅减少了工作量，也减少了由于操作失误而导致的错误。

将自动编程日志保存成文本文件

通过选定"Log to file"复选框，所有执行的命令就会输出到一个文本文件中。该文件由"Browse"按钮指明在什么地方创建/选定。然后直接输出到指定的文件，原来的内容会被覆盖。文件可以用任何的标准文本编辑器查看。

历史操作窗口

历史窗口在AVRISP 视图的底部。在这个窗口中显示了AVR Studio 和 AVRISP之间的对话。每一次执行完毕后就的对话就会被新的代替。

其他相关主题：

  • 入门指导

  • 硬件描述

  • 命令行软件

  • 注意事项


Command Line Software

命令行软件

编程接口的DOS命令行软件同 STK500 使用相同的软件，软件的名字叫"stk500.exe"。它允许使用简单的批处理文件来实现自动编程。

下面的内容介绍了如何编写简单的批处理文件，实现对芯片进行自动编程。

命令行转换：

    [-d device name] [-m s|p] [-if infile] [-ie infile] [-of outfile]

    [-oe outfile] [-s] [-O address] [-Sf addr] [-Seaddr] [-e] [-p f|e|b]

    [-r f|e|b] [-v f|e|b] [-l value] [-L value] [-y] [-f value] [-E value]

    [-F value] [-G value] [-q] [-Y] [-Z address] [-c port] [-ut value]

    [-ua value] [-wt] [-wa] [-b h|s] [-! freq] [-t] [-I freq] [-J]

    [-h] [-?]

参数：

d   芯片名称。使用STK500.EXE -?命令可查看所支持的芯片的列表。

m   选择编程模式；串（s）或并/高压（p）。如果没设这个参数，缺省为串行模式。

if  flash输入文件的名字，当对flash进行编程或校验的时候需要使用这个命令。文件格式为扩展Intel-hex格式。

ie  EEPROM输入文件的名字。当对EEPROM进行编程或校验的时候需要使用这个命令。文件格式为扩展Intel-HEX格式。

of  flash输出文件的名字，当读取Flash存储器内容的时候要用到，文件格式为 Intel Extended HEX。

oe  EEPROM输出文件的名字，当读取EEPROM存储器内容的时候要用到，文件格式是Intel Extended HEX。

s   读取芯片标识字节

O   读取振荡器校正字节。'address'是芯片的数据手册中描述的振荡器频率校正字节的地址。

Sf  将振荡器校准字节的数据写到Flash存储区。 'addr' 是写入地址。

Se  将振荡器校准字节的数据写到EEPROM存储区。 'addr' 是写入地址。

e   擦除芯片。如果同其它编程命令参数一起使用，将在执行其它操作之前首先对芯片进行擦除操作。

p   编程该芯片；写FLASH(f), 写EEPROM(e) 或两者都写(b)。要指明相应的输入文件。

r   读取芯片；读FLASH(f), 读EEPROM(e) 或两者都读(b)。要指明相应的输出文件。

v   校验芯片； 效验FLASH(f), 效验EEPROM(e) 或两者都效验(b)。可以单独使用，也可以与 -P命令一起使用。要指明相应的输入文件。

l   设定锁定位。 'value'是一个8位16进制的数据。

L   校验锁定位。 'value'是一个8位16进制的数据。

y   读取锁定位。

f   设定熔丝位。 'value'是一个16位的16进制数。这个值描述了熔丝位高字节和低字节的配置。

E   设定扩展熔丝位。 'value' 是一个8位的16进制数。这个数据描述了扩展熔丝位的设定。

F   校验熔丝位。 'value'是一个16位的16进制数，它描述了熔丝位配置。

G   校验扩展熔丝位。 'value'是一个8位的16进制数，它描述了熔丝位配置。

q   读取熔丝位。

Y   执行振荡器调整。更详细的内容请参看AVR053应用笔记。

Z   擦除芯片之前从指定的EEPROM位置处读取一个值。这个值可以用S选项重新编程到 FLASH 或 EEPROM中。‘Address’是一个16
    进制的值。更详细的内容请参看AVR053应用笔记。

c   选定通讯端口。'com1' 到 'com8'。如果省略参数，程序会自动扫描端口，寻找STK500。

ut  设定目标板电压 VTARGET，单位是伏。 'value' 是0.0到6.0之间的浮点数，为指定新的电压值。

ua  设定参考电压AREF。 'value'是0.0到6.0之间的浮点数，为指定新的电压值。

wt  读取当前 VTARGET 的电压值。

wa  读取当前参考电压 AREF 的值。

b   获得版本；硬件版本(h)和软件版本(s)。

!   设定振荡器频率；'freq'单位可以是Hz, kHz 或 MHz。

t   读取振荡器频率。

I   设定 ISP 频率；'freq'单位可以是Hz, kHz 或 MHz。

J   读取 ISP 频率。

h   帮助信息(包括所有其它设置)

h|? 帮助信息(包括所有其它设置)

例 1:

stk500 -dAT90S8515 -e -pf -if8515test.hex

描述:

stk500            运行stk500.exe

-dAT90S8515       设定芯片为 AT90S8515

-e                擦除芯片

-if8515test.hex   选定要编程到flash中的文件为"8515test.hex"

-pf               将上面选定的文件编程到Flash中

例 2:

stk500 -ccom1 -ut4.5 -ua4.5 -!3686000 -I460800 -dATMEGA8515 -lFF -fD9E4 -ms -ifC:\input.hex -pf -vf -e

描述:

stk500            运行 stk500.exe

-ccom1            选定COM1端口

-ut4.5            设定目标板电压(4.5V)

-ua4.5            设定参考电压(4.5V)

-!3686000         设定STK500时钟频率为3.68MHz

-I460800          设定ISP时钟频率为460.8kHz

-dATMEGA8515      选定 ATmega8515芯片。（输入"stk500.exe -h"命令可以看到所有支持的芯片）。

-e                擦除芯片

-lFF              设置锁定位为 0xFF

-fD9E4            设定熔丝位为 0xD9E4, 低字节是 0xD9, 高字节是 0xE4

-ms               选定串行编程模式

-ifC:\input.hex   选定要编程到Flash中的文件"input.hex"

-pf               将上面选定的文件编程到Flash中

-vf               用上面选定的文件校验

其它相关主题：

  • 入门指导

  • 硬件描述

  • AVR Studio 前端处理软件

  • 注意事项


Special Considerations

注意事项

在使用 AVRISP 对 AVR 芯片进行在系统（In-System）编程时，请注意下列事项。

关于熔丝位

有一些芯片的熔丝位在ISP模式时不能被访问。要对这些熔丝位进行编程就要使用并行编程器。一些芯片允许操作 SPIEN/RSTDISBL 熔丝位，一旦对它们操作（SPIEN被禁止/RSTDISBL被允许）后将不能进行ISP编程了。

RESET 引脚被用作IO口

如果RESET引脚被用作了I/O的用途，在系统（In-System）编程功能就会被禁止。原因是此时RSET引脚必须被拉高到12V，以进入高压串行或并行的编程模式(HVSP、HVP)。 必须使用HVSP 或 HVP模式改变 RSTDSBL 熔丝位，恢复RESET引脚的复位功能。

不支持 ISP 方式的 AVR 芯片

一些芯片不支持ISP（如 ATtiny28）功能。对这些芯片进行编程就需要使用并行编程器 (如 STK500 Starter Kit)。AVRISP 仅支持低电压 ISP 的编程模式。

不支持内部RC振荡器频率校正的AVR芯片

不是所有的内部带RC时钟的AVR芯片都具备RC频率校正功能。对于这些芯片，其内部的RC会运行在相应的器件手册（datasheet）中指明的默认频率上。

其它相关主题：

  • 入门指导

  • 硬件描述

  • AVR Studio 前端处理软件

  • 命令行软件


Troubleshooting Guide

故障排除手册

问题 | 原因 | 解决方案
LED灯不亮 | AVRISP没有连接到目标板 | 将ISP电缆连接到目标板
 | ISP引脚连接不正确 | 检查目标板上ISP插头的引脚
 | 目标板不能提供足够的电能 | 校验目标板的电源供应，提供足够的电能
不能和目标芯片做任何通信 | ISP引脚连接不正确 | 检查目标板上ISP插头的引脚
 | 芯片不支持ISP编程模式 | 检查芯片是否支持ISP模式，并检验IO引脚连接正确
 | ISP引脚上的负载太重 | 在负载和IO引脚之间串连电阻如图示
 | RESET脚上有太强的上拉电阻 | RESET位上拉电阻推荐大于4.7K
 | AVR Studio中设置目标板频率不正确 | 减小AVR Studio设定的频率以适应目标板的频率。
 | 目标不能提供足够的电能 | 校验目标板的电源供应，来提供足够的电能
 | SPIEN 熔丝位被禁止 | 用并行/高压编程器将SPIEN熔丝位置成允许
 | Reset被用作一般的IO | 用并行/高压编程器改变RSTDISBL熔丝位的值
AVR Studio找不到AVRISP | AVR Studio版本太旧 | 从www.atmel.com网站上下载最新版AVR Studio
 | 其它设备或服务占用COM口 | 禁用可能占用COM口的设备或软件

其它相关主题：

  • 入门指导

  • 硬件描述

  • AVR Studio 前端处理软件

  • 命令行软件

  • 注意事项


AVRISP User's Guide: Manual Firmware Upgrade

AVRISP 固件的人工升级

固件升级通常可以使用两种方式进行，一种是在 AVR Studio 检测到AVRISP使用旧版本的固件时，将会自动使用自带的新固件对其进行固件升级。还有一种方式就是点击 AVR Studio 的 too l菜单，打开 STK500/AVRISP 对话框窗口，并选择”Update“。如果升级的时候，AVRISP和PC之间的通信被被打断，升级工作和普通的编程工作都将停止。这时候，AVRISP并没有损坏，只是不能自动进入编程模式。此时必须强制进入编程模式实施固件升级，一旦升级结束，AVRISP 就可以重新正常运行和使用了。

在升级的时候突然拔掉电源（该电源提供了AVR ISP的目标电源），或者串行连接线断开时就会出现上面提到的问题。

图 1: AVR ISP PCB 布线图 绿色圆圈表示针脚的孔

图 2:去掉外壳的AVR ISP—白色圆圈标志着针脚孔

手动 AVR ISP 固件升级的步骤：

  • 通过关掉目标板的电源，关闭 AVRISP 的电源

  • 将图1和图2中标注的引脚孔短接

  • 打开目标板电源，AVRISP也同时上电

  • 等待5秒钟

  • 松开短接

  • 运行AVR Studio

  • 点击tool菜单中的“AVR Prog”

  • 点击“browse”按钮，浏览并选定在安装 AVR Studio 目录的STK500子目录中的文件 “STK500.hex” （在AVR Studio 3.54及以后的版本中是 STK500.ebn ）。一般的路径是 “C:\Program Files\Atmel\AVR Studio\Stk500”（AVR Studio 3.x）或 “C:\Program Files\Atmel\AVR Tools\STK500”（AVR Studio 4.x）。

  • 点击Flash窗口中的编程按钮

  • 编程并校验完成后关闭“AVR Prog”窗口

  • 关掉 AVRISP 的电源

现在 AVRISP 的固件已经升级好了，可以使用了。

注意: 1. 如果使用 STK500 给 AVRISP 供电，确保使用的插头是SPROG1/2/3，并去掉STK500上所有的芯片。如果使用用户的目标板给 AVRISP 供电，确保升级之前拔掉目标板上的芯片，以防芯片操纵 ISP 编程信号线。