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 高

相关推荐
一隅论数智1 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本1 天前
离散数学第六课
学习·离散数学
优信电子1 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
深圳老胡1 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊1 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网