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.

CC1200 AFC and frequency offset correction

Other Parts Discussed in Thread: CC1200, CC1020

Hi there,

I'm trying to understand how I make most use of the CC1200 frequency correction functionalities.

First the SAFC feature:

1. It seems like this is the same as copying the frequency offset estimate to the FREQOFF registers when the packet has been received, correct?

2. What is the frequency estimate calculated based on, it seems like it would have been better to average the frequency estimate over the packet, I guess it is calculated over some of the last symbols?

3. If the assumption of calculation over the last symbols is correct, would the estimate then not be wrong if e.g. mainly one bits are transmitted at the end of the packet?

4. When strobing the SAFC command I see the FREQOFF is also altered when the chip has been in TX. Is this intended and can it be prevented?

Now for the FREQOFF_CFG setting which I think is more what I'm looking for:

5. Do you have a document explaining this in more details than the user guide?

6. I guess this feature is "locking" to the frequency that is being transmitted on while receiving?

7. Is FOC_CFG like the initial offset based on the preamble (and sync word)?

8. Is FOC_KI_FACTOR the rate of which the frequency is adjusted while receiving?

9. Do you have a formula of how the gain loop factor is correlating to the number of bytes used to make a new decision?

10. The programmed frequency or frequency offset is not touched when RX has been finished when FREQOFF_CFG is used it is only while receiving, correct?

Hope you manage to answer the questions.

Thanks in advance 

/Anders

  • 1) Yes

    2) The estimate is calculated when the sync word is received and then dependent on setting based on the x last bytes received.

    4) FREQOFF is used as part of the expression to set the frequency and in some cases used to set a specific frequency when the resolution in the FREQ word is not good enough. Hence this is used both in Rx and Tx.

    Have you looked into Feedback To PLL (http://processors.wiki.ti.com/index.php/Category:Sub-1GHz#Feedback_to_PLL_.28FB2PLL.29)

    If you could give us some more information on what you are trying to achieve it's easier to point you in the relevant direction.

  • Hi TER,

    Thanks for your answers and the link.

    My task is to improve sensitivity as much as possible in a mesh network. Hence I want the individual nodes in the network to "track" the transmitted signal even though there might be a little frequency variation on the nodes. I'm using a basic crystral and temperature compensation via SW and the FREQOFF register, so the variation is minor but still present.

    So my idea is to use FREQOFF_CFG (feedback to PLL) to improve my sensivity. Eg. via setting:

    FREQOFF_CFG.FOC_EN = 1

    FREQOFF_CFG.FOC_CFG = 00

    FREQOFF_CFG.FOC_LIMIT = 0

    FREQOFF_CFG.FOC_KI_FACTOR = 010

    Btw. I have 4 bytes preamble, 4 bytes syncword, 4.8ksps symbolrate, 2GFSK and 3.375kHz deviation.

    What would be my optimal programmed RX BW, FOC_CFG and FOC_KI_FACTOR ?

    /A

  • Not sure if I follow you. You are able to improve sensitivity by reducing the RX BW but as long as you signal is within the filter you will not improve sensitivity by adjust for the frequency offset.

    We tend to use FREQOFF_CFG=0x30 or 0x32/0x33

  • Hi TER

    So let's take an example. 4.8ksps, 2GFSK, deviation 3.375kHz, XTAL_PPM 5ppm, f_rf 444MHz and by the way we have channel spacing of 25kHz.

    Then the symbol bandwith will be: 4.8 + 2 * 3.375 = 11.55kHz

    And the RX BW should be larger than 11.55 + 4 * 2.22 = 20.43kHz

    Normally this RX BW should be programmed into the chip, but for CC1200, can we then if FREQOFF_CFG.FOC_LIMIT is set to (RX filter BW/4) program RX BW to 14kHz and then get an effective BW of 21kHz which would yield to gained sensitivity?

    And are there any drawbacks here?

    /A

  • No, no drawbacks, we have tested something very similar, see the pll presentation in my firt post here: http://e2e.ti.com/support/wireless_connectivity/f/156/t/201453.aspx

  • Hi TER,

    Yes I also saw the ppt presentation earlier from another post, it is very informative.

     But can you guide me here.

    With the CC1200 is it then possible to program the RX filter BW lower than I would in e.g. CC1020.

    The example:

    In CC1020 I would normally program a filter size of 21kHz. Would it be the same in CC1200 if I program the filter size to 14kHz and utilize feedback to PLL, FREQOFF_CFG.FOC_LIMIT is set to (RX filter BW/4) as my effective filter size is then ~21kHz?

    Then I'm gaining sensitivity vs. CC1020 correct?