• Resolved

CC430F5137: Frequency Off on 20% of Production

Part Number: CC430F5137

We have a device currently in Production that uses the CC430F5137 at 418 MHz.  During production testing, one of the tests that we perform has the device transmit and we measure the RF frequency and power using a spectrum analyzer.  Approximately 20% of the devices are failing the frequency test; they are transmitting about 1 MHz too high (around 419 MHz).

So far, the only way that we've found to fix these devices was to swap out the CC430 chip.  The RF registry settings we are using are below:

RF_SETTINGS rfSettingsOOK = {  /* antenna test rf settings */
    0x08,   // FSCTRL1   Frequency synthesizer control.
    0x00,   // FSCTRL0   Frequency synthesizer control.
    0x10,   // FREQ2     Frequency control word, high byte.
    0x00,   // FREQ1     Frequency control word, middle byte.
    0x00,   // FREQ0     Frequency control word, low byte.
    0xCA,   // MDMCFG4   Modem configuration.
    0x83,   // MDMCFG3   Modem configuration.
//    0x90,   // MDMCFG2   Modem configuration.
    0x30,   // MDMCFG2   Modem configuration. ASK/OOK modulation
//    0x22,   // MDMCFG1   Modem configuration.
    0x00,   // MDMCFG1   Modem configuration. (channel spacing)
    0x00,   // MDMCFG0   Modem configuration. (channel spacing)
    0x4F,   // CHANNR    Channel number. (0x4F = 79 = 418MHz at 25kHz spacing)
    0x34,   // DEVIATN   Modem deviation setting (when FSK modulation is enabled).
    0x56,   // FREND1    Front end RX configuration.
    0x11,   // FREND0    Front end TX configuration.
//    0x18,   // MCSM0     Main Radio Control State Machine configuration. original
    0x10,   // MCSM0     Main Radio Control State Machine configuration. bit3 is RO
    0x16,   // FOCCFG    Frequency Offset Compensation Configuration.
    0x6C,   // BSCFG     Bit synchronization Configuration.
    0x43,   // AGCCTRL2  AGC control.
    0x40,   // AGCCTRL1  AGC control.
    0x91,   // AGCCTRL0  AGC control.
    0xE9,   // FSCAL3    Frequency synthesizer calibration.
    0x2A,   // FSCAL2    Frequency synthesizer calibration.
    0x00,   // FSCAL1    Frequency synthesizer calibration.
    0x1F,   // FSCAL0    Frequency synthesizer calibration.
    0x59,   // FSTEST    Frequency synthesizer calibration.
    0x81,   // TEST2     Various test settings.
    0x35,   // TEST1     Various test settings.
    0x09,   // TEST0     Various test settings.
    0x47,   // FIFOTHR   RXFIFO and TXFIFO thresholds.
    0x0B,   // IOCFG2    GDO2 output pin configuration.
//    0x2E,   // IOCFG2    GDO2 output pin configuration.
    0x2E,   // IOCFG0D   GDO0 output pin configuration.
    0x04,   // PKTCTRL1  Packet automation control.
    0x32,   // PKTCTRL0  Packet automation control.
    0x00,   // ADDR      Device address.
    0x2D,   // SYNC1     sync word high byte
    0xD4,   // SYNC0     sync word low byte
    0xFF    // PKTLEN    Packet length.

We are using an Abracon ABM8-26.000MHZ-10-1-U-T (10pF) for the crystal with 2 27 pF capacitors to ground.

What could be causing this frequency shift?  Is there anything here that looks problematic?  Any thoughts on why this works with certain chips, but not with others?


  • The error is most likely in register TEST0. This should be 0x0B when operating at 418 MHz. There are two overlapping VCO's and TEST0 (along with FSCAL2) ensures that the correct VCO is selected for the given carrier frequency.

    SmartRF Studio, which should be used to generate the settings, give TEST0 = 0x0B when carrier is set to 418 MHz.

  • In reply to Sverre:

    That appears to have fixed it.  Thanks!