USB superspeed peripherals Forum Discussions
Hello,
My fx3 has to work as a usb 3.0 device when it is connected to host. But when it is connected with usb2.0 device, it has to work as usb 2.0 host(OTG mode).
One possible simple method could be loading individual firmware suitable for each case.
But I want to do the above in a single firmware. What approach could be effective in this case?
Regards,
Rossi
Show LessI would like to debug a CYUSB3014 over putty terminal in the same way it's possible with the CYUSBKIT-003 which conveniently has a micro usb port. For example, printing debug messages.
Would this work? It's quite expensive so i'd like to check before I go and purchase this. https://www.infineon.com/cms/en/product/evaluation-boards/kit_miniwiggler_3_usb/
thank you
Show LessUsing slavefifo2bit mode, GPIF is the producer and usb is the consumer. flag_a is Thread_0_DMA_Ready, and flag_b is Thread_0_DMA_Watermark. When pclk is operating at 96Mhz, flga_a is always 0 after system startup. However, when pclk is lower than 64Mhz, flag_a is at a high level after system startup, and the bunsystem works normally.
What is the possible cause of the anomaly working on 96Mhz?
Show LessHello,
In my application, fx3 has 4 endpoints, 0x1,0x81,0x2,0x82.
Those 0x1,0x81 are designed to transfer data while 0x2,0x82 are for video.
The DMA for video is set as AUTO mode for maximum throughput(Full HD video), while the data channel is MANUAL.
I'm curious whether the video channel can be running without any interruptions from the data channel. (i.e, no degrading in video throughput)
It would be great for me if the data and video can be exchanged irrestective of each other.
Any idea or suggestions will be highly appreciated.
Regards,
Rossi
Hi,
I got the green color streaming from OH01A10, like in the below thread.
https://community.infineon.com/t5/USB-low-full-high-speed/Streaming-Raw10-data-OV7251/td-p/105107
I going to do, convert RAW10 to RGB demosaicing using Opencv Library.But I cannot decode OpenCV's output, "YUY2 frame."
I'm trying to print the frame shape in Python-, with three planes for each pixel, like (print(frame.shape) ->640, 480, 3).
I don`t know, how I do to convert the "YUY2 frame – 3 Plane" to "Single-Plane RAW10 Bayer"
CX3 Sensor Config:
Show Less
I am trying to diagnose timing problems on my device using the Slave FIFO example as a starting point and had 2 clarification questions. The questions are the following:
1. Is it ok to de-assert SLCS as the FIFO address changes? Currently I am de-asserting SLCS when the address on GPIF changes and then reasserting to continue writing.
2. For the Data IN lines is the High Z state required? Currently I am leaving the data lines in an "I Dont Care", "0" or "1" state and am wondering if that is ok.
Thanks,
Show LessI have a need to write synchronously to a DAC. No samples can be skipped. This requires multiple threads ping-ponging, just as it does on reading. However...
According to https://community.cypress.com/t5/USB-Superspeed-Peripherals/GPFI-II-question/m-p/84212 there is a bug in GPIF Designer which requires an extra state to be inserted between driving on thread0 and driving on thread1. Without this extra state, GPIF Designer reports:
"'Thread Number' in action 'DR_DATA' of state-'WRITE_TH1' need to be same as 'Thread number' of action 'DR_DATA0' in state 'WRITE_TH0'"
This extra state causes the GPIF to not write a sample every DMA buffer, which is a huge problem.
So, questions:
1) Is this a bug in GPIF Designer or in the GPIF state machine? If the former, can we get a fix? That bug was pointed out more than 6 years ago and prevents synchronous continuous write from working at all. If the latter, is there a workaround?
2) Is there documentation available about the waveform states (alpha, beta, lambda) so I can work around the GPIF Designer bug and write my own state machine? I've tried reverse engineering the bits, but don't want to burn days investigating something which may never work.
I've attached two images--the first is the state machine I want, but GPIF Designer will not let me have. The second is the state machine I can get, but does not work due to the skipped GPIF driving samples.
Thanks for the help!
Show LessHi,
After bootloder finishes successfully via Cypress USB Control Center, I have to do a power cycle to run the code.
The PMODE[2:0] is Z1Z, I2C ->USB
This the post build step: elf2img.exe -i ${ProjName}.elf -o ${ProjName}.img -v -i2cconf 0x2C
Since I am not using 2-stage bootloader then: #define CY_U3P_SYS_MEM_TOP (0x40080000)
I write 0xA5 to the first address of the EEPROM then I reset the MCU, Cypress USB Control Center detects the bootloader. Then by suing this tool I update the EEPROM and it says successfully, but it doesn't leave the bootloader.
I can see the bootloader is transmitting over UART:
▒▒=1C: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=1D: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=1E: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=1F: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=20: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=21: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=22: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=23: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=24: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=25: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=26: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=27: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=28: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=29: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=2A: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=2B: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
▒▒=2C: Device initialized. Firmware ID: 50 33 58 46 0 47 4F 52
Even if using the "Reset Device" button in the Control Center doesn't reset the device.
Thanks
Show LessI have been working on debugging DMA errors with the FX3 connected to a Xilinx FPGA and using the FX3's built-in FIFO to transmit UVC data between the two devices. In the process of changing the FPGA's source to only transmit when a full video frame is available I have encountered a strange state where when I configure the FPGA to produce some dummy data for the FX3, enable PCLK transmission on the FPGA side and then open up the FX3 in the Windows Camera app I can see multiple small packets of UVC data being transmitted on UART logs and Wireshark but I see no activity on the control lines in an ILA capture. I have included an ILA capture, Wireshark capture, and UART logs from when this state is encountered. I have also included the firmware image and FX3 source which allow this state to be entered. Below I recap the exact steps taken. Any help figuring out how these buffers are being generated when there is no controls active would be greatly appreciated.
1. Upload firmware to FX3, reboot device
2. Enable video input and PCLK from FPGA and open up UART logs
3. Unplug and re-plug FX3 USB cable into laptop
4. Start Wireshark capture
5. Open Windows Camera app and open the FX3 UVC camera
=== "UVC Buffer: XX bytes" messages start flooding UART logs ===
6. Take ILA capture
7. Close UART log
8. Stop Wireshark capture
Thanks,
Show LessHello everyone,
I am trying to modify the example of "Application Notes 65974 Rev. P" that shows how to design an interface between FPGA and FX3 using 32 bits Slave Synchronous, described on Section 11.2 and 11.3.
I would like to use 8 bits data width instead of 16 or 32 bits as described in the example, using Stream - IN transfers Read/Write between Host PC, FX3 and FPGA.
I modified the Interface via GPIF Designer to have 8 bits data bus, 2 address pins lines and 2 flags (A and B).
Then I got confused because Section 9.2 shows the same idea using 16 bits with 2 flags using partial watermark flags. Where is the source code for the FW and GPIF projects (section 9.2)?
Thanks in advance.
Rgrds
Marcos
Show Less