手把手教你纯硬件STC单片机自动下载

摘要:STC单片机具有方便的ISP串口下载程序的功能,无需购买专用的编程器;然而在反复调试程序的过程中,每次下载都需要冷启动就令人厌烦了,同时还缩短了开关原件的寿命;为此笔者研发了一种完全用硬件实现单片机自动冷启动的电路,实现一键下载程序,明显的降低了硬件成本,减小了操作难度,并且不占用单片机的串口。

1.基本原理
进行STC下载时,需要使用官方提供的STC-ISP软件;使用国产的ch340g芯片作为USB转TTL的芯片,其引脚如下图。第13和14引脚为MODEM联络信号输出引脚,受到STC-ISP下载软件的控制,默认为高电平,点击下载时变为持续的低电平,下载完成又变回高电平。
  

用MODEM联络信号引脚的下降沿作为触发信号,硬件电路检测到下降沿时给单片机断电一段时间,然后上电,即实现自动冷启动。

2.具体硬件电路
Ch340g的下载电路在此不做赘述,值得注意的是二极管D1使用肖特基二极管或者开关管1n4148,确保单片机彻底断电。

下面主要讲解自动冷启动部分,将RTS或者DTR引脚作为信号的输入端,由于两个引脚在下载时都会跳变为低电平,因此可以任意选择一个引脚;使用一个10uf的钽电容C4用于耦合输入信号,只有电平跳变时有信号通过,后级电路主要由三个NPN三极管组成,笔者使用的是贴片的SS8050三极管,允许通过1.5A的电流,完全可以满足单片机供电的需求;其中两个三极管作为单稳态振荡电路的组件,一个三极管作为电子开关,控制单片机的通断电。

对电路进行分析,未点击下载时,RTS/DTR为高电平,无信号通过耦合电容C4,单稳态多谐振荡器处于稳态,3Q1饱和而Q2截止,单稳态振荡电路输出端(R8)为高电平,Q3饱和导通,对单片机处于供电状态;点击下载时,RTS/DTR迅速跳变为低电平,电平跳变时相当于交流电,通过耦合电容R4,输入一个负向脉冲信号到Q1的b极,Q1截止,Q2导通,振荡电路输出低电平,Q3截止,单片机断电,同时脉冲信号经电容C6耦合使Q1的b极电压下降,形成正反馈,振荡电路处于非稳态;经电容C6通过电阻R6放电,电路回到稳态。
分析知非稳态时间即断电时间受到R6和C6的大小影响,计算式为:
非稳态时间 T=0.7*R6*C6

按照图中参数断电时间约为0.5秒
下图为ch340g下载电路图

下图为自动冷启动电路图

3.优势与缺点
目前常见的两种自动下载方式存在的问题:
*1使用STC15F014W单片机检测串口下载命令流——电路体积较大,自动下载部分硬件成本高,约为1.3元,由于STC15单片机没有原生串口,需要用软件模拟串口,代码较为复杂,对于下载波特率有限制,有一定的失败率;
*2使用51单片机自带的串口检测下载命令流——每次写程序都要加入自动下载检测代码,操作复杂,占用了单片机的串口功能,往往是复杂的程序才需要反复调试,占用了串口对于单片机的使用造成了较大的困扰;

本设计的优势在于,使用纯硬件电路实现自动冷启动,硬件系统工作比软件可靠,自动下载部分硬件成本极低,约为0.4元(钽电容可用普通瓷片电容代替),电路体积小,使用的三极管均为常见的SS8050三极管,材料易得,电路较为简单,便于DIY;硬件电路响应速度快,不用等待检测下载命令,成功率高,可靠性高,笔者一次调试成功后下载失败率几乎为0;

设计缺陷:由于下载模块上电时,计算机与ch340g联络通信,RTS/DTR引脚会在4秒左右的时间内高低电平反复跳变,同样会触发冷启动电路,如果此时自动下载电路连接了单片机,会导致单片机反复通断电三次,影响使用体验,笔者进行优化设计后未取得明显效果,故在此不做处理;
另附笔者焊接的自动下载模块如下图,电路较为紧凑

来源:电子产品世界
声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编进行处理。

推荐阅读