OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2470|回复: 1

使用CH375B的USB-HOST模式连接游戏手柄

[复制链接]

5

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
839
金钱
839
注册时间
2016-9-12
在线时间
97 小时
发表于 2017-2-2 13:21:28 | 显示全部楼层 |阅读模式
平台:ATMEGA128A,11.0592Mhz,在IAR上调试通过。
连接线:
// AVR-->CH375
// PA0~PA7: D0~D7, PG1: RD#, PG0: WR#, PD3: INT#, PC0: A0, PD6: CS#, PD7: RST  
使用串口0输出按键状态

352707558060499067.jpg

调试中抓取各种描述符:

设备描述符:
设备描述符.jpg

配置描述符:
配置描述符.jpg

接口描述符:
接口描述符.jpg

端点描述符:
端点描述符.jpg

HID描述符:
HID描述符.jpg

HID报告描述符:先从串口输出,然后用这个工具手工翻译这个101字节的数据……
HID报告描述符.png

枚举成功后,每隔1秒读取键值(按键有变化):
7F 7F 81 7F 7F 0F 00 C0
7F 7F 81 7F 7F 0F 00 C0
7F 7F 7F 7F 7F 0F 00 C0
7F 7F 80 7F 7F 0F 00 C0
7F 7F 81 7F 7F 0F 00 C0
7F 7F 80 7F 7F 1F 00 C0
7F 7F 80 7F 7F 2F 00 C0
7F 7F 80 7F 7F 4F 00 C0
7F 7F 81 7F 7F 8F 00 C0
7F 7F 7F 7F 7F 0F 08 C0
7F 7F 80 7F 7F 0F 02 C0
7F 7F 81 7F 7F 0F 01 C0
7F 7F 80 7F 7F 0F 04 C0
7F 7F 80 7F 7F 0F 08 C0
7F FF 80 7F 7F 0F 00 C0
7F 00 80 7F 7F 0F 00 C0
00 7F 00 7F 7F 0F 00 C0
FF 7F FF 7F 7F 0F 00 C0
7F 7F 81 7F 7F 2F 00 C0
7F 7F 8A 7F 7F 8F 00 C0
7F 7F 8A 7F 7F 8F 00 C0
7F 7F 81 7F 7F 0F 00 C0
7F 7F 80 7F 7F 0F 00 C0
7F 7F 7F 7F 7F 0F 00 C0


心得:CH375B本身具备64字节的缓冲区,集成一些简化命令,方便一次获取设备描述符和配置描述符(包括接口和端点),但对于HID报告描述符需要自己处理。调试的难点在于对USB协议的理解,建议参看《圈圈教你玩USB(第2版)》和《HID设备类定义中文版》,请自行学习,我不解释,我也不懂。

吐槽:CH375B的接口速度是us级,我本来用AVR的外部总线控制的,但是很不稳定,现在用并口模拟时序好多了。


源代码:仅供参考学习……
SRC.rar (15.83 KB, 下载次数: 308)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
414
金钱
414
注册时间
2016-2-24
在线时间
155 小时
发表于 2017-10-31 16:07:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 23:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表