AN2606Slife.augmented应用笔记STM32TM微控制器系统存储器自举模式前言自举程序存储在STM32器件的内部自举ROM存储器(系统存储器)中。在生产期间由ST编程。其主要任务是通过一种可用的串行外设(USART、CAN、USB、PC等)将应用程序下载到内部Flash中。每种串行接口都定义了相应的通信协议,其中包含兼容的命令集和序列。本文档适用于表1中所列产品。这些产品在整个文档中称为STM32表1.适用的产品类型型号和产品系列所有STM32F1(主流)产品所有STM32F2(高性能)产品STM32F050(入门级)产品:STM32F050x4、STM32F050x6、STM32F051x4、STM32F051x6和STM32F051x8STM32L1(超低功耗)产品:STM32L151xX、STM32L152xx和STM32L162xX微控制器STM32F3(模拟与DSP)产品:-STM32F302xx、STM32F303xX、STM32F313xX、STM32F372xX、STM32F373xx和STM32F383xxSTM32F4(高性能与DSP)产品:STM32F405xx、STM32F407xx、STM32F415xx、STM32F417xx、STM32F427xx和STM32F437xx自举程序的主要功能如下:.使用嵌入式串行接口按照预定义的通信协议下载代码可传送并更新Flash代码、数据和向量表部分本应用笔记介绍了自举程序的一般概念。说明了使用表1中所列STM32器件的自举程序时支持的外设以及需要考虑的硬件要求。不过,支持的每种串行外设的低层级通信协议规范在单独的文档中进行了介绍。有关自举程序中使用的USART协议的规范,请参见AN3155。有关自举程序中使用的CAN协议的规范,请参见AN3154。有关自举程序中使用的DFU(USB设备)协议的规范,请参见AN3156。有关自举程序中使用的12C协议的规范,请参见AN4221。1/1192013年02月文档ID13801第16版www.st.com
2013 年 02 月 文档 ID 13801 第 16 版 1/119 AN2606 应用笔记 STM32™ 微控制器系统存储器自举模式 前言 自举程序存储在 STM32 器件的内部自举 ROM 存储器(系统存储器)中。在生产期间由 ST 编程。其主要任务是通过一种可用的串行外设(USART、CAN、USB、I 2C 等)将应用程序下 载到内部 Flash 中。每种串行接口都定义了相应的通信协议,其中包含兼容的命令集和序列。 本文档适用于表 1 中所列产品。这些产品在整个文档中称为 STM32。 自举程序的主要功能如下: ● 使用嵌入式串行接口按照预定义的通信协议下载代码 ● 可传送并更新 Flash 代码、数据和向量表部分 本应用笔记介绍了自举程序的一般概念。说明了使用表 1 中所列 STM32 器件的自举程序时 支持的外设以及需要考虑的硬件要求。不过,支持的每种串行外设的低层级通信协议规范在 单独的文档中进行了介绍。有关自举程序中使用的 USART 协议的规范,请参见 AN3155。 有关自举程序中使用的 CAN 协议的规范,请参见 AN3154。有关自举程序中使用的 DFU (USB 设备)协议的规范,请参见 AN3156。有关自举程序中使用的 I2C 协议的规范,请参 见 AN4221。 表 1. 适用的产品 类型 型号和产品系列 微控制器 所有 STM32F1(主流)产品 所有 STM32F2(高性能)产品 STM32F050(入门级)产品: — STM32F050x4、STM32F050x6、STM32F051x4、STM32F051x6 和 STM32F051x8 STM32L1(超低功耗)产品: — STM32L151xx、STM32L152xx 和 STM32L162xx STM32F3(模拟与 DSP)产品: — STM32F302xx、STM32F303xx、STM32F313xx、STM32F372xx、STM32F373xx 和 STM32F383xx STM32F4(高性能与 DSP)产品: — STM32F405xx、STM32F407xx、STM32F415xx、STM32F417xx、STM32F427xx 和 STM32F437xx www.st.com
目录AN2606目录19相关文档2词汇表93自举程序一般说明113.111自举程序激活3.211退出系统存储器自举模式3.3自举程序标识124STM32F100xX、STM32F101xX、STM32F102xx、14STM32F103xX中容量和大容量超值型自举程序4.1自举程序配置144.2自举程序硬件要求144.315自举程序选择4.4自举程序版本165STM32F105xx和STM32F107xx器件自举程序175.1自举程序配置175.219自举程序硬件要求5.319自举程序选择5.422自举程序版本5.4.1如何识别STM32F105xx/107xx自举程序版本.225.4.2日期代码小于937的STM32F105xx/STM32F107xx器件上自举程序不可用.235.4.3USART自举程序Get-Version命令返回Ox20而不是0x22...235.4.4自举程序V2.0中插入USB电缆时PA9功耗过大.236. 24STM32F101xX和STM32F103xX超大容量器件自举程序6.1双存储区自举功能.. 246.2自举程序配置. 256.3自举程序硬件要求.266.4. 27自举程序选择6.5自举程序版本29A2/119文档ID13801第16版
目录 AN2606 2/119 文档 ID 13801 第 16 版 目录 1 相关文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 词汇表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 自举程序一般说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1 自举程序激活 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 退出系统存储器自举模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 自举程序标识 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4 STM32F100xx、STM32F101xx、STM32F102xx、 STM32F103xx 中容量和大容量超值型自举程序 . . . . . . . . . . . . . . . . . . . . 14 4.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5 STM32F105xx 和 STM32F107xx 器件自举程序 . . . . . . . . . . . . . . . . . . . . 17 5.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.4 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.4.1 如何识别 STM32F105xx/107xx 自举程序版本 . . . . . . . . . . . . . . . . . . . . 22 5.4.2 日期代码小于 937 的 STM32F105xx/STM32F107xx 器件上 自举程序不可用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.4.3 USART 自举程序 Get-Version 命令返回 0x20 而不是 0x22 . . . . . . . . . . 23 5.4.4 自举程序 V2.0 中插入 USB 电缆时 PA9 功耗过大 . . . . . . . . . . . . . . . . . 23 6 STM32F101xx 和 STM32F103xx 超大容量器件自举程序 . . . . . . . . . . . . 24 6.1 双存储区自举功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.2 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.3 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.4 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
AN2606目录7. 30STM32L151xx和STM32L152xX中容量超低功耗器件自举程序7.1自举程序配置.307.2自举程序硬件要求.. 317.3自举程序选择.317.4.32重要事项7.5自举程序版本.338STM32L151xX、STM32L152xx和STM32L162xx大容量超低功耗器件自举程序.348.134双存储区自举功能8.2自举程序配置... 368.3自举程序硬件要求.. 378.4自举程序选择..388.540重要事项8.641自举程序版本9STM32F205/215xx和STM32F207/217xX自举程序.429.142自举程序V2.x.9.1.1自举程序配置..429.1.2自举程序硬件要求.439.1.3.44自举程序选择9.1.4重要事项.459.1.5自举程序V2.x版本.469.2自举程序V3.x.469.2.1自举程序配置.469.2.2.48自举程序硬件要求9.2.3.49自举程序选择9.2.4重要事项..519.2.5自举程序版本V3.x.5210STM32F405/415xx和STM32F407/417xX自举程序.5310.153自举程序配置10.2.. 55自举程序硬件要求10.3自举程序选择..5610.4重要事项5810.5自举程序版本59A3/119文档ID13801第16版
文档 ID 13801 第 16 版 3/119 AN2606 目录 5 7 STM32L151xx 和 STM32L152xx 中容量超低功耗器件自举程序 . . . . . . . 30 7.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 7.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 8 STM32L151xx、STM32L152xx 和 STM32L162xx 大容量超低功耗器件自举程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 8.1 双存储区自举功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 8.2 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 8.3 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 8.4 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.5 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.6 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 9 STM32F205/215xx 和 STM32F207/217xx 自举程序 . . . . . . . . . . . . . . . . 42 9.1 自举程序 V2.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.1.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 9.1.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 9.1.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9.1.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.1.5 自举程序 V2.x 版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.2 自举程序 V3.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.2.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.2.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.2.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 9.2.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 9.2.5 自举程序版本 V3.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 10 STM32F405/415xx 和 STM32F407/417xx 自举程序 . . . . . . . . . . . . . . . . 53 10.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 10.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 10.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 10.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 10.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
目录AN260611STM32F051x4、STM32F051x6和STM32F051x8器件自举程序.6011.160自举程序配置11.2自举程序硬件要求6111.3自举程序选择6111.4.63重要事项11.5自举程序版本6312STM32L151xX和STM32L152xx中容量增强型超低功耗器件自举程序..6412.1. 64自举程序配置12.2自举程序硬件要求6612.366自举程序选择12.4重要事项.6812.5自举程序版本6813..69STM32F050x4和STM32F050x6器件自举程序13.1. 69自举程序配置13.270自举程序硬件要求13.370自举程序选择13.4重要事项7213.572自举程序版本14STM32F372xx和STM32F373xx器件自举程序7314.173自举程序配置14.274自举程序硬件要求14.3自举程序选择7514.4重要事项7714.5自举程序版本7715STM32F302xx和STM32F303xx器件自举程序.7815.1自举程序配置.. 787915.2自举程序硬件要求15.3自举程序选择.8015.4..82重要事项15.5自举程序版本82A4/119文档ID13801第16版
目录 AN2606 4/119 文档 ID 13801 第 16 版 11 STM32F051x4、STM32F051x6 和 STM32F051x8 器件自举程序 . . . . . . 60 11.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 11.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 11.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 11.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 11.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 12 STM32L151xx 和 STM32L152xx 中容量增强型超低功耗器件自举程序 . . 64 12.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 12.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 12.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 12.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 12.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 13 STM32F050x4 和 STM32F050x6 器件自举程序 . . . . . . . . . . . . . . . . . . . . 69 13.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 13.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 13.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 13.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 13.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 14 STM32F372xx 和 STM32F373xx 器件自举程序 . . . . . . . . . . . . . . . . . . . . 73 14.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 14.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 14.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 14.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 14.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 15 STM32F302xx 和 STM32F303xx 器件自举程序 . . . . . . . . . . . . . . . . . . . . 78 15.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 15.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 15.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 15.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 15.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
目录AN26061683STM32F383xx器件自举程序16.183自举程序配置16.2自举程序硬件要求..8416.3自举程序选择8416.4重要事项. 8616.5自举程序版本8617STM32F313xx器件自举程序8717.1. 87自举程序配置17.2自举程序硬件要求8817.389自举程序选择17.4.91重要事项17.5自举程序版本911892STM32F427xx和STM32F437xx器件自举程序,18.192自举程序配置18.2自举程序硬件要求9418.395自举程序选择18.4重要事项. 9718.598自举程序版本1999器件相关的自举程序参数20101自举程序时序特性USART自举程序时序特性10120.120.2USB自举程序时序特性:10820.311312C自举程序时序特性21版本历史115A5/119文档ID13801第16版
文档 ID 13801 第 16 版 5/119 AN2606 目录 5 16 STM32F383xx 器件自举程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 16.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 16.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 16.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 16.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 16.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 17 STM32F313xx 器件自举程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 17.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 17.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 17.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 17.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 17.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 18 STM32F427xx 和 STM32F437xx 器件自举程序 . . . . . . . . . . . . . . . . . . . . 92 18.1 自举程序配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 18.2 自举程序硬件要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 18.3 自举程序选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 18.4 重要事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 18.5 自举程序版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 19 器件相关的自举程序参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 20 自举程序时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 20.1 USART 自举程序时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 20.2 USB 自举程序时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 20.3 I2C 自举程序时序特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 21 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115