USB superspeed peripherals Forum Discussions
Hello,
I am currently working with Development Kit Denebola. this hardware has two memory types to store the firmware (I2C EEPROM and SPI FLASH) and I can store it in both without any problem. However I am carrying out an application which needs to work with the SPI Flash memory, I mean, I need to write and to read values from the memory.
For this reason, i have the following questions:
- Is there any API focused on to communicate with the FLASH memory? In case yes, Where could I find it?.
- Which functions from this API are able to write the memory and to read from her? Could you give me some example of use?
Thanks!.
Show LessHello sir/madam,
I am using CYUSB301X/CYUSB201X controller for USB 3.0 communication for specific application.Now I want to use Ethernet communication in same board. is it possible without changing the CYUSB301X/CYUSB201X controller?
I came across your CYUSB3610 Gigabit Ethernet Bridge Controller. Can i use it in above application as add on board?
Thanks
Show LessHi,
I am planning to use FX3 to convert UVC USB3 packets to native Video (YUV 422) format. Is it possible to use FX3 for this application?
If yes, Does anybody have any reference design to start with?
With Regards,
Bhat
Show LessHello,
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:
- What would prevent the CX3 transactions from bursting over USB?
Thank you.
Show LessHello
I'm Juyeol.
I plan to make the FPGA Configuration using GPIF master mode.
I have a question during fw coding, so please contact us.
Currently, I am using only the output value after deleting the input from the GPIF designer tool that has been uploaded(AN87216 Master mode).
Control Center provided by cypress, there are Control Endpoint and Bulk Out Endpoint. When I take an oscilloscope, data goes out from the Bulk Out Endpoint but not from the Control Endpoint, but I wonder if the two are different.
I think settings are same..
Thanks.
if ((bTarget == CY_U3P_USB_TARGET_ENDPT) && (bRequest == CY_U3P_USB_SC_CLEAR_FEATURE)
&& (wValue == CY_U3P_USBX_FS_EP_HALT))
{
if ((wIndex == CY_FX_EP_PRODUCER) || (wIndex == CY_FX_EP_CONSUMER))
{
if (glIsApplnActive)
{
CyU3PDmaChannelReset (&glChHandleBulkLpUtoP);
CyU3PUsbFlushEp(CY_FX_EP_PRODUCER);
CyU3PUsbFlushEp(CY_FX_EP_CONSUMER);
CyU3PUsbResetEp (CY_FX_EP_PRODUCER);
CyU3PUsbResetEp (CY_FX_EP_CONSUMER);
CyU3PDmaChannelSetXfer (&glChHandleBulkLpUtoP, CY_FX_DMA_TX_SIZE);
CyU3PUsbStall (wIndex, CyFalse, CyTrue);
isHandled = CyTrue;
}
}
}
Show LessWhere do I find the linux command line tool to download firmware to fx3 when enumerating as 04b4:00f3?
Hello,
I tried to build a camera & sensor system using CYUSB306x and camera (MIPI) , sensors (UART) and BLDC Motor & Control board (I2C)
Using this system, I want to receive video data and sensor data at the same time , and control BLDC motor .
To achieve this purpose, i would like to have the hardware configuration as shown in the attached figure.
Is it possible to use CYUSB306x like this?
Show LessMy understanding is that DMA buffers must be 16B-aligned (32B if data cache is enabled) and the DMA functionality will not return a buffer via CyU3PDmaChannelGetBuffer() unless the buffer is full -or- the GPIF II state machine has issued a INTR_CPU, which permits the CPU to terminate the transfer early via CyU3PDmaChannelSetWrapUp().
I'm working with a 8-bit synchronous data bus (FX3 on both sides, one as M and one as S) and at times need to do 4B reads/writes for short status packets. Is there any way to accomplish this in a single function call (i.e. synchronously) without requiring INTR_CPU? Or, barring that, can that single function spin waiting on the INTR_CPU handler to set a volatile flag indicating the transfer can be wrapped up? I'm not sure if the GPIF event callback can preempt a thread function in the FX3 environment.
I tried to accomplish this requirement with other interfaces like CY_U3P_PIB_GPIF_INGRESS_DATA() / CY_U3P_PIB_GPIF_EGRESS_DATA() but those appear to only transfer one bus-width of data (1B in my case) and I need to move 4B in a single transfer. I was also unable to get the CyU3PGpifWriteDataWords() / CyU3PGpifReadDataWords() interfaces to work for this, as they too seem to only move 1B successfully. All the available examples I could find for those also only show them moving one word at a time.
Show LessHello,
I have an application that uses an fx3 with the slave fifo (same source code as per the example provided, with minor additions for some vendor commands,
while dma buffers and all USB stuff was left untouched).
My application works fine but occasionally (quite rare) I have an hangup and the trace on the serial debug shows:
CyU3PDmaChannelCommitBuffer failed, Error code = 64
I would like to understand what this really means, or even more important, what can I be doing wrong that causes this.
The problem is that when this happens it get stuck with flag_A low and I cant figure out a way to get out of this state besides a full switch off
and restart all over again (which is a very inconvenient recover... this is to work on remotely placed systems).
I would like to stress that besides these rare occurrences the system can stay working well for hours without issues.
Now it getting frustrating... if I want to find the problem it insists in working well and if I decide to use it it insists to fail
(in reality this problem is lurking around since the very beginning of this project of mine...)
I don't even know where to begin... what is this error and what may be a possible cause,
any help ?
Many thanks.
Luis.
Show Less