- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
We are using CYUSB3065-BZXC in our design.
Our hardware team has replaced the Micro-B SuperSpeed plug with a USB-C connector. In an earlier device (with Micro-B SuperSpeed plug ) device was correctly enumerated as a CX3-UVC device in the camera section but in the new design ( with a USB-C connector) same firmware is not enumerated as a CX3-UVC device. We were under impression that firmware does not need to be modified as bit support super-speed data transfer. I am attaching the SCH of the USB connector section in both hardware of the USB section.
I am also attaching a zip that contains the cycx3_uvcdscr.c file for reference.
Please help me with the below question.
1. Does CyCx3USBSSConfigDscr needs to be updated as per connector?
2. If point#1 is correct, Please share reference document/firmware which I can use for development when connect is ESB-C.
3. If No, what could be the reason same firmware does not work when connect is USB-C?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Please find my comments to your questions in order below:
1. No, descriptors need not be modified for different connectors.
3. I find that you have shorted the SSUSB lines from the type-C connector. This is not recommended. We recommend to use a mux to select the superspeed lines. Please refer to the following KBA which describes the recommended design approach for type c based products:
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Please find my comments to your questions in order below:
1. No, descriptors need not be modified for different connectors.
3. I find that you have shorted the SSUSB lines from the type-C connector. This is not recommended. We recommend to use a mux to select the superspeed lines. Please refer to the following KBA which describes the recommended design approach for type c based products:
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you @JayakrishnaT_76 for your prompt reply.
We are able to flash the firmware using the control center in the latest hardware( with a USB-C connector). I am a bit confused as to why the device is able to be detected as Cypress FX3 Bootloader Device but not as a UVC device?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
It is ok to short the USB 2.0 lines from a Type C connector. But, doing so on USB 3.0 lines will create signal integrity issues.
The ROM bootloader enumerates in USB 2.0 and not in USB 3.0 mode. This is the reason why you are able to detect the device as Cypress FX3 Bootloader Device.
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It does make sense. Thank you. I will communicate this with our hardware team.
In addition to that, As I recall if the device is unable to enumerate as USB3.0 it will be detected as 2.0. As the USB bootloader works fine device should have been detected as 2.0(CX3-UVC). Is that correct?
I have tried with CyU3PConnectState(CyTrue, CyTrue); and CyU3PConnectState(CyTrue, CyFalse);. But the device does not enumerate as 2.0. Can you please review CyCx3USBHSConfigDscr of the attached file? It will help us validate the camera connection in meantime.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
EDITTED
Hello,
Please check if you have added any resolution that can be supported in USB 2.0 mode. I was not able to see it in the descriptors. Without a resolution, enumerating the device in USB 2.0 is meaningless.
You can change the "Total size of class specific VS descr" field of CyCx3USBHSConfigDscr to 0x0E, 0x00 and build the project. Please check if you are able to enumerate the device after making this modification. Also, you can change the 4th field of "Class-specific Video Streaming Input Header Descriptor" from 0x01 to 0x00. This is because there are no format descriptors available.
Note: By making the above modifications, you still wont be able to make the device functional as there are no supported resolutions. If you just want to test the enumeration, then you can check using any of the SDK example projects for CX3 by changing the second parameter of the API CyU3PConnectState () to CyFalse.
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I will check out the SDK example as with the above changes I am still unable to enumerate the device. I will create a different thread for that.
Thank you @JayakrishnaT_76 for the support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have communicated the solution to our hardware team. Can you please suggest if there is any way with some modification in the current PCB we can enumerate the device as USB3.0?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
We strongly recommend that you follow the KBA mentioned before for designing type C based product.
You can try removing the short between the TX and RX lines in the USB type C connector. After this, you can connect one TX and corresponding RX lines to those of FX3. Please check if the device enumerates in one orientation of the type C cable after making this modification.
Jayakrishna