1 引言
本应用笔记提供如何在APM32F4xx系列上使用图形界面程序Geehy-ISP MultiPort Programmer和Geehy-DFU Programmer对固件进行ISP 在线升级。
其中Geehy-ISP MultiPort Programmer应用程序,基于USART 通信协议对单个或多个MCU 设备进行读写、擦除等操作。
Geehy-DFU Programmer应用程序 基于USB通讯协议对单个MCU 设备进行读写、擦除等操作。
本应用笔记中涉及的应用程序均可在 www.geehy.com 进行获取下载。
2 ISP MultiPort Programmer
ISP即In-System-Programming,在线编程,具有ISP功能的芯片,可以通过简单的下载线直接在电路板上给芯片写入或擦除程序,由上位机的软件通过串口来进行改写,并且支持在线调试。使得用户不需要编程器就可以对芯片进行试验和开发。本小结将以APM32F407IGMINIBOARD演示Geehy-ISP MultiPort Programmer的应用功能。
2.1 环境要求
2.1.1 软件要求
需要Windows XP、Windows7及以上操作系统支持。
需要.net Framework4.0的支持。
2.1.2 硬件要求
可用的串行通讯端口(COM)。
对于同时连接多台设备时,请使用传输稳定的数据线、USB Hub、USB转串口设备。
在连接多台设备时,请根据PC的实际配置情况选择合适的设备数量。
2.2 硬件连接
2.2.1 连接方式
Geehy-ISP Multiport Programmer支持连接一台设备和同时支持连接多台设备的操作。设备连接方式如下:
1) UART一台设备连接,如下图所示:
图 1 一台设备连接方式
2) UART同时连接多台设备,如下图所示:
图 2 多台设备连接方式
2.2.2 引导模式
APM32F4xx系列提供了3种引导模式,用户可通过BOOT引脚进行选择,该引脚状态会在复位后的第四个系统时钟的上升沿锁存。使用ISP时选择系统存储器进行启动引导。
BOOT1 | BOOT0 | 引导模式 |
X | 0 | 主FLASH存储器 |
0 | 1 | 系统存储器 |
1 | 1 | SRAM |
2.2.3 通信接口
用户通过USART1引脚进行通信连接。
串口 | TX Pin(发送) | RX Pin(接收) |
USART1 | PA9 | PA10 |
2.3 设备操作
2.3.1 主界面
Geehy-ISP Multi_Port Programmer 主界面分为4部分,如下图:
图 3 主界面
1. 菜单栏和工具栏:
1) 菜单栏各栏功能分别如下:
文件:包含“退出”,功能是出程序。
视图:包含“工具栏”,功能是显示/隐藏工具栏。
窗口:包含“新建窗口”、“刷新串口”和“全部关闭”,
功能分别是新建设备操作窗口、刷新设备连接串口、关闭所有设备操作窗口。
操作:包含“全部连接”、“全部断开”、“全部执行”和“全部中止”
功能分别是连接/断开所有设备、所有设备运行/中止。
帮助:包含“使用说明”、“关于”,功能是打开说明书和查看软件相关信息。
语言选择:包含“English”、“中文”功能是切换界面语言。
2) 工具栏各按钮功能分别是:“新建窗口”、“刷新串口”、“全部连接”、“全部断开”、“全部执行”和“全部中止”。
2. 设备控制信息显示区:此区域设置设备连接配置和设备信息显示。
3. 设备操作配置区:此区域设置对设备的一些操作配置。
4. 操作结果显示区:此区域显示设备操作执行情况。
2.3.2 设备连接
1) 点击“新建窗口”按钮,新建操作窗口。
2) 选择串口号和波特率,最小波特率为1200 bit/s,最大波特率为115200 bit/s;设置超时时间(1≦timeout≦10),单位为“s”。
3) 连接:复位MCU,点击“连接”打开串口并与MCU完成握手,握手成功后获取的MCU信息如下:
图 4 芯片读取情况
4) 若与MCU握手失败,有如下提示:
图 5 连接失败提示
2.4 功能操作
2.4.1 擦除操作
1) 擦除全部空间
图 6 擦除全部空间
2) 擦除指定空间:可设置需要擦除的起始页和终止页
图 7 擦除指定空间
2.4.2 写入选项字节
1) 选择“写入选项字节”后, 会获取MCU的当前选项字配置,如图所示:
图 8 写入选项字节
2.4.3 读出选项字节
图 9 读出选项字节
2.4.4 写入文件
选择“写入文件”后,还可作如下选择:
擦除方式:可选择“擦除使用空间”或“擦除全部空间”。
写后操作:“下载后校验”在文件数据全部写入MCU后,从起始地址开始将同样长度的MCU数据读出进行数据校验,判断写入MCU的数据是否正确;“下载后执行程序”启动写入MCU的程序。
* 注意:当文件后缀为“.hex”时,起始地址不可编辑。
* 注意:启动写入MCU的程序后,上位机与系统存储器引导加载程序的通信丢失,需要重连MCU。
图 10 写入文件
2.4.5 读出文件
图 11 正在读文件
图 12 读出文件
2.4.6 执行与中止
1) 执行:配置操作后,点击“执行”(或点击工具栏上“全部执行”按钮)开始与MCU通信,完成用户所选择的功能。
2) 中止:开始执行后会使能“中止”(或点击工具栏上“全部中止”按钮),下面以“读出文件”为例说明中止功能。
3) 注意:中止之后,操作将会失败。
图 13 中止操作
3 DFU Programmer
DFU全称是 Device Firmware Upgrade,设备固件升级。主要是支持USB的BootLoader,可以对芯片FLASH进行编程和选项字节的修改。该软件功能与APM32 ISP Multiport Programmer基本类似,只不过是使用USB对MCU设备进行软件升级。本小结将以APM32F407IGMINIBOARD演示DFU Programmer的应用功能。
3.1 环境要求
3.1.1 软件要求
需要Windows XP、Windows7及以上操作系统支持。
需要.net Framework4.0的支持。
3.1.2 硬件要求
支持Type-B, Mini-B, Micro-B等USB接口类型。
3.2 设备操作
3.2.1 主界面
DFU Programmer 主界面分为4部分,如下图:
图 14 主界面
- 功能区:此区域显示设备应用功能。
- 设备区:此区域显示设备信息及状态。
- 信息区:此区域显示设备连接基本信息。
- 结果区:此区域显示设备操作执行情况。
3.2.2 驱动安装
1) 管理员打开cmd,输入bcdedit /set testsigning on
2) 设备插入电脑,查看设备管理器:
3) 选择【更新驱动程序】:
4) 选择【显示所有设备】下一步:
5) 选择“APM32DfuDriver.inf”驱动文件:
6) 选择【关闭】完成更新驱动:
3.3 功能操作
3.3.1 连接设备
1) 根据设备详情,选择对应设备,点击【连接设备】按钮。
2) 当有新设备加入,需点【断开设备】,再点击【搜索设备】按钮查找设备,重新连接。
图 15 连接设备
3.3.2 读取芯片
1) 填入芯片读取的起始地址,以及读取数据大小,点击【读取芯片】,列表会显示对应读取回来的数据,有三种数据显示格式:8 bit 、16 bit、32bit,点击单选按钮可以切换。
2) 点击【保存数据】按钮可以把读回来的数据保存到本地。
图 16 读取芯片
3.3.3 固件升级
1) 选择需要写入的 bin 文件,选择数据写入的起始地址,选择配置条件,点击开始更新固件。
2) 擦除芯片后写入:会把对应的扇区数据擦除。
3) 写入后运行:会在写入后运行程序,后续需要手动复位芯片重新连接。
图 17 固件升级
3.3.4 选项字节
1) 【读取】按钮的作用是读取最新选项字节配置。
2) 【应用】按钮的作用是把最新的修改写入到芯片。
3) 【取消读保护】按钮作用是恢复到 AA(不保护)状态。
4) 【用户配置】鼠标悬停在选项上可以看详细解释。
注:读保护状态时,用户无法进行【读取芯片】、【固件升级】、【擦除芯片】操作。
图 18 选项字节
3.3.5 擦除芯片
1) 【搜索地址】可以通过搜索框输入地址,然后点击回车键,快速定位被擦除扇区的所在的区间。
2) 【反选】可以快速反选需要擦除的地址,已选会变成未选,未选会变成已选。
3) 【擦除已选】勾选需要擦除的扇区,对应擦除该扇区。
4) 【擦除全部】擦除整个Flash 扇区。