
多功能USB拓展坞 Dog-on-Fork HUB
简介
基于CH334的USB拓展坞,内置STC8H单片机,支持USB口电压电流检测和通断控制,并带有RGB灯、HID旋钮、FLASH和2.4G模块等
简介:基于CH334的USB拓展坞,内置STC8H单片机,支持USB口电压电流检测和通断控制,并带有RGB灯、HID旋钮、FLASH和2.4G模块等开源协议
:GPL 3.0
描述
本项目已参加【星火计划】,感谢嘉立创支持
B站展示视频:https://www.bilibili.com/video/BV12w4m1Q7YJ
基本信息
本设备为基于CH334和STC8H8K的USB2.0拓展坞,支持USB口电压电流检测和通断控制,并带有RGB灯、旋钮、FLASH和2.4G模块。
编写了QT上位机,可读取并显示电压电流,可自由配置开关、按键和旋钮的功能,如配置为键盘按键、音量控制、USB口控制等。
设计初衷是调试单片机时USB口经常不够,还担心误操作损坏USB口,于是设计了这个USB口可控的HUB,同时其还支持HID,使用方便。
硬件
HUB芯片 CH334R,QSOP16封装,支持MTT模式,支持外部复位,使用12M晶振。
主控 STC8H8K64U,LQFP32封装,使用3.3V电源工作,支持USB直接烧录。
主USB接口使用 TYPEC-306DDW-ARP16,注意此型号为针脚型,和常见的TYPE-C口有所不同,更易焊接。
HUB有4路USB口,其中1号2号口直通到两个卧式USB接口,3号口经过PMOS后通到立式USB接口,4号口连接到主控。
3号口为可控USB口(下文简称 CUSB)支持电源通断控制、电压电流检测、数据引脚上拉电阻操作,电流检测基于 INA199 运放。
123号口的VBUS共同使用一个自恢复保险丝,防止过流,保险丝可以选1.5A的,也可以选其他值。
5V转3.3V的LDO使用 662K. 芯片,为主控、无线模块和FLASH供电。
在5V和GND之间接了TVS管,型号为 CESD5V0D3,用于静电防护。
FLASH使用 W25Q128,SOP8封装,16M字节空间。若改用更小的需要修改代码宏定义。
无线模块使用基于 Si24R1 的2.4G模块(基本兼容NRF24L01),某宝优信电子搜Si24R1可找到。
一个EC11编码器;一个拨动开关;一个无声按键,优信搜6*6*5按键可找到。
3个LED:LED1为电源指示灯;LED2连接到主控;LED3为CUSB的开关指示,注意LED3必须用红色(导通电压合适)。
一个4P接口,默认用于接直插WS2812灯珠,不过也可以用于接串口。
外壳
设计了3D打印的外壳,为LED1~3都留了3mm的通光孔,可以买透明导光柱塞上,也提供无孔的版本。
没有给WS2812留通光孔,因为它的亮度较高一般能穿透外壳(白色的光固化或FDM一般都可以),若需要孔可自行添加。
设计了一些刻字,如下图中 I II III,是打印后用油墨描黑,也提供无刻的版本,要使刻字的打印效果较好最好用光固化。
外壳的上下两部分用三对螺丝螺母连接,螺丝为M2、长22mm的沉头螺丝,螺母为M2、外径3mm、高2mm的嵌入螺母。
此外,按键的凸出部分也是打印件。
软件
为主控开发了两种模式:1、HID模式,2、U盘模式:
1、HID模式
配置为键鼠及媒体控制等的复合HID设备,同时开启一对端点用于CustomHID通信,包括配置数据的传输或读取电压电流等。
按键和旋钮均可自由配置功能,包括:设置为 键鼠媒体按键、CUSB开关、HUB复位、HID配置切换、USB模式切换 等。
用 QT 编写了配套的上位机,可读取并显示CUSB的电压电流,设置限流值等,以及对开关、按键、旋钮的各类功能进行配置。
上位机使用CustomHID通信,因此仅能在HID模式下使用。上位机软件和具体使用说明请见相关附件。
此外,HID模式下可以从2.4G模块接收数据,并作为HID数据包发给电脑,实现无线接收器的功能。
2、U盘模式
以FLASH为存储介质,配置为一个仅16MB的U盘,速度较慢,适合存一些文本文件。好处是不开启U盘模式时文件都是隐藏的。
也可以将上位机软件压缩后存到里面,虽然比较慢,但这样即使HUB接到别的电脑也有上位机用了。
按照W25Q128手册,其数据保持能力为20年,每扇区擦除次数为10万次。
没有在单片机端挂载文件系统,因此首次进U盘模式需要在电脑上对其进行格式化,建议用 FAT 格式,并选择最小的单元大小。
存储操作要慎重,退出时建议先在电脑上弹出U盘,总之不要在有文件传输时退出,防止数据受损。
在U盘模式下,所有HID相关的功能(键鼠媒体按键等)均无效,其他控制类的功能(CUSB开关、HUB复位等)仍有效。
灯光
如上文所述,有4个灯,其中LED1为电源指示,LED3为CUSB的开关指示,因此用户可用的就是 LED2 和 WS2812灯珠。
这两个灯可自由配置,可作为数字锁定、大写锁定、滚动锁定、CUSB开关、HUB复位、配置切换或无线接收等的指示灯。
此外WS2812还可以进行色彩变幻,或作为CUSB电流大小的指示灯。
主要功能如下图所示:
烧录
使用STC-ISP软件烧录,软件可到STC官网获取。烧录方式为STC8H8K64U的USB直接烧录。
烧录时先打开hex固件文件,将芯片型号选为STC8H8K64U,注意要按下图设置硬件选项:
先把旋钮往下按住,然后再接入USB上电,再松开旋钮。若成功进入烧录模式,则软件中会显示STC-USB Writer,点击下载即可。
其他
外壳3D文件、单片机固件和代码、QT上位机软件和代码均开源,加上说明文档,都放在附件中。
PCB工程的备份也放在附件中(假如以后更新,老版本的内容就可以在附件中获取)。
如自行开发软件,则务必注意原理图中提及的特殊连接,以防造成引脚冲突等。
PS:这个看上去有些怪的名称的由来:是因为HUB犹如分岔路,而主控管理之,就像是看守之犬,故而叫Dog-on-Fork
2024.06.07更新
更新了单片机固件和代码,版本为V1.2,支持不使用2.4G模块,其运行逻辑为:
若在上位机配置中不启用2.4G模块,则直接不初始化它,反之若启用,则先检查2.4G模块是否存在,存在才会与之正常通信。
这样如果对2.4G模块没有需求,可以直接不焊接。而之前的版本无论是否使用都必须焊接。
2024.06.21更新
更新了上位机,版本为V1.4,微调逻辑和UI,修复键值数组未初始化问题,这在旧版本会导致不打开文件且不设置键值就点写入时会写入野键值。
设计图

BOM


评论