文章目录

  • 前言
  • 一键下载
  • 一键下载原理
  • 硬件原理图
  • 跳帽与启动
  • 存储映射
  • 串口下载程序由来
  • 一键下载流程
  • 通过 USB 控制机器复位握手
  • 解读


前言

最近在又要折腾 stm32 了,所以翻出了角落里的开发板,先复习下怎么一键下载来着

一键下载

硬件连接:

BOOT0 < == > GND

BOOT1 < ===>GND

esp32 短接进入下载模式 esp32 下载电路_原理图

然后设置 mcuisp 设置界面如下:

esp32 短接进入下载模式 esp32 下载电路_esp32 短接进入下载模式_02

首先点击下读器信息,检查是否 STM32 芯片的能正常进入下载模式
然后选择好要下载的 hex 文件,点击开始编程就下载完了。

如此神奇的过程,所以有了想了解一下原理的想法。

一键下载原理

硬件原理图

手头这块板子一般下载相关的硬件原理图如下:

esp32 短接进入下载模式 esp32 下载电路_串口_03

其实只涉及到 BOOT0 跳帽,这里平时接到地就好了,不用操心。

跳帽与启动

下面介绍下这两个跳帽的作用:

esp32 短接进入下载模式 esp32 下载电路_原理图_04

其实上面的电路搞那么复杂,就是想通过控制 BOOT0 高低电平,来实现启动不同存储位置的程序,以实现下载的。

存储映射

不同地址映射的存储:

esp32 短接进入下载模式 esp32 下载电路_一键下载_05

串口下载程序由来

esp32 短接进入下载模式 esp32 下载电路_原理图_06

与内嵌程序交互流程:

esp32 短接进入下载模式 esp32 下载电路_STM32_07

一键下载流程

有了原理图,也了解了硬件,有了理论指导后,再在再来了解下实际流程
以读器件信息为例,来了解下整个操作流程:

通过 USB 控制机器复位握手

软件流程:

esp32 短接进入下载模式 esp32 下载电路_一键下载_08

示波器波形 1:

esp32 短接进入下载模式 esp32 下载电路_STM32_09


esp32 短接进入下载模式 esp32 下载电路_串口_10

示波器波形 2:

esp32 短接进入下载模式 esp32 下载电路_一键下载_11

esp32 短接进入下载模式 esp32 下载电路_STM32_12

流程解示如下:
		1. 上位机控制串口芯片: 
		 		DTR 低 ===>  DTR_N  高 ==>  RESET# 低
		 		RTS 高 ===>  RTS_N 低  ==> BOOT0 高 

	 	2. 延时 100ms 等待芯片复位完成
		
		3. DTR 高 => DTR_N 低 => RESET# 高 ,复位完成,需要上拉 
			此时会从系统存储器启动,即从 ST 产线烧入的自举程序启动
	 		 	因为此时:
	 		 		BOOT0:  1 
	 		 		BOOT1:  0 

	 4. 这时候上位机会发送 0x7F 进行握手
	 	此时的上下发的数据如下图:

esp32 短接进入下载模式 esp32 下载电路_一键下载_13

解读

esp32 短接进入下载模式 esp32 下载电路_一键下载_14

esp32 短接进入下载模式 esp32 下载电路_STM32_15

esp32 短接进入下载模式 esp32 下载电路_一键下载_16