2 Replies Latest reply on Oct 8, 2012 2:16 AM by ersin.oezalp

    Slave Fifo Write to USB

    ersin.oezalp

      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

        • 1. Re: Slave Fifo Write to USB
          rama.sai.krishna.vakkantula

          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.

          • 2. Re: Slave Fifo Write to USB
            ersin.oezalp

            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