您好,我们在用AM57xx系列做usb开发,使用的是PROCESSOR-SDK-RTOS-AM57X开发包,嵌入式端使用usb 从模式,PC作为主机,不过当连接上PC之后,无法完成枚举过程,被识别为unknown device,用ccs debug下,发现枚举过程没有完整执行,host通知hub复位usb从设备已经过了,不过随后 host会发送协议Get Descriptor请求获取设备描述符最大包长度,这时协议栈里面得到的数据包是错误的,我看了下协议栈是通过usbSetupPkt_t这个结构体来获取协议包的,下面有个成员bRequest指向请求类型,debug时bRequest值都很大,只是偶尔会出现对的情况,请问有该经验人说下这可能是什么原因造成的?
谢谢
Yue Zhao:
有没有TI的人熟悉该问题的?这个问题已经卡壳几天了,没有头绪,顺便我查了下,网上有说unkown device会是PC端没有相应的驱动造成的,有一点我不解,如果把usb识别为mass storage device,使用PC通用的usb驱动就可以吧
Steven Liu1:
你用的是哪块开发板作为测试平台做的?你现在的这个测试,是为了在PC段形成一个类似于U盘的device,还是说测试USB rndis网络的,或者是其他的用途?
Yue Zhao:
回复 Steven Liu1:
您好,
感谢回复,实际最初我们使用的平台不是AM572,而是TI ADAS的TDA2x平台,不过由于TI官方并没有提供BIOS下的usb驱动,所以我们才开始做usb驱动的移植到TDA2xx,之所以从AM572x usb驱动porting到TDA2xx,是因为TDA2xx与AM572x的usb ip 是一个“DWC“并且寄存器上都是一致的,但是我们把AM572 usb驱动移植过来后发现,usb可以正常初始化工作起来,但是无法完成枚举,至于usb外设使用的需求是:TDA2xx与PC通过USB进行数据传输就是这么简单,可以作为mass storage deivice来用,这样可以使用windows的通用usb驱动,经过几天调试发现,AM572 usb驱动底层数据并没有正常收发,导致没办法与PC进行枚举过程的协议交互,才出现的unkown device的识别结果