You are here

FX3 GPIF Synchronous Slave External Clock and No Flow Control | Cypress Semiconductor

FX3 GPIF Synchronous Slave External Clock and No Flow Control

Summary: 2 Replies, Latest post by danrpr1 on 04 Dec 2013 01:03 PM PST
Verified Answers: 0
Last post
Log in to post new comments.
danrpr1's picture
2 posts

Can the FX3 be configured for a continuous stream of 8 bit data, synchronous, and no flow control?  All I have is a 30 MHz clock, 8 data bits, and a data valid pin.  Everything I've tried causes the FX3 to hang.  If I use the internal clock the data is badly oversampled but I can collect well over 10 GB.  The moment I switch over to the external clock the FX3 hangs after about 64 KB.  Thank you.

rskv's picture
Cypress Employee
1134 posts



Can you please add more details on your implementation like number of threads that you are using, buffer size and number of buffers.

Also it would be great if you can show your GPIF II state machine.

But I feel the concepts mentioned in the following application note are useful for you.

AN75779 - How to Implement an Image Sensor Interface with EZ-USB® FX3™ in a USB Video Class (UVC) Framework



Sai Krishna.

danrpr1's picture
2 posts

 Thank you for your input.  To keep the problem as clear as possible I've used AN86947 (GpifToUSB) as a test case.  The only change I made was to change the GPIF clock setting from "Internal" to "External", and the Data bus width from "32 Bit" to "8 Bit".  The external clock is 30 MHz.  I'm not so worried about overflow and corrupt data at this time as I am the external clock causing the FX3 to freeze.  Using the Internal clock I can collect well over 10 GB of data without difficulty, but with the External clock the FX3 fails after only 64 KB of data.

  I followed the design shown in AN75779 in the past and had the same problem occur.  I get a bit more data, probably because AN75779 is DMAMultiChannel, but the FX3 still fails after a few buffer commits.  My guess is that AN75779 has a long time between Frame Valids that allows it to reset the DMA Channel using INTR_CPU.  If you look at their State Machine you'll see that they always drop into a "dead end" state with INTR_CPU whenever !FV occurs.  My data can continue indefinitely without !FV occuring.  Maybe the FX3 just can't handle a continuous stream of data without flow control?  

Would be interesting if someone could run AN86947 with an External clock setting in the state machine and connect GPIF pin #44 to a clock, run streamer, and see if it hangs.  If their FX3 DVK board runs without hanging then either I have a bad clock or a bad FX3 DVK board!

Log in to post new comments.