We are having problems making the FX3 read and write data in serial mode (data out + data in + PCLK) through GPIF interface. We followed the instructions given in another forum post http://www.cypress.com/?app=forum&id=167&rID=75590, where the 14th bit of the CY_U3P_PIB_GPIF_CONFIG was advised to be set high and changed the CY_U3P_PIB_GPIF_SERIAL_OUT_CONFIG appropriately. But it doesn’t seem to work. As a starting point we modified the example program "gpiftousb" to be "usb to gpif" and included modifications suggested in the post above. The 8 bit configuration works fine, but 1-bit (only data out) configuration doesn’t seem to work. Basically no data coming from the DQ15. Could someone possibly point in the right direction what else needs to be modified to make it work. We attached the GPIF include file before and after serial communication modification.
Sebastian and Dima
Thank you Madhu,
your advice would be much appreciated! I am sure other members of the community will benifit from this undocumented feature of GPIF, where serial read/write interface is enabled at 100MHz clock speed.
I have two FX3 boards. I used from the attached code(usb to gpif) on one of them and I sent out data by serial out (DQ, FS and clock(internal) ) in endpoint 0x01 output and it works when I checked on oscilloscope .
I am trying to receive that data on the other board by serial in(DQ, FS and clock(external)) by endpoint 0x81 input. I don't receive any thing. I connected DQ and FS in one board to DQ and FS in the other board, respectively.
I modified the "usbtogpif" code and changed CY_U3P_PIB_GPIF_SERIAL_IN_CONFIG = 0x00007c83 and CY_U3P_PIB_GPIF_SERIAL_OUT_CONFIG = 0x00001F82. Should I change anything else?
thank you very much for your example. Using it, we stripped down our code to bare basics and managed to make it work.
However, we ran into another problem. This one is twofold.
We need to transfer a lot of data (~900k bits) from a PC to our device for configuration.
We also need to receive data (~900k bits) from our device to the PC.
Both operations has to happened seamlessly without losing clock cycles for buffers "recharge".
The seamless transfer from the device to the PC is described in the UVC examples, e.g. AN75705. We implemented multithread seamless data receive using 8 bit bus and about to start tests. Could this mechanism be implemented using serial interface rather than 8 bit?
Also it does seem to us that multithread seamless data transfer from FX3 to our sensor cannot be implemented. The best we were able to achieve over last few days is two clock miss for every data packet due to extra state required between two transfers. Can this be overcome? Also can this be implemented using serial interface?
The whole point of our development is to avoid the use of a FPGA.
Your thoughts on these questions would be very much appreciated!