CX3 Endpoint-3 (EP3) will not burst over USB

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

cross mob
JoMa_292246
Level 2
Level 2
10 replies posted 5 replies posted First question asked

Hello,

We developed a custom camera and created a CX3 project using the Eclipse project wizard. This is a custom raw data bulk streaming project and is not a UVC project. Watching the USB transactions with a USB protocol analyzer, we never see EP3 bursting. All the transactions deliver a data payload of 1024 bytes only.

Below are snippets of the CX3's channel create function, and the USB descriptor for bursting (I have replaced the manifest constants with the actual values):

dmaCfg.size = 0x8000;

dmaCfg.count = 3;

status = CyU3PDmaMultiChannelCreate (&glChHandleUVCStream, CY_U3P_DMA_TYPE_MANUAL_MANY_TO_ONE , &dmaCfg);

// Super Speed Endpoint Companion Descriptor

0x06,                                                       // Descriptor size

CY_U3P_SS_EP_COMPN_DESCR,     // SS Endpoint Companion Descriptor Type

0x0F,                                               // Max number of packets per burst: 16

0x00,                                                       // Attribute: Streams not defined

0x00,                                                       // No meaning for bulk

0x00

As a reference, we have a FX3 product that we tested on the exact same USB port. With our FX3 product we see bursts of 16KB for the data payload. The FX3 DMA configuration is the same as the CX3 except that the FX3 is a one-to-one socket DMA channel, and it's also setup as CY_U3P_DMA_TYPE_AUTO.

Questions:

  1. What would prevent the CX3 transactions from bursting over USB?

Thank you.

0 Likes
1 Solution

Hello,

The endpoint burst was working from the beginning, but there was an issue in the host application which was decoding the incoming transactions as packets of 1024 (or Packet View) in the analyzer software.

Since there is no need for UVC header addition, the channel can be changed to AUTO channel from MANUAL channel to gain better throughput and inturn remove CPU intervention -> NON-UVC device.


Regards,
Yashwant

View solution in original post

0 Likes
4 Replies
YashwantK_46
Moderator
Moderator
Moderator
100 solutions authored 50 solutions authored 50 likes received

Hello,

"This is a custom raw data bulk streaming project and is not a UVC project."

=> Can you please let know which driver the device is binding to? Is it a vendor driver or a Cypress driver or binds to the UVC driver while you use a custom host application to decode the RAW video?

"Watching the USB transactions with a USB protocol analyzer, we never see EP3 bursting."

=> Can you please let me know if you are using a hardware protocol analyzer or a software analyzer (like Wireshark)?

Along with the descriptor and channel create, can you please share the endpoint config (the structure that goes for the CyU3PSetEpConfig() API) as well?

Also, can you confirm if the device is enumerating properly as a SuperSpeed device when programmed with the firmware?

Regards,

Yashwant

0 Likes

Thanks for getting back me. I'm sorry for pasting the descriptors into the body of the message. I would have just attached the USB descriptor file, but I couldn't figure out how to add a file to this message.

Best,

Motz

=> Can you please let know which driver the device is binding to? Is it a vendor driver or a Cypress driver or binds to the UVC driver while you use a custom host application to decode the RAW video?

We use our own vendor driver. But it’s roots are the EZ-USB WDM driver, but it has been evolved over the years (bug fixes, USB compliancy, etc…). The current driver is Windows 10 compatible and built with the latest Microsoft WDK. It’s a very simple IO control driver that makes only bulk requests to the Windows 10 USB stack. The USB request our windows 10 application is making, is for EP3 of the CX3 to fill a 2MB buffer (using Direct I/O). As I mentioned above, we do this with the FX3 and have always been successful doing 16KB bursts over USB with this driver.

=> Can you please let me know if you are using a hardware protocol analyzer or a software analyzer (like Wireshark)?

I’m using a Total Phase Beagle USB 5000 v2 Ultimate hardware protocol analyzer.

=> Can you confirm if the device is enumerating properly as a SuperSpeed device when programmed with the firmware?

Yes, were running at Super-Speed. Our hardware protocol analyzer shows we are connected at SS, and the software application USB device Tree Viewer states that we are connected at SS.

=> Along with the descriptor and channel create, can you please share the endpoint config (the structure that goes for the CyU3PSetEpConfig() API) as well?

(I have removed the manifest constant and substituted the actual values used [unless it's part of the standard Cypress library])

// Channel Create:

  1. dmaCfg.size = 0x8000;
  2. dmaCfg.count = 3;
  3. dmaCfg.validSckCount = 2;
  4. dmaCfg.prodSckId[0] = CY_U3P_PIB_SOCKET_0;
  5. dmaCfg.prodSckId[1] = CY_U3P_PIB_SOCKET_1;
  6. dmaCfg.consSckId[0] = CY_U3P_UIB_SOCKET_CONS_3;
  7. dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;
  8. dmaCfg.notification = CY_U3P_DMA_CB_PROD_EVENT | CY_U3P_DMA_CB_CONS_EVENT;
  9. dmaCfg.cb = CyCx3UvcAppDmaCallback;
  10. dmaCfg.prodHeader = 0x0000;
  11. dmaCfg.prodFooter = 0x0000;
  12. dmaCfg.consHeader = 0;
  13. dmaCfg.prodAvailCount = 0;

status = CyU3PDmaMultiChannelCreate (&glChHandleUVCStream, CY_U3P_DMA_TYPE_MANUAL_MANY_TO_ONE , &dmaCfg);

// Endpoint Config:

  1. endPointConfig.enable = CyTrue;
  2. endPointConfig.epType = CY_U3P_USB_EP_BULK;
  3. endPointConfig.isoPkts = 0;
  4. endPointConfig.streams = 0;
  5. endPointConfig.pcktSize = 0x400;
  6. endPointConfig.burstLen = 0x10;

status = CyU3PSetEpConfig(0x83, &endPointConfig);

// USB Descriptors:

/* This file contains the USB enumeration descriptors for the CX3 Video Streaming application example.

* The descriptor arrays must be 32 byte aligned if the D-cache is turned on. If the linker

* used is not capable of supporting the aligned feature for this, then dynamically allocated

* buffer must be used, and the descriptor must be loaded into it. */

#include "cycx3_uvc.h"

#include "cyu3mipicsi.h"

const uint8_t CyCx3USB30DeviceDscr[] =

{

                0x12,                                                                                                                    // Descriptor size

                CY_U3P_USB_DEVICE_DESCR,                                    // Device descriptor type

                0x00, 0x03,                                                                                                        // USB 3.0

                0x00,                                                                                                                    // Device class

                0x00,                                                                                                                    // Device Sub-class

                0x00,                                                                                                                    // Device protocol

                0x09,                                                                                                                    // Maxpacket size for EP0 : 2^9

                0x99,0x10,                                                                                                          // Vendor ID.

                0x23,0x2D,                                                                                                          // Product ID.

                0x06,0x00,                                                                                                          // Device release number.

                0x01,                                                                                                                    // Manufacture string index

                0x02,                                                                                                                    // Product string index

                0x00,                                                                                                                    // Serial number string index

                0x01                                                                                                                      // Number of configurations

};

// Standard Device Descriptor for USB 2

const uint8_t CyCx3USB20DeviceDscr[] =

{

                0x12,                                                                                                                    // Descriptor size

                CY_U3P_USB_DEVICE_DESCR,                                    // Device descriptor type

                0x10, 0x02,                                                                                                        // USB 2.1 */

                0x00,                                                                                                                    // Device class

                0x00,                                                                                                                    // Device Sub-class

                0x00,                                                                                                                    // Device protocol */

                0x40,                                                                                                                    // Maxpacket size for EP0 : 64 bytes

                0x99,0x10,                                                                                                          // Vendor ID.

                0x23,0x2D,                                                                                                          // Product ID.

                0x03,0x00,                                                                                                          // Device release number.

                0x01,                                                                                                                    // Manufacture string index

                0x02,                                                                                                                    // Product string index

                0x00,                                                                                                                    // Serial number string index

                0x01                                                                                                                      // Number of configurations

};

const uint8_t CyCx3USBBOSDscr[] =

{

                0x05,                                                                                                                    // Descriptor size

                CY_U3P_BOS_DESCR,                                                                    // Device descriptor type

                0x16, 0x00,                                                                                                        // Length of this descriptor and all sub descriptors

                0x02,                                                                                                                    // Number of device capability descriptors

                // USB 2.0 Extension

                0x07,                                                                                                                    // Descriptor size

                CY_U3P_DEVICE_CAPB_DESCR,                                // Device capability type descriptor

                CY_U3P_USB2_EXTN_CAPB_TYPE,                                          // USB 2.1 extension capability type

                0x1E,0x64,0x00,0x00,                                                    // Supported device level features: LPM support, BESL supported, Baseline BESL=400 us, Deep BESL=1000 us.

                // SuperSpeed Device Capability

                0x0A,                                                                                                                    // Descriptor size

                CY_U3P_DEVICE_CAPB_DESCR,                                // Device capability type descriptor

                CY_U3P_SS_USB_CAPB_TYPE,                                    // SuperSpeed device capability type

                0x00,                                                                                                                    // Supported device level features

                0x0E, 0x00,                                                                                                          // Speeds supported by the device : SS, HS and FS

                0x03,                                                                                                                    // Functionality support.

                0x00,                                                                                                                    // U1 device exit latency

                0x00, 0x00                                                                                                          // U2 device exit latency

};

// Standard Device Qualifier Descriptor

const uint8_t CyCx3USBDeviceQualDscr[] =

{

                0x0A,                                                                                                                    // descriptor size

                CY_U3P_USB_DEVQUAL_DESCR,                                              // Device qualifier descriptor type

                0x00, 0x02,                                                                                                        // USB 2.0

                0x00,                                                                                                                    // Device class

                0x00,                                                                                                                    // Device sub-class

                0x00,                                                                                                                    // Device protocol

                0x40,                                                                                                                    // Maxpacket size for EP0 : 64 bytes

                0x01,                                                                                                                    // Number of configurations

                0x00                                                                                                                      // Reserved

};

// Standard Super Speed Configuration Descriptor

const uint8_t CyCx3USBSSConfigDscr[] =

{

                // Configuration Descriptor

                0x09,                                                                                                                    // Descriptor Size

                CY_U3P_USB_CONFIG_DESCR,                                  // Configuration Descriptor Type

                0x39, 0x00,                                                                                                        // Length of this descriptor and all sub descriptors

                0x01,                                                                                                                    // Number of interfaces

                0x01,                                                                                                                                    // Configuration number

                0x00,                                                                                                                    // Configuration string index

                0x80,                                                                                                                    // Config characteristics - Self Powered

                0x32,                                                                                                                    // Max power consumption of device (in 8mA unit) : 96mA

                // Interface descriptor

                0x09,                                                                                                                    // Descriptor size

                CY_U3P_USB_INTRFC_DESCR,                                    // Interface Descriptor type

                0x00,                                                                                                                    // Interface number

                0x00,                                                                                                                    // Alternate setting number

                0x03,                                                                                                                    // Number of endpoints

                0xFF,                                                                                                                    // Interface class, 0xFF = vendor-specific

                0x00,                                                                                                                    // Interface sub class

                0x00,                                                                                                                    // Interface protocol code

                0x00,                                                                                                                    // Interface descriptor string index

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//            SOC USB EP1 Stuff

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    // Endpoint descriptor for producer EP

    0x07,                          // Descriptor size

CY_U3P_USB_ENDPNT_DESCR,        // Endpoint descriptor type

    0x01,                                                                // Endpoint address and description

    CY_U3P_USB_EP_BULK,            // Bulk endpoint type

    0x00,0x04,                      // Max packet size = 1024 bytes

    0x00,                          // Servicing interval for data transfers : 0 for bulk

    // Super speed endpoint companion descriptor for producer EP

    0x06,                          // Descriptor size

CY_U3P_SS_EP_COMPN_DESCR,      // SS endpoint companion descriptor type

    0,                                                                                                                        // Max no. of packets in a burst: i.e. 0=burst 1 packet at a time. Non-streaming. Motz Debug!!!

    0x00,                          // Max streams for bulk EP = 0 (No streams)

    0x00,0x00,                      // Service interval for the EP : 0 for bulk

    // Endpoint descriptor for consumer EP

    0x07,                          // Descriptor size

CY_U3P_USB_ENDPNT_DESCR,        // Endpoint descriptor type

    0x81,                                                                                // Endpoint address and description

    CY_U3P_USB_EP_BULK,            // Bulk endpoint type

    0x00,0x04,                      // Max packet size = 1024 bytes

    0x00,                          // Servicing interval for data transfers : 0 for Bulk

    // Super speed endpoint companion descriptor for consumer EP

    0x06,                          // Descriptor size

CY_U3P_SS_EP_COMPN_DESCR,      // SS endpoint companion descriptor type

    0,                                                                                                                        // Max no. of packets in a burst: i.e. 0=burst 1 packet at a time. Non-streaming. Motz Debug!!!

    0x00,                          // Max streams for bulk EP = 0 (No streams)

    0x00,0x00,                      // Service interval for the EP : 0 for bulk

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                // Endpoint Descriptor for BULK Streaming Video Data

                0x07,                                                                                                                    // Descriptor size

                CY_U3P_USB_ENDPNT_DESCR,                                // Endpoint Descriptor Type

                0x83,                                                                                                                    // Endpoint address and description: EP 3 IN

                CY_U3P_USB_EP_BULK,                                                                // BULK End point

                0x00,0x04,                                                                                                          // Max packet size = 1024 bytes

    0x00,                                                                                                                // Servicing interval for data transfers

                // Super Speed Endpoint Companion Descriptor

                0x06,                                                                                                                    // Descriptor size

                CY_U3P_SS_EP_COMPN_DESCR,                                              // SS Endpoint Companion Descriptor Type

                0x0F,                                                                                                                    // Max number of packets per burst: 16

                0x00,                                                                                                                    // Attribute: Streams not defined

                0x00,                                                                                                                    // No meaning for bulk

                0x00

};

// Standard High Speed Configuration Descriptor

const uint8_t CyCx3USBHSConfigDscr[] =

{

                // Configuration descriptor

                0x09,                                                                                                                    // Descriptor size

                CY_U3P_USB_CONFIG_DESCR,                                  // Configuration descriptor type

                0x27,0x00,                                                                                                          // Length of this descriptor and all sub descriptors

                0x01,                                                                                                                    // Number of interfaces

                0x01,                                                                                                                    // Configuration number

                0x00,                                                                                                                    // COnfiguration string index

                0x80,                                                                                                                    // Config characteristics - bus powered

                0x32,                                                                                                                    // Max power consumption of device (in 2mA unit) : 100mA

                // Interface descriptor

                0x09,                                                                                                                    // Descriptor size

                CY_U3P_USB_INTRFC_DESCR,                                    // Interface Descriptor type

                0x00,                                                                                                                    // Interface number

                0x00,                                                                                                                    // Alternate setting number

                0x03,                                                                                                                    // Number of endpoints

                0xFF,                                                                                                                    // Interface class

                0x00,                                                                                                                    // Interface sub class

                0x00,                                                                                                                    // Interface protocol code

                0x00,                                                                                                                    // Interface descriptor string index

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//            SOC USB EP1 Stuff

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    // Endpoint descriptor for producer EP1

    0x07,                          // Descriptor size

CY_U3P_USB_ENDPNT_DESCR,        // Endpoint descriptor type

    0x01,                                                                        // Endpoint address and description

CY_U3P_USB_EP_BULK,            // Bulk endpoint type

    0x00,0x02,                      // Max packet size = 512 bytes

    0x00,                          // Servicing interval for data transfers : 0 for bulk

    // Endpoint descriptor for consumer EP1

    0x07,                          // Descriptor size

CY_U3P_USB_ENDPNT_DESCR,        // Endpoint descriptor type

    0x81,                                                                                // Endpoint address and description

CY_U3P_USB_EP_BULK,            // Bulk endpoint type

    0x00,0x02,                      // Max packet size = 512 bytes

    0x00,                          // Servicing interval for data transfers : 0 for bulk

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                // Endpoint descriptor for Bulk streaming video data

                0x07,                                                                                                                    // Descriptor size

                CY_U3P_USB_ENDPNT_DESCR,                                // Endpoint Descriptor Type

                0x83,                                                                    // Endpoint address and description: EP 3 IN

                CY_U3P_USB_EP_BULK,                                                                // BULK End point

                0x00,                                                                                                                    // Packet Size: 512 bytes

                0x02,

                0x00                                                                                                                      // Servicing interval for data transfers

};

// Standard Full Speed Configuration Descriptor

const uint8_t CyCx3USBFSConfigDscr[] =

{

                // Configuration descriptor

                0x09,                                                                                                                    // Descriptor size

                CY_U3P_USB_CONFIG_DESCR,                                  // Configuration descriptor type

                0x27,0x00,                                                                                                          // Length of this descriptor and all sub descriptors

                0x01,                                                                                                                    // Number of interfaces

                0x01,                                                                                                                    // Configuration number

                0x00,                                                                                                                    // COnfiguration string index

                0x80,                                                                                                                    // Config characteristics - bus powered

                0x32,                                                                                                                    // Max power consumption of device (in 2mA unit) : 100mA

                // Interface descriptor

                0x09,                                                                                                                    // Descriptor size

                CY_U3P_USB_INTRFC_DESCR,                                    // Interface descriptor type

                0x00,                                                                                                                    // Interface number

                0x00,                                                                                                                    // Alternate setting number

                0x03,                                                                                                                    // Number of endpoints

                0xFF,                                                                                                                    // Interface class

                0x00,                                                                                                                    // Interface sub class

                0x00,                                                                                                                    // Interface protocol code

                0x00,                                                                                                                    // Interface descriptor string index

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//            SOC USB EP1 Stuff

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                // Endpoint descriptor for producer EP

                0x07,                          // Descriptor size

                CY_U3P_USB_ENDPNT_DESCR,        // Endpoint descriptor type

                0x01,                                                                    // Endpoint address and description

                CY_U3P_USB_EP_BULK,            // Bulk endpoint type

                0x40,0x00,                      // Max packet size = 64 bytes

                0x00,                          // Servicing interval for data transfers : 0 for bulk

                // Endpoint descriptor for consumer EP

                0x07,                          // Descriptor size

                CY_U3P_USB_ENDPNT_DESCR,        // Endpoint descriptor type

                0x81,                                                                                    // Endpoint address and description

                CY_U3P_USB_EP_BULK,            // Bulk endpoint type

                0x40,0x00,                      // Max packet size = 64 bytes

                0x00,                          // Servicing interval for data transfers : 0 for bulk

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                // Endpoint descriptor for producer EP

                0x07,                                                                                                                    // Descriptor size

                CY_U3P_USB_ENDPNT_DESCR,                                // Endpoint descriptor type

                0x83,                                                                                                                    // Endpoint address and description

                CY_U3P_USB_EP_BULK,                                                                // Bulk endpoint type

                0x40,0x00,                                                                                                          // Max packet size = 64 bytes

                0x00,                                                                                                                    // Servicing interval for data transfers : 0 for bulk

};

// Standard product string descriptor

const uint8_t CyCx3USBProductDscr[] =

{

                0x16,                                                                                                                    // Descriptor Size

                CY_U3P_USB_STRING_DESCR,                                  // Device descriptor type

                'C', 0x00,                                                                                                              // Product Descriptor String

                'X', 0x00,

                '3', 0x00,

                '-', 0x00,

                'V', 0x00,

                'E', 0x00,

                'N', 0x00,

                'D', 0x00,

                'O', 0x00,

                'R', 0x00

};

// Standard language ID string descriptor

const uint8_t CyCx3USBStringLangIDDscr[] =

{

                0x04,                                                                                                                    // Descriptor size

                CY_U3P_USB_STRING_DESCR,                                  // Device descriptor type

                0x09,0x04                                                                                                            // Language ID supported

};

// Standard manufacturer string descriptor

const uint8_t CyCx3USBManufactureDscr[] =

{

                0x10,                                                                                                                    // Descriptor size

                CY_U3P_USB_STRING_DESCR,                                  // Device descriptor type

                'C',0x00,                                                                                                              // Manufacturer String

                'y',0x00,

                'p',0x00,

                'r',0x00,

                'e',0x00,

                's',0x00,

                's',0x00

};

// Standard product string descriptor

const uint8_t CyCx3USBConfigSSDscr[] =

{

                0x10,                                                                                                                    // Descriptor Size

                CY_U3P_USB_STRING_DESCR,                                  // Device descriptor type

                'U', 0x00,                                                                                                              // Super-Speed Configuration Descriptor

                'S', 0x00,

                'B', 0x00,

                '-', 0x00,

                '3', 0x00,

                '.', 0x00,

                '0', 0x00

};

// Standard product string descriptor

const uint8_t CyCx3USBConfigHSDscr[] =

{

                0x10,                                                                                                                    // Descriptor Size

                CY_U3P_USB_STRING_DESCR,                                  // Device descriptor type

                'U', 0x00,                                                                                                              // High-Speed Configuration Descriptor

                'S', 0x00,

                'B', 0x00,

                '-', 0x00,

                '2', 0x00,

                '.', 0x00,

                '1', 0x00

};

// Standard product string descriptor

const uint8_t CyCx3USBConfigFSDscr[] =

{

                0x10,                                                                                                                    // Descriptor Size

                CY_U3P_USB_STRING_DESCR,                                  // Device descriptor type

                'U', 0x00,                                                                                                              // Full-Speed Configuration Descriptor

                'S', 0x00,

                'B', 0x00,

                '-', 0x00,

                '1', 0x00,

                '.', 0x00,

                '1', 0x00

};

0 Likes

Hello Motz,


" I would have just attached the USB descriptor file, but I couldn't figure out how to add a file to this message."

=> Please click on the Use advanced editor option in the top right of the interaction window, and then click on Attach (placed in the bottom right corner) to attach the files in future.


Can you please try using Cypress Driver in your application and try streaming from your device and see if you still face the issue?

Also, can you share Wireshark traces for both the cases, using your custom driver and using Cypress driver?

Regards,
Yashwant

0 Likes

Hello,

The endpoint burst was working from the beginning, but there was an issue in the host application which was decoding the incoming transactions as packets of 1024 (or Packet View) in the analyzer software.

Since there is no need for UVC header addition, the channel can be changed to AUTO channel from MANUAL channel to gain better throughput and inturn remove CPU intervention -> NON-UVC device.


Regards,
Yashwant

0 Likes