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.

CC1352R: How to better tune the HF crystal capacitor array for more accurate ISM/BLE carrier frequency transmission?

Part Number: CC1352R

Hello,

I am trying to determine if the high-frequency crystal capacitor array can be further tuned for more accurate ISM/BLE carrier frequency transmission.

To preface, I was seeing an issue where the ISM radio was off from the chosen center frequency by about 60 kHz. After digging around online, I discovered this post: github.com/.../1056

I followed the instructions in that post since I am using external 8 pF load capacitors on the high frequency crystal as seen below.

After setting the #defines as suggested in the post above, we now see anywhere from 8-9 kHz offset from the set center frequency on the ISM radio across different boards running the same software. This is a great improvement, but our FCC requirements state the center frequency must be within 9 kHz and the current offset is too close to this requirement and could result in failing certification. I am testing at 907 MHz, 913 MHz, and 923 MHz.

Question 1: Can I tune the internal capacitors or external capacitors to obtain better accuracy and reduce this ISM frequency offset even more? Or is this realistically as close as I can get to a '0' offset.

Question 2: If the answer to question 1 is yes, what is the best approach to do this? The datasheet and reference manual for the CC1352 is lacking in this regard and doesn't explain the step value (how many pF are added or subtracted) when adjusting SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA.

Thanks for your time and input!

  • Please see https://www.ti.com/lit/an/swra640e/swra640e.pdf with regards to how to tune the load caps.

    When using external load caps, these have to have the same value on all boards. Meaning that you can tune the load cap value to in average over all boards give close to 0 Hz offset but if you look at a given board this could be off by x ppm where x ppm is given by the xtal spec. if you need 10 ppm accuracy you should select a 10 ppm xtal. 

    Would you be able to measure the actual frequency offset in production and calibrate? 

  • Thanks for your reply.

    I believe we chose 8 pF load caps based on hardware datasheet recommendations (I need to ask our hardware team). Are you saying that we need to adjust the external load caps to obtain a 0 Hz offset, or should we leave them at 8 pF and tune further using the internal cap array? I am testing using a spectrum analyzer so yes we have the ability to calibrate.

  • A xtal require a given CLoad. But as "Tuning the LF Crystal Oscillator" in the app note covers, you will always have a parasitic on the PCB and this you have to take into consideration. The best is by trial and error, meaning test with some combinations of external load caps.

  • I believe we are talking about the HF oscillator, not LF correct?

    Thanks for the information about the parasitic capacitance, I will pass this along to the hardware guys.

    One last thing for now. The document you linked states the following in section 3.1.1: "The internal capacitor array can be used in most use cases, but it is recommended to use external crystal loading capacitors and setting the internal XOSC tuning capacitors to zero..."

    However in section 6.4 of the same document, is states "Note that the resulting capacitance value includes parasitic capacitances, which is why the lowest setting is not 0 pF. Using a delta value equal to or lower than the most negative value in the table completely disables the internal load capacitor array."

    Looking at Table 7. Cap-Array-Delta, the lowest value is -40 for CC13X2 devices.

    Question: With the above information, should I set the internal cap array defines to the following since we are using external load caps?

    #define SET_CCFG_MODE_CONF_XOSC_CAP_MOD         0x0
    #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA  0xD7   //  -41 decimal which should disable the cap array

    Thanks!
  • Tuning the frequency with external load caps are applicable for any xtal oscillator.

    From the app note ". Using a delta value equal to or lower than the most negative value in the table completely disables the internal load capacitor array." which is what you want since you are using external load caps.