目录
- MOSFET, MOS管基和电路
- MOS管实现的STC自动下载电路
三极管配合 PMOS 控制电路开关
STC MCU在烧录时, 进入烧录状态前需要断电重置, 通常用手按开关比较麻烦. 如果利用STC-ISP烧录开始时会拉低RTS的特性, 烧录开始时可实现自动断电复位.
电路模拟测试
下面的电路适用于烧录下载STC MCU. 使用LTspice模拟. V2 为方波, 电压[0, 3.3V], 宽度1.5s
以下是模拟输出, 绿色是三极管基极电压, 红色为MOS管栅极(Gate)电压, 蓝色为负载(R1)两端电压.
对电路中元件的说明
- V2: 模拟开关的通断, MCU的高低电平
- C1: 该电容用于短时间降低三极管基极电压, 关闭三极管. C1值取值在1uF - 4.7uF之间, 输出值越小,截止时间越短, 截止大,截止时间越长
- C2: 是为了压制方波上行时造成的高电平毛刺, 输入时可以消除低压毛刺(1)ms ~ 3ms宽度), 取值 3uF~6uF, 图中的值是错误的
- R4: 延长C1.充放电时间, 不能太小, 如果太小,方波会上升到对面C1叠加电压过高会导致输出截止, 也不能太大, 如果输出截止时间太大, 最后,可能根本没有截止动作, 取值在 3K~8K 之间
- R3: 为了给三极管基极提供电压,使其导通
- R2和R6: 用于三极管限流和分压, 如果V1和V2没有压差, R6可以不要. 但是当V2小于V1时, 需要用R6将三极管的基极电压稍微抬起, 否则V2的下降边缘会产生相对较高的负电压.
- R1: 模拟负载
电路工作原理:
- 稳定工作时, 因为C等于断路, 因此,三极管的基极电压为正, 三极管导通, 电流在R2和R6之间产生的分压, 使得PMOS管栅极电压几乎是1/2V1, 因为栅极(Gate)电压低于源极(Source), PMOS管导通
- 当V2跳变为0V(短路可为短路, 合上开关等), 当电压突变时, C1视为通路, 立即降低三极管基极电压, 此时三极管断开, PMOS管栅极电压拉高至VCC, 因为等于源极电压, PMOS管关闭
- C1通过R3和R4充电后, 进入新的稳态, 等于断路, 三极管基极电压恢复为正, 三极管重新导通, R2和R6分压再次下降PMOS管栅极电压, PMOS管再次导通
- 当V2再次跳变回3.3V, 当电压突变时, C1视为通路, 正电压叠加到C三极管基极产生高于三极管基极V2的电压(如果在模拟中R3, R4较小, 可能会高出V1, 高出V1会导致PMOS管截止, 避免这种情况), 只要三极管基极电压不高于V1, PMOS将继续保持导通
电路中V可以用微动开关代替, 或者用RTS控制, 在通信前降低RTS重启MCU.
电路原型测试
使用面包板对上面的电路进行测试
- MOS管使用SI2301, SOT23封装, 用一个SOT89转接板凑合应付
- 三极管使用SS8050
- 因为没有2.2uF的电容, 暂时用一个4.7uF的电容代替
- 负载用两颗LED方便演示
- 用杜邦线手动切换高低电平
测试:
- 因为2.2uF换成了4.75uF反向电势增大, 因此,输入端高低电平为[0, 3.3V]正常工作, 但是在[0, 5V], 从低电平跳到高电平LED有明显的闪烁, 反向毛刺过高导致反向毛刺过高MOS管道通断变化. 将R2减小为5K, 降低栅极电压基准, 这样在[0, 3.3V]和[0, 5V]工作正常.
- 同样电路, 仅替换SS8050为S9013, 运行结果相同.
测试视频: https://www.bilibili.com/video/BV19Y411F7CX
最终电路和实物
电路图
注意: 图中的C2应当改为4.7uF, 可以避免Linux下CH340G打开串口拉低RTS毛刺导致触发重启
为兼容无RTS环境烧录, 增加开关
支持RTS的环境
由软件触发RTS拉低断电
- CH340系列: STC-ISP支持得很好, 可以直接用RTS
- CP2102: STC-ISP貌似对RTS没动作, 可以改用DTR, 这个pin在每次TTL开始传输前DTR会有低电平, 自动重启也可触发
V -> V, G -> G, T -> T, R -> R, RTS -> RTS或者DTR,
不支持RTS的环境
接线 V->V, G->G, T->T, R->R, RTS短接(图中2和3), 按下轻触开关即可触发RTS拉低断电
实物
背面
SS8050和SI2301都是SOT23封装, 非常小, 直接贴在背面. 有两个电阻,因为它们必须 为了节省位置,也放在背面. 测试正常后, 这一面用热熔胶密封。.
正面
从键盘上换下灯, 不是常用色. 分别对VCC和GND增加了个排针, 平时使用方便.
连线
视频演示
视频中使用STC-ISP执行了三次Check, 可以看到三次断电的过程 https://www.bilibili.com/video/BV1nr4y1x7Uq
最后
几十到几百毫秒的断电, 配合三极管MOS管道相对简单, 若需要一秒以上的断电, 可以考虑将前面的部分代替NE555.
在Linux下使用时, CH340G串口通信存在打开串口时RTS被拉低1ms的问题, 这种短暂的降低也会触发下载器的重启, 将C容量增加到4.7uF这个问题可以避免.