【STM32笔记】:P03 ISP 一键下载电路详解

目录


【野火】一键下载电路

ISP 普通下载


现在我们针对 USART1 的 ISP 进行分析,通常的 ISP 的步骤如下:

①、电脑通过 USB 转串口线连接 STM32 的 USART1,并打开电脑端的上位机;

②、设置跳线保持 BOOT0 为高电平,BOOT1 为低电平;

③、复位单片机使其进入 Bootloader 模式,通过上位机下载程序;

④、下载完毕,设置跳线保持 BOOT0 为低电平,BOOT1 为低电平;

⑤、 复位单片机即可启动用户代码,正常运行。


以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 ISP 的原理认识,

一键 ISP 就诞生了,它需要做的事情就是用上位机去控制 BOOT0 脚和单片机的复位脚,原理图

如下:


BOOT 配置


在 ISP 下载电路中,我们需要配置 BOOT 引脚,有关 BOOT 引脚不同的配置会产生不同的启动

方式,见下表。

ISP 一键下载


USB 转串口估计大家都很熟悉,一般都是用到 RXD 和 TXD 这两个口,一键 ISP 电路中我们需要用 USB 转串口的芯片的 DTR 口和 RTS 口来控制单片机的 BOOT0 和 NRST,原理如下:

①、通过上位机控制 U6(CH340G) 的 RTS 脚为低电平,Q1 导通,BOOT0 的电平上拉为高电平。
②、通过上位机控制 U6(CH340G) 的 DTR 脚为高电平,由于 RTS 为低电平,Q2 导通,U18 的 2 脚为低电平,U18 为一个模拟开关,使能端由 4 脚控制,默认高电平,U18 的 1 脚和 2 脚导通,所以 NRST 为低电平系统复位。
③、单片机进入 ISP 模式,此时可以将 DTR 脚设置为低电平,RTS 设置为高电平。Q1 和 Q2 为截至状态,BOOT0 和 NRST 还原默认电平。
④、上位机将程序下载到单片机,下载完毕之后,程序自动运行。
⑤、至此,很多人还会认为 U18、Q1、Q2 是多余的,用 U6 的 RTS 和 DTR 直接控制也可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬间如果 USB 转串口连接了电脑,DTR 和 RTS 的电平是变化的,如果不处理好,单片机会一直进入 ISP 模式,或者系统会复位多次,这种情况是不允许的。
⑥、于是,就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系,单片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有一个规律就是:只要 RTS 为低电平的时候,DTR 的电平也是低,因此一般情况 Q2 不会导通,但由于这两个 IO 口的电平存在"竞争冒险",会出现 RTS 的下降沿的时候刚好遇到 DTR 的上升沿,这个时候 Q2 导通,导致系统复位,而 BOOT0 此时有可能也为高电平,就会进入 ISP 模式。这个是不受我们控制的,我们不想系统出现这样的情况。因此加入了模拟开关来切断这种干扰。
⑦、 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路,上电瞬间,电容 C65 通过电阻 R18 来充电,由于电阻 100k 很大,电容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V 时,大概耗时 1S,在这个1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR 的干扰电平不会影响到系统复位。系统正常运行。

【原子】一键下载电路

ISP 一键下载


相比与野火,原子的策略其实就没有去解决竞争冒险的这个 bug 问题,因为他知道应该很少人去使用到串口下载程序。所以,在硬件设计这块,我推荐野火,相比较而要,更加严谨,虽然这个竞争冒险问题可能存在比较小的概率,但是这种细致的研究精神值得我们学习。

相关推荐
沐欣工作室_lvyiyi10 小时前
基于STM32的宠物自动喂食器(论文+源码)
stm32·嵌入式硬件·毕业设计·宠物
一只侯子13 小时前
Face AE Tuning
图像处理·笔记·学习·算法·计算机视觉
whale fall15 小时前
【剑雅14】笔记
笔记
玩转C语言和数据结构16 小时前
C语言编程入门攻略(最新学习路线,适合新手小白)
c语言·c语言入门·c语言下载·c语言知识点总结·c语言自学·c语言教程·c语言怎么学
星空的资源小屋16 小时前
跨平台下载神器ArrowDL,一网打尽所有资源
javascript·笔记·django
蒟蒻的贤17 小时前
计算机组成定点数的编码
硬件工程
Xudde.17 小时前
Quick2靶机渗透
笔记·学习·安全·web安全·php
Bona Sun17 小时前
单片机手搓掌上游戏机(十四)—pico运行fc模拟器之电路连接
c语言·c++·单片机·游戏机
学生哥-_-17 小时前
STM32点亮WS2812 RGB灯板展示像素图片(一种较方便的取色值数据的方法)
stm32·单片机·嵌入式硬件
西欧伯爵17 小时前
模拟电路入门四
单片机·嵌入式硬件·集成电路