TI中文支持网
TI专业的中文技术问题搜集分享网站

TUSB9261: 判断是否成功识别USB的详细依据是什么?

Part Number:TUSB9261

您好,请教一个问题:关于TUSB9261这个芯片,在我们的设计中,我需要知道连接的信号是USB2.0还是USB3.0,所以使用的固件版本是v1.03。 但是在应用中,会出现概率性的连接失败,能否说说芯片检测连接的方式和过程,以及判断的依据。 以便我分析USB主机的问题或USB枚举过程中的哪个步骤异常。目前我们是通过读取GPIO的高低电平来判断USB是否已经识别成功,但是我们不知道你们这边判断USB是否识别成功的依据是什么?我们现在需要分析,非常希望你们可以帮忙解答。

jiong huang:

有人帮忙解答疑惑吗?非常感谢!

,

Kailyn Chen:

您好,判断是USB2.0还是3.0是上位机来控制的,比如PC和TUSB9261连接,如果PC的USB接口是USB3.0,那么TUSB9261的USB连接就是3.0的,如果PC的USB 接口是2.0的,那么TUSB9261的USB连接的就是2.0的。

,

jiong huang:

抱歉可能我描述得不是很准确,我想问的是我们目前是通过读取GPIO7的高低电平来判断USB3.0信号是否识别到,这个GPIO的状态是TUSB9261固件内部去切换的,我想知道这个内部的判断识别成功与否的依据是什么?

,

Kailyn Chen:

您好,是的,GPIO7 可以监测是否或判断USB3.0的连接。

我看到英文E2E上有一个和您相同的帖子,美国工程师也已经给出详细回复,您可以参考下:

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1022434/tusb9261-how-to-detect-the-connection-between-usb2-0-and-usb3-0/3780675#3780675

,

jiong huang:

您好,美国那边跟咱们这边时差很大,您能帮忙回答下问题吗?感谢。

,

jiong huang:

我们在切换到USB3.0检测的时候,TUSB9261的debug  UART口输出的信息如下,请问这些log信息怎么解读?能大致跟我们说下吗?或者有什么文档描述可以参考吗?谢谢。

========================================================|| TUSB926x Firmware v1.03 [Sep 13 2013 17:02:30] |||| Device ID: 0x0000 ||========================================================

Reset Flag(s): [Power-Up]

[0000000001] Datapath RAM Usage: 80208 / 81920 bytes.[0000000001] Supported NCQ Depth: 32[0000000001] U1/U2 Transistions: OFF[0000000001] USB PHY Suspend: ON[0000000001] SATA LPM: OFF[0000000001] Device is Self-powered.[0000000001] -> usb_hal_init()[0000000001] USB Core Ver: 0x120a.[0000000001] USB SSC is OFF.[0000000051] -> usb_hal_connect()[0000000051[0000000051] LTSSM state = (0x5) RX DETECT.] -> ahci_init()[0000000051] -> ahci_hba_reset()[0000000065] USB Reset event occurred.[0000000065] LTSSM state = (0x7) POLLING.[0000000078] Connected at SUPER speed.[0000000191] -> usb_hal_set_address() – addr: 0x1.[0000000306] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000306] -> ahci_port_reset(0)[0000000361] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000361] -> ahci_port_reset(0)[0000000416] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000416] -> ahci_port_reset(0)[0000000471] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000471] -> ahci_port_reset(0)[0000000526] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000526] -> ahci_port_reset(0)[0000000581] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000581] -> ahci_port_reset(0)[0000000636] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000636] -> ahci_port_reset(0)[0000000691] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000691] -> ahci_port_reset(0)[0000000698] -> handle_usb_set_configuration() – val = 1.[0000000704] -> handle_usb_set_interface() – num = 0, alt = 1.[0000000704] -> ums_uas_reset()[0000000746] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000746] -> ahci_port_reset(0)[0000000801] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000801] -> ahci_port_reset(0)[0000000856] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000856] -> ahci_port_reset(0)[0000000911] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000911] -> ahci_port_reset(0)[0000000966] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000000966] -> ahci_port_reset(0)[0000001021] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001271] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001271] -> ahci_port_reset(0)[0000001326] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001326] -> ahci_port_reset(0)[0000001381] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001381] -> ahci_port_reset(0)[0000001436] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001436] -> ahci_port_reset(0)[0000001491] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001491] -> ahci_port_reset(0)[0000001546] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001546] -> ahci_port_reset(0)[0000001601] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001601] -> ahci_port_reset(0)[0000001656] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001656] -> ahci_port_reset(0)[0000001711] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001711] -> ahci_port_reset(0)[0000001766] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001766] -> ahci_port_reset(0)[0000001821] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001821] -> ahci_port_reset(0)[0000001876] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001876] -> ahci_port_reset(0)[0000001931] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000001931] -> ahci_port_reset(0)[0000001986] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000002236] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.[0000002236] @Error: Timeout waiting for PHY Ready. P0SSTS = 0x00000000, P0SERR = 0x00000000.[0000002236] -> ums_uas_init_queue_depth() – 32.[0000002236] Connected to[0000002236] -> ums_uas_send_sense_iu() – cmd_index = 0, status = 0x02, tag = 0x1f, CDB[0] = 0x00, retry = N. 0 AHCI device(s).[0000002239] -> ums_uas_send_sense_iu() – cmd_index = 11, status = 0x02, tag = 0x1f, CDB[0] = 0x00, retry = N.

,

Kailyn Chen:

抱歉回复晚了,在您提供的debug信息中,其中已经有提示connected at super speed 说明USB3.0 link成功了.

赞(0)
未经允许不得转载:TI中文支持网 » TUSB9261: 判断是否成功识别USB的详细依据是什么?
分享到: 更多 (0)