USB superspeed peripherals Forum Discussions
I use uac2.0 in FX3,download firmware to board,my PC(windows10 20H2) device manager dispaly audio device of FX3,but corresponding driver was not installed successfully.
Attachments are partial descriptors for uac2.0,Please check it for me.
Show Less
I am trying to configure my device to output higher resolutions speeds at USB2.0/high speed. Specifically 720p at 30 FPS. I believe there should be enough bandwidth to support that at high speed. However I can go lower if that is not the case.
The current code example I am using provides just one setting at 640x480. I have been able to coax the USB side to recognize that I should be running at 720p however no frames show up. I assume there is some combination of buffers and pll configurations that i am not understanding. here are the important code snippets.
USB descriptor (seems to be working)
/* Class specific Uncompressed VS frame descriptor 2 - 720p@ 30fps*/
0x1E, /* Descriptor size */
ES_UVC_CS_INTRFC_DESCR, /* Descriptor type*/
0x05, /* Subtype: Uncompressed frame interface*/
0x01, /* Frame Descriptor Index: 1 */
0x00, /* No Still image capture method supported */
0x00, 0x05, /* Width in pixel: 720 */
0xD0, 0x02, /* Height in pixel: 1280 */
0x00, 0x00, 0x5E, 0x1A, //720 x 1280 x 2 x 30 x 8 = 442368000 */
0x00, 0x00, 0x5E, 0x1A, //720 x 1280 x 2 x 30 x 8 = 442368000 */
0x00, 0x20, 0x1C, 0x00, /* Maximum video frame size in bytes(Deprecated): 1280 x 720 x 2 */
0x15, 0x16, 0x05, 0x00, /* Desired frame interval in 100ns = (1/30)x10^7 = 333,333.33 */
0x01, /* Frame interval type : No of discrete intervals */
0x15, 0x16, 0x05, 0x00, /* Desired frame interval in 100ns = (1/30)x10^7 = 333,333.33 */
probe control (possible point of failure)
/* UVC Probe Control Setting - 720p@30fps(HighSpeed)*/
uint8_t const gl720p30FPSProbeCtrl[ES_UVC_MAX_PROBE_SETTING] = {
0x00, 0x00, /* bmHint : No fixed parameters */
0x01, /* Use 1st Video format index */
0x01, /* Use 2nd Video frame index */
0x15, 0x16, 0x05, 0x00, /* Desired frame interval in 100ns = (1/30)x10^7 = 333,333.33 */
0x00, 0x00, /* Key frame rate in key frame/video frame units */
0x00, 0x00, /* PFrame rate in PFrame / key frame units */
0x00, 0x00, /* Compression quality control */
0x00, 0x00, /* Window size for average bit rate */
0x00, 0x00, /* Internal video streaming i/f latency in ms */
0x00, 0x20, 0x1C, 0x00, /* Max video frame size in bytes: 720 x 1280 x 2*/
0x00, 0x30, 0x00, 0x00 /* No. of bytes device can rx in single payload */
};
mipi control (possible point of failure)
/* Configuration parameters for 720p @30FPS for the OV5640 sensor */
CyU3PMipicsiCfg_t cfgUvc720p30NoMclk = {
CY_U3P_CSI_DF_YUV422_8_2, /* dataFormat */
1, /* numDataLanes */
1, /* pllPrd */
62, /* pllFbd */
CY_U3P_CSI_PLL_FRS_250_500M, /* pllFrs */
CY_U3P_CSI_PLL_CLK_DIV_4, /* csiRxClkDiv */
CY_U3P_CSI_PLL_CLK_DIV_4, /* parClkDiv */
0x00, /* mclkCtl */
CY_U3P_CSI_PLL_CLK_DIV_8, /* mClkRefDiv */
1280, /* hResolution */
50 /* fifoDelay */
};
resulting code in application
buffer switch (likely where my problem)
switch(CyU3PUsbGetSpeed())
{
case CY_U3P_HIGH_SPEED:
endPointConfig.pcktSize = 0x200;
endPointConfig.burstLen = 1;
ES_UVC_STREAM_BUF_SIZE = ES_UVC_HS_STREAM_BUF_SIZE;
ES_UVC_DATA_BUF_SIZE = ES_UVC_HS_DATA_BUF_SIZE;
ES_UVC_STREAM_BUF_COUNT = ES_UVC_HS_STREAM_BUF_COUNT;
break;
where
#define ES_UVC_HS_STREAM_BUF_SIZE (ES_UVC_HS_DATA_BUF_SIZE + ES_UVC_PROD_HEADER + ES_UVC_PROD_FOOTER)
#define ES_UVC_HS_DATA_BUF_SIZE (3056) /* DMA Buffer Data Size Used: 3056 Bytes*/
#define ES_UVC_HS_STREAM_BUF_COUNT (8)
#define ES_UVC_PROD_HEADER (12) /* UVC DMA Buffer Header Size */
#define ES_UVC_PROD_FOOTER (4) /* UVC DMA Buffer Footer Size */
mipi selection (likely second point of failure)
else if (CyU3PUsbGetSpeed () == CY_U3P_HIGH_SPEED)
{
status = CyU3PMipicsiSetIntfParams (&cfgUvc720p30NoMclk, CyFalse);
if (status != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "\n\rUSBStpCB:SetIntfParams SS2 Err = 0x%x", status);
}
esOV5640_720P_config
//also tried esOV5640_720P_HS_config();
probe selection
else if (CyU3PUsbGetSpeed () == CY_U3P_HIGH_SPEED)
{
CyU3PMemCopy(glProbeCtrl, (uint8_t *)gl720p30FPSProbeCtrl, ES_UVC_MAX_PROBE_SETTING);
Show LessDear Sir or Madame,
we are currently developing an application in which we are using a panasonic active optical converter (AOC). The AOC however is not able to transmit all the signals in usb3 training signal procedure (LTSSM), because it is only capable of transmitting higher frequency signals.
In order to solve this issue panasonic suggested using the cypress fx3 and a fpga and informed us, that this solution is known to be possible.
The configuration should look like this:
Panasonic encouraged us to contact our „FPGA supplier or Cypress for details“.
In conclusion, I’m asking you for the more information for the described application. Is there a „ready-to-use“ application with the code for the FX3 and the FPGA? Which FPGA can/ should be used?
Show LessHello
For cutomer's products using CYUSB3610-68LTXC, driver software for Windows 10 is currently provided.Are there any plans to update the driver (ex. Windows 11) in the future?
Best Regards
Arai
Show LessHi Everyone,
I have a special demand.
Now I am using CYUSB3014 to develop the product. And it could work normally.
But I noticed a small problem. After I connect the device, and before I install the driver. The device also will be recoginzed, and it will have an exclamation mark in device Manager. Now if I open the properties dialog of the device, and I find the manufacture is unknown. But I had fixed the manufacture item in the firmware's description, anyonw knows why? Or how do I make it display the manufacturer even before installing the driver?
Of course, after installing the driver, it will display correctly.
Thanks
Chad
Show LessHello,
for our application we would like to use USB virtual com port to send/receive status messages with FX3s. My understanding is that I will need a MANUAL_IN DMA channel to transfer messages to the FX3 CPU and a MANUAL_OUT buffer to send messages to the host PC. I have modified the USBUart example project, but have encountered a lot of errors.
- When using a MANUAL_IN channel it appears the producer fills up our buffers and then quits producing events. We aren't sure how to consume the data in the buffers that producer events keep firing.
- When using a MANUAL_OUT channel, the overall application is broken and the host can no longer connect to the serial port. The USB setup completes as our host PC can see the COM port, but is unable to connect.
Can someone please help us understand the steps needed to produce/consume data with manual DMA channels?
Show Less
Hi,
I am using FX3 in our project, in which I read Unique ID of FX3 with CyU3PReadDeviceRegisters() API. The address I am using is 0xE0055010 to read the Unique ID. But the Unique ID of three devices are same (ID - 59050000) out of five devices. Please guide us to solve this problem.
Thanks and Regards,
Vignesh Kumar R.
Show LessHi,
I'm looking for reference code to run MIPI interface of the AR0144 Demo 3 Head board with FX3.
Will appreciate any assistance.
Thanks,
Itay Cohen
Show LessAny additional details (or even a working example) would be helpful. Do we need to set DDR_MODE and DLE_PRESENT? Could we also DR_DATA at DDR?
Show LessDear All,
We use Cypress FX3 machine vision products designed and requires the use of USB3 Vision agreements. I use the example provided by the program's official website (http://www.cypress.com/forum/usb-known-problems-and-solutions/fx3-application-note-usb3-vision#comment-293031), it is currently available in Ni -MAX LabVIEW software recognize the device, but the device and the host in the initial communication happened unable to load camera's XML file errors. POINT GRAY U3V camera in my host environment is working properly, I tried to simulate POINT GRAY initial packet communication, but still stopped at the same position, the display unable to read / write to file error message.
I use Bus Hound USB packet recording software, we found that when the device will terminate in reply to XML-related messages to host, this Bulk IN endpoint packet data corresponding to the FX3 program as follows:
uint8_t CyU3VManifest[] =
{
0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, // No. of Manifest entries = 1
0x00, 0x00, 0x00, 0x01, // GenICam file version 1.0.0
0x00, 0x00, 0x01, 0x01, // Schema/Filetype Uncompressed xml ver. 1.1.0
U3V_XML_ADDR, // Address for XML file
0xFF, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, // Size of xml file (8 bytes width)
NULL_20, // SHA-1 for xml - not available
NULL_20 // Reserved
};
Q1: GenICam in the XML file want to place the device side or the host side? (after installation Ni-MAX API has provided XML files)
Q2: If the XML file placement device, whether this is the official website provided usb3vision_xml.c file?
Q3: Each vendor to whether the use of XML files for the EMVA organizations? There is a need for a different camera on the XML file to modify it?
Thanks & Best regards,
-Roy
Show Less