'Dumb' GPIF throughput with cy7c68013a

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

cross mob
Anonymous
Not applicable

Hi,

   

 

   

I'm working on a design involving a DDS which needs a high speed interface to a PC. The cy7c68013a seemed suitable. I'd like to achieve the highest possible throughput from Host -> FX2LP -> DDS by continuously keeping the FIFO filled.

   

However, I can't find any information on how to set-up the GPIF in such a way that it will automatically start a transaction whenever there is data available in the FIFO. Whever a transaction has finished, and the GPIF is idle again, a new bulk transfer does not automatically initiate a new transfer out of the GPIF; I seem to need to re-initiate a new transfer each time. The only way I have gotten the chip to continuously transmit is to never let the GPIF go idle, but this means it's also transmitting zeroes, when the FIFO is empty.

   

Is there something I'm missing?

   

Any help will be highly appreciated!

   

Thanks in advance.

   

Regards,

   

 Tom

0 Likes
1 Solution
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello Tom,

After iterating through the states, the state machine finally reaches the IDLE state. The firmware can be implemented to check if the GPIF state machine is in the IDLE state and if data is present in the FIFO. In case data is available, the GPIF can be triggered again. This check can be performed in the TD_Poll() function block so that it is repeated continuously. Kindly, refer to the master mode firmware from the below App Note.

http://www.cypress.com/documentation/application-notes/an63787-ez-usb-fx2lp-gpif-and-slave-fifo-conf...

Best regards,

Srinath S

View solution in original post

0 Likes
1 Reply
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello Tom,

After iterating through the states, the state machine finally reaches the IDLE state. The firmware can be implemented to check if the GPIF state machine is in the IDLE state and if data is present in the FIFO. In case data is available, the GPIF can be triggered again. This check can be performed in the TD_Poll() function block so that it is repeated continuously. Kindly, refer to the master mode firmware from the below App Note.

http://www.cypress.com/documentation/application-notes/an63787-ez-usb-fx2lp-gpif-and-slave-fifo-conf...

Best regards,

Srinath S

0 Likes