_wq 发表于 2021-8-8 23:02:27

USB HOST支持CDC和MSC复合设备

本帖最后由 _wq 于 2021-8-8 23:08 编辑

目前正在做基于ST USBH库支持CDC MSC复合设备的开发工作.目前的思路是自定义一个类,通过该类去调用官方的CDC和MSC类文件处理函数。
现在的进度是设备枚举成功,ClassRequest也可以正常通过,但是到了Process里面的时候,CDC是可以正常工作的,MSC却卡在了SCSI的命令上.
具体表现是CDC类正常工作,SCSI命令发送出去了(分析仪抓包看到了),但是没有收到返回数据.
通过复合设备的日志也可以看到设备已经收到了SCSI命令,也尽到了对应的处理函数,并且作出了对应处理(这部分涉及到RK的硬件,不太了解)。
主要有以下几个问题:
1、我这个思路对吗
2、在对复合设备操作的时候,需要有什么额外的命令吗
3、请教一下有没有其余思路来实现这个功能.

eric2013 发表于 2021-8-9 12:42:28

帮顶,以前只研究过USB Host的HID复合设备(键鼠套件),用的RL-USB,直接就能用,后来就没有深入研究了。

_wq 发表于 2021-8-9 15:52:21

现在定位到问题了,发出去命令后,需要主机这边发出一道IN 传输事务,设备才会回传,但是主机这边一直没发出去,我找了半天,也没意识到是哪的问题.

_wq 发表于 2021-8-12 17:03:42

先说结果,问题解决了.
原因:可能是开发板问题.
测试使用的是原子的407开发板调试,然后同样的代码,换到了另外一块GD407的开发板就没遇到问题.
虽然感觉原因有点不可思议,但是事实就是这样.后期拿自己产品的板子试一下就能下结论了.

_wq 发表于 2022-1-6 23:17:28

后续跟进,思路没问题,细节方面需要注意.
通讯不上的原因是主机端使用内部PHY,仅支持全速设备,设备是一个高速设备,得到信息有误.

eric2013 发表于 2022-1-7 11:00:29

_wq 发表于 2022-1-6 23:17
后续跟进,思路没问题,细节方面需要注意.
通讯不上的原因是主机端使用内部PHY,仅支持全速设备,设备是一 ...

谢谢分享。

lceihn 发表于 2024-1-31 10:19:47

_wq 发表于 2022-1-6 23:17
后续跟进,思路没问题,细节方面需要注意.
通讯不上的原因是主机端使用内部PHY,仅支持全速设备,设备是一 ...

请问一下大佬,我现在GD32F450想使用USB host cdc 通信,官方没提供相关例子,你的GD32F407是怎么实现host cdc的,直接套STM32F407的库?
页: [1]
查看完整版本: USB HOST支持CDC和MSC复合设备