USB superspeed peripherals Forum Discussions
Hi,
StreamOUT transmits the data from the PC to FX3 and then to the FPGA.
Commands from PC to FX3 and to FGPA through I2C communication:- this condition is working fine while receiving and sending commands, after this GPIF II must be stream IN condition and I2C interface must work for sending the received commands to ZYNQ.
The FX3 must wait for the packets sent from GUI which inturn FX3 must route to ZYNQ via GPIF II Stream In interface.
Can we change the direction from Stream Out to Stream In, if it is possible (i.e both streamin and streamout in single code)?
Regards,
Dhanuja
Show LessHi I have an EEPROM image which gets loaded on the FX3 through the F1F PMODE[2:0] option which is "I2C, On failure, USB boot enabled"
My question is how do I cause the I2C EEPROM to fail to boot? if I write 0x00 across the entire EEPROM that will work, but is there a smaller set of data I can write to? like the first 64 bytes or something?
Thank you
Show LessHi,
I want to transfer some bytes of data from U-Port to P-port of FX3.
My Appication is U-Port -------> P-Port -------> FPGA.
Q1: How to give the input data to U-Port ?
Q2: After transferring from U-Port to P-port how can i read data on ILA Probes?
Regards,
Srujana.
Show Less- device : CYUSB3064.
- IO voltag 3.3V
- PMODE[2:0]:0F1
- CX3 internal Pull-up 50KΩ. Internal Pull-down 10KΩ.
- Cypress reommends:
- Electrical Charateristic
VIH : 1.4V , VIL : 0.45V
- Figure1.
- Figure2.
- Question
1. In Figure1, PMODE0 drops to 1.2V.
1.2V is lower than VIH(1.4V).
Is this OK?
2. In Figure2, PMODE0 drops to 1.7V.
This is higher than VIH.
For stable status, should I use 1Kohm Pull-up(PMODE0)/ 0ohm Pull-down(PMODE2) ?
jaehyuk choi 님이 메시지를 편집했습니다.
Show LessHI,
I am getting the following error message When I try to program the new board during Cypress FX3 bring up process:
""
Current device is not the FX3 Flash programmer
info: Trying to download flash programmer to RAM
Error: Failed to find cyfxflashprog.img file
Error: FX3 Flash Programmer not found
Error: FX3 firmware programming failed
""
Thanks and best regards,
Show LessHi,
I want to check whether the consumer event is generated or not while transferring data from P-Port of FX3 to S0-Port of FX3.Can anyone help me to do this?
Regards,
Srujana.
Show LessHello,
On my FX3 project I created an EP discussing with a FPGA through UART link.
UART is configured on both sides to work with Byte mode DMA (dmaConfig.dmaMode = CY_U3P_DMA_MODE_BYTE)
All this works like a charm, except that I live with a limitation that I would like to fix : at reception (FPGA->FX3), DMA requires a minimal of 16 bytes to operate, which seems to be a limitation of FX3 (UART?) DMA engine.
This means if my FPGA sends less than 16 bytes of data they will not be forwarded to my USB endpoint.
I would like to keep it as simple as possible to avoid having FX3 firmware sniffing at UART events and processing packets. Is there a simple solution for that ?
Hereunder is my UART configuration :
CyU3PReturnStatus_t ConfigureUartDma(void) {
CyU3PReturnStatus_t Status = CY_U3P_SUCCESS;
CyU3PDmaChannelConfig_t dmaConfig;
// Create a AUTO channel for the USB to UART transfer
CyU3PMemSet((uint8_t *)&dmaConfig, 0, sizeof(dmaConfig));
dmaConfig.size = 128; // Maximal number of bytes allowed per DMA buffer.
// A larger message would stuck the EP
dmaConfig.count = 32; // Store up to 32 words in DMA buffers
dmaConfig.prodSckId = FPGA_CONFIG_ENDPOINT_SOCKET;
dmaConfig.consSckId = UART_CONSUMER_SOCKET;
dmaConfig.dmaMode = CY_U3P_DMA_MODE_BYTE;
Status = CyU3PDmaChannelCreate(&Usb2Uart_Handle, CY_U3P_DMA_TYPE_AUTO, &dmaConfig);
// Start the DMA Channel with transfer size to Infinite
Status = CyU3PDmaChannelSetXfer(&Usb2Uart_Handle, 0);
// Create a AUTO channel for the UART to USB transfer
CyU3PMemSet((uint8_t *)&dmaConfig, 0, sizeof(dmaConfig));
dmaConfig.size = 16; // Minimal value allowed by DMA.
// Any UART message longer than this will be split in 16 bytes "packets"
dmaConfig.count = 32; // Up to 32 words can be stored in DMA buffers
dmaConfig.prodSckId = UART_PRODUCER_SOCKET;
dmaConfig.consSckId = FPGA_STATUS_ENDPOINT_SOCKET;
dmaConfig.dmaMode = CY_U3P_DMA_MODE_BYTE;
Status = CyU3PDmaChannelCreate(&Uart2Usb_Handle, CY_U3P_DMA_TYPE_AUTO_SIGNAL, &dmaConfig);
// Start the DMA Channel with transfer size to Infinite
Status = CyU3PDmaChannelSetXfer(&Uart2Usb_Handle, 0);
return Status;
}
Thanks in advance
Show LessHi,
We have used 19.2MHz oscillator for CLKIN and REFCLK pins of CX3 used in our product and we have not used watchdog timer in our design.
During RE testing of the product with camera streaming at 220fps, the device fails at 720MHz, please refer below graph.
But when the camera is streaming at 30fps, the device does not fail, please refer below graph
Can someone please let me know the reason for this and its correlation with respect to frame rate
Thanks,
Menaka
Show LessMy application uses a vendor request to periodically set parameters. I noticed that requests are processed very slowly, on the order of 30 ms. On another processor (CY7C68013A), these same requests are processed 3 ms. How to change request processing speed.
Show LessPrelude:
Based on USB3.1 spec. ("State Diagram of the Link Training and Status State Machine") a link training is done before link power mode return to U0 from U1/U2. The SDK function CyU3PUsbSetLinkPowerState only allows the return to U0 mode, with the exception of the host requesting the switch to U1/U2 also U1/U2. If the device wants to change, this does not seem possible.
Another way is "Error, Directed", which can be observed via the event CY_U3P_USB_EVENT_LNK_RECOVERY.
Problem:
In our case, if the USB3.1 cable is "bad" with about 40 phy errors / second regular link errors and CY_U3P_USB_EVENT_LNK_RECOVERY messages. After an indefinite time of 2-10h no link errors can be observed (according to CyU3PUsbGetErrorCounts), but still around 20 phy errors / second. Therefore CYU3P_USBEP_SS_RESET_EVT occur frequently, so that the data transfer has to be restarted. As long as the event (CYU3P_USBEP_SS_RESET_EVT) occurs less than once per second, the problem can be compensated by error handling. Afterwards, one cannot transfer any image data stream from our device any more. If you now perform a USB reconnect, the problem of the CYU3P_USBEP_SS_RESET_EVT events will be fixed.
USB-Reconnect:
CyU3PUsbLPMEnable();
CyU3PConnectState(CyFalse, CyTrue);
CyU3PThreadSleep(25);
CyU3PConnectState(CyTrue, CyTrue);
CyU3PUsbLPMDisable();
The assumption is that the USB reconnect solves the problem temporarily through its link training.
Is there any way to force a link training by device, only to be sure it's a missing link training is the problem?
Information:
We use SDK 1.3.3 and also testet with SDK 1.3.4 but this seems less stable than the old one.
Show Less