
USB复位上电小工具
简介
本项目是针对SOC级芯片开发板实现上电复位的工具向装置. 通过一个与PC连接的USB口控制与开发板连接USB供电通断以及两路IO通断, 且不妨碍PC与开发板之间的USB通信.
简介:本项目是针对SOC级芯片开发板实现上电复位的工具向装置. 通过一个与PC连接的USB口控制与开发板连接USB供电通断以及两路IO通断, 且不妨碍PC与开发板之间的USB通信.开源协议
:GPL 3.0
描述
视频链接:
项目简介
本项目是基于CH32V203C8T6单片机制作的针对常见SOC芯片开发板远程上电复位的工具向装置. 能通过一个与PC连接的USB口控制另一个与开发板连的USB供电通断以及两路PMOS IO通断(负载型), 同时与开发板连的USB口能与PC正常通信(包括但不限于ADB).
项目功能
开发的缘由是作者近一年都在业余调试开发RISC-V架构上的Melis内核驱动, 正所谓常在内核走哪有不湿鞋, 写BUG让芯片跑飞就如家常便饭; 虽说解决跑飞和烧录通常只需要点几下物理按钮, 但这意味着我们要随身携带开发板. 然而开发阶段的开发板犹如道士布好的祭坛, 五彩斑斓的飞线似乎在警告你——"你敢动我试试?" 硬要带走的话, 至少要自备好手提箱和面对安检人员的故作镇定;
还有一种情况是, 做好的板卡寄去了千里之外后需要配合甲方远程排查调试各种外设问题(包括但不限于DDR, 屏幕), 远程的同时少了一番语音通话:
"你要按住这个然后按那个...哎呀,跑飞了, 你再按下这个...你再按下那个.."
"(甲方硬件跑去抽烟)喂, 有人在吗?帮我按下复位..."
本装置硬件配有1路USB TypeC输入接口, 1路USB TypeA输出母口, 2路MOS管控制负载型开关(出于小巧尺寸考虑没有整合继电器, 若有后续版本考虑外接继电器模块). 软件上, 配合PC上位机软件使用, 可以在不影响USB母口的通信的前提下, 控制USB TypeA输出母口的电源通断, 以及2路MOS管开关通断.
原理解析
硬件上缝合了CH334 USB HUB芯片和CH32V203芯片.
取CH334作USB HUB之便利, 让它直接与CH32V203芯片的USB外设引脚连接, 相当于MCU直连电脑的USB. 再通过控制CH32V203芯片输出引脚电平实现控制三路MOS开关电路(仅适合控制负载型用电器).
示例图1--电源电路
常见的DC-DC电源芯片电路布局,虽然MT3520B芯片立创商城暂时缺货(我库存有),但比较容易找到相同封装且兼容的DC-DC电源芯片(需要根据手册调整FB分压电阻); 将R3和R4串联是为了容易取任意想要的阻值.
示例图2--MOS管开关控制电路
典型的低电压信号控制(高压)MOS管通断的(开关)电路. 即:低电压(流)信号控制相对高压(大电流)的电路通断. (如果你看到过故障闪烁的行人红绿灯,那它很可能只是NMOS坏掉了)
以下是电路分析:
-
当IO_OUT_0为高电平时, NMOS管(Q4)有:
,
因此Q4导通, 即Q4的D极电压为0V;
又因为R29和R24串联分压, 进而PMOS管(Q5)的G极约为:2.38V, 而Q5的S极(对地)电压又为5V, 有:
, 因此Q5导通. -
当IO_OUT_0为低电平(或高阻态)时, NMOS管(Q4)有:
,
因此Q4不导通的, 所以Q4的D极电压为5V. 此时, PMOS管(Q5)的S极和G极(对地)电压均为5V,即:
,
因此Q5不导通.
软件代码
下位机CH32V203代码主要围绕启用USBD模块, 实现USB Device角色和虚拟串口设备, 以便让PC免驱动识别MCU, 亦无需CH340等串口转USB芯片且兼容多种常见串口波特率, 进而实现上位机软件对其控制. 上下位机之间通信协议参考Modbus RTU进行设计.
- 上位机开源:远程USB复位调试板
注意事项
-
装置的两路MOS管IO通断,务必遵循丝印的高低电势要求, 反接会由于PMOS旁二极管一直保持导通, 可能会导致装置损坏;
-
装置控制两路MOS管IO通断, 可以粗略类比为一个可以调整阻值的开关. 当开关闭合时阻值仅为数mΩ; 当开关断开时, 阻值趋近无限大(但仍存在μA级漏电流). 所以它仅适合控制负载型(30V,4A,未考虑散热)用电器通断, 而不适合直接通断复位或者烧录针脚的微弱电压信号.
★ 为了既保持桌面设备的小巧又要对这类信号的有效控制, V0.3优化版本会配套能快速插拔的继电器模块.
PS: 这里设计的本意是不希望将硕大的继电器引入到装置内部, 保持装置的小巧灵活, 且能对简单的开关量实现无继电器的控制.
实物图
想做小巧没想到0402也近乎塞满了...
设计图

BOM


评论