CYUSB3014, some boards can't link to usb3.0, down mode to usb2.0

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

cross mob
XuWa_4521076
Level 1
Level 1

I have made a PCB with CYUSB3014, when doing test, about 2/3 boards can link to usb3.0 and works very well, I can get 430MB/s use the streamer program with no error.

but about 1/3 boards can only link with usb2.0, only 40MB/s with streamer program.

I have checked the clock, power, sstx/ssrx connections on board, seems all good.

Do you have any idea, how to check this issue?

Thanks a lot.

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

Hi Yatheesh,

The pcap logs attached. you can use < usb.src == "3.6.0" or usb.dst == "3.6.0" > to filter the FX3 transaction out.

1. Use a shorter  cable and check for SS enumeration.  ===> still fail

2. Use a Dock/HUB/USB Analyzer connected in between the host and the device and check for SS enumeration.    ===> yse, SS enumeration is ok when I use a dock.  this works for me !!!

3. If you are able to get the logs, please try to check the return value from CyU3PConnectState() and if the CY_U3P_USB_EVENT_USB3_LNKFAIL event is generated when the USB 2.0 is disabled (CyU3PUsbControlUsb2Support(CyFalse)).     ===> I will check this later

4. Try to increase the TX swing in the firmware using the CyU3PUsbSetTxSwing() API before the CyU3PConnectState()  ===> I have try 100/110/120, all fail.

Thanks a lot.

View solution in original post

0 Likes
6 Replies
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

Please double check the firmware (CyU3PConnectState(CyTrue, CyTrue)), cable used (maximum 3 meters), and the port of the PC to which the device is connected to. Please use the same setup for all the boards.

If you are using the same setup and issue is seen only in certain boards, please share your board schematics for review.

Also please let me know if there is USB-Serial device connected to the FX3 UART pins ?

Thanks,

Yatheesh

0 Likes

Hi Yatheesh,

Thanks for your reply.

I'm using the USBBulkSourceSink.img in AN86947 to test my board. and yes, all test condition are same, same port, same cable(1.2m), same firmware.

I'm using type-c connector, as below. the SEL pin is controlled by a type-c controller, and i have tested the SEL pin, it's working properly.

type-c.jpg

unfortunately, i left the uart pins unconnected, but you can tell me what information should i take care of, i think i can output these information to the GPIF port.

Thanks a lot!

0 Likes

Hello,

I understand that the SS coupling caps on the TX lines are placed between the MUX and the FX3 device. This will deteriorate the signal quality. 

Please place the same between the Type C connector and MUX, close to the Type-C connector and check for enumeration.

Let me know if this is difficult, I will try to suggest a different method to the test if there is signal quality issues.

Also, please share the USB traces. If you do not have an hardware analyzer, you can use the Wireshark pcap software capture method. 

Thanks,

Yatheesh

0 Likes

Hi Yatheesh,

Yes, the SS coupling caps are placed between the MUX and FX3 device. Please check the USB traces below.

usb_ss_trace.jpg

You see, it seems impossible to add those caps on current board. I need another way to confirm if there is signal quality issues.

I'm using bus hound to capture USB packets.

for pass case(success connected in usb3 mode):

cap_pass_3.0.png

for fail case(only link usb2 mode): in this case, when I load img to ram, it takes a while(about 2 or 3 sec) to discover the device

cap_fail_2.0.png

Thanks a lot for your help!

0 Likes

Hello,

Can you please share the Wireshark pcap logs?

Please try the below mentioned using USBBulkSourceSink firmware present in FX3 SDK and LPM disabled (using the CyU3PUsbLPMDisable() ) on the bad boards:

1. Use a shorter  cable and check for SS enumeration.

2. Use a Dock/HUB/USB Analyzer connected in between the host and the device and check for SS enumeration.

3. If you are able to get the logs, please try to check the return value from CyU3PConnectState() and if the CY_U3P_USB_EVENT_USB3_LNKFAIL event is generated when the USB 2.0 is disabled (CyU3PUsbControlUsb2Support(CyFalse)).

4. Try to increase the TX swing in the firmware using the CyU3PUsbSetTxSwing() API before the CyU3PConnectState(). Refer to the API guide and this KBA: API to Increase TX Swing of SSTX line of FX3 – KBA223341

Thanks,

Yatheesh

0 Likes
lock attach
Attachments are accessible only for community members.

Hi Yatheesh,

The pcap logs attached. you can use < usb.src == "3.6.0" or usb.dst == "3.6.0" > to filter the FX3 transaction out.

1. Use a shorter  cable and check for SS enumeration.  ===> still fail

2. Use a Dock/HUB/USB Analyzer connected in between the host and the device and check for SS enumeration.    ===> yse, SS enumeration is ok when I use a dock.  this works for me !!!

3. If you are able to get the logs, please try to check the return value from CyU3PConnectState() and if the CY_U3P_USB_EVENT_USB3_LNKFAIL event is generated when the USB 2.0 is disabled (CyU3PUsbControlUsb2Support(CyFalse)).     ===> I will check this later

4. Try to increase the TX swing in the firmware using the CyU3PUsbSetTxSwing() API before the CyU3PConnectState()  ===> I have try 100/110/120, all fail.

Thanks a lot.

0 Likes