分享

Stm32 一键下载电路详解

 goodwangLib 2019-09-16

前言

最近在又要折腾 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 进行握手
	 	此时的上下发的数据如下图:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

解读

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多