USB superspeed peripherals Forum Discussions
Hello
Hi,
We will build a custom board based on an FX3 and a camera module.
The boot is done from an I2C flash and the camera is connected through GPIF like in AN75779.
The camera module consumes too much for initial bus power so we plan to control its power supply.
We have two conditions where it will be off:
- Before the USB has negotiated 500mA current
- When the USB goes in sleep/standby
In those cases, we need to make sure that there’s no back powering through the IOs connected to the module.
I see from AN46705 that all GPIOs of interest (about the same as in AN75779) are tristated during bootloading.
As far as some early tests on the eval board suggest:
- CyU3PGpifLoad is actually modifying the configuration of the GPIF pins used
- CyU3PGpifDisable seems to restore the original configuration (at least true to output used in GPIF state machine)
I have two questions:
- Is the tristate configuration (of GPIF pins) surviving the call of the following functions ?
- CyU3PGpioInit
- CyU3PPibInit
- CyU3PDeviceConfigureIOMatrix
- Is CyU3PGpifDisable restoring the tristate configuration of used GPIF pins?
Thanks in advance,
Best regards,
JC
Hello,
I'm Jay.
I designed a custom board.
I have two problems, because It doesn't connect USB 3.0 and USB cable direction.
Each description is as follows.
1. USB 3.0 connection problem
- When my custom board connect usb device, It doesn't connect to 3.0 sequence. so It automatically connects to 2.0 sequence.
2. To connect USB C type cable direction
- When I connect it to USB cable, There are moments when there is no connection. At that time, if i connect the other way around, you can connect.
so, I attached a circuit schematics.
Please check it.
Regards,
Jay
Show LessHi.
I use EZ-USB FX3 Device (CYUSB3014-BZXC).
I want to identify respectively two FX3 devices that connected to the same PC.
Both FX3 has the BootLoader loaded.
Also I want to realize it on c++.
But I don't know how.
What should I do?
Thank you.
Show Less
In my project,I need to use CyU3PUartTransmitBytes Transmit some raw data to my device by UART ,
The API say that the function can only be used on configured for register(non-DMA) transfer mode.
so I set uartConfig.isDma to CyFalse,
But it will lead to the FX3 firmware is not start-up successfully. I don't know where the FX3 firmware is going.
Can you please help me review the code?
For your reference, I also post my related code.
static void
CyFxUVCApplnDebugInit (
void)
{
CyU3PUartConfig_t uartConfig;
CyU3PReturnStatus_t apiRetStatus;
/* Initialize the UART for printing debug messages */
apiRetStatus = CyU3PUartInit ();
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "UART initialization failed!\n");
CyFxAppErrorHandler (apiRetStatus);
}
/* Set UART Configuration */
uartConfig.baudRate = CY_U3P_UART_BAUDRATE_115200;
uartConfig.stopBit = CY_U3P_UART_ONE_STOP_BIT;
uartConfig.parity = CY_U3P_UART_NO_PARITY;
uartConfig.txEnable = CyTrue;
uartConfig.rxEnable = CyFalse;
uartConfig.flowCtrl = CyFalse;
uartConfig.isDma = CyFalse;
/* Set the UART configuration */
apiRetStatus = CyU3PUartSetConfig (&uartConfig, NULL);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyFxAppErrorHandler (apiRetStatus);
}
/* Set the UART transfer */
apiRetStatus = CyU3PUartTxSetBlockXfer (0xFFFFFFFF);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyFxAppErrorHandler (apiRetStatus);
}
/* Initialize the Debug logger module. */
apiRetStatus = CyU3PDebugInit (CY_U3P_LPP_SOCKET_UART_CONS, 4);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyFxAppErrorHandler (apiRetStatus);
}
/* Disable log message headers. */
CyU3PDebugPreamble (CyFalse);
}
int
main (
void)
{
CyU3PReturnStatus_t apiRetStatus;
CyU3PIoMatrixConfig_t io_cfg;
CyU3PSysClockConfig_t clkCfg;
/* setSysClk400 clock configurations */
clkCfg.setSysClk400 = CyTrue; /* FX3 device's master clock is set to a frequency > 400 MHz */
clkCfg.cpuClkDiv = 2; /* CPU clock divider */
clkCfg.dmaClkDiv = 2; /* DMA clock divider */
clkCfg.mmioClkDiv = 2; /* MMIO clock divider */
clkCfg.useStandbyClk = CyFalse; /* device has no 32KHz clock supplied */
clkCfg.clksrc=CY_U3P_SYS_CLK; /* Clock source for a peripheral block */
/* Initialize the device */
apiRetStatus = CyU3PDeviceInit (&clkCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
goto handle_fatal_error;
}
/* Turn on instruction cache to improve firmware performance. Use Release build to improve it further */
apiRetStatus = CyU3PDeviceCacheControl (CyTrue, CyFalse, CyFalse);
/* Configure the IO matrix for the device. */
io_cfg.isDQ32Bit = CyFalse;
io_cfg.lppMode = CY_U3P_IO_MATRIX_LPP_DEFAULT;
io_cfg.gpioSimpleEn[0] = 0;
io_cfg.gpioSimpleEn[1] = (GPIOSIMPLEEN_1(NCONFIG) |
GPIOSIMPLEEN_1(PS_SWITCH)|
GPIOSIMPLEEN_1(NSTATUS)|
GPIOSIMPLEEN_1(NCE)|
GPIOSIMPLEEN_1(CFG_DONE)|
GPIOSIMPLEEN_1(SENSOR_RESET_GPIO)|
GPIOSIMPLEEN_1(SENSOR_STANDBY));
io_cfg.gpioComplexEn[0] = 0;
io_cfg.gpioComplexEn[1] = 0;
io_cfg.useUart = CyTrue; /* Uart is enabled for logging. */
io_cfg.useI2C = CyTrue; /* I2C is used for the sensor interface. */
io_cfg.useI2S = CyFalse;
io_cfg.useSpi = CyTrue;
apiRetStatus = CyU3PDeviceConfigureIOMatrix (&io_cfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
goto handle_fatal_error;
}
dwDie1 = CY_U3P_EFUSE_DIE_ID0;
dwDie2 = CY_U3P_EFUSE_DIE_ID1;
CyU3PKernelEntry ();
/* Dummy return to make the compiler happy */
return 0;
handle_fatal_error:
/* Cannot recover from this error. */
while (1);
}
Thanks,
Xiaodong.xu
Is there a way to reject ROI requests sent by the Host?
As a background, there was a phenomenon that the device was disconnected, so when I checked the USB log, an ROI request was sent.
Depending on the application, the device will not disconnect and occasionally the frame may come off, but there is no change in the frame rate at 4Mpix 15fps.
As for the power supply, the LC filter was placed on the VDD1.2V line, and there was no large voltage drop. Only USB3.0 SuperSpeed is set in the descriptor. Probably not a power issue.
The meaning of "reject" is to ignore the request to the camera side or to change the firmware so that the UVC1.5 request is not sent to the host.
Thanks,
Tetsuo
Hello
Best Regards
Arai
Show LessHi there,
I am using CYUSB3035-BZXI in USB mode. The USB detection is failing for few boards. Can you please let me know what might be the causes of USB detection failure.? PFA the pic of the USB connection details.
Show LessHi,
I am currently working with CX3 device getting frames from a CMOS Image Sensor(CIS). I have configured the MIPI information to get the data raw in RGB888 format, because I know that it is the only way for getting the maximum bandwidth. I have configured the PLL registers in order to set the PCLK in 100MHz(so CX3's data rate is 2.4Gbps).
On the other hand, I have done the same thing in the CIS, I mean, I have configured the PLLs for getting a similar bandwidth, all good for now. When I run a host application,from Laptop, which works directly with CX3 device. I have got a correct image, but if I open the debug port I can see how it appears the following issues:
- CB Failure.
- Video Timer.
So, I would like to know which is the cause or causes of both issues, and how try to fix them.
Thanks.
Show LessI apologize if this question is remedial... I'm brand-new to the EZ-USB product line. I've developed a custom PCB that contains three EZ-USB CX3 ICs, all connected through a USB Hub. Let me start by telling you what works:
- All three EZ-USB devices show up in "USB Control Center" (as "Cypress FX3 USB BootLoader Device")
- I've successfully installed and compiled a number of default firmware projects (to IMG files in Release mode), including:
- cyfxbulklpauto
- cyfxbulklpauto_cpp
- cyfxuvcinmem
- cycx3_uvc_ov5640
- I can select one of the devices in "USB Control Center" and run: "Program" - "FX3" - "RAM"
- I get the message "Programing Succeeded" and the device reboots (disconnects)
However, that's all that happens. The device never seems to come back online with the new firmware... irrespective of which demo I've tried. The only thing I can think of is that there's some compile file I need to set to specify CX3... but haven't found reference to any such flag in the documentation. Beyond that, I'm at a total loss..
Any suggestions you may have would be most appreciated!
Show Less