2 Replies Latest reply on Feb 18, 2020 2:20 PM by mbrown

    How do I synchronize transmit and receive capture with RFSoC Explorer?


      The requirement is to synchronize an ADC capture coincident with the start of DAC transmission.

      Is there a way to do this with RFSoC Explorer?

        • Re: How do I synchronize transmit and receive capture with RFSoC Explorer?

          This is a very relevant request!


          The short answer is no. Read on for a little background and a potential workaround...


          The firmware running on the RFSoC device is Linux-based, and communicates to a rather intricate design in the Programmable Logic (PL). In order to synchronize RF-ADC Rx with RF-DAC Tx, you'd need add a small trigger mechanism in the PL. The silicon supports various event types for updating the RFDC subsystem, one being a PL-based trigger.


          If your goal is to setup a transmit and repeat buffer at the RF-DAC and then look for a particular waveform or preamble after capturing a buffer of samples at the RF-ADC, then one solution would be to create a waveform with a duration less than half the depth of the RF-ADC buffer, thus ensuring that your repeated waveform will be captured in it's entirety.


          RFSoC Explorer (v1.0.0) captures 1M samples at the RF-ADC buffer. When we expose the API in the next release you'll be able to specify the number of samples. Does RFSoC Explorer have an API for programmatic access in MATLAB & Simulink


          For now, here's an example approach.




          FsADC = 3932.16 Ms/s

          FsDAC = 4546.56 Ms/s


          Buffer duration (sec) = nSamples / rate (Msamples/sec)


          Rx buffer duration (sec)  = 1 Msamples / 3932.16 Msamples/s = 254.31us


          Max Tx buffer (nSamples) = [Rx buffer duration / 2] * FsDAC = [254.31us/2] * 4546.56 Ms/s = 578,125 samples (or less)


          Of course if FsADC = FsDAC, the sample rate drops out of the equation and you simply create a transmit buffer < 500ksamples.



          2 of 2 people found this helpful