OMAP1710 USB 枚举过程中的相关问题

z4126   2009-6-15 21:08 楼主
OMAP1710 USB模块,这里我选择的模式是6pin从模式,外部tranciver(TUSB1105),作device用。是不用OTG的。
我用bushound抓的数据显示在set_feacter之后的就一直是get_status,怎么也不能到set_descriptor,
但我的firmware里的串口打印却显示,在set_up这个与host端通信的中断中,直接就到set_descriptor命令去了。
之后中断就一直在endpoint0_RX0里,重复的进。
请问是什么原因?

回复评论 (6)

用bushound抓到的数据是这样的:
Device  Phase  Data                                                Description       Cmd.Phase.Ofs(rep)
------  -----  --------------------------------------------------  ----------------  ------------------
  11.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS               1.1.0(2)     
  11.0  DI     01 05 01 00                                         ....                     1.2.0        
  11.0  CTL    23 01 10 00  07 00 00 00                            CLEAR FEATURE            3.1.0        
  11.0  CTL    a3 00 00 00  01 00 04 00                            GET STATUS               4.1.0        
  11.0  DI     00 05 00 00                                         ....                     4.2.0        
  11.0  CTL    a3 00 00 00  02 00 04 00                            GET STATUS               5.1.0        
  11.0  DI     00 05 00 00                                         ....                     5.2.0        
  11.0  CTL    a3 00 00 00  03 00 04 00                            GET STATUS               6.1.0        
  11.0  DI     00 05 00 00                                         ....                     6.2.0        
  11.0  CTL    a3 00 00 00  04 00 04 00                            GET STATUS               7.1.0        
  11.0  DI     00 05 00 00                                         ....                     7.2.0        
  11.0  CTL    a3 00 00 00  05 00 04 00                            GET STATUS               8.1.0        
  11.0  DI     00 05 00 00                                         ....                     8.2.0        
  11.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS               9.1.0        
  11.0  DI     00 05 00 00                                         ....                     9.2.0        
  11.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              10.1.0(2)     
  11.0  DI     01 05 00 00                                         ....                    10.2.0        
  11.0  CTL    23 03 04 00  07 00 00 00                            SET FEATURE             12.1.0        
  11.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              13.1.0        
  11.0  DI     00 85 11 00                                         ....                    13.2.0        
  11.0  CTL    23 01 14 00  07 00 00 00                            CLEAR FEATURE           14.1.0        
  11.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              15.1.0        
  11.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              16.1.0(2)     
  11.0  DI     00 85 01 00                                         ....                    15.2.0        
  11.0  DI     00 85 01 00                                         ....                    16.2.0        
  11.0  CTL    23 01 10 00  07 00 00 00                            CLEAR FEATURE           18.1.0        
  11.0  CTL    a3 00 00 00  08 00 04 00                            GET STATUS              19.1.0        
  11.0  DI     00 05 00 00                                         ....                    19.2.0        
  11.0  CTL    a3 00 00 00  09 00 04 00                            GET STATUS              20.1.0        
  11.0  DI     00 05 00 00                                         ....                    20.2.0        
  11.0  CTL    a3 00 00 00  0a 00 04 00                            GET STATUS              21.1.0        
  11.0  DI     00 05 00 00                                         ....                    21.2.0        
  11.0  CTL    a3 00 00 00  01 00 04 00                            GET STATUS              22.1.0        
  11.0  DI     00 05 00 00                                         ....                    22.2.0        
  11.0  CTL    a3 00 00 00  02 00 04 00                            GET STATUS              23.1.0        
  11.0  DI     00 05 00 00                                         ....                    23.2.0        
  11.0  CTL    a3 00 00 00  03 00 04 00                            GET STATUS              24.1.0        
  11.0  DI     00 05 00 00                                         ....                    24.2.0        
  11.0  CTL    a3 00 00 00  04 00 04 00                            GET STATUS              25.1.0        
  11.0  DI     00 05 00 00                                         ....                    25.2.0        
  11.0  CTL    a3 00 00 00  05 00 04 00                            GET STATUS              26.1.0        
  11.0  DI     00 05 00 00                                         ....                    26.2.0        
  11.0  CTL    a3 00 00 00  06 00 04 00                            GET STATUS              27.1.0        
  11.0  DI     00 05 00 00                                         ....                    27.2.0        
  11.0  CTL    a3 00 00 00  07 00 04 00                            GET STATUS              28.1.0        
  11.0  DI     00 85 00 00                                         ....                    28.2.0        
  11.0  CTL    a3 00 00 00  08 00 04 00                            GET STATUS              29.1.0        
  11.0  DI     00 05 00 00                                         ....                    29.2.0        
  11.0  CTL    a3 00 00 00  09 00 04 00                            GET STATUS              30.1.0        
  11.0  DI     00 05 00 00                                         ....                    30.2.0        
  11.0  CTL    a3 00 00 00  0a 00 04 00                            GET STATUS              31.1.0        
  11.0  DI     00 05 00 00                                         ....                    31.2.0        
  11.0  CTL    80 00 00 00  00 00 02 00                            GET STATUS              32.1.0(6)     
  11.0  DI     01 00                                               ..                      32.2.0        
而在底层却收到一个set_descriptor的命令,然后就一直进IRQ_SRC.EP0_RX中断,直到PC等待超时。
我觉得我的get_status回的命令不太对,找不到原因,各位大大帮忙看看。谢谢
点赞  2009-6-17 10:03
而且firmware从DATA中读到的数据一直都是set_descriptor的命令。
是不是从DATA中读数据的速度不够快?
点赞  2009-6-18 11:08
问题应该是集线器未能在设备和主机之间建立一个信号通路
点赞  2009-6-18 15:15
Ti 的片子就是麻烦 很多pin 是复用的 你仔细检查下 寄存器配置
点赞  2009-6-19 23:09
bushound只能监控能识别的USB设备数据流,所以在这个阶段是抓不到SET_UP包的信息的,在FW里串口打印能收到GET_DESCRIPTOR命令,但三次之后,设备就挂起了,用示波器看能看到有波形发出,但不能辨认。麻烦。没有USB分析仪的日子真难过
大家有没有什么好的建议?
点赞  2009-6-23 18:00
晕倒,我软件什么也没动过,突然写不下数据了
点赞  2009-6-24 09:27
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复