[ESP8266/ESP32]FireBeetle USB KB/MS Shield 精华

136浏览
查看: 136|回复: 2

[ESP8266/ESP32] FireBeetle USB KB/MS Shield

[复制链接]
USB 键盘鼠标是最常见的输入设备了,之前如果想在 Arduino 上使用这两种设备,一个可行的方法是使用 USB Host Shield。这种方法的缺点是:成本比较高(MAX3421E芯片贵),操作复杂(SPI接口),资料少。因为这样缺点的存在,USBHost Shield 在使用上存在诸多不便。偶然间看到USB键鼠转串口通讯控制芯片CH9350(南京沁恒,WCH,阅读过我文章的朋友都知道CH340也是他们家的产品)。这款能够将 USB 键盘鼠标的有效信息转为串口数据。芯片特点如下:

·       支持12Mbps全速USB传输和1.5Mbps低速USB传输,兼容USB V2.0。
·       上位机端USB端口符合标准HID类协议,不需要额外安装驱动程序,支持内置HID类设备驱动的Windows、Linux、MAC等操作系统。
·       同一芯片可配置为上位机模式和下位机模式,分别连接USB-Host主机和USB键盘、鼠标。
·       支持USB键盘鼠标在BIOS界面使用,支持多媒体功能键,支持不同分辨率USB鼠标。
·       支持各种品牌的USB键盘鼠标、USB无线键盘鼠标、USB转PS2线等。
·       上位机端和下位机端支持热插拔。
·       提供发送状态引脚,支持485通讯。
·       串口支持115200/57600/38400串口通信波特率。
·       内置晶振和上电复位电路,外围电路简单。
·       支持5V、3.3V电源电压。
·       提供LQFP-48无铅封装,兼容RoHS。

于是尝试给 ESP32 FireBeetle 绘制一个  USBKeyboard/Mouse Shield,让 ESP32 能够轻松的获得 USB 键盘鼠标数据。
第一步,设计电路。核心是 CH9350芯片,它能够一次性支持2个 USB Host接口,下图中的 USB1 和 USB2。LED1 和 LED2 是通讯指示灯,对应的 USB1 和 USB2 如果有正常的通讯,对应的 LED会熄灭。此外,还有一个USB_Power 是USB公头,用于从外部取电,避免 FireBeetle 供电不足的情况。
image001.png

PCB 设计如下:
image003.png
3D 预览如下:
image005.png

做出来就是这样(美中不足的因为2USB 母头的存在,这个板子稍微大一些。另外,这个芯片引脚比较密集,焊接费了一些功夫,如果你对自己焊接技术不放心,推荐直接 SMT 避免手工焊接):
image007.png

因为芯片使用串口输出,所以很容易就能够获得数据。数据格式在 Data Sheet 上有描述:
image009.png

解析数据会出现在 FireBeetle Serial2上。




zoologist  高级技师
 楼主|

发表于 2021-7-14 16:21:29

Shield 电路图 + PCB (立创 EDA)
CH3950L_JLC.zip (102.76 KB, 下载次数: 1)
回复

使用道具 举报

pATAq  版主

发表于 2021-7-14 18:20:08

感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail