Serial interface using GPIF II

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
dimac_335226
Level 1
Level 1
5 replies posted Welcome! First question asked

Hello there,

   

 

   

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.

   

 

   

 

   

Cheers,

   

Sebastian and Dima

0 Likes
8 Replies
Anonymous
Not applicable

 Hi,

   

I will test this internally and update you.

   

Regards,

   

- Madhu

0 Likes
dimac_335226
Level 1
Level 1
5 replies posted Welcome! First question asked

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.

   

Cheers,

   

Dima

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

 Hi,

   

I tested it on my end and the USBtoGPIF is working on my end.

   

Attaching the Fw and state machine.

   

Regards,

   

- Madhu Sudhan

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

 Attaching the State machine.

   

Regards,

   

-Madhu Sudhan

0 Likes
Anonymous
Not applicable

 In serial mode, I was able to get a throughput of 12000 KBps which was expected.

   

Regards,

   

- Madhu Sudhan

0 Likes

Hi Madhu,
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[15], 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[14], FS and clock(external))  by endpoint 0x81 input. I don't receive any thing. I connected  DQ[15] and FS  in one board to DQ[14] 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? 
Thanks

0 Likes
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted
0 Likes
dimac_335226
Level 1
Level 1
5 replies posted Welcome! First question asked

Hello Madhu,

   

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!

   

Cheers,

   

Dima, Sebastian

0 Likes