USB superspeed peripherals Forum Discussions
Hello
For LED control, I am thinking of controlling GPIO High/LOW with FW. However, I would like to synchronize the GPIO High/LOW switching with the Frame signal of the image sensor, but is it possible to control the GPIO by synchronizing it with the "Frame signal" with the CX3 F/W?
If possible, how do we specifically sensor Frame singnal synchronize with the CX3 F/W?
Best Regards
Show LessI have Firmware for Fx3 running with GPIF 32 bit mode.
Also need to Read/Write on the SPI flash . For that need to Reconfigure the GPIF mode to 16 bit.
For Reconfiguring I do
1) Disable the GPIF(CyU3PGpifDisable ( CyFalse ))
2) Reconfigure the IOmatrix
a) io_cfg.isDQ32Bit = CyFalse
b) io_cfg.useSpi = CyTrue
By doing this Enable the SPI.
3) Initialize the SPI interface for flash.
Is this Possible to configure at run time ? if Yes what is the right way??
Show LessHi,
I use CYUSB3014. I set CyU3PMipicsiInitializeI2c(CY_U3P_MIPICSI_I2C_100KHZ) in the CyFx_I2cInit function.
Because I may write some settings to FPGA while video playing, I hope I2C read/write time can be shorter. Therefore, I change the setting to CyU3PMipicsiInitializeI2c(CY_U3P_MIPICSI_I2C_400KHZ).
I use CyU3PGetTime to check the time but I think it is almost the same. Is that correct?
Any response would be greatly appreciated.
Show LessI'm trying to use two 8-bit cameras, connected to the FX3 to form a binocular camera, I have followed infineon-AN75779_how_TO_implement_AN_image_senSOR_interFACE_with_EZ-USB_FX3_IN_A_USB_VIDEO_class_ (UVC) _framework-ap PlicationNo document, but still no image.
Show Lessis it possible to change the GPIO 28 (LV) and GPIO 29 (FV) to some other pin for instance ( GPIO 26 or 22 or 21 or 20 or 19 ) in the design of UVC (AN75779)
This we are trying because of design mistake.
Show LessHi,
I've created a custom bootloader for the CYUSB3014-BZXC using the Cypress Boot API. The bootloader supports application firmware download to RAM using a vendor request very similar to the Fx3BootAppGcc example. The host downloads the application firmware to the device in 4096 byte chunks. Testing has shown that application firmware download works reliably across many different hardware configurations and operating systems. However, I have identified a system and OS where firmware download fails unless I reduce the chunk size to 512 bytes.
I have a system that runs both Ubuntu 20.04.4 LTS 64-bit and Windows 10 64-bit. Firmware download works correctly under Windows 10, regardless of connection speed. However, it fails under Ubuntu when the device is connected through a USB 3 cable to a USB 3 port. I performed a packet capture with the Ellisys EX350 and found that the bootloader acks the first 512 bytes of a 4096 byte setup request but then fails to acknowledge the next 512 bytes of the data stage after previously sending an ERDY for control endpoint 0.
I added some UART debug prints and found that the firmware is getting stuck inside of CyFx3BootUsbDmaXferData and will eventually return CY_FX3_BOOT_ERROR_ABORTED, but only after the next setup packet is received, which doesn't happen until our software is restarted because it errors out when the host is unable to complete the previous control transfer.
If I connect the board to the same USB port using a USB 2.0 cable then firmware download is successful.
If I connect the board to the same USB port using a USB 3.0 cable and run the software in Windows 10 instead of Linux, then the firmware download is successful.
If I modify our host software to send data in 512 byte chunks then firmware download succeeds but it takes approximately 2.2 seconds to complete instead of 286 milliseconds. Therefore, reducing the transfer size is not an acceptable solution.
I performed packet captures in both Windows and Linux but couldn't identify any notable differences in the first control transfer, other than it succeeds in Windows and the device fails to respond to the OUT packets in Linux.
Can someone please help me figure out why this is failing in Linux? Obviously the host controller driver is different, but like I said I can't see any obvious differences in bus activity.
I can send the bus activity log but the files are too large to attach so they will need to be sent via OneDrive, which requires an email address.
Thanks,
Michael
i use usb3014 chip,hardware connection orders is fpga->gpif->usb3014->usb host(linux os),and fpga send data to usb3014 by gpif(gpif use 5bit address sync fifo mode) fifo address at 2,usb3014 dma buffer size is 10*1024 bytes,count is 2,dma use auto mode,usb3014 passthrough data to host by bulk endpoint 2,the host driver is self-developed.
The problem:
When the host is receiving data, error -71 occurs in the host driver, indicating a protocol error,this error may be caused by that part?
Show LessHello
I am testing connecting as below:
FX3_A must connect to USB3.0_A and FX3_B must connect to USB3.0_B.
If FX3_A connected to USB3.0B, an error will prompt, vice versa.
Current if i connect as above: the device manager will prompt two Cypress FX3 USB BootLoader Device(Default Firmware):
Driver is unsigned driver 1.2.3.25.
on the API side:
CCyFX3Device* fx3Device = new CCyFX3Device();
int deviceCount = fx3Device->DeviceCount();
We could get device count = 2
If i intent to flash firmware_A.img into FX3_A and firmwareB.img FX3_B. How do i differentiate device count 1 is FX3_A or FX3_B?
Thanks
hello,
I'm using cx3, and having a trouble with host application.
Window10 Camera application is okay. but AMCap (or e-cam viewer) displays black screen.
all applications display 720(1284x720) 60fps well
but, 1080(1920x1080) 60fps is black screen (except window10 Camera Application).
Currently, I think it is Associated with Dma Buffer size. Because it depends on image size.
#define CX3_UVC_DATA_BUF_SIZE (0x8FD0)
#define CX3_UVC_DATA_NUM_BYTE 0x00, 0x90, 0x00, 0x00
Could you tell me why and how to fix it?
thank you
Show Less
Hi,
I am using ECON Denebola CX3 Development Kit. I am using a peripheral for which I need to control MIPI_CAM_PWDN and MIPI_CAM_RST. After calling CyU3PMipicsiInitializeI2c(), CyU3PMipicsiInitializeGPIO (), CyU3PMipicsiInitializePIB (), I am calling the following function to set MIPI_CAM_PWDN and MIPI_CAM_RST.
CyU3PMipicsiSetSensorControl(CY_U3P_CSI_IO_XRES, CyTrue); // Set MIPI_CAM_RST to High
CyU3PMipicsiSetSensorControl(CY_U3P_CSI_IO_XSHUTDOWN, CyTrue); // Set MIPI_CAM_PWDN to High
Is this the correct way? On the HUD E-Con Breakout Board, I checked TP_SHUTDN using a logic analyzer, but I don't see this line going High.
Is the above CyU3PMipicsiSetSensorControl() call the right way to set the MIPI_CAM_PWDN and MIPI_CAM_RST lines?
Thanks for your help.
Regards,
Subramanyan
Show Less