SDAA329 May   2026 CC2745R10-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Applicable Devices
    2. 1.2 Required Software
  5. 2Quick Decision Guide: When To Use Crystal-less Mode?
    1. 2.1 Use LFOSC For
    2. 2.2 Tradeoffs
    3. 2.3 Use External Crystal (LFXT) When
  6. 3Internal Oscillator Operation
    1. 3.1 How It Works
    2. 3.2 The CC27xx Design: LFCAL Hardware
  7. 4Quick Start Guide
    1. 4.1 Open SysConfig
    2. 4.2 Select LFOSC Clock Source
    3. 4.3 Enable LFOSC Compensation
    4. 4.4 Add Compensation Profile
    5. 4.5 Set as Default Profile
    6. 4.6 Build and Test
  8. 5Configuration Details and Power Consumption
    1. 5.1 Understanding the Compensation Profile
    2. 5.2 Profile Examples
    3. 5.3 Power Policy
  9. 6Window Widening
    1. 6.1 The Challenge
    2. 6.2 The Design
  10. 7Hardware Design
    1. 7.1 What to Remove
    2. 7.2 LFXT Pins
    3. 7.3 HFXT Requirements
    4. 7.4 Board Bring-Up Checklist
  11. 8Summary
  12. 9References

How It Works

Bluetooth Low Energy connection events require precise timing to ensure reliable packet exchange between devices. The Bluetooth Core Specification permits a sleep clock accuracy (SCA) of up to ±500ppm + 16µs, which defines the maximum allowable drift of the low-frequency clock source during standby intervals.

The internal LFOSC is a free-running oscillator whose frequency varies across device operating conditions. To compensate for LFOSC frequency drift, the system employs a periodic hardware calibration mechanism. The LFOSC period is measured against the Ultra Low Leakage (ULL) clock, which serves as an accurate reference during active mode. In the same mode, the ULL clock (CLKULL) operates at 24MHz, derived from the High-Frequency Oscillator (HFOSC) which is derived from the High-Frequency Crystal Oscillator (HFXT). When the device enters standby, the CLKULL switches to using the configured Low Frequency Clock (LFCLK).

A conversion factor, referred to as LFINC, is derived from this measurement and applied by the Real-Time Clock (RTC) to maintain accurate timekeeping. This verifies that Bluetooth Low Energy (LE) connection event scheduling remains within the sleep clock timing accuracy requirements defined in the Bluetooth Core Specification, across the device's operating lifetime.

This calibration mechanism requires the High Frequency Crystal Oscillator (HFXT) to be active. During standby, the HFXT is powered down to minimize current consumption, suspending LFINC updates and leaving any LFOSC frequency drift occurring during this interval uncompensated. LFINC re-calibration resumes upon the next periodic wake-up event or BLE activity that reactivates the HFXT.

Simplified Example of using LFOSC without LFCAL

Step 1 - Active Mode

  1. HFXT (48 MHz) is active and serves as the accurate reference for HFOSC, producing a tracked HFOSC at 96 MHz for CC27xx devices and at 48MHz for CC23xx devices.
  2. CLKULL is derived from the Tracked HFOSC producing 24MHz.
  3. The hardware measures the selected LFCLK (LFOSC in this case) period against the CLKULL. For example, for a ~-300ppm deviation, LFOSC frequency = 32.758kHz. C L K U L L   ÷   L F O S C   a c t u a l   f r e q u e n c y =   C L K U L L   t i c k s   p e r   L F T I C K 24   M H z   ÷   32 . 758   k H z   =   732 . 64   C L K U L L   t i c k s   p e r   L F T I C K
  4. LFINC is updated to 30.527 µs. On every LFTICK, hardware adds LFINC to the RTC TIME counter. 1   L F T I C K   =   1 / 32758   =   30 . 527   µ s
  5. To schedule the next connection event, a COMPARE value is set to current TIME + desired interval (1000ms). The RTC fires a wake-up when TIME reaches COMPARE.

Step 2 - Standby Mode

  1. HFXT is disabled and no longer being tracked for HFOSC.
  2. CLKULL switches to run on selected LFCLK (LFOSC for this example) LFINC cannot be updated as there is no reference clock to measure LFOSC against.
  3. The RTC and WDT remain active using LFINC from previous measurement.
  4. LFOSC drifts to +500ppm from nominal (32.7844kHz), corresponding to a change of frequency of approximately 800ppm, with stale LFINC so any LFOSC drift is uncompensated. N e w   a c t u a l   L F T I C K   p e r i o d   =   24   M H z   ÷   32 . 7844   k H z   =   30 . 5023   µ s   p e r   t i c k
  5. The RTC continues to count LFTICK edges, but each tick now represents slightly less real time than LFINC assumes. The timing error accumulates for as long as the drift goes uncompensated. The earlier the drift occurs within the standby period, the larger the error at wakeup. In the worst case, the drift occurs immediately after HFXT is disabled, accumulating over the full standby duration.

Step 3 - RX Window Timing

  1. The RTC counts 32,758 LFTICK edges, expecting 1000.00 ms to have elapsed. Actual elapsed time: 32,758 ticks × 30.5023 µs = 999.194ms
  2. The peripheral's estimated RX window opens 806µs too early
  3. Ignoring central SCA for simplicity (typically approximately 50ppm), the central device transmits the connection packet at T = 1000.00ms.
  4. With a peripheral SCA of 500ppm and the 16µs instantaneous jitter allowance from the Bluetooth Specification, the RX window extends 516µs before and after the estimated anchor point: R X   w i n d o w   o p e n s :   999 . 194     0 . 516   =   998 . 678   m s R X   w i n d o w   c l o s e s :   999 . 194   +   0 . 516   =   999 . 710   m s

The real packet arrives 806µs after the estimated anchor point, 290µs after the window has already closed. The connection packet is missed.