USB superspeed peripherals Forum Discussions
Hi,
As per the below link,
Streaming RAW10 Format Input Data to 16/24-bit Out... - Infineon Developer Community
we understood that there is a calculation needed for changing RAW10 to YUV output format, can you please detail on how to Re-Writing the calculations.
Example 2: 16-bit output data format (CY_U3P_CSI_DF_YUV422_8_2)
Set CY_U3P_CSI_DF_YUV422_8_2 as the output format in cyu3mipicsi.c by replacing CY_U3P_CSI_DF_RAW10, to remove padded zeros.
Assume that you are streaming 1920 x 1080 resolution at 30 fps in RAW 10 format. The calculations of width in pixel, height in pixel, bits per pixel, frames per second, frame size and bit rate are as follows:
a. Width in pixel : 1920
b. Height in pixel : 1080
c. Bits per pixel : 10
d. Frames per second : 30
e. Frame size : 1920 x 1080 x 10 bits
f. Bit rate : 1920 x 1080 x 10 x 30 bits per second
Re-writing the above calculations:
a. Width in pixel : 2400
b. Height in pixel : 540
c. Bits per pixel : 16
d. Frames per second : 30
e. Frame size : 1200 x 1080 x 16 bits
f. Bit rate : 1200 x 1080 x 16 x 30 bits per second
Show LessI have a GPIF state machine gathering video data from an FPGA FIFO and the goal is to retrieve this data, attach UVC headers and then send it to the USB host, however I am unsure what DMA type I should be using to do this and how it should be done. Looking at the code for the CyU3PDmaType_t enum in cyu3dma.h, "CY_U3P_DMA_TYPE_MANUAL_OUT" is for CPU to consumer, socket "CY_U3P_DMA_TYPE_MANUAL_IN" for producer socket to CPU and "CY_U3P_DMA_TYPE_MANUAL" simply says "Manual mode DMA channel". How do I know which DMA type I should use? The example I am basing my firmware on uses Manual OUT however my data is coming from a GPIF PIB socket, not the CPU. Also, since I want to intercept the data before it goes to the host to attach headers, do I need 2 channels (GPIF -> firmware and firmware -> USB) or can I use GPIF's "INTR_CPU" or DMA callbacks to attach the header before committing the data to the USB host?
Show LessHi sir,
I am facing a problem about I2C in CX3.
My situation is as belows,
- I am using a custom board.
- the I2C bus has 3 slaves, eeprom, temperature sensor and FPGA(Image Sensor)
- The I2C bus works fine (all slaves) when I comment out only CyU3PMICSiInit() from my application. If I insert CyU3PMIPicsiInit(), the function returns Err:0x4A. When taken with the oscilloscope, the ACK is not delivered. After reading the i2c FPGA value, it was always the same, but it was not the intended value.
- i read the query below, but i think my situation is little different because I2C bus is working well without MipicsiInit().
Please help me.
Thank you in advance.
HI
I have installed EZ USB Suite to work with FX-3 Eval kit.
I don't see any option for OpenOCD or JLINK under "Debug Configurations". I suspect that the only option is to use OpenOCD because there is no JTAG connector on the eval kit. So, that is using the usb/serial interface. So, how can I configure the OpenOCD for that?
Thanks
Show LessHello,
I want to add a virtual com port to the AN75779 Example.
So, I increased the number of interfaces, the total length of the descriptor.
I also changed the bNuminterfaces for each uart descriptor.
But It doesnt work. I think, there is something with the usb descriptor.
If you have any suggestions you are more than welcome.
Regards
b.
Show Less
I am using Fx3 device connected to the pc send and recive control with XferData function and it is working ok.
on an ubunto with libusb using libusb_control_transfer() function I get (-9 )PIPE ERROR or read
send data:
ret_val = libusb_control_transfer(handle, LIBUSB_REQUEST_TYPE_CLASS & 0x7F, 0x27, 1, 0, (unsigned char *)data, m_len, 500);
receive data:
ret_val = libusb_control_transfer(handle, LIBUSB_REQUEST_TYPE_CLASS | 0x80, 0x28, 1, 0, (unsigned char *)data, m_len, 500);
can some one help solving the pipe error on receive data
thanks
Sabin
Show Less
Hi,
I'm using Cypress FX3 SDK 1.3.5 and have a question regarding CyU3PDmaChannelSetXfer. Can CyU3PDmaChannelSetXfer be used to initiate a transfer whose size is smaller than the size of the buffer allocated to the auto DMA channel? I'm using an auto DMA channel to transfer data between CY_U3P_LPP_SOCKET_SPI_PROD and CY_U3P_PIB_SOCKET_3. To do this I perofrm the following steps:
1. Configure IO matrix for 16-bit GPIF with Hardware SPI enabled
2. Configure SPI peripheral
3. Configure GPIF peripheral, load state machine, and advance to start state
4. Create DMA channel:
size = 16384
count = 1;
prodSckId = CY_U3P_LPP_SOCKET_SPI_PROD;
consSckId = CY_U3P_PIB_SOCKET_3;
dmaMode = CY_U3P_DMA_MODE_BYTE;
notification = 0;
cb = NULL;
5. determine size of FPGA configuration file stored in flash by reading 32-bit value from flash using a combination of CyU3PSpiTransmitWords and CyU3PSpiReceiveWords (e.g. non-DMA transfers).
6. enter loop where I do the following
a. lock mutex to claim ownership of SPI channel
b. calculate transfer size based on the maximum size (16384 bytes) and the amount of data remaining in the FPGA config file
c. Set chip select low and use CyU3PSpiTransmitWords to send the read address to the flash
d. Tell SPI peripheral to use DMA mode: CyU3PSpiSetBlockXfer(0, cbTrans) where cbTrans is 16384 bytes until the last transfer because the FPGA configuration file is not a multiple of 16384
e. initiate the DMA transfer: CyU3PDmaChannelSetXfer(&dmachFpgaCfg, cbTrans)
f. wait 500 ms for the transfer to complete (it should take less than 100ms with the SPI and GPIF configuration in use): CyU3PDmaChannelWaitForCompletion(&dmachFpgaCfg, 500);
g. tell SPI peripheral to switch back to register mode: CyU3PSpiDisableBlockXfer(CyFalse, CyTrue);
h. bring chip select high
i. unlock mutex used to claim ownership of SPI channel
j. increment address pointer by cbTrans and decrement transfer size by cbTrans
k. check to see if cbConfig is 0 and if so exit loop
l. give other threads opportunity to execute: CyU3PThreadRelinquish()
Testing has shown that CyU3PDmaChannelWaitForCompletion will report CY_U3P_ERROR_TIMEOUT after 500 miliseconds after transfer of the last chunk is initiated. In such case, the transfer size is 15532 bytes because that's all the data that remains to transfer. After CY_U3P_ERROR_TIMEOUT is returned I call CyU3PDmaChannelGetStatus and find that the producer and consumer counts are both 0, and the status of the DMA channel is active. If I forecfully set the FPGA configuration size to be an event multiple of 16384 bytes then no timeout occurs, however FPGA configuration fails because I clock in invalid configuration data.
This seems to indicate an issue with CyU3PDmaChannelSetXfer initiating a transfer size that is less than the buffer size that was allocated for the DMA channel.
Can someone tell me what I'm doing wrong? Do I have to destroy and then re-create the DMA channel if I want to use an auto channel DMA to transfer less data than the allocated buffer size?
Now you might ask why I'm doing this in chunks instead of transferring all of the data at once. That's because I need to allow another thread to access the SPI flash for reading and writing other configuration data in between, as reading the FPGA configuration could take up to 4 seconds for a large image and that could cause some vendor commands to fail.
Thanks,
Michael
Hi
Same question from this thread
https://community.infineon.com/t5/USB-superspeed-peripherals/CYUSB3-1-3-0-2-21H2-x64-MSFT-Signed-driver-not-working-where-1-25-unsigned/td-p/360526
I have private email the Cypress PIC Meghavi, but look like currently the email could not go thru.
The last email was he mention Cypress are debugging the issue.
May i know is the driver updated or any status update?
Thank you
which DLL we have to use for .NET (for Windows)
we are using CYUSB3035 and want to use following function
USB TO FIFO
USB TO I2C
USB TO SPI
USB TO FPGA Config
Show LessThe SuperSpeed Explorer Kit schematic.pdf on Page 2 J1 Pin 9 (STDB_SSRX+) connects to net SS_RX_M. Is this wrong? Usually, Positive connects to Positive and negative connects to negative (as is the case in SS_TX_? pair). I am designing a PCB at this time. Can someone get back to me and tell me whether there is an error in the document.
Udayan Mallik
Show Less