前几天看到了卓晴公众号写的三篇关于STC系列单片机的下载电路,然后结合了其他的文章,对下载电路有了更加深入的了解,在这里我梳理一下自己的学习过程,附上完整的资料,方便日后查看,也方便有兴趣的同学交流讨论,也请大家批评指正。
为了能够理解
图1-1
所示的电路图,先根据
图1-2
看
CH340
引脚。
VCC引脚
:正电源输入端,需要外接0.1uF退耦电容,也就是图1-1中电容
CC5
,值为104,VCC接电脑的5V供电。
V3引脚
:根据图1-2中的说明,外接0.01uF退耦电容,也就是图1-1中电容
CV1
,值为103,至于他左边的电容C9,应该是原理图忘记删掉了,实物中没有找到这个电容。
XI/XO引脚
:晶振12M,电容的参考值在
图1-2
中没有,但是参考
图1-4
后,电容取22pF,和图1-1相匹配。
TXD/RXD
:初看
图1-1
,本来是TXD和RXD和单片机交叉相连的,怎么TXD和TXD连接起来,结果一看MCU的接线,原来在MCU部分,网络标号已经是交叉相连了,见下图1-5。
特别注意的是
,参考图1-4,
CH340
的
TXD
和
RXD
要加一个反向二极管和电阻。这里我引用一下其他文章里面的解释。
CH340芯片的发送引脚TXD上接一个反向二极管,然后再连接到对端IC。在接收引脚上加一个限流电阻来防止对端IC对CH340倒灌电。通过反向二极管的原理是:在CH340发送数据时,发送高电平时二极管截止,但是由于对端RXD默认上拉也是高电平不会有采样问题,而发送低电平时二极管导通,对端RXD接收到低电平,因此可以正常通讯。并防止了CH340的TXD发送引脚将电流倒灌到对端IC。通过限流电阻的原理是:倒灌电流导致芯片工作甚至闩锁效应,是由于引脚电流过大超过了芯片设计时容忍的上限导致芯片内部电路出现异常。因此加一个限流电阻就可以了,其他通讯场景也可以仿照此方法进行尝试。
在这里,我把
CH340
的
DTR
,
RTS
引脚构成的电路成为CH340外围电路。关于这部分电路的理解,需要参考STC89C51数据手册,关于
在系统可编程(ISP)原理使用说明
,见下
图2-1。
图2-1
对于
冷启动
这个名词,还有
复位
,需要参考STC89C51数据手册,关于复位的解释,如下图2-2。
结合上述两张图可以得出这样一个结论,下载程序必须要
冷启动
,冷启动检测是否有下载命令流的这个过程在复位操作前,因此复位,即热启动,是无法下载程序的,必须要让单片机完全掉电再上电。
通过和学长的交流,我知道了冷启动以后是执行
bootloader
程序,是芯片启动文件,检测到下载流以后,会进入程序下载模式,这个程序是在复位操作前的。
说了这么一大堆,那么这个到底和外围电路有什么关系呢?
不妨把
图1-1
中外围电路去掉,但是USB5V直接接单片机VCC,这样在下载程序过程中,对于下载电路引出的4个脚,VCC,GND,TXD,RXD,其他引脚要先用杜邦线连接好,但VCC必须要先断开,在电脑上点击下载后,再立马插上去,这样才能做到冷启动下载程序,不过必须要在很短时间内用杜邦线插好VCC,不然就过了程序流检测时间,无法下载。
因此,这种操作比较麻烦,由此引申出
一键下载电路
这个概念,CH340的外围电路就是实现
一键下载
功能的。下面来具体分析这个电路是如何实现的。
在分析之前,需要了解
CH340
的
DTR
,
RTS
引脚的作用,我参考
图1-2
时没有理解他写的意思,查了其他文章之后,才知道,这两个引脚由下载软件控制。
1、初始
:默认均为高电平。
2、下载开始
:RTS先变为低电平,DTR后为低电平。
3、下载结束
:RTS先变为高电平,DTR后为高电平。
搞清楚这个以后,再看
图1-1
。
Q1
,是表贴PNP型的BJT,PCB丝印为
2TY
,型号为
S8550
。
Q11
,根据实物的PCB丝印,是丝印为
A1SHB
,型号为
PL2301
的MOS管。
基于BJT和MOS管分析,可以发现外围电路就是构成了逻辑门电路,参考数字电路第三章。这里默认
POWER
开关是闭合的。
1、初始
:
RTS
和
DTR
均为高电平,发射结电压为0,CE之间断开,MOS管G极接下拉电阻得到低电平,由于是耗尽型PMOS,G极低电平使MOS管导通,当使得D极供给了单片机电源,同时点亮了LED指示灯,此时执行最新烧写进的程序。
2、下载开始
:当点击软件的下载键时,
RTS
先变低,此时发射结正偏,BJT导通,这时G极的电平就是
DTR
的电平,即高电平,MOS管截止,单片机掉电。
接着,
DTR
变低,BTJ截止,MOS管导通,单片机上电。就是这个下载开始的过程,实现了单片机的冷启动,整个过程只需要点一次鼠标,不需要插杜邦线,称之为
一键下载
。
3、下载结束
:这个过程也体现了图1-1电路的巧妙之处,
RTS
先变高,
DTR
后变高,整个过程保证了单片机一直处于有电状态,如果电路设计不当造成变化是相反的结果,单片机就会掉电出问题。
如果要换成我们自己设计下载电路,就需要紧紧结合器件的
数据手册
,严格参数和选型,手册是最重要的依据,当手册看不懂的时候可以查阅别人写的文章,需要多看多想。至于MOS管,BJT,二极管,电阻的选择,更需要结合他本身的参数去计算
静态工作点
,当然也需要知道常规的经验值和型号。花了几天时间理解了这个电路,我将目前学到的很多知识融会贯通,解决了一个实际问题,还是很兴奋的,当然关于下载电路还有很多其他需要考虑的,这里也只是浅显地谈了谈自己的认识,希望读者批评指正交流。
最后附上清华大学卓晴公众号的文章链接及其他文章: