STC 纯硬件自动下载电路 - 三极管负脉冲电路

7 篇文章 0 订阅

或者叫它延时上升电路。利用USB - TTL 芯片的RTS# 或者DTR# 信号让单片机自动断电复位。比较完整的串口电路参见:STC 串口下载电路 - CH340G USB转串口以及漏电隔离

原理

开门见山吧,搜了一圈好像没发现相同工作方式的电路。

在这里插入图片描述
注意Q3 是NPN,发射极向上画了,可能看着不太习惯。SW1 是手动触发的按键,并不必要。原理就是用PMOS 管控制单片机的供电C-VCC,电路触发时让单片机断电,然后自动重新上电,冷复位电路基本都这样。PMOS 管Q1 用R6 下拉默认保持导通状态。当PNP 三极管Q2 基极被下拉时,R6 上经过电流,电压上升,Q1 关断,单片机断电。用PNP 控制PMOS 的好处是未触发的时候这里不会有多余的电流。可以用SW1 按键手动下拉Q2 基极给单片机断电。

左半边NPN 三极管Q3 周围基本上是一个电容延时电路。UART-DTR# 是来自USB 芯片的信号,默认高电平,经过R8 和二极管D4 给电容C8 充电。R11 有分压的效果,但是阻值远大于R8,效果不明显。电容大致可以充到VCC - 0.6V,此时Q3 发射极是高电平,比基极还高,当然不导通。

UART-DTR# 到低电平时,D4 反向截止,C8 不会从这里快速放电。Q3 基极现在是电容正极电压,接近VCC,发射极是低电平,所以Q3 导通,Q2 基极被拉低,PMOS Q1 关断,单片机掉电。这时C8 主要经过Q3 放电,基极电阻R10 限流延时。放电大概会上百毫秒,C8 放完电后Q3 截止,连带Q2 也截止,PMOS Q1 恢复导通,单片机上电。这就是延时自动上电的过程,反映到波形大概是这样:

在这里插入图片描述

另外,两个三极管能起到类似达林顿的效果,防止PMOS 不彻底关断。100k 电阻R11 用来给电容一个彻底放电的通道,同时下拉Q3 的基极,应该能起到抗干扰,避免误触发的效果。1M 电阻R9 是为了消除仿真自动上电时看到的一个负电压尖峰,大概和MOS 管的寄生电容有关,能量应该很小,不至于造成什么麻烦,但是总之加个电阻保平安。元件的型号都没有特殊要求,图里只是举例。因为RTS#DTR# 信号的行为差不多,所以把控制信号换成RTS# 也行。

受到评论启发,用MOS 管改了个升级版的简化电路:STC 纯硬件自动下载电路 V2,我自己以后应该只会用这个简化版了。

DTR# 和RTS# 信号

大部分自动下载的电路设计都和这两个串口信号有关,不光是STC 的电路会用。之前听说过RTS# 信号是下载开始给个负脉冲,那就直接把RTS# 接过来就行了,但是并不能~ STC-ISP 软件编程时DTR#RTS# 信号是全程低电平,下载结束才恢复。大部分串口助手软件默认也是开启串口时DTR#RTS# 都拉低,关闭时才拉高。所以直连的话单片机会一直断电,无法完成下载。

用stcgal 的下载信号举例,这是个开源的STC 单片机下载工具。D0 通道是RTS#D1DTR#

在这里插入图片描述
可以看到两个信号是全程拉低的,STC-ISP 和这个一样。放大看的话两个信号还是稍有差异:

在这里插入图片描述
DTR# 相比RTS# 要滞后500us。这个行为stcgal 和stc-isp 也是统一的,所以也看到有人基于这个实现了另一种原理的自动复位,就是当RTS# 为低,而DTR# 为高时触发。这篇介绍的电路可能会无差别的被各种串口软件触发复位,相对来说这种原理可能更加稳定,避免一些串口助手开启串口时的信号产生干扰,但是也不是能完全避免,各种串口软件实现并不统一,反正多复位个几次也无所谓。另外推荐一下Coolterm,也是个串口助手,可以设置关闭DTR#RTS# 信号,这样就不会误触发复位了。

类似的,这两个信号有可能通过上位机设置来传递更专用的复位信号。比如stcgal 可以设置在下载时用DTR# 作为自动复位信号,如图:

在这里插入图片描述
下载开始后DTR# 信号被拉低了差不多500ms,然后自动恢复高电平。这样的话就可以直接DTR# 信号控制单片机断电上电,不需要多做处理。比方说stcgal 的文档里推荐用NMOS 管控制单片机的GND 来断电,栅极直接连接DTR#。用GND 开关是因为那样更彻底,不用考虑USB 芯片给单片机漏电导致断电不彻底的问题。但是~ 感觉这样一来单片机的地会飘起来,感性的认为这样可能对ADC 的精度不利[doge]。所以还是用PMOS 控制电源,USB 部分隔离处理一下就好了,可以参见STC 的文档。

注:电容放电时间过长

实际用的时候看到了和仿真不太一样的现象。如果延时电容C8 用的是电解电容,那么一切OK,但如果换成了陶瓷电容,就会发现很长时间后才能自动上电。测了一下电压,看到电容电压降到0.6V 以下后下降非常缓慢,此时左边的NPN 三极管Q3 大概是处于将断未断的状态,电容经过基极的放电电流很小,用电解电容没问题应该是因为电解电容漏电比较大,相当于并联了一个比较大的电阻到地。解决方案就是把R11 减小,换成10k,或者把电容换成1uF 应该也行。但是放电时间也不能太短,如果太短的话单片机掉电的时间就太短,可能无法正常触发掉电然后上电复位。按我自己板子上的经验,单片机掉电时间在500ms 左右比较好,如果小于200ms 效果就不可靠了。C8 使用了10uF 陶瓷电容,R11 用47k,测到掉电时间是四百多毫秒。

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
本文介绍的是带电压电流表的多功能STC免冷启动自动下载器,功能如下: 由于常用的STC自动下载器没有电流检测功能,没法判断实验板的工作电流大小,怕电流过大,不方便,所以自己动手DIY个带电压电流表的下载器。主要功能有自动下载、各接口的电压、输出的工作电流、及4路电压表。4路电压表用于实验板特定点的电压监测,充分利用单片机的资源,不浪费。对于自动下载器的原理网上有,就是监测串口是否连续输出0X7F的值,有就说明要断电重启下载数据,本下载器支持1200-115200b的常用波特率,程序是采用每0.1S改变一下串口的波特率(由于采用先判断收到不是7F值就改变波特率的方法会出现有时不响应。所以改为这种方式。),然后检查是否有7F的值,如有就停止改变波特率,如连接接收到7F值,就关电0.4S再开电。 STC自动下载器制作器件清单: 这个制作电压检测最大为25V,电流最大为2A,它的受控输出接有1A的保险的,所以采控电流不能过大,它的输出接口有专门USB供电的直出口,可以利用这个接口外接USB座,可以把这东东变身成USB电压电流表。 工作界面如下,分2页显示,下图为第一页,显示有输出5V的电压值及输出的3.3V的值、输出电流值、外接输入的值、单片机的供电,如当USB电压电流表时,跳线短接USB供电,CPU的电压为USB输出电压。 PCB截图: 说明:由于上图PCB制作是没找到表贴LED的封装,用二极管的封装,所以尺寸大了,而且有一线布不过去,用跳线跳过的,如下图右上角接口那条红线,它是连接两个焊盘。电路板设计是采用表贴47U电容,实际使用中出现向外供电时,单片机出现重启的情况,加表贴电容的方法也解决不了问题,后来只加个普通的100U的电解就解决了,这个有可能是表贴电容性能有问题,所以电路板上多了2个电解电容。 以下是装上元件的图,焊工一般,能用。 接口的图,由于内部单片机及输出有多个输入源可选择,所以有跳线,分别选择USB供电,外接5V供电,外接12V转5V供电,由于板过小,三端稳压散热位小,所以如用12V转5V稳压供电时,电流不能过大,会出现过热的情况。
STC51单片机的CH340下载电路是通过将CH340G的TXD引脚连接到单片机的RXD引脚,并将CH340G的RXD引脚连接到单片机的TXD引脚实现的。此外,CH340G的供电方式要根据具体情况来确定,如果使用5V供电,则不需要额外的操作,如果使用3.3V供电,则需要将第4脚连接到3.3V。下载程序时,STC51单片机需要断电再重新上电以完成下载过程。在整个电路图中,只有一个芯片CH340,所以我们首先需要参考CH340的数据手册来了解它所需的引脚功能。然后,根据数据手册中的引脚连接信息,将其与STC51单片机的引脚进行连接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [基于STC89C51单片机,CH340芯片的下载电路](https://blog.csdn.net/qq_46212154/article/details/105634059)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [STC51单片机自动ISP下载电路设计 - ch340g单片机下载程序电路原理](https://blog.csdn.net/weixin_39861920/article/details/111833003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值