以前的电路STC 自动下载电路的纯硬件 - 三极管负脉冲电路 在稍微简化的基础上,用三极管代替三极管MOS 管道减少了一两个元件。原理的详细信息,如RTS# 和DTR# 信号,见那篇。
原理
主要区别是用左延迟电路的三极管代替了MOS 管,原理还是一样的。然后改用一个NMOS 控制单片机GND 控制断电和上电,因为这样可以直接控制Q2 输出连接到Q1 栅极,要是Q1 用PMOS 如果中间要加一根管子,那就太糟糕了。这么一来两个管子可以用一样的NMOS,也简化了BOM。图里用的2N7002 只是为了模拟方便,如果实际使用,随便找个Rds(ON) 更低的普通NMOS 就行。简单说说工作过程。
首先,右边的Q1 控制单片机电源,C-Gnd 直接连接到单片机GND 引脚。LED D2 和R2 只是模拟负载,可以在实际电路中去除。Q1 通过R1 上拉,默认导通,经过R3 拉低Q1 与以前的电路一样,这里可以加一个手动按钮开关下拉,用于手动复位。R3 不一定有必要,实际电路可以根据情况去掉。
Q2 周围是电容延迟电路。UART-RTS# 信号默认为高电平D1 和R5 给电容C1 充电。Q2 直接连接源极UART-RTS#,这个时候也是高电平,所以Q2 不导通,Q1 电平极高。串口下载开始后,UART-RTS# 信号自动变为低电平,相应的Q2 源极即低电平,栅极是C1 充电电压,所以Q2 导通,拉低Q1 的栅极,Q1 关闭,单片机断电。
随后,C1 经过电容R4 放电,当然Q2 网极电容也经过R4 放电,一段时间后Q2 栅极电压降到足够低,Q2 关断,Q1 重新导通,单片机上电复位。这是自动断电和上电复位的过程。
仿真
图中红线是UART-RTS# 电压,绿色C-Gnd 点的电压。可以看到,初状态RTS# 为高电平时C-Gnd 电压为0,即Q2 导通。当红线RTS# 下降时,C-Gnd 电压同时上升至接近5V,也就是Q2 已经截止。然后大约200毫秒,C-Gnd 电压自动下降,表示Q2 恢复导通,RTS# 还是低电平。
图中绿线不等于5V 原因及上述原理图中的原因LED D2 和R2 相关的,因为这个电压是靠它们拉起来的,实际上没有影响,所以去掉了D2 只留着R2 如果能上升到等于5V 了。
本来想录个模拟视频,有点麻烦,就算了。实际电路需要考虑的是C1 和R4 参数,放电不能太慢或太快,前一篇文章的最后也提到了,断电时间最好是500ms 左右。这些参数或实际电路更方便。R4 最佳值为1MΩ,C1 是1uF,此时断电时间近500ms。