Introduction

简介

STK503是Atmel公司生产的STK500开发板的扩展模块，STK503新增加了对100-引脚的AVR单片机(ATmega2560, ATmega1280和ATmega640)的支持功能。

STK503上的连接接口和硬件设备可以充分发挥上述器件的新特性，如 Zero Insertion Force (ZIF)插座，利用它您在 STK503 上可以很方便的使用 TQFP 封装的器件。

这个用户向导是一个总体的说明，并且对于高级用户来说也是一份完整的技术参考。

图 1-1：STK503 开发板

特性：

  • 支持 ATmega2560,ATmega1280和ATmega64；
  • 适用于100-引脚的TQFP封装的 Zero Insertion Force(ZIF)插座；
  • 支持STK500的高电压并行编程功能；
  • 支持STK500串行编程功能；
  • 端口连接： 端口 E, F G, H 和 J；
  • 适用于1.8V 到 5.5V 电压工作的RS-232转换器；
  • 方便用户安装 SRAM 芯片的引脚；
  • 方便连接程序存储器和外围接口的地址锁存器
  • 支持使用 JTAGICE mkII 进行在线调试的 JTAG 接口；
  • 板上的 32 kHz 晶振可以实现简易实时时钟；
  • 由 AVR Studio 4 支持


疑难解答

2005年1月:无疑难解答。


入门指导

这部分将说明STK503的所有特性，您将学会如何把STK500和STK503结合在一起使用,以及如何把AVR器件安装在ZIF插座中。

硬件综述

STK503 是一个非常灵活的工具，它可以用来开发和调试应用100-引脚的AVR器件，如：ATmega2560。而且此开发板提供了许多可以用到的连接接口，所以您可以很方便地连接您自己需要的硬件。

图 3-1: STK503

ZIF 插座:
这里可以安装AVR器件，更多细节请看安装AVR器件 章节。
JTAG 连接接口：
这里您可以连接JTAGICE mkII，利用它下载或调试应用程序，更多信息请看 JTAG 编程 和 JTAG 调试.
ISP 连接接口：
通过电缆将这个接口和STK500上的编程接口连接起来,您就可以很方便地下载新的程序到AVR中，有关如何使用 AVR Studio 以及如何接线的说明请看在系统编程 。
时钟源开关：
STK503上有两个时钟源开关，您可以选择板上的时钟或外部时钟源，更多信息请看 时钟选项 部分。
SRAM 引脚：
在板上设置了SRAM芯片引脚，还没有安装 SRAM 芯片，所以您可以自己选择一个适合工作电压的 SRAM 芯片。有关如何使用 SRAM 芯片及它的连接方法，请看 外部存储器接口 部分。
RAM HIGH ADDRESS 短路片：
这些短路片可以不使能连接到 SRAM 芯片控制器的某些地址线，请看 外部存储器接口 部分。
RS-232 连接接口
STK503 开发板上有一个 RS-232 转换器，为了使用它，您必须把 AVR 器件连接到 AVR 旁边的连接接口，还要把外部 RS-232 设备 (如 PC) 连接到开发板上的 RS-232 接口。更多信息请看 RS-232 驱动模块 。
PORTx 连接接口:
所有AVR的端口都连到了端口连接接口上，每个端口上都注明了端口名称，除了端口引脚还有 VCC 和 GND 引脚。 有关引脚输出的说明请看 附录 。

安装 STK503

您首先要做的是把 STK503 安装到 STK500上。

  1. 关闭 STK500 的电源；
  2. 取下 STK500 的其它扩展板；
  3. 取下 STK500 板上插座中的 AVR 器件；
  4. 把 STK503 放到 STK500 的顶部，确保两块板上的EXPAND0和EXPAND1连接接口已经对齐；

图 3-2: 安装 STK503

AVR 器件安装到 ZIF 插座

STK503 板上的 ZIF 插座可以安装100-引脚的 TQFP 封装的 AVR 器件。

如果要使用 STK500 和 100-引脚的带 LCD 控制模块的 AVR 器件 ，如 ATmega3290 和 ATmega6490, 您必须使用STK504扩展模块, 而不是 STK503。

  1. 确保 STK500 电源关闭；
  2. 确保 STK503 已经正确安装到 STK500上； (详细信息请看 安装 STK503 )
  3. 把您的 AVR 器件放到插座中，注意器件的1号引脚要和ZIF 插座以及PCB 上标有的引脚1标记对应；

图 3-3: AVR 器件安装到 ZIF 插座


Programming the AVR

对AVR进行编程

有四种方式对 STK503上的 AVR 器件编程：

  1. 在系统编程(ISP)；
  2. 高电压并行编程(HVPP)；
  3. JTAG 编程；
  4. 自编程；
以下说明不包含自编程，相关信息请参考 AVR 的器件手册。

在系统编程 (ISP)

为了能够对 AVR 进行在系统编程，必须设置 在系统编程 的熔丝位。可以通过 高电压编程 或 JTAG 编程 设置“在系统编程”有效。

图 4-1: 在系统编程

对 STK503 上的 AVR 编程,请按如下步骤进行：

  1. 关掉 STK500 电源开关；
  2. 用 6-线 连接线连接 STK500 上的 ISP6PIN 连接接口和 STK503 上的 ISP 连接接口；
  3. 打开 STK500 电源开关；
  4. 用一根串行电缆连接 STK500 上的RS232 CTRL 接口到你的 PC；
  5. 打开 AVR Studio，在工具菜单中，选择"Program AVR/ Connect..."；

现在器件已经准备好编程，关于如何使用编程对话框请看 STK500 使用说明中的 前端软件 部分。

高电压并行编程(HVPP)

HVPP 是一直可用的，此时可以不使能或使能其它的编程方式，如：ISP 和 JTAG 。

HVPP 要求目标电压达到 5V 。如果连接到 STK503/STK500 的外部硬件不能工作在5V，则在高压编程前这些硬件必须要断开。

图 4-2: HVPP编程

对 STK503 上的 AVR 器件高电压编程，请按如下步骤进行：

  1. 关掉 STK500 电源开关；
  2. 断开 STK500 和 STK503 上不能在 5V 工作的硬件设备；
  3. 将STK500 上的 PROGCTRL 接口与 PORTD 接口连接， PROGDATA 接口与 PORTB 接口连接，如上图所示；
  4. 设置短路片和开关，根据 Table 4-1.
  5. 用一根串行电缆连接 STK500 上的 RS232 CTRL 接口到您的 PC；
  6. 打开 STK500 电源开关；
  7. 打开 AVR Studio，在工具菜单中，选择 "Program AVR/ Connect..."；
  8. 注意开发板的标签, 要确保 VTarget 滑条是在 5V ，如果不是的话，选择 Write Voltages 调整电压；

您现在已经准备好对 AVR 器件编程了，关于如何使用编程对话框请看 STK500 使用说明中的 前端软件 部分。

表 4-1: 高电压编程短路片设置

STK500
VTARGET | 安装
AREF | 可任选
RESET | 安装
XTAL1 | 安装
OSCSEL | 安装, 引脚1和2
BSEL2 | 安装
PJUMP | 断开
STK503
XTAL 开关 | 靠近晶振插座的位置
TOSC 开关 | 无关紧要

JTAG 编程

JTAGICE mkII 除了可以帮助你调试程序，还可以作为编程器使用。

为了使用 JTAG 编程，首先必须设置 AVR 的 OCD Enable 熔丝位，你可以通过 在系统编程 或 高电压编程 设置其有效。

图 4-3: JTAG 编程

JTAG 编程请按如下步骤：

  1. 关掉 STK500 电源开关；
  2. 连接 JTAGICE mkII 的探针和STK503 的 JTAG 接口；
  3. 移除 STK500 上的 RESET 短路片；
  4. 用一根串行电缆或 USB 电缆连接 JTAGICE mkII 和您的 PC；
  5. 打开 STK500 电源开关；
  6. 打开 AVR Studio，在工具菜单中，选择 "Program AVR/ Connect..."；

你现在已经准备好对 AVR 器件编程了，关于如何使用编程对话框请看 STK500 使用说明中的 前端软件 部分。


STK503 Clock Sources

STK503的时钟源

ATmega2560 或其它类似的器件都有两个时钟输入：XTAL 和 TOSC，STK503上的时钟开关可以选择不同的时钟输入。

图 5-1: 时钟选择开关：XTAL 和 TOSC

XTAL 开关

连接到 XTAL 的时钟源输入可以用来驱动内部芯片的时钟，这个时钟源可以是一个晶振，一个谐振器或是一个外部时钟信号。STK503 上的 XTAL 开关就是用来选择连接到 XTAL 引脚的时钟源。

STK500 可以提供两种不同的时钟信号：

  • STK500 可以产生由软件控制的信号，最大频率可达3.69MHz
  • 可以在晶振座中安装一个晶振

您可以用 OSCSEL 短路片选择以上两种时钟源中的任意一种，供 STK503 使用。

STK503 开发板上还有一个晶振座，这个晶振座可以取代 STK500上的晶振座，至少是在高频 (>8MHz)情况下。

使用XTAL 开关可以选择连接到 AVR 器件的 XTAL 引脚上的时钟信号：

  • STK500 提供的时钟信号 (把开关放置到标记STK500 的位置）
  • 在STK503 上的晶振 (把开关放置到距晶振座最近的位置)

TOSC 开关

TOSC 的输入可以当做普通 I/O 引脚输入，或者作为低频振荡器的输入，这个振荡器产生的信号可作为异步时钟。STK503上有一个可以连接到这个引脚的 32kHz 晶振。

使用TOSC 开关可以选择连接到 AVR 器件的 TOSC 引脚上的信号：

  • 普通端口引脚 - TOSC 引脚连接到 PORTG 连接器(把开关放置到标记 PORTG 的位置 )
  • 32kHz 晶振 (把开关放置到距32kHz晶振最近的位置)


The External Memory Interface

外部扩展存储器接口

由 STK503 支持的 AVR 器件,可以通过 扩展存储器接口 来和外部存储器及外围设备进行连接。这个接口包括 PORTA (地址线的低字节和数据线复用), PORTC (地址线的高字节), 和 PORTG[2:0] (RD, WR 和 ALE)。

SRAM 引脚

STK503 有可以扩展一块 SRAM 芯片的引脚，这个引脚适合 128Kx8 SOJ 和 TSOP 的封装。

图 6-1: SRAM 封装

箭头所指的是引脚 1。

只有电源引脚在中间的 SRAM 芯片才可以使用。

更多信息请看 附录 。

地址锁存

PORTA 口复用了数据总线和地址总线的低字节，ALE 信号表明地址有效。在存储周期结束前这个低字节必须存储在锁存器中。

STK503 的锁存器连接到 ALE 信号，存储在锁存器的地址的低字节通过标有A[7:0]的连接器被发送到 SRAM 引脚。

高地址短路片

外部存储接口的一些或所有的高8位地址线都可以设为无效，并作为普通 I/O 口使用，STK503 同样也支持这个特性，并且由相应的 RAM HIGH ADDRESS 短路片控制。从 SRAM 引脚断开的接线都要拉低，以便 SRAM 的地址线是固定不变的。


RS-232 Driver

RS-232驱动模块

STK503 上有一个 RS-232 驱动模块，它工作在目标电压1.8V－5.5V间，最大速率是480kbps。它有两个发送和两个接收引脚，再加上STK500上的RS-232端口， 您可以同时设计三个通道。

RS-232驱动器的引脚是在 STK503 开发板的右下角的连接接口上。(见 图 7-1 and 7-2)

图 7-1: RS-232 连接接口

为了使用驱动器，您必须把逻辑电平引脚接到 AVR ，还必须把RS-232 的引脚接到外部器件上。注意标记着 AVR 和 RS-232 的这两个接口,在AVR标记边上的引脚要连接到 AVR 器件上的 RxD 和 TxD 引脚，在RS-232标记边上的引脚要连接到一个连接器上或者你的 RS-232使能器件上。下面的箭头显示了信号流向。

图 7-2: RS-232 的连接

由于 STK503 没有9-芯或25-芯的连接接口，您必须要自己做连接接口。如果您只使用了 TxD/RxD 这两 根信号线,那么您可以同时使用两个RS232接口。如果您还要使用RTS/CTS 或 DTR/DSR 这样的握手信号，那么您还要把这些握手信号连接到通常的PORT引脚上，并用软件来控制这些引脚上的信号。


Debugging with JTAGICE mkII

使用JTAGICE mkII调试程序

ATMEL 公司生产的 JTAGICE mkII 能够对任何支持 JTAG 或 debugWire 调试接口的 AVR 器件进行调试。

连接JTAGICE

图 8-1: 连接JTAGICE和STK503

把 JTAGICE 插头连接到 JTAG 连接器上，如上图所示。

在调试前，你还必须取下 STK500 上的 RESET 短路片。


Troubleshooting Guide

解决问题向导

编程问题

问题 | 原因 | 解决办法
ISP 不能正常工作。 | 没有连接 ISP 连接线。 | 用一根6-芯电缆连接 STK500 上的 ISP6PIN 接口和STK503 上的 ISP 接口，详见 对AVR编程.
ISP 不能正常工作。 | 若 AVR 运行在较低频率，则 ISP 时钟频率太快。 | 确保 STK503 上的时钟开关设置到正确位置。在 AVR Studio 编程对话框中的 Board 页面，尝试降低 ISP 时钟频率。
高电压编程不能正常工作。 | 10-芯电缆没有正确连接。 | 正确连接方法详见 对AVR编程 部分。
高电压编程不能正常工作。 | STK500 上的 BSEL2, OSCSEL, RESET 和 VTARGET 短路片没有正确设置。 | 设置方法见 对AVR编程 部分。
高电压编程不能正常工作。 | STK503 上时钟开关没有正确设置。 | 把时钟开关设置到 STK500 位置，详见 对AVR编程.

常见问题

问题 | 原因 | 解决办法
某些端口不工作。 | AVR 器件没有正确地安装在 ZIF 插座上。 | 确保芯片已经正确按放在插座上，当弹性锁放开后，芯片应该恰好对着插座底部。
代码不能运行。 | AVR 器件没有连接到时钟源或者时钟源设置错误。 | 通过对时钟熔丝位的设置，为 STK500 和 STK503 选择合适的时钟源。检查STK500 上的 OSCSEL 短路片和 STK503 上的时钟开关设置是否正确。如果您在使用插座中的晶振，检查它是否安装牢固。
TAVR 器件不能运行在 x MHz, 但可以工作在低于x MHz的频率。 | 时钟频率超过 AVR 的时钟速度。（在一定的工作电压下）。 | 检查你是否按照说明正确操作 AVR 芯片，检查 AVR 的运行速度并参考数据手册得到正常工作频率和电压。
AVR 在 xMHz 时不工作，但可以工作在低于xMHz的频率。在STK500上装有一个 xMHz 的晶振。 | 应该把晶振按装到 STK503 的插座中。 | 把晶振放到STK503 的插座中，把时钟开关设置到 离晶振插座最近的位置。


Appendix

附录

端口连接

加上用于连接 STK500 的端口，STK503共有7个端口，它们是 PORTE, PORTF, PORTG, PORTH, PORTJ, PORTK 和 PORTL。每个连接器的输出引脚说明如下：

表 A-1：STK503 连接器的输出引脚：

 | PORTE |  |
PE0 | 1 | 2 | PE1
PE2 | 3 | 4 | PE3
PE4 | 5 | 6 | PE5
PE6 | 7 | 8 | PE7
GND | 9 | 10 | VTG

 | PORTF |  |
PF0 | 1 | 2 | PF1
PF2 | 3 | 4 | PF3
PF4 | 5 | 6 | PF5
PF6 | 7 | 8 | PF7
GND | 9 | 10 | VTG

 | PORTG |  |
PG0 | 1 | 2 | PG1
PG2 | 3 | 4 | PG3
PG4 | 5 | 6 | PG5
SRAMEN | 7 | 8 | A16
GND | 9 | 10 | VTG

 | PORTH |  |
PH0 | 1 | 2 | PH1
PH2 | 3 | 4 | PH3
PH4 | 5 | 6 | PH5
PH6 | 7 | 8 | PH7
GND | 9 | 10 | VTG
 | PORTJ |  |
PJ0 | 1 | 2 | PJ1
PJ2 | 3 | 4 | PJ3
PJ4 | 5 | 6 | PJ5
PJ6 | 7 | 8 | PJ7
GND | 9 | 10 | VTG

 | PORTK |  |
PK0 | 1 | 2 | PK1
PK2 | 3 | 4 | PK3
PK4 | 5 | 6 | PK5
PK6 | 7 | 8 | PK7
GND | 9 | 10 | VTG

 | PORTL |  |
PL0 | 1 | 2 | PL1
PL2 | 3 | 4 | PL3
PL4 | 5 | 6 | PL5
PL6 | 7 | 8 | PL7
GND | 9 | 10 | VTG

SRAM

下面的 SRAM 芯片可以在 STK503 上使用：

生产厂商 | 产品序号 | 电源 | 封装
ISSI | IS63LV1024-T | 3,3V | TSOP-II
ISSI | IS63LV1024-J | 3,3V | SOJ 300-mil
ISSI | IS63LV1024-K | 3,3V | SOJ 400-mil
IDT | IDT71124-Y | 5V | SOJ 400-mil
IDT | IDT71V124SA-TY | 3,3V | SOJ 300-mil
IDT | IDT71V124SA-Y | 3,3V | SOJ 400-mil
IDT | IDT71V124SA-PH | 3,3V | TSOP-II
Cypress | CY7C1019-V | 5V | SOJ 400-mil
Cypress | CY7C1019B-V | 5V | SOJ 400-mil
Cypress | CY7C1018BV33-V | 3,3V | SOJ 300-mil
Cypress | CY7C1019BV33-V | 3,3V | SOJ 400-mil
Toshiba | TC558128BJ | 5V | SOJ 400-mil
Toshiba | TC558128BFT | 5V | TSOP-II
Toshiba | TC55V8128BJ | 3,3V | SOJ 400-mil
Toshiba | TC55V8128BFT | 3,3V | TSOP-II
Samsung | K6R1008C1C-J | 5V | SOJ 400-mil
Samsung | K6R1008C1C-T | 5V | TSOP-II
Alliance | AS7C31025A-HFC | 5V | TSOP-II