AN-1315: Autonomous IR Calibration on the ADF7024
Introduction
Heterodyne radios, such as the ADF7024 transceiver, use a mixer to downconvert received radio frequency (RF) signals to an intermediate frequency (IF). Interfering signals, called interferers, that lay on the image frequency are also mixed down to the wanted frequency. The interfering signals desensitize the receiver, resulting in blocking on the wanted channel.
In theory, an ideal transceiver, which employs an IQ receive architecture, can be configured to prevent the image frequency from mixing onto the wanted channel. This theory assumes that the gain balance and the phase orthogonality of the mixer quadrature paths are perfectly aligned. In practice, some imbalance exists due to imperfections in the mixer. The image calibration process adjusts the gain and phase of the mixer via a firmware download module until the quadrature signals are optimally balanced, which provides the maximum image rejection.
This application note describes the fully autonomous image rejection (IR) calibration firmware download module for the ADF7024 transceiver IC. This firmware autonomously optimizes the image rejection with a default configuration that requires minimum user input.
Extended options for IR calibration are available with this download; however, this application note only describes the basic operation.
The firmware download binary, rom_ram_7024_2_2_IRcal_ dragon_filter_visu.dat, is included in the ADF7024 design resource package, which is available for download on the ADF7024 product page at www.analog.com/ADF7024.
Fully Autonomous Image Rejection Calibration
A downloadable IR calibration module is provided with the ADF7024 to enable optimization of image rejection performance during operation. The calibration process is fully autonomous.
The IR calibration firmware controls the ADF7024 receiver. The IMAGE_REJECT_CAL_CONFIG register (Address 0x319) is programmed internally by the IR calibration firmware and does not need to be set by the user. The firmware applies an internally generated RF source at the image frequency to the RF input and monitors the received signal strength indication (RSSI) output. As a result, it selects an appropriate receive (Rx) frequency for the algorithm. Note that it does not restore the original frequency values upon exiting the IR calibration algorithm; therefore, the user must reload the desired Rx frequency values after an IR calibration.
The IR calibration algorithm then maximizes the image rejection performance by iteratively minimizing the quadrature gain and phase errors in the mixer filter. Note that the IR calibration algorithm uses the packet RAM as temporary storage during operation; thus, any packet data already in packet RAM is overwritten.
After calibration, new optimum values of phase and gain are loaded back into IMAGE_REJECT_CAL_PHASE (Address 0x118) and IMAGE_REJECT_CAL_AMPLITUDE (Address 0x119). These calibration values are maintained in the configuration registers during sleep mode and are automatically reapplied from a wake-up event, which keeps the number of calibrations required to a minimum.
An IR calibration can be executed multiple times by resending the IR calibration command, CMD_IR_CAL (0xBD). The resultant values are stored in the 0x118 and 0x119 addresses each time. For more repeatable results, use the averaged results of multiple trials of the IR calibration as final values for the 0x118 and 0x119 address settings.
In general, the user must decide the timing and conditions under which to download and run the IR calibration module. Analog Devices, Inc., recommends that, at the minimum, an IR calibration be performed on a device at power-up initialization.
The performance of the image rejection depends on temperature. Therefore, to maintain optimum image rejection performance, it also recommended that a calibration be activated whenever a temperature change of more than 10°C occurs. The ADF7024 on-chip temperature sensor determines when the temperature change exceeds this limit.
Note that when running the IR calibration algorithm, these packet RAM locations take on a new function as described in Table 1. When the algorithm is not running, they default back to the definitions provided in the ADF7024 Reference Manual (UG-698). This manual is in the ADF7024 design resource package, which requires registration.
Registers For IR Calibration
Table 1 to Table 3 describe the registers used for IR calibration.
Address (Hex) | Register | Value | Description |
0x010 | IR_CAL_CTRL1 | 0xC0 | Default IR calibration control values |
0x011 | IR_CAL_CTRL2 | 0x04 | Default IR calibration control values |
Bits | Name | R/W | Description |
7 | Reserved | R/W | Set to 0 |
[6:0] | IMAGE_REJECT_CAL_PHASE | R/W | Sets the IQ phase adjustment |
Bits | Name | R/W | Description |
7 | Reserved | R/W | Set to 0 |
[6:0] | IMAGE_REJECT_CAL_AMPLITUDE | R/W | Sets the IQ amplitude adjustment |
IR Calibration Firmware Download Procedure
The firmware download binary, rom_ram_7024_2_2_IRcal_ dragon_filter_visu.dat, is included in ADF7024 design resource package, which is available for download on the ADF7024 product page at www.analog.com/ADF7024.
The IR calibration firmware module must be stored in program RAM (PRAM) starting from Address 0x0000.
The program RAM can only be written using the memory block write. Set SPI_MEM_WR to 0x1E.
The sequence to write a firmware module to program RAM is as follows:
- Ensure that the ADF7024 is in the PHY_OFF state.
- Issue the CMD_RAM_LOAD_INIT command.
- Write the module to program RAM using a serial peripheral interface (SPI) memory block write.
- Issue the CMD_RAM_LOAD_DONE command.
- Confirm that the status word indicates CMD_READY and the FW_STATE value is PHY_OFF.
The program RAM is volatile memory and must be reloaded each time the transceiver wakes up from the sleep state.
Running IR Calibration
A full sequence to download and run IR calibration from a hardware reset is shown in Figure 1.
After normal initialization, the IR calibration firmware is downloaded to the ADF7024 by the host processor using the sequence described in the IR Calibration Firmware Download Procedure section.
Before entering the PHY_ON state, ensure that the BB_CAL bit (Bit 6) in the RADIO_CONTROL register (Address 0x11A) is set to 1 to enable IF filter bandwidth (IFBW) calibration on transition to the PHY_ON state.
When in the PHY_ON state, program the 0xC0 and 0x04 IR calibration configuration parameters to packet RAM Address 0x010 and Address 0x011 as defined in Table 1. IR calibration can then be executed by issuing CMD_IR_CAL.
It is important that the host wait for IR calibration to complete before reading the updated RADIO_IMAGE_REJECT_ CAL_PHASE and RADIO_IMAGE_REJECT_CAL_ AMPLITUDE registers. The IR_CAL status cannot be confirmed by checking the status word.
There are two recommended ways to confirm the completion of IR_CAL. The methods are as follows:
- When the firmware state returns to PHY_ON after IR_CAL operation completes and the CMD_READY bit is set, the IR calibration has completed.
- Alternatively, the internal calibration status register (0x33A), Bit 0, can be checked. Note that this function is not detailed in the ADF7024 Reference Manual (UG-698) because it is only relevant when IR calibration firmware is running. Details of the calibration status register are shown in Table 4. Bit 0 determines if the IR calibration is complete.
Bit | Name | R/W | Description |
[7:1] | Reserved | R | Reserved |
0 | MCR_IMAGE_REJECT_CALIBRATION_STATUS | R | 0: IR calibration not complete 1: IR calibration complete |
Averaging of IR Calibration Values
More repeatable results can be obtained by averaging the IR calibration values, which requires control from a host processor. An example of this program is shown in Figure 2.
The host processor has an iteration counter, ITERATION_CNT. It issues a CMD_IR_CAL command for this number of iterations, waits for the calibration to complete, and then rereads and averages the results. The averaged values are then programmed back into IMAGE_REJECT_CAL_PHASE (Address 0x118) and IMAGE_REJECT_CAL_AMPLITUDE (Address 0x119) at the end of the loop.
Results of IR Calibration
The results of each IR calibration are stored in the configuration Register RADIO_IMAGE_REJECT_CAL_PHASE (Address 0x118) and Register RADIO_IMAGE_REJECT_CAL_ AMPLITUDE (Address 0x119), overwriting any previous values in those registers.
If the host is maintaining an average, as shown in Figure 2, when the averaging is complete, the host writes the averaged values back to Address 0x118 and Address 0x119.
These calibration values are maintained in the configuration registers during sleep mode and are automatically reapplied upon issuing CMD_CONFIG_DEV (0xBB).
The typical improvement in image attenuation post-calibration is shown in Figure 3.
Advanced Operation
This application note explains the basic operation of the IR calibration firmware module. More advanced techniques, such as seeding the algorithm for faster calibration times or using an external reference sources for a more robust calibration code, are not described. If more advanced options are required, contact Analog Devices.