I am currently working in a project based on CX3. We have developed both an own hardware which embedded it, and a host application.
Our product works as a bridge between MIPI and USB protocols, in order to drive the pixel information from a CMOS Image Sensor to a host.
A complex softwere layer, inside the host, will run after it applying image processing algorithms.
After this overview, I want to explain my doubt. I have been working in both hardware and firmware layers, for this reason I have EZ-USB Suit
installed in my laptop, because I use it to complile the firmware image, which it will be store inside the embedded SPI-Flash memory in the PCB. So, as I have installed the EZ-USB Suite, my laptop has the cypress custom driver which achieve recognize the CX3 as Cypress USB BootLoader. Finally I store the firmware in our hardware design via Control Center tool.
But We need to update the firmware image in whatever laptor, including all of them which do not have the EZ-USB Suite installed. For this reason I would like to know which are the minimum necessary files (contemplated in the SDK EZ-USB Suite) that We need to add in our software layer in order to be able to upload the firmware, discarding the rest of the files of the SDK EZ-USB Suite.
Thanks so much.Show Less
When I'm trying to write data to Fx3 device from a FPGA device, I always get zero-lengh data transfer despite buffer being full (I know it is full base on the state of DMA flags). I noticed strange behavior of my RDY signal in a middle of a transfer it goes low for some reason and after few clock cycles it goes high (as it should be)
In attachment i'm sending you firmware which I use and state machine from GPIF designer
I am trying to change the descriptor of usbuart example to access to data in cdc and vendor at the same time.
I mean when I am sending data through uart to /from usb , I have access to data by control center as well. So I added vendor descriptor to that example with the same DMA channels, but nothing comes up in CC. Should I change anything else?
In device manger I can see that as a com port, but nothing appears in CC.
I attached the modified descriptor file.
UVC based application for FX3 is created based on the framework of AN75779. 24bit GPIF is used(D23:D0) . image is 800*600. Pixel depth is 24bit/pixel, i.e. 3Byte/pixel. Since it is 24bits/pixel raw image, GUID for RGB888 is used for media type and RGB888 will be debayered in host. DMA buffer keeps the same: 16kB, 4 counts, 2 sockets. Only change the GPIF bus to 24bits, LD_DATA_COUNT, LD_ADDR_COUNT to 5455. However, it can't stream.
But according to KBA226722,
S= 800*600*3= 1,440,000 byte,
F= int(S/(16384-16))= 1440000/16368 = 87
P= fraction of S/(16384-16) * 16368 = 0.976594*16368 = 15984
It should be working.
I noticed that in KBA226722 , it mentioned in item 5 "If exact line data (i.e nothing is appended at the end of the line data) is intended to be sent to the Host, then make sure that line size in bytes is divisible by GPIF bus width (in bytes)." I don't quite get this point.
Help is needed on the proper setting of DMA configuration and GPIF state machine data and address count value.
Thanks in advance
Last time I change cypress bulk to isochronous mode. Detail refer to https://community.cypress.com/t5/USB-Superspeed-Peripherals/how-to-change-bulk-to-isochronous-mode-in-uvc-project/m-p/89823#M7126
I find ubuntu16.04 + cypress(Isochronous ) can only open single camera. if open multiple cameras simultaneously, the first camera works well, but next camera will report "VIDIOC_STREAMON failed 28, No space left on device."
Apr 20 12:31:52 ecu kernel: [66731.190810] usb 10-3: Not enough bandwidth for new device state.
Apr 20 12:31:52 ecu kernel: [66731.190831] usb 10-3: Not enough bandwidth for altsetting 1
Is the cypress code needs some changes for bandwitdth setting?
Could you help to check the attach file and help to fix it ?
Appreciate for your help!
I continued to discuss the issue about USB1.1，last time maybe I gave inadequary message about this issue.
Firstly,I introduce my using scene, I choose the fx3 firmware,which is wanted to use the usb peripheral mode,the usb worked in full speed mode.
According to the USB2.0 or USB1.1 protocol，In full speed mode ,the packesize can be set 8,16,32,64bytes,we can set wMaxPacketSize in the device descriptor.
Now I met the issue ,I set wMaxPacketSize is 8bytes,the usb can't be found,only set wMaxPacketSize is 64bytes,the usb can run.
I want to know if the wMaxPacketSize can be set 8bytes in full speed,and the relationship betweenthe bcdUSB and wMaxPacketSize in the device descriptor
Please give me some support or example,guys.
I have a CX3 project and now I need to do UART debugging, but my hardware does not have the UART wired out. The alternative I found in the community is to add a CDC interface to the UVC project. I have tried to find a way to add it myself on Cypress community, but I failed, I don't know how to add it and what information I need to change in the firmware, can you tell me exactly what to change or just help me to change it to create a CDC interface? Thank you very much!The following file is a project to which I have not added the CDC interface，I would like to add CDC interface on top of that.