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.

CC1120 Range of 20 Feet

Hello,

I have two PCBs each with a CC1120RHBR; one acts as a transmitter, the other acts as a receiver on 915 MHz.  Both designs are identical as far as the schematic, layout, etc., which was copied directly from the TI Reference Design for 915 MHz.  Several hundred of these boards have been built in the past, with a range of several hundred feet (which is more than acceptable).

However, on the current batch, I have 50 pairs, none of which will work more than 20 feet away from each other.

Here are my SmartRF init values:

---

	{ 0x0000, 0xB0 },  // IOCFG3              GPIO3 IO Pin Configuration
	{ 0x0001, 0xB0 },  // IOCFG2              GPIO2 IO Pin Configuration
	{ 0x0002, 0xB0 },  // IOCFG1              GPIO1 IO Pin Configuration
	{ 0x0003, 0x06 },  // IOCFG0              GPIO0 IO Pin Configuration
	{ 0x0004, 0xD3 },  // SYNC3               Sync Word Configuration [31:24]
	{ 0x0005, 0x91 },  // SYNC2               Sync Word Configuration [23:16]
	{ 0x0006, 0xD3 },  // SYNC1               Sync Word Configuration [15:8]
	{ 0x0007, 0x91 },  // SYNC0               Sync Word Configuration [7:0]
	{ 0x0008, 0x0B },  // SYNC_CFG1           Sync Word Detection Configuration
	{ 0x000C, 0x1C },  // DCFILT_CFG          Digital DC Removal Configuration
	{ 0x000D, 0x18 },  // PREAMBLE_CFG1       Preamble Length Configuration
	{ 0x0010, 0xC6 },  // IQIC                Digital Image Channel Compensation Configuration
	//{ 0x0011, 0x08 },  // CHAN_BW             Channel Filter Configuration - 25kHz, w/ fosc = 32MHz
	{ 0x0011, 0x02 },  // CHAN_BW             Channel Filter Configuration - 100kHz, w/ fosc = 32MHz
        { 0x0013, 0x05 },  // MDMCFG0             General Modem Parameter Configuration
	{ 0x0017, 0x20 },  // AGC_REF             AGC Reference Level Configuration
	{ 0x0018, 0x19 },  // AGC_CS_THR          Carrier Sense Threshold Configuration
	{ 0x001C, 0xA9 },  // AGC_CFG1            AGC Configuration
	{ 0x001D, 0xCF },  // AGC_CFG0            AGC Configuration
	{ 0x001E, 0x00 },  // FIFO_CFG            FIFO Configuration
	{ 0x0020, 0x03 },  // SETTLING_CFG        Frequency Synthesizer Calibration and Settling Configuration
	{ 0x0021, 0x12 },  // FS_CFG              Frequency Synthesizer Configuration
	{ 0x0026, 0x00 },  // PKT_CFG2            Packet Configuration, Reg 2
	{ 0x0028, 0x20 },  // PKT_CFG0            Packet Configuration, Reg 0
	{ 0x002E, 0x13 },  // PKT_LEN             Packet Length Configuration
	{ 0x2F00, 0x00 },  // IF_MIX_CFG          IF Mix Configuration
	{ 0x2F01, 0x22 },  // FREQOFF_CFG         Frequency Offset Correction Configuration
        //{ 0x2F05, 0x01 },  // CFM_DATA_CFG        0x01 for a CW transmission
	{ 0x2F0C, 0x72 },  // FREQ2               Frequency Configuration [23:16]
	{ 0x2F0D, 0x60 },  // FREQ1               Frequency Configuration [15:8]
	{ 0x2F12, 0x00 },  // FS_DIG1             
	{ 0x2F13, 0x5F },  // FS_DIG0             
	{ 0x2F16, 0x40 },  // FS_CAL1             
	{ 0x2F17, 0x0E },  // FS_CAL0             
	{ 0x2F19, 0x03 },  // FS_DIVTWO           Divide by 2
	{ 0x2F1B, 0x33 },  // FS_DSM0             Digital Synthesizer Module Configuration, Reg 0
	{ 0x2F1D, 0x17 },  // FS_DVC0             Divider Chain Configuration, Reg 0
	{ 0x2F1F, 0x50 },  // FS_PFD              Phase Frequency Detector Configuration
	{ 0x2F20, 0x6E },  // FS_PRE              Prescaler Configuration
	{ 0x2F21, 0x14 },  // FS_REG_DIV_CML      
	{ 0x2F22, 0xAC },  // FS_SPARE            
	{ 0x2F27, 0xB4 },  // FS_VCO0             VCO Configuration, Reg 0
	{ 0x2F32, 0x0E },  // XOSC5               Crystal Oscillator Configuration, Reg 5
	{ 0x2F36, 0x03 },  // XOSC1               Crystal Oscillator Configuration, Reg 1
	{ 0x2F8F, 0x48 },  // PARTNUMBER          Part Number
	{ 0x2F90, 0x21 },  // PARTVERSION         Part Revision
	{ 0x2F92, 0x10 },  // RX_STATUS           RX Status

---

I have a spectrum analyzer where I've looked at the output of the transmitter.  I also made a software change to the receiver to transmit as well.  Both boards are on frequency (within 5kHz but I have a RX bandwidth set to 100kHz) and appear to have a nice peak (the output signal doesn't look "weak").

What else can I look into to see what problem is causing this range problem?

Drew

  • You are testing with 1.2 kbps, 4 kHz deviation?

    Are you able to measure the actual output power on the boards (conducted)? Do you have access to a signal generator enabling you to do conducted sensitivity measurements?
  • You have AGC_REF set to 0x20. This is very low for 100 kHz RX filter BW. Try with 0x36.
  • I assume you got the same result with 25 kHz RX bandwidth?
  • Thanks TER and Sverre.

    TER, unfortunately, I don't have a way to measure conducted output power, because we're using a chip antenna on this board. I also don't have a signal generator handy.

    Sverre, changing the AGC_REF to 0x36 helped the range. On a previous batch, I had to increase the RX bandwidth to 100kHz to account for a problem we were seeing with some transmitters not communicating with some receivers, so changing the AGC_REF seems to make perfect sense. Knowing that I recently changed the RX bandwidth, are there any other settings I should look at changing as well?

    Thanks,
    Drew
  • Start with the 38.4 kbps, 100 kHz RX filter settings from SmartRF Studio and then change data rate to 1.2 kbps and deviation to 4 kHz. If you do this exercise you will find the register settings (I do not think any changes except AGC_REF is required, but worthwhile to spend 5 minutes using Studio just to be certain).
  • Sounds like you had a fairly large frequency offset between boards on your last batch. Did you look into how much and why?

  • TER,

    If I took the minimum and maximum frequencies from the boards I looked at, I had a span of 13kHz.  However, we also realized my RX bandwidth was much too low anyway; adjusting the RX bandwidth to a suitable number given our data rate, modulation, and crystal ppm yielded 100% communication between board pairs, so I stopped.

    Do you think a 13kHz variation is showing an underlying problem?  The crystal we're using is CTS 403C11E32M00000, with 33pF 5% NP0 caps.  When I measured the oscillator waveform with a scope, it was dead on at 32MHz, at least to within the resolution of the oscilloscope.  Are there any other obvious things to look at there?

    Thanks,

    Drew

  • Required RX filter bandwidth can be approximated as :Signal BW + 4*ppm xtal*Frequency of operation , where Signal BW of = Data rate + 2 x frequency deviation.

    The signal bandwidth for 1.2 kbps is 10 kHz which gives a required bandwidth equal to 44500 Hz given your 10 ppm crystal.