I'm currently discovering the EZ-USB development kit along with the CPLD board, following the SuperSpeed Device Design By Example book, and I wanted to play a bit with the I2C_Example that is provided, by adding LED command to control the LEDs of the CPLD through TeraTerm. I haven't managed to make it works for reasons, but the thing that is annoying me is that when I got back to the I2C_Example provided (so untouched), I now get this on the console:
Debug Console Initialized Successful
LEDs = 170,
I2C_Write failed, 69 = CY_U3P_ERROR_TIMEOUT
I2C_WaitForAck failed, 69 = CY_U3P_ERROR_TIMEOUT
I2C_Read failed, 69 = CY_U3P_ERROR_TIMEOUT
It was working fine before and now I get that Timeout error everytime on the example that was working, so i really don't understand what is going on here. Does anybody had any ideas to unblock the situation ?
I am working on a project which uses FX3 to implement video application. Basically the device works fine. But when it is connected to USB 2.0 port and run bulk-in (video data) and control-in (register read) simultaneously, both bulk-in and control-in will hang. If bulk-in and control-in are not run simultaneously, or they are run in USB 3.0, everything is fine.
My firmware SDK is ver 1.3.4
The problem is the same (or silimar) to those discussed in the following links:
Also I checked the following discussions:
Refering to the solutions in above links, I made changes in FX3 firmware code by the two methods as follows:
1. Use CyU3PUsbSetEpSuspDisableMask() to disable DMA channel suspend during EP0 transfer
2. Write another funcition CyU3PDmaChannelSendData() to replace CyU3PUsbSendEP0Data() for control-in data sending.
Both method is helpful on this issue. The bulk-in and control-in are not hang mostly. But sometimes the data on control-in are corrupted. And sometimes the data transfer (both bulk-in and control-in) still failed (but not frequenctly and can be recoveried by end point reset).
The SDK ver 1.3.4 implements DMA suspend when control-in data needs to be sent out, to workaround data corruption issue in USB 2.0. But based on my issues (and other ones' issues in above links) it seems the DMA suspend operation is not stable. The above two method roll-backs the DMA suspend, but this does'nt resolve the data corruption issue.
I did the following test:
1. Remove control-in code, so there is only bulk-in transfer.
2. Added some code (the code is similar to those in ver 1.3.4 SDK CyU3PUsbSendEP0Data() function) which suspends bulk-in DMA, and then resume DMA after some delays (from some ms to some seconds). I can also see the bulk-in transfer may hang. So it looks the DMA suspend operation is not safe for us to call.
Here are the questions:
1. Why the DMA suspend/resume operation makes the transfer hang?
2. Is there any way to workaround the data corruption and hang issue for simultaneous bulk-in and control-in transfer in USB 2.0? That is, is there anyway to get stable bulk-in/control-in transfer for USB 2.0?
I want the FX3 to Boot in bootloader mode so I'm using "Fx3BootAppGcc" project, I also want him to boot in SSC disable.
I'm trying to add the function "CyU3PUsbSSCDisable();" to the file "usb_boot.c"
Just before calling the function "CyFx3BootUsbConnect (CyTrue, CyTrue);"
When I try to build the project I get the next error:
11:04:14 **** Incremental Build of configuration Release for project Fx3BootAppGcc ****
'Building target: Fx3BootAppGcc.elf'
'Invoking: ARM Sourcery Windows GCC C Linker'
arm-none-eabi-gcc ./cyfx_gcc_startup.o ./gpio_test.o ./i2c_test.o ./main.o ./spi_test.o ./test_uart.o ./usb_boot.o ./usb_descriptors.o -T"../cyfx3.ld" -nostartfiles -Xlinker --gc-sections -Wl,-Map,Fx3BootAppGcc.map -Wl,-d -Wl,-elf -Wl,--no-wchar-size-warning -Wl,--entry,Reset_Handler "C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\/firmware/boot_fw/lib/cyfx3_boot.a" "C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\/arm-none-eabi/lib/libc.a" "C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\/lib/gcc/arm-none-eabi/4.8.1/libgcc.a" -mcpu=arm926ej-s -mthumb-interwork -o "Fx3BootAppGcc.elf"
./usb_boot.o: In function `myUsbBoot':
usb_boot.c:(.text.myUsbBoot+0x10c): undefined reference to `CyU3PUsbSSCDisable'
collect2.exe: error: ld returned 1 exit status
cs-make: *** [Fx3BootAppGcc.elf] Error 1
11:04:15 Build Finished (took 737ms)
Can you help me add the function to this project and understand why the build doesn't work?
I attached the project that I'm trying to build.
host: tinker board 2s(rk3399)，kernel 5.13
slave: sg130gs(1280*720, YUYV, 30fps) + fpga(spartan 6) + cyusb3014, isochronous mode
Run this script on host
yavta -c30 /dev/video0
yavta -c30 /dev/video1
After random time(from minutes to hours), one of these cameras would be stuck
USB packets captured by tcpdump indicate that the host keeps polling(isochronous) the slave while the slave keeps responding with a data packet with zero-length
After this, if I restart the test script, the device that is stuck will be missed
some trials on other settings also failed
ov5640(1280*720, YUYV,30fps) + cyusb3014, bulk mode
sg130gs(1280*720, YUYV, 30fps) + fpga(spartan 6) + cyusb3014, bulk mode
In addition, test with a single camera is fine
Any ideas? thanksShow Less
We are facing an issue, that bulk IN data streaming hangs on CYUSB3KIT-001 DevKit (and other our devices base on FX3) connected to USB host controller ASM3142.
Issue was reproduced with FX3 sample FW "USBBulkSourceSink". After pressing "Start" in application "Streamer", device sends few USB packets and application hangs(sometimes causes BSOD on Windows). Bulk OUT works fine.
Issue has not been reproduces on other USB host controllers (such ASM2142, Intel, Fresco Logic..).
We have contacted ASMedia, they sent us latest FW, but issue still can be reproduced.
Has anyone faced the same issue? And how to fix/workaround it?
ASM3142 had been chosen due to Power Delivery and Type C connection.
Hi, I have interfaced the camera sensor to FX3 board. The output data is in the YUV2 format (as default in AN75779). I want to display the data in RAW format. Does FX3 support sending RAW data through USB?
How can I do that and where I need to do changes accordingly.
I was wondering anybody encountered this failure: "Error, "Write failed. Aborting" while programming the firmware to the particular eMMC device, which is Koxia THGBMJG6C1LBAIL (8GB, eMMV 5.1 compliant). We use SanDisk iNAND7250 and this device has no issues to program the firmware using 'cyfwstorprog.exe.'
Two partitions, and a user partition were successfully created but while programming the firmware, I got the following error:
Hi, I am working on interfacing ov7670 with CYUSB3KIT-003 as per this blog:
Checked all the signals like PCLK,HREF,VSYNC,XCLK, all looks fine. firmware loaded to FX-3 but failed to display anything on vlc/webcamoid application. Here s the frame/buffer log...
Please help to resolve this issue. What more I should figure out.
We are planning to use the part CYUSB3014-BZXI in our design but the FPGA we are using only supports 1.5V I/O voltage level. SO could you suggest how can we interface it with our FPGA . And Is there any other part that supports 1.5V I/O level.Show Less