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.

RF CC1101 was not working...

Other Parts Discussed in Thread: CC1101, TEST2

hi sir,

we had developed a product using RF cc1101.

Problem:

Some of the rf modules (RF cc1101.) was not working.

We having a transmitter and a receiver has configured using the below settings


#define SMARTRF_RADIO_CC1101
#define IOCFG2 0x09 // do not change
#define IOCFG0 0x06 // do not change
#define FIFOTHR 0x47
#define PKTLEN 0x05 // do not change
#define PKTCTRL1 0x08 // do not change
#define PKTCTRL0 0x44 // do not change
#define CHANNR 0xFF
#define FSCTRL0 0x00
#define FSCTRL1 0x08

/**
* 335 Mhz

#define FREQ2 0x0C
#define FREQ1 0xE2
#define FREQ0 0x76
*/
/** 433 Mhz
*/

#define FREQ2 0x10
#define FREQ1 0xA7
#define FREQ0 0x62

#define MDMCFG4 0xF5 //f5 1.2kbps
#define MDMCFG3 0x83
#define MDMCFG2 0x02 //16/16 sync word bits detected
#define MDMCFG1 0x20
#define MDMCFG0 0x00
#define DEVIATN 0x15
#define MCSM1 0x30
#define MCSM0 0x18
#define BSCFG 0x6C
#define AGCCTRL2 0x03
#define AGCCTRL1 0x40
#define AGCCTRL0 0x91
#define FOCCFG 0x16
#define WORCTRL 0xFB
#define FREND1 0x56
#define FREND0 0x10
#define FSCAL3 0xE9
#define FSCAL2 0x2A
#define FSCAL1 0x00
#define FSCAL0 0x1F
#define RCCTRL1 0x41
#define FSTEST 0x59
#define TEST2 0x81
#define TEST1 0x35
#define TEST0 0x09

When the rf C1101 modules has replaced by another module it was not worked.

I had read back the register’s from rf chip has same setting for every modules, but it was not responded to the transmitter.

 

  • sir ,

    i have 4 cc1101 rf modules, from that i had taken 2 modules one is put for transmitter another for receiver.

    // Modulation format = 2-FSK

    // TX power = 10

    // Channel number = 0

    // CRC autoflush = true

    // Address config = No address check

    // Sync word qualifier mode = 16/16 sync word bits detected

    // Base frequency = 432.999817

    // Whitening = true

    // Carrier frequency = 432.999817

    // Data rate = 1.19948

    // Device address = 0

    // PA ramping = false

    // Channel spacing = 199.951172

    // Deviation = 5.157471

    // Packet length = 8

    // Modulated = true

    // Manchester enable = false

    // Data format = Normal mode

    // Packet length mode = Fixed packet length mode. Length configured in PKTLEN register

    // Preamble count = 4

    // RX filter BW = 58.035714

    // CRC enable = true

    // PA table

    //#define PA_TABLE {0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}

     

    static const registerSetting_t preferredSettings[]=

    {

      {RF_HW_REG_IOCFG0   ,        0x06},

      {RF_HW_REG_FIFOTHR  ,        0x47},

      {RF_HW_REG_SYNC1    ,        0x47},// sync word detection

      {RF_HW_REG_SYNC0    ,        0x72},

      {RF_HW_REG_PKTLEN   ,        0x08},

      {RF_HW_REG_PKTCTRL1 ,        0x08},

      {RF_HW_REG_PKTCTRL0 ,        0x44},

      {RF_HW_REG_FSCTRL1  ,        0x06},

      {RF_HW_REG_FREQ2    ,        0x10},

      {RF_HW_REG_FREQ1    ,        0xA7},

      {RF_HW_REG_FREQ0    ,        0x62},

      {RF_HW_REG_MDMCFG4  ,        0xF5},

      {RF_HW_REG_MDMCFG3  ,        0x83},

      {RF_HW_REG_MDMCFG2  ,        0x02},//2fsk, 16/16 sync word reception ==02//30/32 bits sync reception =03

      {RF_HW_REG_MDMCFG1  ,        0x22},//0x22 = 4 bytes preamble; 0x72 = 24 bytes of preamble

      {RF_HW_REG_DEVIATN  ,        0x15},

      {RF_HW_REG_MCSM1    ,        0x3F},

      {RF_HW_REG_MCSM0    ,        0x18},

      {RF_HW_REG_FOCCFG   ,        0x16},

      {RF_HW_REG_WORCTRL  ,        0xFB},

      {RF_HW_REG_FSCAL3   ,        0xE9},

      {RF_HW_REG_FSCAL2   ,        0x2A},

      {RF_HW_REG_FSCAL1   ,        0x00},

      {RF_HW_REG_FSCAL0   ,        0x1F},

      {RF_HW_REG_TEST2    ,        0x81},

      {RF_HW_REG_TEST1    ,        0x35},

      {RF_HW_REG_TEST0    ,        0x09},

    };

    From above settings I can able to receive data from transmitter, to the receiver.

     

    Now I replaced the rf module in receiver, from remaining 2 modules, now the data doesn’t received in receiver, I had read the configuration settings from cc chip as given below is same as registerSetting_t preferredSettings,

    There is no change occurred in rf settings.

    chip type =1101 <CR>

    address =0x2 ,value=0x6 <CR>

    address =0x3 ,value=0x47 <CR>

    address =0x4 ,value=0x47 <CR>

    address =0x5 ,value=0x72 <CR>

    address =0x6 ,value=0x8 <CR>

    address =0x7 ,value=0x8 <CR>

    address =0x8 ,value=0x44 <CR>

    address =0xb ,value=0x6 <CR>

    address =0xd ,value=0x10 <CR>

    address =0xe ,value=0xa7 <CR>

    address =0xf ,value=0x62 <CR>

    address =0x10 ,value=0xf5 <CR>

    address =0x11 ,value=0x83 <CR>

    address =0x12 ,value=0x2 <CR>

    address =0x13 ,value=0x22 <CR>

    address =0x15 ,value=0x15 <CR>

    address =0x17 ,value=0x3f <CR>

    address =0x18 ,value=0x18 <CR>

    address =0x19 ,value=0x16 <CR>

    address =0x20 ,value=0xfb <CR>

    address =0x23 ,value=0xe9 <CR>

    address =0x24 ,value=0x2a <CR>

    address =0x25 ,value=0x0 <CR>

    address =0x26 ,value=0x1f <CR>

    address =0x2c ,value=0x81 <CR>

    address =0x2d ,value=0x35 <CR>

    address =0x2e ,value=0x9 <CR>

    chip type =1101 <CR>

    marcstate=d

     

    But I can’t able to receive data in receiver from the transmitter .

    Then next step

    1. The preamble byte length has changed to 24 bytes
    2.  Sync word changed to 30/32 bits

          

    Even the it doesn’t help.

    The gdo 0 pin was configured to 0x06 so the sync word can’t able to receive in receiver.

     

    The last difference between two modules is it id and the version also same it was 0x14.

     

    From 4 RF modules.

    I had get two pair ie 2 RF modules is a set another 2 RF modules is a set.

    When this pair was interchanged it doesn’t worked.

     

     

     

     

    1. Crystal tolerance.

    Example: If the transmitter crystal error is +10 ppm and the CC11xx is programmed for a
    carrier frequency of 868 MHz, there will be an error in the carrier frequency of 8.68 kHz. If the
    receiver crystal error is -10 ppm and the CC11xx is programmed for an LO frequency of
    867.7 MHz (300 kHz IF frequency) there will be an error in the LO frequency of -8.677 kHz
    (approximately the same as the error in the carrier frequency due to the low IF frequency
    used). The total error in the IF frequency, after down conversion from RF, will be 2·8.68 kHz =
    17.4 kHz.

     

    Figure 1 shows the required minimum channel filter bandwidth BWchannel to account for crystal
    errors of opposite signs, which is a worst case scenario. BWchannel has to be larger than the
    maximum signal bandwidth BWsignal plus the maximum frequency error due to crystal
    inaccuracies.
    BWchannel > BWsignal + 4· XTALppm· fRF

    Where
    • XTAL ppm is the total accuracy of the crystal including initial tolerance, temperature
    drift, loading, and ageing
    • fRF is the RF operating frequency.
    Example: If both the transmitter and receiver crystal accuracy is ±10 ppm and the CC11xx is
    programmed for a carrier frequency of 868 MHz with an IF frequency of 300 kHz, BWchannel
    must be larger than BWsignal + 4· XTALppm· fRF = BWsignal + 4·8.68 kHz

    read this document which solved the problem..

    DN005 CC11xx Sensitivity versus Frequency Offset and Crystal Accuracy (swra122.pdf)