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.

CC2640R2F: Using the 24-MHz Crystal and the 32.768-kHz Crystal problem

Part Number: CC2640R2F
Other Parts Discussed in Thread: CC2640, CC2650

In the 4.2 Bluetooth specification, it states

"The Link Layer shall use one of two possible clock accuracies. During a connection event or advertising event the Link Layer shall use the active clock accuracy; otherwise it shall use the sleep clock accuracy."

When advertising, I assume the CC2640R2F works fine using the 24-MHz Crystal. After a connection is established, if I do not have the 32.768-kHz Crystal installed, CC2640R2F will not output a signal.

Why is it that if I do not have the 32.768-kHz Crystal installed, CC2640R2F will not output a signal?

  • Hi,

    I am not sure what you meant by CC2640R2F will not output a signal. Can you elaborate it a bit more(what signal are you talking about?))


    There are multiple sources can sleep clock source for CC26240R2F(CC2640/CC2650).
    Those options are listed in our ccfg.c file
    //#####################################
    // Clock settings
    //#####################################

    #ifndef SET_CCFG_MODE_CONF_SCLK_LF_OPTION
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x0 // LF clock derived from High Frequency XOSC
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x1 // External LF clock
    #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x2 // LF XOSC
    // #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x3 // LF RCOSC
    #endif


    As you can see, if you don't have a 32k xtal in place, you can still use RFOSC LF as low frequency system clock source(which is use for sleep clock). That mean CC2640 can still run as a peripheral device.

    Here is the application note regarding running BLE on CC2640/CC2650/CC2640R2F without 32k xtal
    www.ti.com/.../swra499
  • Hello Christin
    Thank you for your reply.
    I would like to clarify my statement.
    When I said that there was no output signal available, I meant after the master has connected to the slave, if the master gives out a command to the slave, there is no response from the slave.
    side note: I have already confirmed that advertising is working as expected.

    Is this because the active clock (24MHz Crystal) is used when connecting, and the sleep clock (32.768kHz Crystal, which I did not install) is used otherwise?
    What I don't understand is, if we can just use XOSC_HF, why use RCOSC_LF at all?
    From the documents that I have read from TI, it seems like the usage of RCOSC_LF is strongly recommended, but from seeing the application note you have provided above (swra499), I see no need for it.
  • Hi Kota,

    Since BLE is a synchronous protocol it imposes strict requirements on the sleep clock (RTC) accuracy of the devices. As you have seen, without an accurate sleep clock, the connection will break. The BT requirement on sleep clock accuracy is +/- 500 ppm.

    The CC26xx devices can source their RTC from multiple oscillators. By default in HW, the 32 kHz clock will be derived from the internal 48 MHz RC oscillator (RCOSC) which is quite inaccurate. As Christin showed you, the default SW configuration, which is set in CCFG, is to change the 32 kHz clock source to the 32 kHz crystal oscillator (XOSC). This is typically very accurate, but of course it requires that you have a 32 kHz crystal connected to the chip. If you do not change the CCFG configuration, and do not have a crystal mounted, the CC26xx will stick to using the 48 MHz RC OSC as RTC source. This will not work for BLE.

    In other words, if you are not having a crystal on the board, the recommendation is to use the 32 kHz RC oscillator as clock source. This is also fairly inaccurate, and does require a periodic calibration to run within the BT specifications. The procedure to enable this calibration is outlined in the appliaction note Christin linked to.

    There are several pros and cons with using various oscillators as source for the 32 kHz RTC:
    - 32 kHz XOSC: gives best accuracy and thus lowest current consumption. Requires crystal
    - 32 kHz RCOSC: less accuracte, so current consumption will be higher. Does not require crystal
    - 24 MHz XOSC: very accurate, but requires the oscillator to run when the CC26xx is in Standby. This raises the Standby current to ~40 uA
    - 48 MHz RCOSC: does not work for BLE, not accurate enough

    Regards,
    Fredrik
  • Hello Fredrik
    Thank you for your reply, this helps out tremendously. This is the information that I was looking for.