USB superspeed peripherals Forum Discussions
Good day, gentlemen and ladies. I have a problem with USB3 on CX3. I used CyU3PUsbInitEventLog and CyU3PUsbGetEventLogIndex to understand why USB 3 is being disabled and this is what I got:
0x6 CYU3P_USB_LOG_USB3_PHY_ON Indicates that the 3.0 PHY has been turned on
0x10 CYU3P_USB_LOG_USBSS_DISCONNECT Indicates that the USB 3.0 link has been disabled
0x4 CYU3P_USB_LOG_USB3_PHY_OFF Indicates that the 3.0 PHY has been turned off
0x5 CYU3P_USB_LOG_USB2_PHY_ON Indicates that the 2.0 PHY has been turned on
0x40 CYU3P_USB_LOG_USB2_SUSP Indicates that a USB 2.0 suspend condition has been detected
0x41 CYU3P_USB_LOG_USB2_RESET Indicates that a USB 2.0 bus reset has been detected
0x51 CYU3P_USB_LOG_USBSS_ENABLE Indicates that a USB 3.0 connection is being attempted again
0x42 CYU3P_USB_LOG_USB2_HSGRANT Indicates that the USB High-Speed handshake has been completed
0x10 CYU3P_USB_LOG_USBSS_DISCONNECT Indicates that the USB 3.0 link has been disabled
0x46 CYU3P_USB_LOG_USB2_SETCONF Indicates that USB configuration has been selected
0x40 CYU3P_USB_LOG_USB2_SUSP Indicates that a USB 2.0 suspend condition has been detected
0x41 CYU3P_USB_LOG_USB2_RESET Indicates that a USB 2.0 bus reset has been detected
0x51 CYU3P_USB_LOG_USBSS_ENABLE Indicates that a USB 3.0 connection is being attempted again
0x42 CYU3P_USB_LOG_USB2_HSGRANT Indicates that the USB High-Speed handshake has been completed
0x10 CYU3P_USB_LOG_USBSS_DISCONNECT Indicates that the USB 3.0 link has been disabled
0x46 CYU3P_USB_LOG_USB2_SETCONF Indicates that USB configuration has been selected
what can this be related to?
I use exactly the USB 3 Port since I have USB 3 devices and they connect to it normally
#ifdef UVC_APPLICATION
/* Standard Device Descriptor for USB 3 */
const uint8_t CyCx3USB30DeviceDscr[] =
{ 0x12, /* Descriptor size */
CY_U3P_USB_DEVICE_DESCR, /* Device descriptor type */
0x00, 0x03, /* USB 3.0 */
0xEF, /* Device class */
0x02, /* Device Sub-class */
0x01, /* Device protocol */
0x09, /* Maxpacket size for EP0 : 2^9 */
0xB4, 0x04, /* Vendor ID */
0xC3, 0x00, /* Product ID */
0x00, 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 */
0xEF, /* Device class */
0x02, /* Device sub-class */
0x01, /* Device protocol */
0x40, /* Maxpacket size for EP0 : 64 bytes */
0xB4, 0x04, /* Vendor ID */
0xC3, 0x00, /* Product ID */
0x00, 0x00, /* Device release number */
0x01, /* Manufacture string index */
0x02, /* Product string index */
0x00, /* Serial number string index */
0x01 /* Number of configurations */
};
/* Binary Device Object Store (BOS) Descriptor */
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 */
0x02, 0x00, 0x00, 0x00, /* Supported device level features - LPM support */
/* 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 */
0x0C, 0x00,//0x0E, 0x00, /* Speeds supported by the device : SS, HS and FS */
0x02, /* Functionality support */
0x0A,//0x00, /* U1 device exit latency */
0xFF,0x07//0x00, 0x00 /* U2 device exit latency */
};
Show LessI have a Cypress device (EZ-USB FX3™ SuperSpeed USB 3.0 peripheral controller) and an android device. I want to connect them.
https://www.cypress.com/part/cyusb3014-bzxc
But I don't know how. Cypress SDK is available for this product?
I downloaded the “CyUSBSerial_SDK_Android_B73C_0”
https://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit
Can I use this?
Show LessHello,
I have met a strange test result when using FX3 as UVC camera.
After I connect the usb cable to PC,
first time I open software (e.g. win: amcap/vdm, ubuntu: guvc) to watch the images,
there will always be black image(no data).
And then I close the software and reopen it,
images will be shown normally.
And after the first time, the camera always goes fine.
But if I disconnect the cable and re-plug in it, I will get black image at the first time again.
I have tried to used Directshow library in Windows to debug.
And I confirmed when the first time using the camera, callback function will never be called, which means no data is received.
Has anyone ever met problem like this?
Thank you.
Show LessHi Cypress
We need two image to prevent fail update in CYUSB3014, But the 4Mbit / I2C EEPRM is Small amount in market , Can you recommend a 4Mbit / I2C component (part number) for us , Thank !!/
Show LessHi all,
First, my goal is a streamer application (non-uvc) which capable to stream RAW data.
The HW setup - I'm using the CYUSB3KIT-003 with the Aptina sensor (According to an75779).
About the firmware:
1. I follow this post FX3 / CX3 Firmware for Streaming RAW Image Data using Cypress Driver for non-uvc firmware.
2. I import the sensor.c and sensor.h from an75779 to be able to work with the Aptina sensor.
3. I use the streamer application from the SDK (The C# project)
Now, when I send vendor command 0x99 and run the streamer I see lots of 0x71 errors (screenshot is attached).
The DMA and GPIF configuration remains the same, right?
Also, I tried to follow KBA218830 but I don't see the point of this when I'm using non-uvc FW.
How can I solve this error?
Thanks!
Show Less您好!
请问下使用CY7C65211扩展SPI或UART,id读出来是63xxx,这个还需要特殊初始化吗?
谢谢
Hi guys,
I'm trying to start with a new C++ project for my application (with VS2019) and I've encountered linking issue.
First, I used the the API from "\EZ-USB FX3 SDK\1.3\library\cpp" and simply tried to open a new device with:
USBDevice = new CCyUSBDevice((HANDLE)USBDevice, CYUSBDRV_GUID, true);
It fails due to linking issues:
Next, I tried and API from "Cypress Suite USB 3.4.7" and it compiles.
I continued with this API and face another issues... I can't see the right MaxPktSize which equals to 16384.
Is this API supports USB3?
My driver version is 1.2.3.23
What is the latest API to use?
How can I fix the linking problem?
My project is attached.
Omri.
Show LessHello,
I am blind or simply out of luck. However, I did design prototype board for CX3 and I got following issues (except power supply, but it was probably counterfeit TI part):
1. Device boots into bootloader even with programmed flash. It started after few SPI flash programming cycles, seen it before on Denebola too, but it spontaneously went away then.
2. Code loaded to RAM is not working properly (even code I checked first on Denebola). Got two symptoms:
a. DMA related error (0x51) appears sometimes
b. Streaming happens, but ends very quickly (example error messages below)
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x81, bRequest = 0x0, wValue = 0x0, wIndex = 0x0, wLength= 0x2
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
StpCB:In SET_FTR 0::1
bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
I do believe it may be related to power issues (first I replaced faulty TI part with Torex buck converters, then went for LDO). Each power ball pair have 0.1µ (0r 10n if smaller value was preferred by datasheet) as close as possible on bottom layer. I've tried paralleling caps with other ones, but without luck. I can provide full Altium project for review.
Show LessThe driver version for Windows 10 posted on the cypress website is 1.2.3.20 based on Windows 10 x64 (November 8, 2017)
Currently, my laptop has the driver version 1.2.3.23 (20.11.12.20) based on Windows 10 x64 installed.
so please let me know the latest FX3 Windows 10 x64 driver.
Regards,
Tony Kim
Show LessIn Our application case, We need to change GPIF From 16-bit to 32-bit.
on 16-bit mode, We can use spi to download FPGA firmware then switch to 32-bit mode and re-configure the GPIO and SPI(call deinit and init module api),
But the GPIO50 go low when call CyFxGPIOInit,the GPIO50 is connected to PROGRAM_B Pin, it will lead the FPGA lost firmware.
Any suggestion to let the GPIO50 Pin not change when call CyFxGPIOInit?
Show Less