The CC2500 is a 2.4 GHz transceiver by Texas Instruments. I mostly use it as a receiver for my prototypes. I work with different frequency bands in my hardware experiments, but the 2.4 GHz band is particularly convenient for fast prototyping — unlicensed ISM band, compact antennas, and stable modules. The CC2500 chip fits this workflow perfectly thanks to its flexibility and direct register control.
MDMCFG4[CHANBW_E:CHANBW_M]; with a 26 MHz crystal typical options ≈ ~58 kHz … ~812 kHz
| Feature | CC2500 | nRF24L01 |
|---|---|---|
| Type | 2.4 GHz transceiver (multi-modulation) | 2.4 GHz transceiver (packet-based) |
| Modulation | 2-FSK / GFSK / MSK / OOK | GFSK only |
| RSSI readout | Yes (real-time RSSI per channel) | No (not exposed) |
| Channel scanning | Easy sweeping & logging RSSI | Limited to active link channels |
| Integration level | Low-level & flexible | High-level link-focused |
| Best use | Spectrum experiments, analysis | Simple MCU-to-MCU links |
I use the CC2500 mainly because it exposes a reliable RSSI register. That enables simple spectrum analyzers, real-time signal visualization, and channel activity detection — something the nRF24L01 cannot do. For prototyping and testing, that single feature is decisive.
The CC2500 determines its actual RF output or reception frequency as:
fRF = fbase + CHANNR × CHANSPC
In other words, the total frequency is built from three components:
f_base) — defined by three registers
FREQ2, FREQ1, and FREQ0.
Together they form a 24-bit number (FREQ[23:0]), which determines the starting point of the synthesizer.
Its absolute value is calculated as:
f_base = FREQ × f_XOSC / 2¹⁶
CHANNR) — an 8-bit register that selects the current channel index.
Each step increases (or decreases) the final frequency by one channel spacing step.
For example, CHANNR = 0 gives the base frequency; CHANNR = 10 adds ten channel spacings.
CHANSPC) — determined by two registers:
MDMCFG1[1:0] (the exponent) and MDMCFG0 (the mantissa).
Together they set the step in Hz between adjacent channels, using the TI formula:
CHANSPC = f_XOSC / 2¹⁸ × (256 + MDMCFG0) × 2MDMCFG1[1:0]
So, for every channel the CC2500 tunes to:
f_RF = (FREQ × f_XOSC / 2¹⁶) + CHANNR × (f_XOSC / 2¹⁸ × (256 + MDMCFG0) × 2MDMCFG1[1:0])
These parameters together fully define the synthesizer configuration.
Adjusting FREQ2:0 changes the entire frequency band;
CHANNR moves across channels within that band;
MDMCFG1:0 controls how far apart those channels are.
Tip: in a sweep, program FREQ2:0, MDMCFG1:0, CHANNR, do SCAL (or enable MCSM0.FS_AUTOCAL),
enter RX, read RSSI, then move to the next channel.
Prototype overview:
CHANNR while reading RSSI — forming a full-band spectrum view in real time.