I'm using AD-FMCOMMS3-EBZ board assembled on the Xilinx EVB SP605.
I'm using script generated by the AD936X Customer Software ver. 2.1.1 to configure the AD9361 device.
Project and script files are attached.
My application requires FDD mode of operation, One RX and one TX channels, fast response time of the AGC with relatively narrow channel bandwidth (around of 250kHz).
AGC Unlock conditions are set to:
- When the AD936X exits the receive state, restart the Gain Lock Algorithm and go to Max Gain;
- If signal Power increases above Lock Level by 10dB for 32 Rx samples;
- If signal Power decreases below Lock Level by 20dB for 32 Rx samples;
- If Large LMT Overload occurs, do not change the Gain bat restart the Gain Lock Algorithm;
- If Large ADC Overload occurs, do not change the Gain bat restart the Gain Lock Algorithm;
- If EN_AGC is pulled high, restart the Gain Lock Algorithm and go to Max Gain;
- When testing signal power against the thresholds above, measure power for 256 Rx sample periods.
The attached project and script files reflect configuration of the device including settings for the Fast attack AGC.
To test the AGC response time I'm using RF signal generator configured to produce Phase modulated signal (with carrier suppressed to -50dBc) which is switched ON (1ms) and OFF (1ms).
In addition I can change the RF signal level from -100dbm to 0dBm with resolution of less than 1db.
When I changing the input RF signal level by 1dB each time, from -80dBm to -4dBm in up and down directions, everything works great! Received signal comes to its steady state level in less than 4us and the gain unlocks when RF signal switched OFF.
The problem appears when I'm applying 0dBm and trying to reduce RF input power level in steps of 1dB down to -100db - the gain does not change, it gets stuck on the index 0 or 1.
The same happens when I'm changing RF signal level by 10db or more at different levels, let say from 0dBm to -30dBm from -20dBm to -30dBm or from -30dBm to -60dBm. The gain gets stuck on the index corresponding to the high level of the input signal.
Bringing High the EN_AGC, exit the receive state do not help. Only going to the Alert state unlocks the gain.
Please help to solve the problem.