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 高

相关推荐
羊群智妍6 小时前
2026 AI搜索流量密码:免费GEO监测工具,优化效果看得见
笔记·百度·微信·facebook·新浪微博
阿蒙Amon6 小时前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
AI绘画哇哒哒6 小时前
【干货收藏】深度解析AI Agent框架:设计原理+主流选型+项目实操,一站式学习指南
人工智能·学习·ai·程序员·大模型·产品经理·转行
BackCatK Chen7 小时前
第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)
stm32·单片机·嵌入式硬件·保姆级教程·电机正反转·tmc2240·dir引脚控制
戌中横7 小时前
JavaScript——预解析
前端·javascript·学习
●VON8 小时前
React Native for OpenHarmony:2048 小游戏的开发与跨平台适配实践
javascript·学习·react native·react.js·von
山岚的运维笔记8 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
ZH15455891318 小时前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
xcLeigh8 小时前
Python入门:Python3 requests模块全面学习教程
开发语言·python·学习·模块·python3·requests
xcLeigh8 小时前
Python入门:Python3 statistics模块全面学习教程
开发语言·python·学习·模块·python3·statistics