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 高

相关推荐
微露清风5 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
不会代码的小猴6 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
阳光九叶草LXGZXJ6 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
乌恩大侠6 小时前
【笔记】USRP 5G 和 6G 参考架构
笔记·5g
biuyyyxxx7 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
shansz20207 小时前
暂时无法解决的关于STM32F103的RTC日期更新问题
stm32·嵌入式硬件·实时音视频
舟舟亢亢7 小时前
Java集合笔记总结
java·笔记
丝斯20118 小时前
AI学习笔记整理(66)——多模态大模型MOE-LLAVA
人工智能·笔记·学习
军军君019 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
bylander9 小时前
【AI学习】TM Forum《Autonomous Networks Implementation Guide》快速理解
人工智能·学习·智能体·自动驾驶网络