打印

OTG 接 HUB,端口设备枚举

[复制链接]
4698|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kwell2009|  楼主 | 2011-10-14 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位:
现象:
     现在用105接HUB(GL850A),枚举设备。
     HUB 是可以正常枚举,也通过查询HUB端口状态,找到了在端口上的设备,并对HUB 的端口进行了复位以及清除标志位。
     然后调用 USBH_Init()对已定义好并分配空间的新的 USB_OTG_CORE_HANDLE 和 USBH_HOST 结构重新初始化,并与新的设备挂钩。
     但是对端口设备进行枚举则不成功,设置主机访问地址为0,并已设置对应的 端口速度(与HUB一致均为FULL SPEED),在对设备发数据要求获取设备描述符后,无产生主机通道中断,无数据返回。发出数据为
     0x80 0x06 0x00 0x01 0x00 0x00 0x08 0x00
     抓信号检查,确定数据正确。
环境:3.5.0的STM32函数库,2.0.0的OTG库
请教:在为 HUB 端口的设备初始化时调用 USBH_Init()中,除了没有对OTG端口进行RESET动作,其他的动作均与初始化HUB 时一样,结果为何会有不同。
谢谢!
沙发
kwell2009|  楼主 | 2011-10-14 15:15 | 只看该作者
晕,重新抓了次数据,对HUB的设备枚举根本没有信号~~~:(
其实是在用USBH_Init()对结构体初始化时出问题了,试过直接用HUB 的那一套结构体来枚举设备是正常的,返回数据也正常,继续除错。
请教做过的大侠,这个结构体的初始化需要注意虾米呢?

使用特权

评论回复
板凳
kwell2009|  楼主 | 2011-10-18 13:23 | 只看该作者
自问自答吧:
如硬件外接HUB,程序中需要对两个或以上的设备进行枚举的话,需要对新的设备重新定义一套完整的结构:USB_OTG_CORE_HANDLE,来保存此设备的信息,以及更改对应的 USBH_HOST 内容来进行新的设备的枚举,需修改的内容目前为止如下:
USB_Host.gState = HOST_DEV_ATTACHED;               
USB_Host.EnumState = ENUM_IDLE;
USB_Host.device_prop.address = 0;
USB_Host.RequestState = CMD_SEND;
USB_Host.class_cb = &UVC_cb;
然后根据自己设备的需求可以选择重写USBH_Process()即可。

使用特权

评论回复
地板
putron09| | 2014-5-21 18:56 | 只看该作者

使用特权

评论回复
5
freeman9507| | 2014-6-22 17:05 | 只看该作者
哥们给个信息,咨询USB相关问题,我的qq:13188123,谢谢呀!!!

使用特权

评论回复
6
freeman9507| | 2014-6-27 00:07 | 只看该作者
求教,方便留个信息!

使用特权

评论回复
7
freeman9507| | 2014-6-27 00:08 | 只看该作者

求教,方便留个信息!我的邮箱是:13188123@qq.com

使用特权

评论回复
8
louisignal| | 2015-11-28 14:52 | 只看该作者
目前正在做STM32F105 USB HUB扩展,MARK一下。楼主能留个QQ或者邮箱就好了。

使用特权

评论回复
9
louisignal| | 2015-12-9 20:30 | 只看该作者
你好,楼主能给个联系方式吗?有关于STM32+USB Hub的问题请教!QQ或者 邮箱都可以的

使用特权

评论回复
10
eeprom3| | 2017-9-14 09:17 | 只看该作者
你好,能给个联系方式么?请教一下问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:堆码,调试,抓狂...

1

主题

51

帖子

2

粉丝