ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

单片机ISP一键下载电路原理:串口信号切换与模拟开关应用

单片机ISP一键下载电路原理:串口信号切换与模拟开关应用 做单片机开发的兄弟估计都被“ISP下载”折腾过。STC老用户应该记得早期给51单片机烧程序得先在软件里点“下载/编程”再手动断开电源重新上电这叫冷启动手速慢了、时序不对软件就卡在“正在检测目标单片机”反复几次很磨人。后来很多开发板做了“一键下载”串口软件里点一下芯片自己复位、自动进ISP引导、烧完自动运行程序全程不用碰电源开关。这里面的核心器件除了CH340这类USB转串口芯片还有一个不起眼的小家伙——74HC1G66GW一颗单通道模拟开关负责在“下载模式”和“运行模式”之间切换串口信号。这篇就围绕这个芯片把ISP一键下载电路的原理、信号状态和实操坑位一起讲清楚。先说明一下这里的ISP是In-System Programming在系统编程和图像处理那边的ISPImage Signal Processor不是一回事嵌入式工程师看到这个词第一反应都应该是前者。1. ISP一键下载电路到底在“一键”什么1.1 传统下载方式的痛点在哪里STC的51系列最早用串口下载程序下载的前提是芯片上电复位后的一小段ISP引导窗口。引导程序会在这个窗口内监听串口等待上位机发来的下载命令。所以必须“先点下载、再上电”让MCU一复位就能听到来自USB转串口芯片的命令。如果MCU已经跑在用户程序里串口被初始化成其他功能自然不会响应下载命令这也是很多新手第一次接触STC时被“冷启动”折磨的原因。STM32的串口ISP也没舒服到哪里去。需要通过BOOT0引脚选择启动方式下载前把BOOT0拉高、复位让芯片从系统存储器启动运行内置的ISP引导程序下载完又得把BOOT0拉低、再复位一次才能回到用户程序。来回拨跳线、反复按复位做产测的时候效率很低。这些操作的本质都是在管理两件事复位时序和信号通道。人手动去做的无非就是“让芯片复位”“让串口数据能进芯片”。一键下载电路要做的就是把这两个手动动作自动化。1.2 一键下载电路的本质复位时序加信号路由一句话概括上位机软件通过USB转串口芯片的DTR、RTS这些流控线代替人的手指去按复位键、拨BOOT0跳线再用模拟开关或三极管去切换串口信号保证下载命令准确到达MCU的ISP引脚而不是被其他外设抢走。所以“一键”其实是把“点按钮、断电源、等复位、进引导、开始下载”这一串动作全部自动化。硬件上要实现的就两个功能自动复位含BOOT0控制和信号路由。自动复位电路大家见得多了三极管加RC就行真正让很多人翻车的是信号路由部分。为什么要单独讲信号路由因为很多真实项目里MCU的串口不只是给下载用旁边还挂着蓝牙模块、RS485芯片、4G模组等外设。如果这些外设一直挂在同一根信号线上下载的时候会占线、拉电平甚至回应乱码导致握手失败。这时候就必须有一个可受控的通断开关把编程器的串口信号“接进来”或者“切出去”。这个开关选什么直接决定电路好不好用。1.3 为什么模拟开关成了信号路由的首选用继电器切换行不行当然行很多老设计就这么干。但继电器是机械触点体积大、寿命有限切换速度也慢频繁下载几次心里就没底。用三极管做双向开关也很麻烦单个三极管只能单向通断UART的TXD/RXD是两个方向要控制得用两只三极管背靠背导通时还有饱和压降信号不干净。模拟开关就是专门干这个的
返回列表