USB superspeed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
Hi,
The control center counterpart for Linux which is cyusb_linux binary is not able to flash the image (.img file) to EEPROM and SPI Flash. It shows "Error in Download" as a message box and in the status bar it shows "Error: Could not find target device" ! However, it is able to flash to RAM successfully.
I have used the same CX3 board for flashing to RAM, EEPROM and SPI Flash from Windows without any problems!
Can you please help me why this is not able to flash to EEPROM and SPI Flash memory from Linux.
Show LessI have a Sony IMX 290 which supports full HD output, however the only output formats available to me are RAW 10 and RAW 12. I have set the sensor up so that it outputs RAW12 1948x1097@30 fps; I can see the buffers coming into the DMA with their corresponding prod/cons and partial buffer however I am unable to view the stream using a video streamer. The current settings I am using are as follows:
CyU3PMipicsiCfg_t IMX290_RAW12_1920x1080 =
{
CY_U3P_CSI_DF_RGB888, /* CyU3PMipicsiDataFormat_t dataFormat */
4, /* uint8_t numDataLanes */
15, /* uint8_t pllPrd */
494, /* uint16_t pllFbd */
CY_U3P_CSI_PLL_FRS_250_500M, /* CyU3PMipicsiPllClkFrs_t pllFrs */
CY_U3P_CSI_PLL_CLK_DIV_4, /* CyU3PMipicsiPllClkDiv_t csiRxClkDiv */
CY_U3P_CSI_PLL_CLK_DIV_4, /* CyU3PMipicsiPllClkDiv_t parClkDiv */
0, /* uint16_t mClkCtl */
CY_U3P_CSI_PLL_CLK_DIV_2, /* CyU3PMipicsiPllClkDiv_t mClkRefDiv */
1948, /* uint16_t hResolution */
0 /* uint16_t fifoDelay */
};
/* GUID, globally unique identifier used to identify streaming-encoding format*/
0X55,0X59,0X56,0X59,
0X00,0X00,0X10,0X00,
0X80,0X00,0X00,0XAA,
0X00,0X38,0X9B,0X71,
0x10, /* Number of bits per pixel: 16*/
0x01, /* Optimum Frame Index for this stream: 1 (1080p) */
0x00, /* X dimension of the picture aspect ratio; Non-interlaced */
0x00, /* Y dimension of the pictuer aspect ratio: Non-interlaced */
0x00, /* Interlace Flags: Progressive scanning, no interlace */
0x00, /* duplication of the video stream restriction: 0 - no restriction */
/* Class specific Uncompressed VS Frame Descriptor 1 - 1080p */
0x1E, /* Descriptor size */
CX3_CS_INTRFC_DESCR, /* Descriptor type*/
0x05, /* Subtype: frame interface*/
0x01, /* Frame Descriptor Index: 1 */
0x00, /* No Still image capture method supported */
0xB5,0x05, /* Width in pixel: 1461 */
0x49,0x04, /* Height in pixel: 1097 */
0x60,0xa6,0xda,0x2d, /* Min bit rate (bits/s): 1461 x 1097 x No Of Bits per Pixel x FrameRate = 769304160 */
0x60,0xa6,0xda,0x2d, /* Max bit rate (bits/s): Fixed rate so same as Min */
0x3a,0xe9,0x30,0x00, /* Maximum video or still frame size in bytes(Deprecated): 1461 x 1097 x 2 */
0x15,0x16,0x05,0x00, /* Default frame interval (in 100ns units): (1/30)x10^7 */
0x01, /* Frame interval type : No of discrete intervals */
0x15,0x16,0x05,0x00, /* Frame interval 3: Same as Default frame interval */
/* UVC Probe Control Settings */
uint8_t glProbeCtrl[CX3_UVC_MAX_PROBE_SETTING] = {
0x00, 0x00, /* bmHint : No fixed parameters */
0x01, /* Use 1st Video format index */
0x01, /* Use 1st Video frame index */
0x2A,0x2C,0x0A,0x00, /* Desired frame interval in 100ns */
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 */
0x3a,0xe9,0x30,0x00, /* Max video frame size in bytes */
#ifdef CX3_UVC_1_0_SUPPORT
0x00, 0x90, 0x00, 0x00 /* No. of bytes device can rx in single payload: 32KB */
#else
/* UVC 1.1 Probe Control has additional fields from UVC 1.0 */
0x00, 0x90, 0x00, 0x00, /* No. of bytes device can rx in single payload: 32KB */
0x00, 0x60, 0xE3, 0x16, /* Device Clock */
0x00, /* Framing Information - Ignored for uncompressed format*/
0x00, /* Preferred payload format version */
0x00, /* Minimum payload format version */
0x00 /* Maximum payload format version */
#endif
};
/* UVC Probe Control Setting - 1080p*/
uint8_t const gl1920x1080ProbeCtrl[CX3_UVC_MAX_PROBE_SETTING] = {
0x00, 0x00, /* bmHint : No fixed parameters */
0x01, /* Use 1st Video format index */
0x01, /* Use 1st Video frame index */
0x15,0x16,0x05,0x00, /* Desired frame interval in 100ns = (1/30)x10^7 */
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 */
0x3a,0xe9,0x30,0x00, /* Max video frame size in bytes = 1920 x 1080 x 2 */
#ifdef CX3_UVC_1_0_SUPPORT
0x00, 0x90, 0x00, 0x00 /* No. of bytes device can rx in single payload: 36KB */
#else
/* UVC 1.1 Probe Control has additional fields from UVC 1.0 */
0x00, 0x90, 0x00, 0x00, /* No. of bytes device can rx in single payload: 36KB */
0x00, 0x60, 0xE3, 0x16, /* Device Clock */
0x00, /* Framing Information - Ignored for uncompressed format*/
0x00, /* Preferred payload format version */
0x00, /* Minimum payload format version */
0x00 /* Maximum payload format version */
#endif
};
DMA UART DEBUG
MIPI active = true
Mipicsi active = 1
Prod = 0 Cons = 0 Prtl_Sz = 2922 Frm_Cnt = 1 Frm_Sz = 2922 B
0 0 0 6 0 0 0 0 11
Prod = 1 Cons = 1 Prtl_Sz = 1554 Frm_Cnt = 2 Frm_Sz = 38370 B
0 0 1 7 0 0 0 0 13
frame count 2 received stopping app
Prod = 87 Cons = 87 Prtl_Sz = 32046 Frm_Cnt = 3 Frm_Sz = 3235038 B
0 0 2 2 0 0 0 0 2
Prod = 87 Cons = 87 Prtl_Sz = 32046 Frm_Cnt = 4 Frm_Sz = 3235038 B
0 0 0 0 0 0 0 0 0
Prod = 87 Cons = 87 Prtl_Sz = 32046 Frm_Cnt = 5 Frm_Sz = 3235038 B
0 0 2 0 0 0 0 0 0
Prod = 87 Cons = 87 Prtl_Sz = 32046 Frm_Cnt = 6 Frm_Sz = 3235038 B
0 0 0 0 0 0 0 0 0
Show LessHi everyone,
in my project I want to stream thermal video data via USB. The FX3 acts as a bridge between a FPGA and the USB-Host. Further I use the TI HD3SS3220 Type C Portcontroller.
The FX3 should communicate to the Portcontroller via I²C and the FPGA will send its data via the slave fifo interface, which i want to make 32 bits wide. The FX3 won't have to manipulate the data, as the FPGA will do all the processing.
So, if I understood this right, I could keep the power domain of the SPI unpowered, if I boot the FX3 from I²C-EEPROM.
I'm worried to get in trouble with the Bootimage size, as I have no experience with the FX3. Do you think the 256kB are sufficient? Or should I consider using a larger Flash memory?
Thank you for your support
Best regards
Dennis
Show LessHI
I got Denebola RDK from e-con. Its working fine with default firmware, can see picture in Windows, Mac and Linux (Ubuntu 16). Now Im trying to modify the firmware to add support for external I2C sensor. I downloaded and installed Cypress "FX3 SDK ver 1.3.4" for windows, after installation I opened e-con custom firmware and tried to compile to make sure everting was Ok, but I got the following error:
I went back and loaded one of cypress firmware examples that came along with the installation, they compile successfully.
Then I went and installed cypress SDK 1.3.4 in Mac and Linux and I got similar error (PATH variables configured correctly, following installation document):
once again I tried compiling cypress sample code and it compiled successfully.
I noticed e-con firmware is developed using FX3 SDK ver 1.3.3 and its calling different toolchain, I tried to download this older sdk installation on cypress site but they only have sample FW code for older SDKs not toolchain, there is a notice saying older code can be compiled with latest sdk toolchain.
can you help me to figure out how to compile e-con sample FW using latest cypress SDK? or may be how to get older SDK toolchain?
Thanks.
Show LessHi,
I am using the CX3 on the e-con systems Denebola Development Kit. I am trying to connect a image sensor but I have some issues and I am stuck with the debugging.
I get to the state where the device is enumerated correctly on the PC with the proper resolution, but the image is black and the frame rate is 0.
Here are my questions:
1.) Can the following work?
The sensor is configured via I2C, but not from the CX3 but from another external module. So I start the firmware of the CX3, it gets configured and in a sleep state, I set up the image sensor, than start a viewer on my PC(e-cam view) to get the CX3 reading the MIPI-Interface.
2.) Is the MIPI configuration correct?
I use the CX3 configurator tool to create the firmware I use. Here are the values:
THS-Prepare: 64 ns
THS-Zero: 392 ns
Video Format: RAW12
Data Lanes: 4
CSI Clock (Mhz): 375
H-Active (Pxl): 1280
H-Blanking Pxl): 370
V-Active (Pxl): 960
V-Blanking Pxl): 37
Frame Rate (fps): 40
3.) Is there a way to read LV (Line Valid) and FV (Frame Valid) via software?
In order to debug I would like to know if there is any data coming on the MIPI CSI-2 interface. I know that the GPIF State Machine is stuck in state 2 (Wait for Frame Valid) and that glDMATxCount is always 0.
Show LessHi,
I am now looking for design solutions to create a product similar to a micro SD card reader for iPhone.
I noticed that Cypress did offer MFi SDK for usb audio and Homekit application.
Is there also a SDK for general USB or UART and could be used in any Cypress USB controllers?
Thanks,
Jay
Show LessAccording to CX3 TRM page 8 the bus between MIPI CSI2 and GPIF II is 24 bit wide and has a max clock of 100 MHz. Therefore maximum transfer bandwidth is 2.4 Gbps. On the other hand, page 2 states supported MIPI CSI2 bandwidth of 1 Gbps X 4 lanes = 4 Gbps. The question is, when using 4 MIPI CSI2 lanes, how more than 600Mbps per lane are supported?
Show Less1、If I use the in Endpoint of cyusb3014 to receive data continuously, which can be suspended by FPGA logic, how to judge that the in buffer of 3014 has more data to avoid the error of reading, When I suspend the continuous input data.
2、If I suspend the continuous input data, how to clear the useless data of in buffer of 3014 to avoid the mistake reading of next start?
Show Less