FX3 USB3 Connect initialization

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
VlKh_2251656
Level 5
Level 5
10 likes given 5 likes given First like received

Hello.

Please, tell us how the communication and initialization of the device are going on USB3.

For example: initial Hight speed features after detect connection Full speed device.

How does it device recognize that it is connected to port USB3 or to port USB2?

And how does the computer determine that the device USB3 is connected to its ports or USB2 device?

Where it can be read?

How does this happen in FX3 / CX3?

0 Likes
1 Solution

The device detection happens based on the termination resistors put by the host (down stream device).

There are different Rx terminations resistors for SuperSpeed signaling, high-speed and full-speed signalling.

Here is the abbrevation of connected in the USB 3.0 Spec (Page no. 44).

A downstream device is connected to an upstream device when it is attached to the upstream device, and when the downstream device has asserted Rx terminations for SuperSpeed signaling or has asserted the D+ or D- data line in order to enter low-speed, full-speed, or high-speed signaling.

Here is the example for USB high speed and full speed device detection. But in USB SuperSpeed case, the device connection will happen in SuperSpeed mode itself. There is no switching (Full-Speed connection first then High-Speed connection) of the connection like High Speed case.

pastedImage_5.png

View solution in original post

0 Likes
4 Replies
VlKh_2251656
Level 5
Level 5
10 likes given 5 likes given First like received

How function CyU3PUsbGetSpeed() inside?

Is it macros?

How it function detect type of connection (USB3 or USB2) ?

0 Likes

The device detection happens based on the termination resistors put by the host (down stream device).

There are different Rx terminations resistors for SuperSpeed signaling, high-speed and full-speed signalling.

Here is the abbrevation of connected in the USB 3.0 Spec (Page no. 44).

A downstream device is connected to an upstream device when it is attached to the upstream device, and when the downstream device has asserted Rx terminations for SuperSpeed signaling or has asserted the D+ or D- data line in order to enter low-speed, full-speed, or high-speed signaling.

Here is the example for USB high speed and full speed device detection. But in USB SuperSpeed case, the device connection will happen in SuperSpeed mode itself. There is no switching (Full-Speed connection first then High-Speed connection) of the connection like High Speed case.

pastedImage_5.png

0 Likes
Anonymous
Not applicable

Look in the source files for the SDK.

usb/cyu3usbpp.c and usb/cyu3usb.c contain the code that does the speed negotiation with hardware assistance. Search for "usbSpeed" and you'll find all the places where the actual speed state variable is touched. (Note that there's a glUibDeviceInfo.usbSpeed and an instance of state information at 0x40002000. You can mostly ignore the latter and focus on glUibDeviceInfo.usbSpeed and places and reasons it's being set.

Many thanks!

0 Likes