Slave Fifo Write to USB

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

cross mob
Anonymous
Not applicable

Hello,

   

I am using Slave Fifo interface with 2 bit address.

   

It is written in many threads that when writing to the Fifo I have to monitor the ThreadReady and Watermark flags not to loose any data. I use only ThreadReady and I can not generate the condition where data is lost. I tried with burst lengths changing from 2 to 32 but stil all data is transferred correctly. I also tried slowing down the reading process in my PC program but the result is same. The flag is getting low always 4 clocks after SLRD# goes high. Did I misunderstand something or did you implement a security logic in the latest SDK.

   

Thanks,

   

Ersin

0 Likes
2 Replies
Anonymous
Not applicable

Hi Ersin,

   

Yes. We need to monitor the ThreadReady flag while writing data to FX3. This ThreadReady flag indicates whether the buffer allocated to that thread is free to accept data or not (in case of writing).

   

How these DMA flags are configured in your application?.

   

Thanks,

   

sai krishna.

0 Likes
Anonymous
Not applicable

Hi Sai,

   

I have 4 Fifos. 2 for reading and 2 for writing. There are 4 ThreadReady flags each of them are connected to one fifo.

   

When I write to the fifos using SLWR#  I monitor one of the ThreadReady flags. My logic is simple: If flag is low don't transfer else transfer using fixed burst lengths. As far as I understand since the flag signal has a delay of 3 clocks I must loose data, but this never happens. If the fifo gets full the flag signal gets low 4 clock after SLWR# gets high.

   

Note: In my previous post I wrote SLRD# instead of SLWR#.

   

Thanks

   

Ersin

0 Likes