硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1697|回复: 6
收起左侧

USB HOST支持CDC和MSC复合设备

[复制链接]

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2021-8-8 23:02:27 | 显示全部楼层 |阅读模式
本帖最后由 _wq 于 2021-8-8 23:08 编辑

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106669
QQ
发表于 2021-8-9 12:42:28 | 显示全部楼层
帮顶,以前只研究过USB Host的HID复合设备(键鼠套件),用的RL-USB,直接就能用,后来就没有深入研究了。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2021-8-9 15:52:21 | 显示全部楼层
现在定位到问题了,发出去命令后,需要主机这边发出一道IN 传输事务,设备才会回传,但是主机这边一直没发出去,我找了半天,也没意识到是哪的问题.
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2021-8-12 17:03:42 | 显示全部楼层
先说结果,问题解决了.
原因:可能是开发板问题.
测试使用的是原子的407开发板调试,然后同样的代码,换到了另外一块GD407的开发板就没遇到问题.
虽然感觉原因有点不可思议,但是事实就是这样.后期拿自己产品的板子试一下就能下结论了.
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2022-1-6 23:17:28 | 显示全部楼层
后续跟进,思路没问题,细节方面需要注意.
通讯不上的原因是主机端使用内部PHY,仅支持全速设备,设备是一个高速设备,得到信息有误.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

谢谢分享。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

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

请问一下大佬,我现在GD32F450想使用USB host cdc 通信,官方没提供相关例子,你的GD32F407是怎么实现host cdc的,直接套STM32F407的库?
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 08:18 , Processed in 0.188699 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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