AN2606STM32F101XX和STM32F103XX超大容量器件自举程序表9.系统存储器自举模式下STM32F10xXx超大容量器件的配置(续)状态自举程序功能/外设备注初始化后,USART2的配置为:8位,偶校验位和1个停USART2使能止位。USART2USART2_RX引脚输入PD6引脚:USART2用于接收(重映射引脚)。自举程序USART2_TX引脚推挽输出PD5引脚:USART2用于发送(重映射引脚)。检测阶段期间,USART1_RX(PA1O)引脚必须保持高电平或低电平。USART1和USART2使能SysTick定时器用于自动检测主机串口波特率。自举程序系统时钟由嵌入式内部高速RC提供,自举程序代码不需要外部石英时钟。下载应用程序二进制代码后,如果选择执行Go命令,则在跳转到用户应用程序之前,自举程序使用的所有外设寄存器(如表9所示)将初始化为默认复位值,如果用户应用程序使用IWDG,则必须调整IWDG预分频器值来满足应用程序的要求(因为自举程序已将预分频器设置为最大值)。6.3自举程序硬件要求将STM32F10xxx超大容量器件置于系统存储器自举模式所需的硬件包含任何相关电路、开关或跳线,它们能够在复位期间使BOOTO引脚保持高电平,使BOOT1引脚保持低电平。注:如第6.1节:双存储区自举功能所述,当BFB2位复位,擦除了两个存储区的起始地址,并将自举引脚配置为从Flash自举时,也可以通过软件执行系统存储器自举模式。要在系统存储器自举模式下连接STM32F1Oxxx超大容量器件,必须确认以下条件:检测阶段期间,此自举程序未使用的外设RX引脚必须保持已知电平(低电平或高电平)且不得悬空,如下所述:如果使用USART1连接自举程序,则检测阶段期间,USART2RX(PD6)引脚必须保持高电平或低电平,并且不得悬空。如果使用USART2连接自举程序,则检测阶段期间,USART1_RX(PA1O)引脚必须保持高电平或低电平,并且不得悬空。当BFB2位清零,且存储区2和/或存储区1包含有效用户应用程序代码时,始终执行双存储区自举模式(自举程序始终跳转到用户代码,而不会继续执行正常操作)。因此,如果已将BFB2位清零(从存储区2自举),则要执行自举程序代码时必须:将地址0x08080000(存储区2的基址)和0x08000000(存储区1的基址)编程为0x0,或者将BFB2位置1,使BOOTO=1且BOOT1=0。通过以下硬件连接外设:RS232串行接口(例如ST3232RS232收发器),使用USART1时必须将该接口直接连接到USART1_RX(PA1O)和USART1_TX(PA9)引脚;使用USART2时则必须直接连接到USART2_RX(PD6)和USART2_TX(PD5)引脚USART1_CK、USART1_CTS和USART1_RTS引脚未使用,因此应用程序可将这些引脚用于其它外设或GPIO。这同样适用于USART2。A26/119文档ID13801第16版
STM32F101xx 和 STM32F103xx 超大容量器件自举程序 AN2606 26/119 文档 ID 13801 第 16 版 系统时钟由嵌入式内部高速 RC 提供,自举程序代码不需要外部石英时钟。 下载应用程序二进制代码后,如果选择执行 Go 命令,则在跳转到用户应用程序之前,自举 程序使用的所有外设寄存器(如表 9 所示)将初始化为默认复位值。 如果用户应用程序使用 IWDG,则必须调整 IWDG 预分频器值来满足应用程序的要求(因为 自举程序已将预分频器设置为最大值)。 6.3 自举程序硬件要求 将 STM32F10xxx 超大容量器件置于系统存储器自举模式所需的硬件包含任何相关电路、开 关或跳线,它们能够在复位期间使 BOOT0 引脚保持高电平,使 BOOT1 引脚保持低电平。 注: 如第 6.1 节:双存储区自举功能所述,当 BFB2 位复位,擦除了两个存储区的起始地址,并 将自举引脚配置为从 Flash 自举时,也可以通过软件执行系统存储器自举模式。 要在系统存储器自举模式下连接 STM32F10xxx 超大容量器件,必须确认以下条件: ● 检测阶段期间,此自举程序未使用的外设 RX 引脚必须保持已知电平(低电平或高电平) 且不得悬空,如下所述: — 如果使用 USART1 连接自举程序,则检测阶段期间,USART2_RX (PD6) 引脚必 须保持高电平或低电平,并且不得悬空。 — 如果使用 USART2 连接自举程序,则检测阶段期间,USART1_RX (PA10) 引脚必 须保持高电平或低电平,并且不得悬空。 ● 当 BFB2 位清零,且存储区 2 和 / 或存储区 1 包含有效用户应用程序代码时,始终执行 双存储区自举模式(自举程序始终跳转到用户代码,而不会继续执行正常操作)。因 此,如果已将 BFB2 位清零(从存储区 2 自举),则要执行自举程序代码时必须: — 将地址 0x0808 0000(存储区 2 的基址)和 0x0800 0000(存储区 1 的基址)编程 为 0x0,或者 — 将 BFB2 位置 1,使 BOOT0 = 1 且 BOOT1 = 0。 ● 通过以下硬件连接外设: — RS232 串行接口(例如 ST3232 RS232 收发器),使用 USART1 时必须将该接口 直接连接到 USART1_RX (PA10) 和 USART1_TX (PA9) 引脚;使用 USART2 时则 必须直接连接到 USART2_RX (PD6) 和 USART2_TX (PD5) 引脚 USART1_CK、USART1_CTS 和 USART1_RTS 引脚未使用,因此应用程序可将这些引脚 用于其它外设或 GPIO。这同样适用于 USART2。 USART2 自举程序 USART2 使能 初始化后,USART2 的配置为:8 位,偶校验位和 1 个停 止位。 USART2_RX 引脚 输入 PD6 引脚:USART2 用于接收(重映射引脚)。 USART2_TX 引脚 推挽输出 PD5 引脚:USART2 用于发送(重映射引脚)。 检测阶段期间,USART1_RX (PA10) 引脚必须保持高电平或低电平。 USART1 和 USART2 自举程序 SysTick 定时器 使能 用于自动检测主机串口波特率。 表 9. 系统存储器自举模式下 STM32F10xxx 超大容量器件的配置(续) 自举程序 功能/外设 状态 备注
AN2606STM32F101xx和STM32F103xX超大容量器件自举程序6.4自举程序选择STM32F10xxX超大容量嵌入式自举程序支持两种外设接口:USART1和USART2。其中任何一种外设接口都可用于与自举程序进行通信,以及将应用程序代码下载到内部Flash。嵌入式自举程序固件可自动检测要使用的外设接口。在无限循环中,它将检测支持的自举程序接口上进行的任何通信。注:如下文所述,检测阶段期间,此自举程序未使用的外设RX引脚必须保持已知电平(低电平或高电平)且不得悬空。有关详细信息,请参见第6.3节:自举程序硬件要求。要将USART自举程序用于USART1或USART2,可将串行电缆连接到所需接口。自举程序在该接口检测到数据字节Ox7F后,自举程序固件立即执行自动波特率序列,然后进入循环,等待发出任何USART自举程序命令。为自举程序选择一个接口后,其它接口将禁止。图3显示了自举程序检测机制。详细信息请参见各外设自举程序的对应部分。A27/119文档ID13801第16版
文档 ID 13801 第 16 版 27/119 AN2606 STM32F101xx 和 STM32F103xx 超大容量器件自举程序 118 6.4 自举程序选择 STM32F10xxx 超大容量嵌入式自举程序支持两种外设接口:USART1 和 USART2。其中任 何一种外设接口都可用于与自举程序进行通信,以及将应用程序代码下载到内部 Flash。 嵌入式自举程序固件可自动检测要使用的外设接口。在无限循环中,它将检测支持的自举程 序接口上进行的任何通信。 注: 如下文所述,检测阶段期间,此自举程序未使用的外设 RX 引脚必须保持已知电平(低电平 或高电平)且不得悬空。有关详细信息,请参见第 6.3 节:自举程序硬件要求。 要将 USART 自举程序用于 USART1 或 USART2,可将串行电缆连接到所需接口。自举程 序在该接口检测到数据字节 0x7F 后,自举程序固件立即执行自动波特率序列,然后进入循 环,等待发出任何 USART 自举程序命令。 为自举程序选择一个接口后,其它接口将禁止。 图3 显示了自举程序检测机制。详细信息请参见各外设自举程序的对应部分
STM32F101xx和STM32F103xX超大容量器件自举程序AN2606图3.STM32F10XXX超大容量器件的自举程序选择系统复位+BFB2位复位(BFB2 = 0)如果地址0x08080000的值位于内部SRAM地址内跳转到存储区2中的用户代码如果地址0x08000000的值位于内部SRAM地址内跳转到存储区1中的用户代码继续执行自举程序★禁止所有中断源系统初始化(时钟、GPIO、IWDG、SysTick)★USART1上接收到0x7F4USART2上接收到0x7F配置USART2配置USART1Y对USART2执行对USART1执行BLUSARTLOOpBLUSARTLOopMS31604V1A28/119文档ID13801第16版
STM32F101xx 和 STM32F103xx 超大容量器件自举程序 AN2606 28/119 文档 ID 13801 第 16 版 图 3. STM32F10xxx 超大容量器件的自举程序选择 069 ㋏㒳ԡ 86$57B Ϟᬊࠄ(] 86$57B Ϟᬊࠄ(] 䜡㕂86$57 ᇍ86$57ᠻ㸠 %/B86$57B/RRS 䜡㕂86$57 ᇍ86$57ᠻ㸠 %/B86$57B/RRS ৺ ৺ ᰃ ᰃ %)%ԡԡ %)% བᵰഄഔ [ⱘ ؐԡѢݙ䚼65$0 ݙഔഄ བᵰഄഔ [ⱘ ؐԡѢݙ䚼65$0 ݙഔഄ ㋏㒳߱ྟ࣪嚋ᯊ䩳̩*3,2̩ ,:'*̩6\V7LFN嚌 㒻㓁ᠻ㸠㞾Вᑣ ᰃ ৺ ৺ ⽕ℶ᠔᳝Ёᮁ⑤ ৺ 䏇䕀ࠄᄬټऎ Ёⱘ⫼᠋ҷⷕ 䏇䕀ࠄᄬټऎ Ёⱘ⫼᠋ҷⷕ ᰃ ᰃ
AN2606STM32F101xx和STM32F103xx超大容量器件自举程序6.5自举程序版本表10列出了STM32F101xx和STM32F103xx超大容量器件的自举程序版本。表10.超大容量器件自举程序版本说明自举程序版本号V2.1初始自举程序版本S29/119文档ID13801第16版
文档 ID 13801 第 16 版 29/119 AN2606 STM32F101xx 和 STM32F103xx 超大容量器件自举程序 118 6.5 自举程序版本 表 10 列出了 STM32F101xx 和 STM32F103xx 超大容量器件的自举程序版本。 表 10. 超大容量器件自举程序版本 自举程序版本号 说明 V2.1 初始自举程序版本
STM32L151xx和STM32L152xX中容量超低功耗器件自举程序AN26067STM32L151xX和STM32L152xx中容量超低功耗器件自举程序本部分使用STM32L15xxX中容量器件指代中容量STM32L151xx和STM32L152xX超低功耗器件。7.1自举程序配置STM32L15xxX中容量器件嵌入式自举程序支持两种串行接口:USART1和USART2外设。下表介绍了系统存储器自举模式下,自举程序需要使用的STM32L15xxX中容量器件硬件资源。表11.系统存储器自举模式下STM32L15xxX器件的配置自举程序状态功能/外设备注时钟源HSI使能系统时钟频率等于16MHz。RAM自地址0x20000000起的2KB空间供自举程序固件使用。-系统存储器自地址0x1FF00000起的4KB空间包含自举程序固件。-适用于所有独立看门狗(IWDG)预分频器配置为最大值,并定期进行自举程序IWDG刷新以防止看门狗复位(如果用户事先使能硬件IWDG选项)。电源电压范围设置为电压范围1。初始化后,USART1的配置为:8位,偶校验位和1个停USART1使能止位。USART1输入USART1_RX引脚PA10引脚:USART1用于接收。自举程序输出USART1_TX引脚PA9引脚:USART1用于发送。检测阶段期间,USART2_RX(PD6)引脚必须保持高电平或低电平。初始化后,USART2的配置为:8位,偶校验位和1个停USART2使能止位。USART2USART2_RX引脚输入PD06引脚:USART2用于接收。自举程序USART2_TX引脚输出PD05引脚:USART2用于发送。检测阶段期间,USART1_RX(PA10)引脚必须保持高电平或低电平。USART1和USART2使能SysTick定时器用于自动检测主机串口波特率。自举程序系统时钟由嵌入式内部高速BC提供,自举程序代码不需要外部石英时钟下载应用程序二进制代码后,如果选择执行Go命令,则在跳转到用户应用程序之前,自举程序使用的所有外设寄存器(如上表所示)将初始化为默认复位值。如果用户应用程序使用IWDG,则必须调整IWDG预分频器值来满足应用程序的要求(因为自举程序已将预分频器设置为最大值)。A30/119文档ID13801第16版
STM32L151xx 和 STM32L152xx 中容量超低功耗器件自举程序 AN2606 30/119 文档 ID 13801 第 16 版 7 STM32L151xx 和 STM32L152xx 中容量超低功耗器件 自举程序 本部分使用 STM32L15xxx 中容量器件指代中容量 STM32L151xx 和 STM32L152xx 超低功 耗器件。 7.1 自举程序配置 STM32L15xxx 中容量器件嵌入式自举程序支持两种串行接口:USART1 和 USART2 外设。 下表介绍了系统存储器自举模式下,自举程序需要使用的 STM32L15xxx 中容量器件硬件 资源。 系统时钟由嵌入式内部高速 RC 提供,自举程序代码不需要外部石英时钟。 下载应用程序二进制代码后,如果选择执行 Go 命令,则在跳转到用户应用程序之前,自举 程序使用的所有外设寄存器(如上表所示)将初始化为默认复位值。如果用户应用程序使用 IWDG,则必须调整 IWDG 预分频器值来满足应用程序的要求(因为自举程序已将预分频器 设置为最大值)。 表 11. 系统存储器自举模式下 STM32L15xxx 器件的配置 自举程序 功能/外设 状态 备注 适用于所有 自举程序 时钟源 HSI 使能 系统时钟频率等于 16 MHz。 RAM - 自地址 0x20000000 起的 2 KB 空间供自举程序固件使用。 系统存储器 - 自地址 0x1FF00000 起的 4 KB 空间包含自举程序固件。 IWDG - 独立看门狗 (IWDG) 预分频器配置为最大值,并定期进行 刷新以防止看门狗复位(如果用户事先使能硬件 IWDG 选项)。 电源 - 电压范围设置为电压范围 1。 USART1 自举程序 USART1 使能 初始化后,USART1 的配置为:8 位,偶校验位和 1 个停 止位。 USART1_RX 引脚 输入 PA10 引脚:USART1 用于接收。 USART1_TX 引脚 输出 PA9 引脚:USART1 用于发送。 检测阶段期间,USART2_RX (PD6) 引脚必须保持高电平或低电平。 USART2 自举程序 USART2 使能 初始化后,USART2 的配置为:8 位,偶校验位和 1 个停 止位。 USART2_RX 引脚 输入 PD06 引脚:USART2 用于接收。 USART2_TX 引脚 输出 PD05 引脚:USART2 用于发送。 检测阶段期间,USART1_RX (PA10) 引脚必须保持高电平或低电平。 USART1 和 USART2 自举程序 SysTick 定时器 使能 用于自动检测主机串口波特率