STM32一键下载电路设计原理
先放原理图(补充:图中的BOOT0通过10K的电阻接到地),再解释为什么这么设计:

STM32启动方式:BOOT0和 BOOT1用于设置 STM32的启动方式 ,见下表:

BOOT0=1,BOOT1=0:串口下载模式;
BOOT0=0,BOOT1=X:程序启动模式,从内部flash启动。
设计思路:串口一键下载需要做的就是下载时,为串口下载模式,下载完成后,为启动模式。
电路设计:一般在使用软件进行串口烧录程序的时候用到这个电路(这不是废话吗),例如使用FlyMCU软件下载程序;CH340G芯片的13脚DTR、14脚RTS的电平是可以被下载软件控制的。通过串口的DTR 和 RTS 信号,来自动配置 BOOT0 和 RST 信号。他们的状态如下:
> RTS#和DTR#初始状态时为高电平;
> 在启用下载的时候,DTR#维持高,RTS#拉低,此时Q3和Q4都导通,那么BOOT0为高电平状态,RESET为低电平复位,然后DTR#变低,Q3不导通,复位结束,此时的BOOT0为高电平,经过4个SYSCLK,BOOT0的状态会被锁存,变成串口下载模式,那么就会启用串口下载程序,开始和FlyMCU下载软件进行通信,进行代码下载;
> 等到代码下载结束时,RTS#先变高电平,然后DTR#再变高电平,变成程序启动模式。(这个顺序不能变,如果DTR#先变到高电平,Q3会导通,RESET变成低电平,这样又会产生复位。)
时序如下图:

关于疑问1:启动模式的切换,是在复位后的4个SYSCLK后,再确定的,那么在烧录完成后,为什么没有复位,就切换成了程序启动模式呢?不是应该还是在烧录模式吗?
小白看了下网上的解答,说是烧录软件已经帮我们配置好了,结果就是在烧写完成后会有报告:“成功从08000000开始运行”。这个回答小白不认同,总之结果是这样,要搞清楚,就只能有时间再用示波器抓下时序看看,这个疑问暂存吧!
关于疑问2:软件配置为“DTR的低电平复位,RTS高电平进BootLoader”,这样配置不是进入串口下载模式了吗?
小白看了下网上的解答,说是IC在实际操作时引脚的变化为“DTR#拉高,RTS#拉低”,即软件设置和实际情况是相反的。

STM32一键下载电路设计原理的更多相关文章
- CH340在STM32实现一键下载电路
在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不 ...
- 关于CH340在STM32实现一键下载电路的研究(转)
源:关于CH340在STM32实现一键下载电路的研究 在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB ...
- STM32 ~ CH340在STM32实现一键下载电路
在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不 ...
- STM32单片机串口一键下载电路与操作方法详解
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash.2)SRAM = 芯片内置的RAM区,就是内存啦.3)系统存储器 = 芯片内部一块特定的区域,芯片出 ...
- 基于CH340的一键下载电路
一.CH340简介 CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口.CH340是国产芯片,应用场合居多,市场占有率很高.常用的USB转串口芯片还有CP2102. ...
- 【转】Image Cyborg 一键下载存储网页所有图片
下午仿照网上例子写了个抓取网页中图片并保存到本地的Python的例子,好奇就google了下是否有类似的在线抓取图片的外挂工具. 接着就找到了Pseric写的这篇文章 - Image Cyborg 一 ...
- jquery配合.NET实现点击指定绑定数据并且能够一键下载
最近在做培训管理系统中遇到一个问题,需求需点击绑定的数据,将指定的附件下载下来,并且是批量下载(绑定的数据非datagrid,后台拼接的绑定). 效果图如下: 大体思路: 1.jquery得到选中的绑 ...
- HTTP断点续传下载的原理
frombegintoend原文HTTP断点续传下载的原理 要实现断点续传下载文件,首先要了解断点续传的原理.断点续传其实就是在上一次下载断开的位置开始继续下载,HTTP协议中,可以在请求报文头中加入 ...
- You-Get 一键下载全网视频资源
下载视频 无论是单纯的下载视频收藏,还是以便离线收看,都离不开“下载”,好的工具让你把注意力更好的放在视频的本身,而不用考虑要如何下载视频.下载视频从来不乏方法,之前也介绍了下载 Youtube ...
随机推荐
- python自学——文件修改
#如何修改文件,我们知道文件因为在磁盘上已经有储存了,后面要更新或修改,只能在在原来文件后面追加使用f=open("wenjian_name","r+",enc ...
- 购物商城学习--第三讲(tomcat插件启动web工程)
此处提到的tomcat插件即maven工程集成的tomcat插件,可以在添加maven的tomcat插件之后,在本地通过脚本或者命令行方式运行web工程,tomcat插件启动只需要修改一个端口即可,非 ...
- Spring中的destroy-method方法
1. Bean标签的destroy-method方法 配置数据源的时候,会有一个destroy-method方法 <bean id = "dataSource" class ...
- PowerShell发送邮件(587)
#定义邮件服务器 $smtpServer = "mail.xx.com" $smtpUser = "sender" $smtpPassword = " ...
- UNIX高级环境编程(12)进程关联(Process Relationships)- 终端登录过程 ,进程组,Session
在前面的章节我们了解到,进程之间是有关联的: 每个进程都有一个父进程: 子进程退出时,父进程可以感知并且获取子进程的退出状态. 本章我们将了解: 进程组的更多细节: sessions的内容: logi ...
- 微信小程序里解决app.js onLaunch事件与小程序页面的onLoad加载前后异常问题
使用 Promise 解决小程序页面因为需要app.js onLaunch 参数导致的请求失败 app.js onLaunch 的代码 "use strict"; Object.d ...
- CheckTimeWait.bat实现windows下的TimeWait检查
原文链接: http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?id=c7bff196-cd9c- ...
- opensuse编译安装Python3后缺少zlib
目录 opensuse编译安装Python3后缺少zlib 前言 编译安装 python导入zlib 重新编译python并指定zlib opensuse编译安装Python3后缺少zlib 前言 由 ...
- 关于服务器端的Json文件的接收,踩了一早上的坑的问题
JSON文件的发送和接收 服务器端接收的JSON文件也是String型的文件,因此不可以直接写成如下的格式,此错误格式下无法找到发送的{}内的数据,服务器会报错提示无法找到你需要的类型数据,也就是根本 ...
- PyQt5--Position
# -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...