The ADF7023 is a very low power, high performance, highly integrated 2FSK/GFSK/OOK/MSK/GMSK transceiver designed for operation in the 862 MHz to 928 MHz and 431 MHz to 464 MHz frequency bands, which cover the worldwide license-free ISM bands at 433 MHz, 868 MHz, and 915 MHz. It is suitable for circuit applications that operate under the European ETSI EN300-220, the North American FCC (Part 15), the Chinese short-range wireless regulatory standards, or other similar regional standards. Data rates from 1 kbps to 300 kbps are supported.
The transmit RF synthesizer contains a VCO and a low noise fractional-N PLL with an output channel frequency resolution of 400 Hz. The VCO operates at 2× or 4×, the fundamental frequency to reduce spurious emissions. The receive and transmit synthesizer bandwidths are automatically, and independently, configured to achieve optimum phase noise, modulation quality, and settling time. The transmitter output power is programmable from −20 dBm to +13.5 dBm, with automatic PA ramping to meet transient spurious specifications. The part possesses both single-ended and differential PAs, which allows for Tx antenna diversity.
The receiver is exceptionally linear, achieving an IP3 specification of −12.2 dBm and −11.5 dBm at maximum gain and minimum gain, respectively, and an IP2 specification of 18.5 dBm and 27 dBm at maximum gain and minimum gain, respectively. The receiver achieves an interference blocking specification of 66 dB at ±2 MHz offset and 74 dB at ±10 MHz offset. Thus, the part is extremely resilient to the presence of interferers in spectrally noisy environments. The receiver features a novel, high speed, automatic frequency control (AFC) loop, allowing the PLL to find and correct any RF frequency errors in the recovered packet.
A patent pending, image rejection calibration scheme is available through a program download. The algorithm does not require the use of an external RF source nor does it require any user intervention once initiated. The results of the calibration can be stored in nonvolatile memory for use on subsequent power-ups of the transceiver.
The goal of this project (Microcontroller No-OS) is to be able to provide reference projects for lower end processors, which can't run Linux, or aren't running a specific operating system, to help those customers using microcontrollers with ADI parts. Here you can find a generic driver which can be used as a base for any microcontroller platform and also specific drivers for different microcontroller platforms.
The driver contains two parts:
The Communication Driver has a standard interface, so the ADF7023 driver can be used exactly as it is provided.
There are three functions which are called by the ADF7023 driver:
SPI driver architecture
The following functions are implemented in this version of ADF7023 driver:
|char ADF7023_Init(void)||Initializes the ADF7023.|
|void ADF7023_GetStatus(unsigned char* status)||Reads the status word of the ADF7023.|
|void ADF7023_SetCommand(unsigned char command)||Initiates a command.|
|void ADF7023_SetFwState(unsigned char fwState)||Sets a FW state and waits until the device enters in that state.|
|void ADF7023_GetRAM(unsigned long address, unsigned long length, unsigned char* data)||Reads data from the RAM.|
|void ADF7023_SetRAM(unsigned long address, unsigned long length, unsigned char* data)||Writes data to RAM.|
|void ADF7023_ReceivePacket(unsigned char* packet, unsigned char* length)||Receives one packet.|
|void ADF7023_TransmitPacket(unsigned char* packet, unsigned char length)||Transmits one packet.|
|void ADF7023_SetChannelFrequency(unsigned long chFreq)||Sets the channel frequency.|
|void ADF7023_SetDataRate(unsigned long dataRate)||Sets the data rate.|
|void ADF7023_SetFrequencyDeviation(unsigned long freqDev)||Sets the frequency deviation.|