Other Parts Discussed in Thread: AFE7950
Tool/software:
Hi,
I have successfully configured the AFE7950's Digital Step Attenuator (DSA) and Automatic Gain Control (AGC) to regulate the ADC input within the specified threshold. When an RF signal exceeding this threshold is applied, the AFE7950 attenuates the signal to keep it within the required range. For signals below the threshold, the system passes the input signal without attenuation.
However, I also want to amplify low-power signals that fall below the threshold. So, I have configured the Low Noise Amplifier (LNA) and Automatic Level Control (ALC) alongside the DSA and AGC for this purpose. But it didn't worked for me.
So, is it possible to amplify low-power input signals using the AFE7950 by adjusting these settings? If so, what configuration steps would be needed to achieve this?
I have also attached the Latte configuration that I have set for this setup.
for i in range(4): # Internal AGC mode ### RXA/B config sysParams.agcParams[i].agcMode = 1 # Internal AGC mode sysParams.agcParams[i].rfdeten = 0 # RF analog detector is enabled. sysParams.agcParams[i].atken = [0,1,1] # attack peak detector is enabled with big step. # big step, small step, pow det sysParams.agcParams[i].decayen = [0,1,1] # decay power detector is enabled. # big step, small step, pow det sysParams.agcParams[i].atkthreshold = [-25,-27,-28] # Applied threshold of attack detector # big step=-8, small step=-10, pow det sysParams.agcParams[i].decaythreshold = [-28,-26,-26] # Applied threshold of decay detector # big step=-22, small step=-20, pow det sysParams.agcParams[i].atkwinlength = [160,170] # Attack detector Time Constant in absolute time in ns. Max is 40ms sysParams.agcParams[i].decaywinlength = 87380 # Decay detector Time Constant in absolute time in ns. Max is 40ms sysParams.agcParams[i].atkNumHitsAbs = [8,8] # Absolute Number of times signal crosses threshold. sysParams.agcParams[i].decayNumHitsAbs = [8,8] # Absolute Number of times signal crosses threshold. sysParams.agcParams[i].custRfMode = 1 # Use RF analog detector as very big step attack in internal AGC. sysParams.agcParams[i].atksize = [4,2] # Whenever detector triggers the DSA change 0.5dB* value sysParams.agcParams[i].decaysize = [4,2] # Whenever detector triggers the DSA change 0.5dB* value sysParams.agcParams[i].minDsaAttn = 0 # Minimum DSA attenuation used by AGC, 0.5dB* value sysParams.agcParams[i].maxDsaAttn = 50 # 60 # 23 # Maximal DSA attenuation used by AGC, 0.5dB* value sysParams.agcParams[i].totalGainRange = 50 # 57 # 50 # Total gain range used by ALC for gain compensation sysParams.agcParams[i].rfdetnumhits = 8 # Absolute Number of times signal crosses threshold. sysParams.agcParams[i].rfdetstepsize = 8 # Whenever RF detector triggers the DSA change 0.5dB* value, i.e.25 dB. ## External LNA control sysParams.agcParams[i].lnaEn = True # Enternal RXA LNA control sysParams.agcParams[i].extLnaTempModel = 0 # Use a temperature model for the lna gain sysParams.agcParams[i].singleDualBandMode = 0 # RXA is single band sysParams.agcParams[i].lnagain0 = 40 # The gain of external RXA LNA for AGC to compensate, the resolution is 0.03125 dB 864 or 27.0? sysParams.agcParams[i].lnaphase0 = 0 # The phase of external RXA LNA for AGC to compensate in Band0 sysParams.agcParams[i].lnaGainMargin = 4 # hysteresis value when to turn on lna sysParams.agcParams[i].blank_time_extcomp = 255 # number of clocks of FadcRx/8 max 65535 for i in range(4): # ALC and floating point mode sysParams.agcParams[i].alcEn = 1 # RXA ALC enabled sysParams.agcParams[i].alcMode = 3 # RXA coarsefineIQ mode 3 sysParams.agcParams[i].stepSize = 3 # Step Size of 3 # sysParams.agcParams[i].fltPtMode = 1 # RXA Always send MSB of mantissa in floating point mode # sysParams.agcParams[i].fltPtFmt = 2 # RXA 4 bit exponent, 11 bit mantissa and 1 bit sign