一. 介绍
ST官方提供了Flash loader demonstrator用于ISP下载程序。但是必须依托桌面操作系统,实际生产中不够方便,离线下载器可以解决这个问题。这里所介绍的就是开发离线下载器所必须了解的知识。
ST官方提供了一份学习笔记,编号是AN3155.pdf。详细介绍了ISP下载相关协议,请在本文结尾处下载。此协议适用于以下系列单片机:
-
STM32F050x4、STM32F050x6、STM32F051x4、STM32F051x6、STM32F051x8
-
STM32F1主流产品
-
STM32F2高性能系列
-
STM32F302xx、STM32F303xx、STM32F313xx、STM32F372xx、STM32F373xx、STM32F383xx
-
STM32F405xx、STM32F407xx、STM32F415xx、STM32F417xx、STM32F427xx、STM32F437xx
-
STM32L1系列
此协议公示的命令有12条,未公示的不确定。每条命令的详细用法请参考AN3155,这里只介绍最必要的几条命令,完成烧录文件的下载。
-
Get
-
Get Version & Read Protection Status
-
Get ID
-
Read Memory
-
Go
-
Write Memory
-
Erase Memory
-
Extended Erase Memory
-
Write Protect
-
Write Unprotect
-
Readout Protect
-
Readout Unprotect
二. 应用
要完成程序的烧录,最简单的操作流程如下:
1. 连接:主机发送1个字节0x7F ,成功后从机回复一个字节0x79
2. 擦除:(1) 主机发送2个字节0x43 0xBC,即Erase Memory指令。成功后从机回复一个字节0x79
(2) 主机发送2个字节0xFF 0x00,即全部擦除。成功后从机回复一个字节0x79
3. 烧录:(1) 主机发送2个字节0x31 0xCE,即Write Memory指令。成功后从机回复一个字节0x79
(2) 主机发送4个字节的下载地址+一个字节的校验和,校验和即前面4个字节的异或。成功后从机回复一个字节0x79
(3) 主机发送1+N+1个字节,其中N代表要发送的数据字节数,N不能大于256且必须能被4整除,不够被4整除的要用0xFF补齐。第一个字节的值=N-1,最后一个字节是校验和,即它以前(1+N)所有字节的异或。成功后从机回复一个字节0x79
说明:循环这里的(1)(2)(3)直至全部烧录完成。
4. 启动:(1) 主机发送2个字节0x21 0xDE,即GO指令,成功后从机回复一个字节0x79
(2) 主机发送4个字节的启动地址+一个字节的校验和,校验和即前面4个字节的异或,这个地址也就是HEX文件中的05数据类型的数据。成功后从机回复一个字节0x79
备注:主机串口配置为:9600-8-E-1
AN3155.pdf下载地址:解压密码 www.evelee.cc AN3155.rar