STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)


【本文发布于https://blog.csdn.net/Stack_/article/details/115429629,未经许可不得转载,转载须注明出处】


当我们在stc官方烧录软件点击下载时,烧录软件会以2400的波特率连续发送0x7f,同时ch340g的DTR和RTS引脚会拉低,直到给单片机手动掉电再上电或者烧录软件检测超时。

于是我们就可以利用DTR或RTS引脚做一个纯硬件的自动烧录器。


STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)_第1张图片

图1 纯硬件版原理图 1/2

STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)_第2张图片

图2 纯硬件版原理图 2/2,接上图

原理分析

  1. 模块上电稳定后没有下载命令时,DTR/RTS输出高电平,电容C11右端为高电平,NPN三极管Q2导通,pmos管Q1(si2301cds)导通,目标单片机上电。
  2. 当stc烧录软件发出下载信号时,DTR/RTS拉低,左右两端均为高电平的C11左端被拉低。因为电容两端电压不能突变,所以当电容左端电压突变瞬间,电容相当于短路,右端被拉低,pmos截止,目标单片机掉电。
  3. 短暂掉电后,C11右端恢复为高电平,目标单片机上电并检测到stc烧录软件的下载信号后下载程序。

点击下载时,掉电时间很短,基本上就是点击下载就立刻开始下载了。
但是就因为时间太短,在mcu供电引脚接有稍大的电容时,mcu来不及掉电,没有掉电上电的过程,程序总下载失败。于是又搞了个软件版

STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)_第3张图片

图3 软件版原理图 1/2

STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)_第4张图片

图4 软件版原理图 2/2,接上图

原理分析

  1. U4 STC15W202S的RXD接到CH340C(CH340G的无晶振版)的TXD,STC15W202S串口中断捕捉数据,波特率2400。
  2. 每200ms为一个单位,在这个单位时间内,连续捕捉到100个0x7f,则暂停计数,MCUPWR_CTRL脚拉低,目标单片机掉电。
  3. 等待2秒后MCUPWR_CTRL脚拉高,目标单片机上电开始下载。恢复计数。

注:一开始的设计是加个Q3,在Q1截止的时候Q3导通,放尽目标单片机电容的电。但是因为Q1、Q3是串接在VCC和GND间,也许是因为在Q3导通的时候Q1还没有截止,导致电脑USB接口短路,然后模块重启。焊接时直接去掉了Q3。

基本上就不会有下载失败的情况了




成品图

STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)_第5张图片

图5 红色为纯硬件版

STC单片机免冷启/自动下载原理&DIY免冷启烧录器(纯硬件版和软件版)_第6张图片

图6 蓝色为软件版



附:

  1. 软件版的按键是用来使能/失能自动烧录功能的;
  2. 软件版的U2是电压比较器LMV331,用跳线帽短接P1的5、6时,选择整个模块工作电压为5V,STC15W202S控制D1闪烁,D9灭;短接P1的4、5时,整个模块工作电压为3.3V,D9闪烁,D1灭。此功能只是用来提醒自己当前的工作电压。

已在立创开源平台开源,指路 【纯硬版】【软件版】


或者在CSDN下载

【资源】

你可能感兴趣的:(MCU,单片机,嵌入式硬件)