This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Can't use a lower data rate with CC2500?

Other Parts Discussed in Thread: CC2500, TEST2

Hello,

I am using the RF2500-EZ430 to develop a simple sensor network.

I have written code for an end device to transmit a 12-byte fixed-length packet every 4 seconds. I have an access point programmed to receive and report the data.

It works when I use the settings from SmartRF Studio for 250 kBaud using MSK modulation. But it doesn't work at all when I use the settings for 10 kBaud using 2-FSK modulation.  I have also tried other settings, like 100 kBaud using MSK modulation.

I am using the HAL RF interface code, with normal FIFO packet operation. I have a single header file to define the radio configurations, shared by both the end node and access point devices.

Any help is appreciated.  I thought it should work when I change the settings in SmartRF Studio.

Could it possibly have something to do with the crystals not being accurate enough for lower data rates?

I really want to use lower data rates than 250 kBaud, so that I will get better receive sensitivity. But is this actually sensible? I have been reading design note DN021, which shows that the increased sensitivity gained frmo lower data rates also depends on a more accurate crystal.

These are the settings that worked at 250 kBaud:

// Chipcon

// Product = CC2500

// Chip version = E   (VERSION = 0x03)

// Crystal accuracy = 10 ppm

// X-tal frequency = 26 MHz

// RF output power = 0 dBm

// RX filterbandwidth = 541.666667 kHz

// Phase = 0

// Datarate = 249.938965 kBaud

// Modulation = (7) MSK

// Manchester enable = (0) Manchester disabled

// RF Frequency = 2432.999908 MHz

// Channel spacing = 199.951172 kHz

// Channel number = 0

// Optimization = Current

// Sync mode = (3) 30/32 sync word bits detected

// Format of RX/TX data = (0) Normal mode, use FIFOs for RX and TX

// CRC operation = (1) CRC calculation in TX and CRC check in RX enabled

// Forward Error Correction = (0) FEC disabled

// Length configuration = fixed length packets, length set by PKTLEN

// Packetlength = 255

// Preamble count = (2)  4 bytes

// Append status = 1

// Address check = (0) No address check

// FIFO autoflush = 0

// Device address = 0

// GDO0 signal selection = ( 6) Asserts when sync word has been sent / received, and de-asserts at the end of the packet

// GDO2 signal selection = (41) CHIP_RDY

HAL_RF_CONFIG rfSettings = {

    0x12,   // FSCTRL1   Frequency synthesizer control.

    0x00,   // FSCTRL0   Frequency synthesizer control.

    0x5D,   // FREQ2     Frequency control word, high byte.

    0x93,   // FREQ1     Frequency control word, middle byte.

    0xB1,   // FREQ0     Frequency control word, low byte.

    0x2D,   // MDMCFG4   Modem configuration.

    0x3B,   // MDMCFG3   Modem configuration.

    0xF3,   // MDMCFG2   Modem configuration.

    0x22,   // MDMCFG1   Modem configuration.

    0xF8,   // MDMCFG0   Modem configuration.

    0x00,   // CHANNR    Channel number.

    0x00,   // DEVIATN   Modem deviation setting (when FSK modulation is enabled).

    0xB6,   // FREND1    Front end RX configuration.

    0x10,   // FREND0    Front end TX configuration.

    0x18,   // MCSM0     Main Radio Control State Machine configuration.

    0x1D,   // FOCCFG    Frequency Offset Compensation Configuration.

    0x1C,   // BSCFG     Bit synchronization Configuration.

    0xC7,   // AGCCTRL2  AGC control.

    0x00,   // AGCCTRL1  AGC control.

    0xB0,   // AGCCTRL0  AGC control.

    0xEA,   // FSCAL3    Frequency synthesizer calibration.

    0x0A,   // FSCAL2    Frequency synthesizer calibration.

    0x00,   // FSCAL1    Frequency synthesizer calibration.

    0x11,   // FSCAL0    Frequency synthesizer calibration.

    0x59,   // FSTEST    Frequency synthesizer calibration.

    0x88,   // TEST2     Various test settings.

    0x31,   // TEST1     Various test settings.

    0x0B,   // TEST0     Various test settings.

    0x29,   // IOCFG2    GDO2 output pin configuration.  0x29 = CHIP_RDY

    0x06,   // IOCFG0D   GDO0 pin: 0x06 = 1 when sync has been sent/received, 0 when packet finished

    0x04,   // PKTCTRL1  Packet automation control.  Append status, no address check

    0x04,   // PKTCTRL0  Packet automation control.  CRC enabled, fixed length packets

    0x00,   // ADDR      Device address.

    sizeof(struct_Payload)     // PKTLEN    Packet length.

};