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, RX fails when TX is centered exactly on the RX center frequency

Other Parts Discussed in Thread: CC1125, WMBUS

I am using CC1125 to receive wireless M-Bus packets from mode T meters and it works quite well even with large errors in frequency and data rate. The problem is that many packets are missed, and sometimes all of them, if the TX is centered exactly at the RX center frequency. This occurs with both weak and strong signals. Reception starts working again if the TX frequency is moved a few kHz either side of the nominal center frequency and it works all the way out to the limits of the RX. It's appears to be a "blind spot" in the middle of the RX passband. Could the problem have something to do with the PLL feedback AFC?

I also have a question regarding the register CC112X_AGC_GAIN_ADJUST. The user's guide give the impression that the only purpose of this register is to calibrate the RSSI reading, but, my RX stops working if I put an offset into this register, for example (signed char)-102 = 0x9A. I have to make the RSSI offset correction in software to make it work. This makes me suspect that some of the AGC settings may be wrong.

The allowed tolerances for mode T meter transmitters are quite scaring, especially for the data rate.

  • Modulation: 2-FSK
  • Center frequency: 868.950MHz +/-50kHz (+/-58ppm)
  • Data rate: 100 +/-10 kbit/s (+/-10%)
  • Deviation: +/-50kHz (nominal), +/-40kHz (minimum), +/-80kHz (maximum)

The preamble is at least 32 bits "010101..." followed by a 16-bit sync 0x54 0x3D.

I would be very happy if someone with CC1125 experience could review my settings and recommend changes where needed.


The CC1125 is running at 40MHz clock. The settings are appended below. All registers not shown here are left in their reset default state.

Regards

Johan

-----------------------------
CC112X_IOCFG2         =  0x00
CC112X_SYNC1          =  0x54
CC112X_SYNC0          =  0x3D
CC112X_SYNC_CFG1      =  0x09
CC112X_SYNC_CFG0      =  0x0B
CC112X_DEVIATION_M    =  0x47
CC112X_MODCFG_DEV_E   =  0x06
CC112X_DCFILT_CFG     =  0x0C
CC112X_PREAMBLE_CFG1  =  0x11
CC112X_PREAMBLE_CFG0  =  0x17
CC112X_FREQ_IF_CFG    =  0x00
CC112X_IQIC           =  0x00
CC112X_CHAN_BW        =  0x01
CC112X_MDMCFG1        =  0xC6
CC112X_MDMCFG0        =  0x05
CC112X_SYMBOL_RATE2   =  0xA4
CC112X_SYMBOL_RATE1   =  0x7A
CC112X_SYMBOL_RATE0   =  0xE1
CC112X_AGC_REF        =  0x40
CC112X_AGC_CS_THR     =  0xFD
CC112X_AGC_CFG3       =  0x03
CC112X_AGC_CFG1       =  0xA9
CC112X_AGC_CFG0       =  0xC0
CC112X_SETTLING_CFG   =  0x03
CC112X_FS_CFG         =  0x12
CC112X_PKT_CFG1       =  0x01
CC112X_PA_CFG0        =  0x78
CC112X_IF_MIX_CFG     =  0x00
CC112X_FREQOFF_CFG    =  0x30
CC112X_TOC_CFG        =  0xCB
CC112X_FREQ2          =  0x56
CC112X_FREQ1          =  0xE5
CC112X_FREQ0          =  0x1E
CC112X_FS_DIG1        =  0x00
CC112X_FS_DIG0        =  0x5F
CC112X_FS_CAL1        =  0x40
CC112X_FS_CAL0        =  0x0E
CC112X_FS_CHP         =  0x2A
CC112X_FS_DIVTWO      =  0x03
CC112X_FS_DSM0        =  0x33
CC112X_FS_DVC0        =  0x17
CC112X_FS_PFD         =  0x50
CC112X_FS_PRE         =  0x6E
CC112X_FS_REG_DIV_CML =  0x14
CC112X_FS_SPARE       =  0xAC
CC112X_FS_VCO0        =  0xB4
CC112X_XOSC5          =  0x0E
CC112X_XOSC3          =  0xC7
CC112X_XOSC1          =  0x07
CC112X_XOSC_TEST1     =  0x08
-----------------------------

  • I assume you have used these settings: http://e2e.ti.com/support/wireless_connectivity/f/155/t/146435.aspx

    The settings over is measured with the Tx frequency = Rx frequency. The test system measures the frequency the part send a CW on and uses this frequency for the generator when measuring in Rx. The FREQ word is kept constant.

    I have looked at you settings and it looks good but it could be that I have overlooked a register since it's a lot of comments. 

    Why is FSCAL_CTRL set to something else than default?

    I have not measured T mode with FB2PLL. Do you see the same if you set FREQOFF_CFG=0x20?

  • Thanks TER,


    yes, I used the settings from http://e2e.ti.com/support/wireless_connectivity/f/155/t/146435.aspx as a starting point.

    I tried FREQOFF_CFG=0x20 but changed it to 0x30 when I had problems receiving signals that were close to the tolerance extremes and I think I saw an improvement on signals from some really "bad" transmitters. FREQOFF_CFG=0x20 gives FOC_CFG=0 which is said to apply FOC *after* the CH filter while FOC_CFG >0 enables "FOC in FS" which I thought was the same as enabling FB2PLL? Please correct me if I'm wrong.

    I believe that the max CC1125 BW of 250kHz is too narrow for a 100kbit/s signal with 80kHz deviation and 50kHz frequency error plus an RX clock tolerance of 10ppm or so. That's the reason why I want the FB2PLL to move the FS frequency in order to to pull the signal into the passband center during preamble reception, if possible.

    I will try FREQOFF_CFG=0x20 again and let you know the results.

    I don't remember why FSCAL_CTRL is set to 0x09, maybe SmartRF Studio told me so a long time ago. I will leave it in reset default state if you think that's a better choice.

    Do you have any comment on my question on AGC_GAIN_ADJUST?

    Best Regards

    Johan

  • I agree that FREQOFF_CFG=0x3x would be a good solution to extend the Rx bandwidth some. I suggested FREQOFF_CFG=0x20 as a debug option just to see if this makes a change.

    Is it possible for you to make a SmartRF Studio xml file that shows this issue?

    I have seen the same as you with regards to AGC_GAIN_ADJUST but I haven't checked why this is. As I have understood it this register should be independent of the other AGC registers but apparently it has an impact on something.

  • We just tested with FREQOFF_CFG=0x20 and the blind spot remains. I also removed the 0x09 write to FSCAL_CTRL which has default value now. The signal generator transmits a packet with nominal data rate and deviation (100kbit/s,  +/-50kHz) and we see the following:

    • No reception at all up to +/- 10kHz TX offset from RX center frequency.
    • Gradually improving reception from +/-10 to +/-25kHz offset.
    • All packets received if TX offset is larger than +/-25kHz.

    The offsets are approximate, give or take a few kHz.

    We just discovered that the the blind spot is also level dependent. The RX seems to work OK at very low signal lelvels but as the level is increased, packets starts to be lost at about -88dBm and the reception stops completely at -78dBm.

    We also tried FREQOFF_CFG=0x00 to see if the FOC is responsible for the "blind spot" but the problem remains.

    I don't  understand what is going on here. I don't even have a guess...

    I am not able to connect SmartRF Studio to the CC1125 because it is is embedded in one of our products and controlled by an MCU.

    Johan

  • I haven't seen something like you describe before.

    For debug: Could you try the following:

    - Increase the CS threshold by 10 - 20 dB

    - Turn off CS and use nominal TOC_CFG setting.

    Do you get the same blind spot if you use the S or C mode settings (http://processors.wiki.ti.com/index.php/Category:WMBUS#Suggested_WMBUS_settings_for_CC1125_40_MHz)? (or the 1.2 kbps settings from Smart RF Studio for that matter) Eq, could it be something with the test setup that makes a difference?

  • Johan,

    please, try the following CC1125 settings for T-mode (supporting +-12% data rate variation and 40-80kHz DEV):

    WMBUS_T_milen
    0 SYNC3
    55 SYNC2
    54 SYNC1
    3D SYNC0
    9 SYNC_CFG1
    B SYNC_CFG0
    DE DEVIATION_M
    E MODCFG_DEV_E
    C DCFILT_CFG
    19 PREAMBLE_CFG1
    17 PREAMBLE_CFG0
    0 FREQ_IF_CFG
    0 IQIC
    1 CHAN_BW
    C6 MDMCFG1
    5 MDMCFG0
    A4 DRATE2
    7A DRATE1
    E1 DRATE0
    40 AGC_REF
    FD AGC_CS_THR
    0 AGC_GAIN_ADJUST
    3 AGC_CFG3
    20 AGC_CFG2
    A9 AGC_CFG1
    C0 AGC_CFG0
    7F PA_CFG2
    56 PA_CFG1
    78 PA_CFG0
    0 IF_MIX_CFG
    31 FREQOFF_CFG
    CB TOC_CFG
    0 SOFT_TX_DATA_CFG

    Also use LNA=0x3 for better RX sensitivity.

    Please, let us know the results.

    Milen