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.

CC1125: Impact of FIFO Mode vs. Serial Mode on sensitivity

Part Number: CC1125
Other Parts Discussed in Thread: CC1020

Hello there,

We are measuring sensitivity by sending a preamble from a signal generator. As soon as 10.000 Bits are correct (= alternating 0 or 1) a LED lights up. If one bit is wrong the LED turns off. We are using synchronous serial mode. We are trying to get the LED to stay on for at least 10 seconds. Our current sensitivity is at -103 dBm. This seems to be pretty high.

Is there a measurable difference in conducted sensitivity when changing the mode to using FIFOs?

Does RFStudio generate the best possible values for sensitivity or is it possible to get a better value by optimizing the parameters?

What Sensitivity values are expected when using 433MHz, 50kHz BW, 19200kBits Symbol Rate, 2-FSK?

  • Is there a measurable difference in conducted sensitivity when changing the mode to using FIFOs?

    Yes. With the FIFO you should be able to get datasheet values if you use 3 byte payload without length byte. In synchronous serial mode the signal is not post processed which impacts the sensitivity. 

    Does RFStudio generate the best possible values for sensitivity or is it possible to get a better value by optimizing the parameters?

    The settings in SmartRF Studio are optimal. 

  • Hi Jonas,

    As TheGhostOf points out, the settings for the predefined PHY's in SmartRF Studio are optimal. However, if you make a new PHY, you have to find the optimal settings on your own. 

    When it comes to how much sensitivity you can expect for the PHY that you mentioned, it should be in the -112 dBm region for FIFO mode.

    Regards,

    HG

  • I tried using the FIFO Mode with preamble and syncword detection disabled. The signal generator is sending a preamble (0x55).

    I´m polling NUM_RXBYTES and reading the values in the RX_FIFO. 

    The sensitivity is the same at about -103dBm.

    Here´s the current configuration. Am I missing something?

    {  
      {CC1125_IOCFG3,              0x08}, //GPIO3  Serial Clock Output (not used)
      {CC1125_IOCFG2,              0x09}, //GPIO2  RX Data Output (not used)
      {CC1125_IOCFG1,              0xB0}, //GPIO1 analogue and High Z (wenn CS low -> automatisch Ausgang) (not used)
      {CC1125_IOCFG0,              0x30}, //GPIO0 digital and High Z (Wenn TX automatisch Eingang für Daten) (not used)
      {CC1125_SYNC3,               0x55}, //Sync Word (not used)
      {CC1125_SYNC2,               0x55},
      {CC1125_SYNC1,               0x55},
      {CC1125_SYNC0,               0x55},
      {CC1125_SYNC_CFG1,           0x1F}, 
      {CC1125_SYNC_CFG0,           0x03}, //Sync Word Detection off
      {CC1125_DEVIATION_M,         0x03}, //DEV_M=3 --> Deviation = 9,88kHz
      {CC1125_MODCFG_DEV_E,        0x04}, //DEV_E=4, 2-FSK, Normal Mode
      {CC1125_DCFILT_CFG,          0x1C}, //DCFILT_BW=4, DC Filter Cutoff = 1250Hz, autom. DC Error compensate
      {CC1125_PREAMBLE_CFG1,       0x01}, //0x55 as preamble, not used
      {CC1125_PREAMBLE_CFG0,       0x0A}, //Preamble Detection off
      {CC1125_FREQ_IF_CFG,         0x33}, //F_IF = 62255 Hz
      {CC1125_IQIC,                0x46}, //IQ Image Compensation off
      {CC1125_CHAN_BW,             0x05}, //Channel Filter on, Decimation Factor = 20, BB_CIC_DEFACT = 5 -> 50kHz BW Filter
      {CC1125_MDMCFG1,             0x46}, //FIFOs on, NRZ, Collision Detect off, 9dB DVGA Gain,
      {CC1125_MDMCFG0,             0x06}, //Transparent Mode on, Data Filter off, Viterbi on
      {CC1125_SYMBOL_RATE2,        0x7F}, //SRATE_E=7, SRATE_M=0xF7510 --> Symbol Rate = 19200 Symbols/s
      {CC1125_SYMBOL_RATE1,        0x75}, 
      {CC1125_SYMBOL_RATE0,        0x10},
      {CC1125_AGC_REF,             0x20}, //AGC_REFERENCE = 32,
      {CC1125_AGC_CS_THR,          0x19}, //Carrier Sense Threshold
      {CC1125_AGC_GAIN_ADJUST,     0xA0}, //RSSI Offset correction: -96 dB
      {CC1125_AGC_CFG3,            0x91}, //AGC_MIN_GAIN=17
      {CC1125_AGC_CFG2,            0x20}, //Receiver starts with max. Gain, Normal AGC Mode, AGC_MAX_GAIN=0
      {CC1125_AGC_CFG1,            0x0A}, //no AGC Gain Freeze
      {CC1125_AGC_CFG0,            0xC7}, 
      {CC1125_FIFO_CFG,            0x00}, //Dont flush FIFO on CRC Error
      {CC1125_DEV_ADDR,            0x00},
      {CC1125_SETTLING_CFG,        0x0B}, //Calibrate when from IDLE to TX or RX
      {CC1125_FS_CFG,              0x14}, //Out of Lock Detector enabled, LO Divider = 8
      {CC1125_WOR_CFG1,            0x08}, //WOR not used
      {CC1125_WOR_CFG0,            0x21},
      {CC1125_WOR_EVENT0_MSB,      0x00},
      {CC1125_WOR_EVENT0_LSB,      0x00},
      {CC1125_PKT_CFG2,            0x00}, //always give Clear Channel Indication, FIFO Mode
      {CC1125_PKT_CFG1,            0x00}, //no Whitening, no Adress Check, no CRC, no Byte Swap, no Status Byte
      {CC1125_PKT_CFG0,            0x5C}, //UART Mode disabled, Paket length infinite 
      {CC1125_RFEND_CFG1,          0x3F}, //RX Timeout disabled
      {CC1125_RFEND_CFG0,          0x00}, //Termination at false Paket disabled, Antenna Diversity disabled
      {CC1125_PA_CFG2,             0x77}, //Power Ramp Target: 10dBm
      {CC1125_PA_CFG1,             0xAB}, //Power Ramp
      {CC1125_PA_CFG0,             0x7D}, //UPSAMPLER_P=32
      {CC1125_PKT_LEN,             0x00}, 
      {CC1125_IF_MIX_CFG,          0x00}, 
      {CC1125_FREQOFF_CFG,         0x22}, //Freq. Offset Correction enabled, FOC after Channel Filter, no Feedback to PLL, Loop Gain Factor=1/64
      {CC1125_TOC_CFG,             0x0B}, //TOC_LIMIT=0b00
      {CC1125_MARC_SPARE,          0x00},
      {CC1125_ECG_CFG,             0x00},
      {CC1125_CFM_DATA_CFG,        0x00}, //Custom Freq. Modulation disabled
      {CC1125_EXT_CTRL,            0x01}, 
      {CC1125_RCCAL_FINE,          0x00}, 
      {CC1125_RCCAL_COARSE,        0x00},
      {CC1125_RCCAL_OFFSET,        0x00},
      {CC1125_FREQOFF1,            0x00}, 
      {CC1125_FREQOFF0,            0x00},
      {CC1125_FREQ2,               0x56}, 
      {CC1125_FREQ1,               0xA8},
      {CC1125_FREQ0,               0xF5},
      {CC1125_IF_ADC2,             0x02},
      {CC1125_IF_ADC1,             0xA6},
      {CC1125_IF_ADC0,             0x05},
      {CC1125_FS_DIG1,             0x00},
      {CC1125_FS_DIG0,             0x5F},
      {CC1125_FS_CAL3,             0x00}, 
      {CC1125_FS_CAL2,             0x20},
      {CC1125_FS_CAL1,             0x00},
      {CC1125_FS_CAL0,             0x0E}, //Out Of Lock Detection infinite Average
      {CC1125_FS_CHP,              0x28},
      {CC1125_FS_DIVTWO,           0x03},
      {CC1125_FS_DSM1,             0x00},
      {CC1125_FS_DSM0,             0x33},
      {CC1125_FS_DVC1,             0xFF},
      {CC1125_FS_DVC0,             0x17},
      {CC1125_FS_PFD,              0x50},
      {CC1125_FS_PRE,              0x6E},
      {CC1125_FS_REG_DIV_CML,      0x14},
      {CC1125_FS_SPARE,            0xAC},
      {CC1125_FS_VCO4,             0x14},
      {CC1125_FS_VCO3,             0x00},
      {CC1125_FS_VCO2,             0x00},
      {CC1125_FS_VCO1,             0x00},
      {CC1125_FS_VCO0,             0x81},
      {CC1125_GBIAS6,              0x00},
      {CC1125_GBIAS5,              0x02},
      {CC1125_GBIAS4,              0x00},
      {CC1125_GBIAS3,              0x00},
      {CC1125_GBIAS2,              0x10},
      {CC1125_GBIAS1,              0x00},
      {CC1125_GBIAS0,              0x00},
      {CC1125_IFAMP,               0x01},
      {CC1125_LNA,                 0x01},
      {CC1125_RXMIX,               0x01},
      {CC1125_XOSC5,               0x0E},
      {CC1125_XOSC4,               0xA0},
      {CC1125_XOSC3,               0xC7},
      {CC1125_XOSC2,               0x04},
      {CC1125_XOSC1,               0x07},
      {CC1125_ANALOG_SPARE,        0x00},
      {CC1125_PA_CFG3,             0x00},
      {CC1125_BIST,                0x00},
      {CC1125_DCFILTOFFSET_I1,     0x00},
      {CC1125_DCFILTOFFSET_I0,     0x00},
      {CC1125_DCFILTOFFSET_Q1,     0x00},
      {CC1125_DCFILTOFFSET_Q0,     0x00},
      {CC1125_IQIE_I1,             0x00},
      {CC1125_IQIE_I0,             0x00},
      {CC1125_IQIE_Q1,             0x00},
      {CC1125_IQIE_Q0,             0x00},
      {CC1125_AGC_GAIN2,           0xD1},
      {CC1125_AGC_GAIN1,           0x00},
      {CC1125_AGC_GAIN0,           0x3F},
      {CC1125_CFM_TX_DATA_IN,      0x00},
      {CC1125_RNDGEN,              0x7F},
      {CC1125_FSCAL_CTRL,          0x01},
      {CC1125_SERIAL_STATUS,       0x08}, //IOC_SYNC_PINS_EN = 1
      {CC1125_PA_IFAMP_TEST,       0x00},
      {CC1125_FSRF_TEST,           0x00},
      {CC1125_PRE_TEST,            0x00},
      {CC1125_PRE_OVR,             0x00},
      {CC1125_ADC_TEST,            0x00},
      {CC1125_DVC_TEST,            0x0B},
      {CC1125_ATEST,               0x40},
      {CC1125_ATEST_LVDS,          0x00},
      {CC1125_ATEST_MODE,          0x00},
      {CC1125_XOSC_TEST1,          0x3C},
      {CC1125_XOSC_TEST0,          0x00},
    }

  • Hi Jonas,

    How did you find these settings?

    Could you run your sensitivity test on the predefined 50kbps PHY in FIFO mode and let me know what you get?

    Regards,

    HG

  • I used RFStudio to generate these settings and changed a few settings to our needs.

    When using the predefined 50kbps preset, the measured sensitivity is at about -94dBm.

  • how are you measuring sensitivity when you are not using sync detect and receiving any packets?

    the Sensitivity is defines at a certain BER, which translates into a given PER (Packet Error Rate)

  • We are measuring sensitivity in the following procedure:

    A signal generator generates a RF Signal modulated with 0x55. The output is connected to the antenna connection of our CC1125 device.

    The CC1125 is put into RX without Preamble or Syncword Detection but with FIFOs enabled. Thus, it receives everything including noise.

    As soon as one byte is present in the RX-FIFO it is evaluated and has to be 0x55 or 0xAA. If 1250 bytes successively are correct a LED lights up.

    As soon as one byte is wrong the LED turns off.

    This is not an exact measurement but it gives an first impression of the sensitivity.

    We used the same procedure on the CC1020 and measured better sensitivity.

    I am aware that the sensitivity measurements stated in the data sheet are determined by sending real packets. Either way the current sensitivity seems to be a bit too high.

  • The datasheet number are measured with 3 byte payload without length byte. If you want to compare with the datasheet you can't use 1250 bytes (which BTW is a very long packet with a large probability for bit errors...) but use the same packet length and PER limit. 

  • Thanks for the clarification on this.

    Im trying to find a way to measure the sensitivity in this way.

    I´ve read that the Noise Floor can have an impact on the sensitivity. 

    When nothing is connected to the CC1125 the RSSI Readout Value is at about -112 dBm. Could this be the cause?

  • Hi Jonas,

    If you have other devices that transmit nearby, it can certainly degrade the sensitivity. The reason for you measuring a high RSSI could either be that there are interferers nearby or that the device has a RSSI offset. See section 6.9 of the user guide on how the RSSI offset can be measured.

    As mentioned above, in order to have a direct comparison of the performance of your board and the datasheet number, you have to measure the sensitivity the same way that the datasheets does. Before that, it is not possible to comment on whether your device has a good or bad performance.

    Regards,

    HG

  • Hi,

    We´ve managed to measure the sensitivity of our CC1125 Board the way you are suggesting. Here´s what we did:

    To confirm, that our measuring is correct we first used a CC1120EM Evaluation Module on a TrxEB as a receiver. For the 50kbps preset in RFStudio the sensitivity was -110dBm. This represents the value stated in the datasheet. For our 19.2 kbps format we measured a sensitivity of -113dBm. For the PER to be at 0% the power has to be -110dBm. These are the values we expected.

    We connected our CC1125 Board to the TrxEB and used RFStudio to control it. Here are the results of our CC1125 Board:

    For the 50kbps preset in RF Studio we are measuring a sensitivity of -103dBm.

    For our 19.2 kbps format we are measuring -108dBm. If the PER has to be 0%, the power is -105dBm.

    It seems like we are missing about 5dBm (for 19.2kbps) to 7dBm (for 50kbps) of sensitivity compared to the CC1120EM.

    Since we´ve connected the TRxEB Evaulation Board to our CC1125 and used RFStudio to do the setup and evaluation I guess we can assume that the software part is correct. It seems like the hardware part of our CC1125 board has a problem. We do use a SAW filter but the datasheet states that the maximum attenuation is 2.7dB, typical 2dB. So there´s still 2...4dBm sensitivity missing.

    What could cause this issue?

    Is there a way to measure the noise floor so we can compare it to the CC1120EM?

    Thank you!

  • Hi Jonas,

    Great that you where able to measure the sensitivity. From the results that you got, it sounds like it could definitely be something with your design. Could you upload your schematic and layout here? If you do not want to share your it here, you can send it through our secure channel at https://www.ti.com/tool/SIMPLELINK-SUB1GHZ-DESIGN-REVIEWS

    Regards,

    HG

  • Hi,

    We are going to submit it through the secure channel. Thank you!

    I still got one question:

    When trying to optimize the sensitivity we observed that changing the registers "IFAMP" and "LNA" from 0x01 to 0x03 improved sensitivity.

    Unfortunately, there´s no documentation on these registers. What impact does changing these registers have?

  • Hi Jonas,

    Please do not change registers that are not documented especially when it is noted in SmartRF Studio to not change the register value. Even if it gives a better performance, it could cause some other issues. 

    Regards,

    HG