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.

CC1101: CC1100/CC1101 Frequency Offset Compensation

Part Number: CC1101
Other Parts Discussed in Thread: CC1100, CC1150, CC1000

I am running a CC1101 with MSK modulation, at 250Kbps, at 433.92MHz, with BW set to 541KHz. These are setting derived from RF studio for the CC1100 with a couple of parameters changed.

I am experimenting with narrowing the bandwidth to squeeze more performance out of the radio. When I calculate the bandwidth required for the signal (OBW = 1.2/Tb) I get 300KHz. I then added my crystal tolerance information from both the transmitter and receiver to the calculation as per DN005 (SWRA122C) and got that my required bandwidth should be around 365KHz. See picture below.

My plan was to keep the bandwidth as narrow as possible and use FOC to compensate for crystal tolerances. To leave the bandwidth setting as low as possible I choose 325KHz (300KHz -> 325KHz is the lowest setting I can choose without going under 300KHz). A FOC setting of +/- BW/8 should be sufficient, but I had code compiled with +/- BW/4 as well. 

To prove all of this worked the way I expected, I created an experiment with the following:

1. An RF traffic generator with two CC1150 radios with their respective carrier frequencies set to the respective min and max frequencies as per the crystal tolerance errors (frequencies were tuned with a spectrum analyzer to the respective carrier +/- crystal tolerance error (433.904MHz and 433.936MHz). This generator also is able to transmit messages back to back with only a 10uS gap between the two messages. This allows me to see if the FOC can compensate fast enough for closely spaced messages. (going below 10uS with showed messages being dropped) 

2.  Receiver code with the following BW and FOC parameters ---> BW = 325 FOC off, BW = 325 FOC BW/8, BW = 325 FOC BW/4

The planned approach to the experiment was to start with the FOC off firmware, show that messages were missed, then switch to the firmware with the FOC turned on and show that the receiver was capable of receiving all messages. Furthermore, to show that back to back messages at opposite ends of the FOC range could be reliably be received even when those messages were separated by a very short time (10uS).

What I got was all messages were received when the FOC was turned off, and all messages were received when FOC was on. To get messages to be dropped by the receiver (FOC off) I had to separate the transmitted messages further (+/- 32kHz which is double the calculated crystal offset of +/- 16KHz). This is not what I expected to happen and I would like to understand why.

So what am I missing here? 325KHz bandwidth seems to be wide enough to receive the transmitted messages, but based on the results it seems FOC is not necessary.

Is this a difference of occupied bandwidth vs how much of the OBW the receiver needs to reliably receive the message?

As you can see from the tolerance calculation above we are also going to introduce a lower data rate for our system. For this configuration we are planning to use Rx BW of 58KHz with FOC set to +/- BW/2 for a total BW of 116KHz. Does this seem about right? Is there something else I should consider? 

   

  

    

  • Could not open any attachment so cannot comment on your calculations.

    The MSK implemented on CC1101 is not true MSK and a better option is to use GFSK with modulation index = 0.5 (i.e. deviation = symbol rate/4). With 250 kbps, +/-62.5 kHz deviation the 99% occupied BW is approx 280 kHz. Note: the calculations in DN005 is just an approximation and works ok for 2-FSK, but is rather conservative for GFSK.

    In your case the frequency offset is +/-16 kHz so with 325 kHz RX filter BW and a signal BW of approx. 280 kHz there is no need for FOC.

    For the lower data rate I suggest you set up the CC1101 in TX mode and measure the occupied BW. From this you can determine the required RX filter BW (when accounting for the frequency offset).
  • Hi Sverre,

    Thanks for the reply. I am not sure why the spreadsheet didn't come thru. It looked inline when I composed my post. I have attached it again here so you can comment.

    So I would like to address the issue of using MSK. When we started our company 11 years ago we choose the CC1150 and CC1100 for our tags and receivers respectively. Furthermore, we choose the 250Kbps, MSK, Rx BW 540KHz, Optimized for sensitivity RF Studio settings. Apart from tweaking some of the AGC setting to get the full sensitivity of the CC1100 listed in the data sheet, our settings have stayed the same as when we first implemented them. When we started our next generation receiver and found that the CC1100 had gone NRND we tried out the CC1101 with the same settings. It seemed to work as well as the CC1100 in sensitivity and reception rate tests. If the CC1101 was performing more poorly compared to the CC1100, where would I see the difference? What test would reveal this? WOuld the length of the message make a difference?

    I can switch the TR2 receivers back to the CC1100 device, but how long is it going to be before CC1100 goes obsolete and I can no longer get it?

    Unfortunately I don't think it is a practical option for us to switch this modulation to GFSK system wide at the 250Kbps data rate as newly built tags still need to be backwards compatible to currently installed systems. 

    What is the required theoretical bandwidth for the MSK signal we are using in the CC1100?

    If it is as low as 280KHz why do the RF studio setting call for the use of a 540KHz receiver bandwidth setting?

    Does this not unnecessarily throw away receiver sensitivity?

    /cfs-file/__key/communityserver-discussions-components-files/156/Book1.xls

    If the 99% OBW of a 250Kbps MSK signal/message "x" is 300KHz, how much of this BW must be captured by the receiver to get a good reception of that message? 

  • CC1101 is more or less identical to CC1100. All modulation formats supported on the CC1100 can be used for CC1101. When characterizing CC1101 @250 kbps we used GFSK modulation with mode index = 1 instead of MSK for 250 kbps because the side lobes will be lower and also for improved sensitivity. That said, since you need backwards compatibility with CC1000 you should keep MSK when moving to CC1101.

    The MSK signal has a 90% OBW of approx 355 kHz (measured, not calculated). Your measurements show that even an RX filter BW of 325 kHz is sufficient to receive the MSK signal. Suggest you run the same sensitivity vs frequency offset measurement on more devices to verify the results. 

    GFSK with 250 kHz data rate and 127 kHz deviation has a 95/99% OBW of approx 320/420 kHz. The characterization was done at 868 MHz and to account for frequency offset we decided to use the 541 kHz RX filter BW. 406 kHz might have been a better option, but I have no characterization data to back up this statement. You are of course correct that too wide RX filter BW throws away sensitivity. The degradation will be 10log(BW_1/BW_2) and with 406 kHz instead of 541 kHz the sensitivity will improve by 10log(406/541); i.e. 1.2 dB.

    GFSK with modulation index 0.5 has a 99% occupied BW of approx 280 kHz. Worth noting is that lower RX filter BW improves sensitivity, whereas lower deviation to fit into a lower RX filter BW degrades sensitivity. 

    To conclude: In your case you need backwards compatibility and you should therefore keep MSK and 250 kbps data rate. To find the minimum required BW you need to run measurements of sensitivity vs frequency offset on several devices.  

    The 31.25 kbps signal with mod index = 0.5 will have a 99% BW of  35 kHz and if you use FOC a RX filter BW of 58 kHz will be ok.