When does Rx FIFO start writing?

Having issues with the site, hardware, source code, or any other issues?
Post Reply
sandeep
Posts: 4
Joined: Mon Jul 08, 2024 4:41 am

When does Rx FIFO start writing?

Post by sandeep »

Hi All, Suppose I configure TX_1 of my xA4 device to transmit a sinusoid of frequency 1 KHz, which needs to be received using one of the RX channels of the same device. The following represents the pseudo code of my original C++ code for achieving this.

Code: Select all

1. bladerf_open()
2. configure_TX(center_freq, bandwidth, sample_rate, gain etc.);
3. configure_RX();
4. bladerf_sync_config() for TX;
5. bladerf_sync_config() for RX;
6. bladerf_enable() for TX;
7. Spawn the TX thread that generates samples of the sinusoid and transmits the same indefinitely until I break;
8. bladerf_enable() for RX;
9. Spawn the RX thread that calls bladerf_sync_rx() to receive as many NUM_SAMPLES that I need;
10. Join TX and RX threads, and, bladerf_close()
Here, at what stage of the pseudo code can we say that the actual received samples start entering into the Rx FIFO?, i.e., when is Rx FIFO write getting enabled? The reason behind this question is the observation of some transients at the beginning of the received sinusoid when we execute the above code. My thought was that, the transients are due to the settling time required for the PLLs, and hence can be avoided if we start sampling after waiting for some time post configuration. However, irrespective of whichever stage I put a WAIT (sleep), the transients at the beginning of the received samples are always there.
Post Reply