FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Author Topic: FT600q communication problem  (Read 11961 times)

Zoltan

  • Newbie
  • *
  • Posts: 3
    • View Profile
FT600q communication problem
« on: January 18, 2024, 05:46:40 PM »

Hi

I would need continuous communication between the IC and the PC, at a speed of 160MB/sec. There is no problem with the speed, but the communication between the IC and the data source is not continuous, but intermittent!
I am currently using a test environment for testing. Here, I upload the data to the IC at a speed of 100MHz, and this is continuous for 20.47usec. Then in each case comes an approx. 0.5-1usec pause in reception (TXE_N=1), after which the whole cycle starts again.
The time of 20.47usec matches the size of the internal FIFO (1 channel out, 1 channel in direction = 2048 words), but I don't understand why there is a little pause afterwards??!

But that's the minor problem. The biggest one is that in stream mode, when the value set on the FT_SetStreamPipe API is reached, a pause occurs again (TXE_N=1), but this lasts for about 10usec! Whatever size is specified for the ulStreamSize parameter, there is always a pause of approx. 10usec at the end!
This is quite a problem, because the data source requires continuous communication, and the bigger the pause in the communication, the bigger the buffer I have to use to bridge these pauses.
This big pause is there even if I used my own test program and even if I tested it in the FT600DataStreamerDemoApp program!

Does anyone have an idea of what causes these regular pauses? And is there any way to eliminate them? But at least the goal would be to eliminate the 10usec pause...

Thanks
Logged

FTDI Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 897
    • View Profile
Re: FT600q communication problem
« Reply #1 on: January 19, 2024, 04:19:30 PM »

Hello,

There are 2 kinds of delays / pauses.

1. Occurs when FIFO switches from ping to pong buffer. There are 2 FIFO Buffers and when current one gets filled, hardware moves to second FIFO. There will be a brief delay during this period.
2. Occurs when a session is ended and a new session is created. This delay can be slightly larger than the above one.
A session will be ended when the length of transferred data equals with the stream length set by FT_SetStreamPipe API (if not in stream mode, then the length passed in Read Pipe API), or when an unaligned write happens.
 
Between the end of session and start of new session, there could be some delay as observed.

If the stream length is shorter, this delay will be seen often.
The recommended stream length is, several multiples of the FIFO size.
For example, if the FT600 configuration uses 4K FIFO size, it's best to make the stream length as multiples of 4K - Say 10 times or 100 times of 4K.
This way, instead of seeing a long delay every 4K, the long delay will happen only at 400K transfer boundaries.

The FPGA is expected to buffer at least a FIFO size worth of data so that the delay does not cause any issues such as overflow.

If you have any additional questions please contact us via email as we have already been in contact with you.

Best Regards,
FTDI Community
Logged