Bluetooth Low Energy の接続イベントは、デバイス間で信頼性の高いパケット交換を確実に実現するために、高精度のタイミングが必要です。Bluetooth コア仕様では、最大 ±500ppm + 16µs のスリープ クロック精度 (SCA) が許容されます。この SCA では、スタンバイ間隔中の低周波数クロック ソースの最大許容ドリフトが定義されています。
内部 LFOSC はフリーランニング発振器で、デバイスの動作条件によって周波数が変化します。LFOSC 周波数ドリフトを補償するため、システムは周期的なハードウェア キャリブレーション メカニズムを採用しています。LFOSC 周期は、アクティブ モードでの正確なリファレンスとして機能する超低リーク (ULL) クロックに対して測定されます。同じモードで、ULL クロック (CLKULL) が 24MHz で動作します。このモードは、高周波水晶発振器 (HFXT) を基準とする高周波発振器 (HFOSC) から生成されます。デバイスがスタンバイに移行すると、CLKULL は構成された低周波クロック (LFCLK) を使用するように切り替わります。
LFINC と呼ばれる変換係数は、この測定値から得られ、リアルタイムクロック (RTC) によって適用されることで、正確な時間管理を維持します。これにより、Bluetooth Low Energy (LE) 接続イベント スケジューリングが、デバイスの動作寿命を通じて、Bluetooth コア仕様に定義されているスリープ クロックのタイミング精度要件内に維持されていることを確認します。
このキャリブレーション メカニズムでは、高周波水晶発振器 (HFXT) がアクティブになっている必要があります。スタンバイ中、HFXT は電源オフになり、消費電流を最小限に抑え、LFINC の更新を一時停止し、この期間中に発生した LFOSC 周波数ドリフトは補償されないようにします。LFINC 再キャリブレーションは、次の周期的なウェークアップ イベントまたは HFXT を再アクティブにする BLE 動作時に再開されます。
LFCAL なしで LFOSC を使用するシンプルな例
手順 1 — アクティブ モード
- HFXT (48MHz) はアクティブな状態にあり、HFOSC の正確なリファレンスとして機能し、CC27xx デバイスでは 96MHz に、CC23xx デバイスでは 48MHz にトラッキングされた HFOSC を生成します。
- CLKULL は、24MHz を生成するトラッキングされた HFOSC から導出されます。
- ハードウェアは、選択した LFCLK (この場合は LFOSC) 周期を CLKULL に対して測定します。たとえば、最大 -300ppm の偏差については、LFOSC 周波数 = 32.758kHz です。
- LFINC は 30.527µs に更新されます。LFTICK ごとに、ハードウェアが RTC TIME カウンタに LFINC を追加します。
- 次の接続イベントをスケジュールするには、COMPARE 値が現在の TIME + 目的の間隔 (1000ms) に設定されます。TIMEが COMPARE 値に達すると、RTC はウェークアップを起動します。
手順 2 — スタンバイ モード
- HFXT は無効になっており、HFOSC のトラッキングは行われなくなります。
- CLKULL は選択された LFCLK (この例では LFOSC) で動作するように切り替わりますが、LFOSC を測定するための基準クロックが存在しないため、LFINC は更新できません。
- 前回の測定から LFINC を使用して RTC と WDT はアクティブのままです。
- LFOSC は公称 (32.7844kHz) から +500ppm までドリフトし、約 800ppm の周波数の変化に対応します。LFINC が古いため、LFOSC ドリフトは補償されません。
- RTC は LFTICK エッジをカウントし続けますが、各ティックは LFINC が想定する値よりもわずかに短い実時間を表すようになります。ドリフトが補償されない限り、タイミング誤差は累積します。スタンバイ期間内のドリフトが早いほど、ウェークアップ時の誤差は大きくなります。ワーストケースでは、HFXT がディセーブルされた直後にドリフトが発生し、スタンバイ時間全体にわたって累積します。
手順 3 — RX ウィンドウのタイミング
- RTC は 32,758 LFTICK エッジをカウントし、1000.00ms が経過すると予想します。実際の経過時間:32,758 ティック × 30.5023µs = 999.194ms
- ペリフェラルの推定 RX ウィンドウは 806µs 早く開きます
- 単純化のために中央 SCA を無視する (通常は約 50ppm) と、中央デバイスは T=1000.00ms で接続パケットを送信します。
- ペリフェラル SCA が 500ppm で、Bluetooth 仕様の 16µs 瞬時ジッタ許容値により、RX ウィンドウは、推定アンカー ポイントの前後に 516µs 拡張します。
実際のパケットは推定アンカー ポイントから 806µs 後に到着します。その時点ではウィンドウがすでに閉じてから 290µs 経過しています。接続パケットは受信されません。