Changes between Initial Version and Version 1 of SISOAGC


Ignore:
Timestamp:
Jul 26, 2006, 4:44:30 PM (18 years ago)
Author:
gbmidd
Comment:

First draft of AGC docs

Legend:

Unmodified
Added
Removed
Modified
  • SISOAGC

    v1 v1  
     1== Automatic Gain Control ==
     2
     3Because received signals may have wildly varying magnitudes, a dynamic gain system is required to normalize the magnitude of the signal going into the receiver.  This is needed to guarantee that clipping does not occur in the analog-digital converters, and also to ensure that the signal is large enough to be meaningful to the receiver.
     4
     5The gain value is chosen using an automatic gain control (AGC) peripheral, which detects the magnitude of the received signal and determines radio-amplifier gains which place the baseband output signal in the correct range for the receiver.
     6
     7== Algorithm Details ==
     8
     9The Maxim radios apply gain at two points during downconversion: first at RF and then at baseband, after the downconversion.  The RF gain may be set to any of 0, 15 or 31 dB, while the baseband gain is less granular and may be set to values between 0 and 61 dB in steps of 2 dB.
     10
     11The radio also returns a received signal strength indicator (RSSI), the output of an analog integrator, which gives an estimate of the received signal strength in dB.  From this value, an approximate amount of gain may be determined by subtracting the RSSI from the target level.
     12
     13The AGC peripheral is triggered by a packet-detect signal.  After this arrives, the AGC reads the RSSI and computes a rough gain estimate as described.  This gain is then decomposed into the RF and baseband (BB) gain parts.  These gains are set, and the system is allowed to settle for some time.
     14
     15After a settling period, a digital power measurement (vIQ) is computed (taken as the sum-complex magnitude in dB), providing a much more accurate estimate of the signal strength.  The final adjustment to the gain is calculated by subtracting vIQ from the target level.
     16
     17The final gain is set, and the gains are locked until the AGC is reset.  At that time, the gains are reset to maximum RF (31 dB) and calibrated BB gain (dependent on the user-defined noise estimate).
     18
     19== API ==
     20
     21A driver abstracts register-level operations from the programming-interface; below the functions for controlling the AGC are described.
     22
     23'''void agc_Initialize(int noise_estimate)'''
     24
     25Resets and initializes the AGC peripheral with all required parameters.  The calibration baseband gain is computed from the noise estimate, so an accurate guess of the noise floor is required.  This value is generally near -85 dB.
     26
     27Upon completing this routine, the AGC is enabled and online.
     28
     29'''void agc_MasterReset()'''
     30
     31Resets all state in the AGC, though does not reinitialize any parameters.  All averagers and other state-machines are reset, and the AGC is enabled when the routine completes.
     32
     33'''void agc_Reset()'''
     34
     35Resets only the gain values, but no other state in the core.
     36
     37'''void agc_FiltSel(unsigned int state)'''
     38
     39Choose the downsampling filter depending on the value of state.
     40
     41state = 0 : downsampling only
     42state = 1 : use 32-tap decimating filter
     43
     44'''void agc_SetDCO(unsigned int state)'''
     45
     46Enable or disable DC Offset correction
     47
     48state = 0 : DCO disable
     49state = 1 : DCO enable
     50
     51'''agc_SetTarget(c)'''
     52
     53Set the target signal strength value in dB