AVR32 UC3 ISP 下载 2008 年 4 月 1
AVR32 UC3 系列控制器在出厂时在内部 Flash 里已经固化了一个 USB DFU bootloader, 可以通过 AVR32 UC3 系列控制器的 USB 接口, 利用内部固化的 USB bootloader 进行 ISP(In-System Programming) 下载 一 Bootloader 环境 图 1 Bootloader 的环境平台 USB DFU Bootloader 在芯片内部 Flash 的起始位置部分, 其占用的空间受到 Flash 控制器的保护 Bootloader 占用大小可以最大可以达到 64 KB,Bootloader 受保护空间的大小至少应该是 bootloader 占用 Flash 空间的大小 对于 AT32UC3x 系列, 一般设置为 8 KB 图 2 是 AT32UC3A0512 控制器 Flash 空间映射图, 其内部 Flash 已经固化了 USB DFU Bootloader 图 2 AT32UC3A0512 控制器 Flash 空间映射图 2
二 Bootloader 的配置 USB DFU Bootloader 的配置包括对 General-Purpose Fuses 和 Flash User Page 的设置 AT32UC3 有一个 32 位 General-Purpose Fuse 寄存器,General-Purpose Fuse 寄存器各位的含义及 Flash User Page 的配置可以参考 AT32UC3 的 datasheet 及 AVR32 UC3 USB DFU Bootloader 文档, 可以到 ATMEL 官方网站去下载 AT32UC3 sriealdatasheet: http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 AVR32 UC3 USB DFU Bootloader 文档 http://www.atmel.com/dyn/products/app_notes.asp?family_id=682 对于 AT32UC3A 和 AT32UC3B 系列,General-Purpose Fuse 寄存器一般设置为 FC07FFFF 三 ISP 实现 1. 硬件平台 AT32UC3A-EK 板 2. 相关软件 AVR32 Studio 2.0 avr32-gnu-toolchain FLIP-3.3.1 AVR32 UC3 Software Framework 软件可以到 ATMEL 官方网站去下载, 网址 : http://www.atmel.com/dyn/products/tools.asp?family_id=682 3. ISP 实现 下面将以 AT32UC3A-EK 板为基础, 讲述如何利用 USB 接口事项 ISP 的下载 3.1 驱动的安装 将 AT32UC3A-EK 板通过 usb 线连接到 PC 机, 电源选择开关拨到 VBUS, 先按下 EXINT 键不放开, 在按下 RESET,2 秒后放开, 在松开 EXINT 键, 会出现下面图 3 的对话框, 提示安装 USB 驱动 3
选择 从列表或指定位置安装 ( 高级 ), 点击下一步, 会出现图 4 所示的对话框, 选择 USB 驱动所在文件位置, 单击下一步, 安装驱动 图 3 图 4 过程中会出现如图 5 所示对话框, 点击 仍要继续, 接着会出现如图 6 所示对话框, 单击 完成, 驱动安装完毕 图 5 图 6 4
3.2 在 Cygwin 或 windows 命令行环境下进行 ISP 下载 打开 Cygwin 或 windows 命令行环境, 将要下载的文件所在的目录设置为当前目录, 然后输入下面命令操作 : $ batchisp -device at32uc3a0512 -hardware usb -operation erase f memory flash blankcheck loadbuffer led_example.elf program verify start reset 0 在命令行窗口中会显示相关的下载的过程及相关信息, 如图所示 7 所示 图 7 在 Cygwin 环境下 ISP 下载的相关信息 5
3.3 在 AVR32 studio 集成开发环境中进行 ISP 下载 运行 AVR32 studio2.0, 新建一个 Workspace, 如图 8 所示 图 8 运行 AVR32 Studio2.0 建立一个新的 Workspace 点击 OK, 进入到 AVR32 studio2.0 的集成开发环境, 在 AVR32 Target 窗口中点击 Creates a new target, 在窗口中会出现一个 New Target 条目, 如图 9 所示 图 9 建立一个 New Target 选中 New Target 条目, 单击 Show View as a fast view, 出现如图 10 所示对话框 6
图 10 单击 Properties, 会出现如图 11 所示对话框 在 Target 选项对话框 Name 项中输入 BatchISP EVK1100 图 11 7
在 Adapter 选项对话框 Adapter 项中选择 EVK1100,Connection 项中选择 usb, 如图 12 所示 图 12 在 Board 选项对话框中,Board 项中选择 EVK1100,MCU 项中选择 UC3A0512ES,MCU Clock Source 项中选择 Crystal connection to OSC0 如图 13 所示 图 13 对 Properties 设置完毕以后,AVR32 Target 窗口中会出现如图 14 所示信息 8
图 14 选中 AVR32 Target 窗口中的目标条目, 单击右键会出现如图 15 所示对话框, 可以对目标芯片进行编程 读取 校验及擦除等操作 图 15 选择 Program, 会出现如图 16 所示的对话框, 选择需要下载的目标文件, 其他的设置见图中所示, 然后单击 OK, 便将程序文件下载目标芯片中了 图 16 9
下载过程中, 在 Console 对话框中会出现如图 17 所示的对话框, 显示下载的过程及相关信息 图 17 ISP 下载的过程及信息 10
四 ISP 下载其他问题 1. 如何再次启动 ISP 下载? 按照前面的方式完成应用程序下载后, 目标板复位后应用程序开始运行, 下次复位或上电, 目标板都会直接运行应用程序, 如果需要再次通过 USB 接口进行 ISP 下载, 必须启动 Bootloader, 进入到 ISP 下载的状态 具体方法是 : 先按下 EXINT 键不放开, 在按下 RESET 键,2 秒后松开, 接着松开 EXINT 键 ( 对应的 I/O 的引脚是 PA20) 打开电脑的硬件设备管理器中, 正常启动 Bootloader 进入 ISP 下载模式后会出现如图 18 的连接状态, 然后就可以按照前面介绍的方式下载应用程序 图 18 11
2. 如果芯片内部的 Bootloader 被擦除了, 如何将 Bootloader 下载到芯片内部的 Flash 中? 芯片内部固化的 Bootloader 受到 Flash 控制器的保护, 在 ISP 下载模式下, 进行程序的 Erase 操作不会将 Bootloader 擦除掉 由于芯片也可以通过 JTAG 接口进行程序的下载, 利用 JTAG Mk-II 下载程序时执行芯片擦除操作, 会将内部 Flash 所有内容都擦除, 因此用于引导 ISP 下载的 Bootloader 也被擦除, 如果需要用 ISP 下载程序, 必须重新烧写 Bootloader 到内部的 Flash 中 下载 UC3 Software Framework, 在 SERVICES/USB/CLASS/DFU/EXAM- PLES/ISP/AT32UC3x/Releases/ 文件夹下存放着 ISP 下载的最新 Bootloader 版本 首先, 将 JTAG Mk-II 仿真器通过 JTAG 接口连接到 AVR32UC3A-EK 板上, 开发板上电并开启仿真器 然后, 打开 Cygwin 环境或 windows 命令行环境, 并转移到 SERVICES/USB/CLASS/DFU/EXAM-PLES/ISP/AT32UC3x/Releases/AT32UC3 AES-ISP-1.0.0 目录, 输入 : $./ program_at32uc3aes-isp-1.0.0.sh 运行后, 会出现如图 19 所示下载过程信息, 下载完成后,Bootloader 便下载到芯片内部的从 0x80000000 开始 8KB 空间的 Flash 中 图 19 Bootloader 下载的下载过程接着就可以按照前面介绍的方式引导内部的 Bootloader 实现通过 USB 接口实现 ISP 下载 12