文章目录
- 前言
- 一键下载
- 一键下载原理
- 硬件原理图
- 跳帽与启动
- 存储映射
- 串口下载程序由来
- 一键下载流程
- 通过 USB 控制机器复位握手
- 解读
前言
最近在又要折腾 stm32 了,所以翻出了角落里的开发板,先复习下怎么一键下载来着
一键下载
硬件连接:
BOOT0 < == > GND
BOOT1 < ===>GND
然后设置 mcuisp 设置界面如下:
首先点击下读器信息,检查是否 STM32 芯片的能正常进入下载模式
然后选择好要下载的 hex 文件,点击开始编程就下载完了。
如此神奇的过程,所以有了想了解一下原理的想法。
一键下载原理
硬件原理图
手头这块板子一般下载相关的硬件原理图如下:
其实只涉及到 BOOT0 跳帽,这里平时接到地就好了,不用操心。
跳帽与启动
下面介绍下这两个跳帽的作用:
其实上面的电路搞那么复杂,就是想通过控制 BOOT0 高低电平,来实现启动不同存储位置的程序,以实现下载的。
存储映射
不同地址映射的存储:
串口下载程序由来
与内嵌程序交互流程:
一键下载流程
有了原理图,也了解了硬件,有了理论指导后,再在再来了解下实际流程
以读器件信息为例,来了解下整个操作流程:
通过 USB 控制机器复位握手
软件流程:
示波器波形 1:
示波器波形 2:
流程解示如下:
1. 上位机控制串口芯片:
DTR 低 ===> DTR_N 高 ==> RESET# 低
RTS 高 ===> RTS_N 低 ==> BOOT0 高
2. 延时 100ms 等待芯片复位完成
3. DTR 高 => DTR_N 低 => RESET# 高 ,复位完成,需要上拉
此时会从系统存储器启动,即从 ST 产线烧入的自举程序启动
因为此时:
BOOT0: 1
BOOT1: 0
4. 这时候上位机会发送 0x7F 进行握手
此时的上下发的数据如下图:
解读