STM32的一键下载CH340 DTR RTS与复位电路NRST的学习笔记

先一键下载电路原理图:

我们是可以去控制RTS与DTR的一个高低电平的 从而间接的控制Q2、Q3两个三极管的开关 这样一来BOOT0的高低电平也是会受我们的控制的。stm32下载程序所需要的条件:

这里面我们只需要知道当BOOT0为0 (BOOT1是0/1都无所谓)的时候stm32正常工作,当BOOT0为1 BOOT1为0的时候stm32会进入下载模式,这个时候我们就可以烧录程序进去了

为了简化电路设计 BOOT1直接接地(BOOT1为0) 这样我们只需要控制BOOT0的高低电平就可以控制stm32的下载模式或者正常运行模式了。

我们可以让DTR输出高电平 RTS输出低电平 NPN管Q2导通 可以看做导线 此时Q3也就会导通,BOOT0输出为1 stm32进入下载模式。

我们也可以DTR输出低电平,NPN管Q2截止,Q3也会截止,BOOT0输出为0,stm32进入正常运行模式。

stm32下载程序的时候是需要复位的,当BOOT0为1 BOOT1为0时stm32进入下载模式,需要给stm32的复位管脚NRST输入一个低电平,让单片机复位,要能一键下载,复位电路是肯定少不了的。查询stm32的芯片手册,我们又知道了管脚NRST的低电平得小于0.8V并且持续100ns,这样一来单片机实现复位了。

进入下载模式后stm32需要复位才能下载,我们可以让DTR输出高电平 RTS输出低电平 NPN管Q2导通,可以看做导线,Q2的发射集又与RTS相连(RTS低电平,近似于接地),这个时候大部分电压都在R46上面,RESET输出低电平 此时Q3也就会导通,BOOT0输出为1,stm32进入下载模式。

开关二极管1N4148的阴极因为Q2的导通、大部分电压落在R46上面,二极管的阴极电压被拉的很低,二极管的阳极相当于只加了0.62V(1N484的管压降是0.62V),还是低电平(因为二极管导通,在我画的这个图上面来看 R6会多吃掉一点3.3V的电压,让二极管的阳极能从一个高电平到一个低电压的状态),这个是导通的时候,RESET会输出低电平。

当DTR输出低电平,NPN管Q2截止,相当于电阻无穷大,大部分电压都给三极管吃掉了,二极管的阴极是高电平,二极管的阳极也是高电平,所以二极管会截止。Q3也会截止,BOOT0输出为0,stm32进入正常运行模式。有个魔鬼细节,就是说进入正常模式后也需要复位,而C12电容在二极管导通的时候,电容的电是放完了的,当BOOT0输出为0,stm32进入正常运行模式的时候,电容是在充电的,RESET会输出低电平,stm32复位。

需要注意的是:上位机控制串口芯片:

DTR 低 ===> DTR_N 高 ==> RESET# 低

RTS 高 ===> RTS_N 低 ==> BOOT0 高

相关推荐
世人万千丶11 小时前
Flutter 框架跨平台鸿蒙开发 - 恐惧清单应用
学习·flutter·华为·开源·harmonyos·鸿蒙
yuzhuanhei11 小时前
Visual Studio 配置C++opencv
c++·学习·visual studio
一轮弯弯的明月12 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
此刻觐神12 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
憧憬从前13 小时前
算法学习记录DAY2
学习
航Hang*13 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
babe小鑫13 小时前
会计岗位学习数据分析的价值分析
学习·数据挖掘·数据分析
千枫s13 小时前
电脑vm虚拟机kali linux安装shannon
学习·网络安全
爱分享的阿Q13 小时前
STM32现代化AI开发环境搭建:从Keil到VSCode+AI的范式转移
人工智能·vscode·stm32
zjnlswd13 小时前
tkinter学习案例--笔记代码
笔记·学习