一、概述
在学习Linux开发的时候由于经常需要将img固件烧录到sd卡里面,每次都需要使用读卡器插电脑上面,本身电脑的USB口就很有限了,还需要再插上读卡器,因此萌生了买一个带读卡器功能的USB集线器,既满足了烧录sd卡的需求也能扩展一下电脑的USB口。但是找遍了所有的淘宝、pdd、京东都没有找到合适的
- 普通USB集线器:优点,简单便宜,连接线很长,方便接线。缺点是这种都不带读卡器的功能。
- Type-c集线器:优点是这种集线器功能非常非常多,完全满足要求。缺点是需要电脑有Type-c口,而且连接线非常短,普遍只有10cm左右,不方便使用。
因此萌生了自己制作一个USB集线器的想法。既然是自己制作了,那么就可以加入一些自己需要的DIY功能了:
- 每个USB口独立开关控制
- 集成无线下载器功能
- 添加串口调试功能
- 自定义接口布局和外壳设计
二、功能介绍
核心功能
- 3路USB 3.0接口 - 支持5Gbps超高速传输
- 1路USB 2.0接口 - 向下兼容,支持480Mbps高速传输
- 1路USB 2.0读卡器 - 支持SD卡热插拔
- 1路DAP无线下载器 - 集成STM32无线下载功能
- 1路虚拟串口 - 基于CP2102芯片
- 1路硬件串口 - 直接UART输出
- Type-C输入口 - 支持正反插入,5V/3A供电
- 独立电源开关 - 每个USB口、下载器、读卡器均可单独控制
- 智能电源管理 - 防止过载保护
- 热插拔支持 - 设备插拔无需重启
三、版本说明
V1.2版本(当前版本)已打板验证,功能完整
主要改进:
- 主控芯片升级:VL812 → VL817,性能更稳定
- 成本优化:移除电压电流检测和屏幕显示功能
- 功耗优化:无线DAP下载器从模块改为芯片直焊
- 成本:50元 → 20元
- 功耗:150mA → 40mA
- 续航:显著提升
读卡器这部分为了能够实现插卡读卡,拔卡断电的操作将sd卡槽接入识别连接到单片机,如果拔卡不断电会导致再次插卡时芯片不会重新枚举导致无法识别。可能是本身这个芯片体制不太好,在调试时候就坏了好几个了,再加上频繁上电断电导致芯片非常容易损坏,之后会更坏其他芯片。
V1.1版本(已废弃)
状态:存在严重问题,已废弃
主要问题:
- Type-C兼容性问题:仅支持单面插入USB3.0,另一面仅识别USB2.0
- 电源管理缺陷:无法支持大功耗设备(如固态硬盘),会掉电重启
- 电压不稳定:多设备接入后电压降至4.5V
- 检测功能异常:电压电流检测仅能读取部分数据
由于是第一次制作这样复杂的板子,PCB走线、滤波电容放置、芯片保护等等都做的非常不好,导致板子出现了各种各样莫名其妙的问题。
四、技术实现
V1.2版本
4.1 系统架构
Type-C输入 → VL160(正反插检测) → VL817(USB3.0集线器) → 3×USB3.0输出
↓
CH334F(USB2.0集线器) → 1×USB2.0输出
↓
GL3224(读卡器芯片) → SD卡槽
↓
CH32V307(主控) → SX1281(LoRa) → 无线下载器
↓
CP2102(串口芯片) → 虚拟串口
↓
STC8H1K28(辅助MCU) → 硬件串口
4.2 核心芯片详解
4.2.1 VL817 USB3.0集线器芯片
功能: USB 3.0 "一拖四"集线器主控
- 传输速率:支持USB3.0 SuperSpeed(5Gbps)
- 向下兼容:兼容USB2.0/1.1
- 即插即用:无需驱动,兼容性好
- 供电方式:支持总线供电或外接电源
- 封装:QFN-48,体积小巧

4.2.2 VL160 Type-C正反插检测芯片
功能: Type-C接口正反插识别和信号切换
- 方向检测:自动识别插入方向
- 信号管理:管理CC引脚信号
- 线路切换:将SuperSpeed信号分配到正确引脚
- 电源管理:VCONN信号分配
- 封装:QFN-16,集成度高
应用场景:转接头、扩展坞、主板Type-C接口
4.2.3 CH334F USB2.0集线器芯片
功能: USB2.0 "一拖四"集线器扩展
- 传输速率:USB2.0高速(480Mbps)
- 向下兼容:兼容USB1.1
- 热插拔:支持设备热插拔
- 成本优势:价格低廉
- 封装:QFN-28,体积小巧
应用场景:四口扩展器、转接线、外设集线
4.2.4 SX1281 LoRa无线通信芯片
功能: 长距离低功耗无线通信
- 通信距离:几公里远距离通信
- 低功耗:支持睡眠模式,适合电池供电
- 通信接口:SPI与主控MCU通信
- 调制方式:LoRa调制(扩频CSS)
- 高灵敏度:抗干扰能力强
- 可配置:发射/接收参数可调
应用场景:物联网节点、无线传感器网络、远程监控
4.2.5 CH32V307WCU6 主控MCU
功能: 32位RISC-V主控处理器
- 架构:WCH QingKe RISC-V内核
- 主频:144MHz高性能
- 丰富外设:UART×8、SPI、I²C、定时器、DMA、ADC
- 通信接口:USB2.0、SDIO、FSMC外设总线
- 性价比:同价位性能突出
应用场景:通信网关、工控系统、多串口转发、以太网扩展
4.2.6 GL3224 USB3.0读卡器芯片
功能: 高速SD卡读卡器控制器
- 传输速率:USB3.0(5Gbps)
- 存储支持:SD/microSD等多种格式
- 向下兼容:兼容USB2.0
- 逻辑单元:支持Dual/Single LUN
- 厂商:Genesys Logic
应用场景:高速读卡器、存储设备、数据采集
4.2.7 CP2102 USB转串口芯片
功能: USB转UART桥接芯片
- 接口转换:USB ↔ UART
- 虚拟串口:电脑识别为COM口
- 波特率支持:常见波特率全覆盖
- 硬件流控:支持RTS/CTS
- 封装小巧:外设少,集成度高
应用场景:串口调试、MCU烧写、开发板通信
4.2.8 STC8H1K28 辅助MCU
功能: 8位增强型8051兼容MCU
- 内核架构:增强型8051,效率大幅提升
- 丰富外设:GPIO、定时器、PWM、ADC、看门狗
- 通信接口:UART、SPI、I²C
- 下载方式:支持ISP/IAP串口下载
- 成本优势:国产芯片,价格低廉
- 生态友好:Keil/C51开发,中文资料丰富
应用场景:家电控制、工控系统、小型物联网节点
4.3 PCB设计要点
- USB接口应该靠近板边或结构定位放置,方便插拔;
- TVS管要靠近USB接口,建议电源线出来就进入TVS管,起到保护作用;
- 在布局时,要考虑芯片与接口的距离,不能离得太远,缩短差分线距离;
- USB信号要走差分线,阻抗控制为90欧姆,并做包地出来,高速差分线长度最好不要超过1800mil;
- 在走线时,优先考虑高速差分信号线,尽可能不要换层,在换层时,加入回流地过孔;
- 差分对长度误差尽可能小,建议在5mil以内。
上层-信号层
中层-GND
中层-VCC
下层-信号层
4.4 外壳设计
外壳使用是Autodesk Fusion 360制作的,由于板子本身比较紧凑,没有多余的地方放置定位孔,所以只用了两个M3*8的螺丝来固定
五、问题及注意事项
5.1 焊接步骤
由于板子使用的芯片封装都是QFN封装的,因此焊接的时候是有一点难度的,下面是我自己总结的焊接方式,仅供参考:
焊接步骤:
- 预热焊盘:风枪加热芯片焊盘位置,便于涂抹锡膏
- 关键要点:中间接地焊盘锡量要少,这是成功的关键!
- 芯片放置:放上芯片,风枪均匀加热
- 助焊处理:锡膏融化后添加助焊膏
- 引脚处理:烙铁拖焊所有引脚,去除多余锡料
为什么中间焊盘要少锡?
中间焊盘面积最大,锡过多会在加热时将芯片顶起,导致周围引脚无法接触焊盘。
5.2 常见问题排查
- 如果出现集线器有不能识别USB3.0,只能识别USB2.0,大概率是USB接口或芯片有虚焊,如果都不能识别,大概率是芯片虚焊了。
- 在每个芯片和供电处添加大容量的电容,防止由于其他位置突然接入大负载设备导致芯片保护掉电。
六、测试
功能测试
外壳展示
固态硬盘测试

评论区