
すべてのBluetoothモジュールはクロックに依存しています。RFシンセサイザは2.4 GHz ISMバンドを生成するために32 MHzリファレンスを必要とし、スリープタイマーは次のアドバタイジングまたはコネクションイベントのためにウェイクアップするために32.768 kHzリファレンスを必要とします。どちらかのクロックが大きくドリフトすると、モジュールはスロットを逃し、接続をドロップし、または補正に電力を無駄にします。しかし、水晶振動子の選定は往往して事後考察として扱われます——リファレンスデザインからコピーされた部品であり、なぜその値が重要かを理解せずに使用されます。
本記事では、Bluetooth moduleアプリケーション向けの水晶振動子とクロック設計を詳解します:BLE仕様が実際に何を要求するか、負荷容量を正しく計算する方法、温度とエージングが周波数をどうシフトさせるか、PCB上の水晶振動子をどう配置して安定性を確保するか。nRF52832、nRF52840、CC2640R2のデータシートからの実数を使用し、すべての計算を検証できます。
## 1. BLE周波数精度要件
Bluetooth Core Specification(v5.4、Vol 6、Part A、Section 3.1)では、キャリア周波数がチャネル中心周波数の±75 kHz以内であることを要求しています。2.44 GHz(チャネル19)の場合:
| パラメータ | 値 |
|---|---|
| キャリア周波数 | 2440 MHz |
| 要求精度 | ±75 kHz |
| ppm換算 | ±30.7 ppm |
| BLE仕様マージン | ±75 kHz絶対値 |
ただし、±75 kHzの予算には初期周波数誤差(水晶振動子の公差+校正誤差)と時間ドリフト(温度+エージング)の両方が含まれます。ほとんどのモジュール設計では合計±20 ppmをターゲットとし、BLE受信機の周波数推定誤差用のマージンを残します。
### 1.1 75 kHzの根拠
BLE受信機は周波数推定アルゴリズムを使用し、送信機と受信機間の周波数オフセットの一部を補正できます。しかし、オフセットが推定範囲を超えるとパケットが失われます。75 kHzの制限により、反対符号のオフセットを持つ2台のデバイス(一方が+37.5 kHz、もう一方が−37.5 kHz)のネットオフセットが受信機の補正能力内に収まることを保証します。
### 1.2 実用的な予算配分
−20°C〜+60°Cで動作するモジュールの場合:
| 誤差要因 | 典型値 | 備考 |
|---|---|---|
| 水晶振動子公差(初期) | ±10 ppm | 25°Cでのメーカー仕様 |
| 温度安定性 | ±10 ppm | −20〜+60°C |
| 負荷コンデンサミスマッチ | ±2 ppm | 1%公差 |
| エージング(1年) | ±3 ppm | 初年度最悪値 |
| PCB寄生変動 | ±2 ppm | 配線長、ソルダーマスク |
| 合計 | ±27 ppm | BLEマージン内 |
実用限界30.7 ppmに対して約4 ppmの余裕があります——厳しいですが、慎重な部品選定で達成可能です。
## 2. 32 MHz高周波水晶振動子
HF水晶振動子(通常32 MHz)は、2.4 GHz RFキャリアを生成するPLLのリファレンスとして機能します。ほとんどのBLE SoCはこの水晶振動子を無線シンセサイザに直接使用します。
### 2.1 主要水晶振動子パラメータ
| パラメータ | 記号 | nRF52832要件 | CC2640R2要件 | 典型値 |
|---|---|---|---|---|
| 公称周波数 | f0 | 32 MHz | 24 MHz | — |
| 負荷容量 | CL | 12 pF | 9 pF | 8–16 pF |
| 最大ESR | R1 | 100 ohm | 60 ohm | 30–80 ohm |
| 周波数公差 | — | ±10 ppm | ±10 ppm | ±10–30 ppm |
| 温度安定性 | — | ±10 ppm | ±10 ppm | ±10–30 ppm |
| 駆動レベル | DL | 100 uW以下 | 100 uW以下 | 1–100 uW |
| シャント容量 | C0 | — | — | 1–3 pF |
### 2.2 nRF52832が32 MHz、CC2640R2が24 MHzを使用する理由
水晶振動子の周波数はRFチャネル間隔の整数倍(または約数)でなければなりません。BLEチャネルは2 MHz間隔です。nRF52832のPLLは32 MHzに76.25を掛けて2440 MHz(チャネル0)に到達します。CC2640R2は24 MHzリファレンスと分数N PLLを使用します。どちらのアプローチも機能し、選択はSoCアーキテクチャによって決まります。
### 2.3 ESRと発振器起動
等価直列抵抗(ESR)は、発振回路が水晶振動子をどれだけ強く駆動しなければならないかを決定します。ESRが高いと:
– 起動時間が長くなる(安定発振に到達するまでの時間増)
– 起動電流が高くなる
– 温度極限での発振失敗リスク
nRF52832の場合、内部発振器のトランスコンダクタンスは最低200 uA/Vです。水晶振動子のESRは次の条件を満たす必要があります:
gm >= 5 * 2*pi*f0 * (C0 + CL) * R1 * 2
f0 = 32 MHz、C0 = 2 pF、CL = 12 pF、R1 = 100 ohmの場合:
gm_required = 5 * 2*pi*32e6 * (2e-12 + 12e-12) * 100 * 2
= 5 * 201061929 * 14e-12 * 200
= 5 * 201061929 * 2.8e-9
= 5 * 0.000563
= 0.002815 A/V = 2.815 mA/V
nRF52832は200 uA/V = 0.2 mA/Vを提供します…これは要件を満たしません。再計算が必要です。これらのSoCで使用されるPierce発振回路のバルクハウゼン条件は:
gm >= 4 * (2*pi*f0)^2 * (C0 + CL) * CL * R1
同じ値で:
gm_required = 4 * (2*pi*32e6)^2 * (2e-12 + 12e-12) * 12e-12 * 100
= 4 * 4.04e16 * 14e-12 * 12e-12 * 100
= 2.716 mA/V
これでも200 uA/Vを超えます。実際には、nRF52832のHFXOは起動フェーズで遥かに高いトランスコンダクタンスを提供し、CL = 12 pFで最大100 ohm ESRの水晶振動子で動作するよう仕様化されています。安全なアプローチ:SoCメーカーの水晶振動子仕様リストに従うことです。
### 2.4 起動時間の消費電力への影響
HF水晶振動子は通常200〜500 usで起動・安定化します。この間、SoCは最高電流を消費します(発振器は最大駆動モード)。100 ms間隔でアドバタイジングするモジュールの場合:
| フェーズ | 時間 | 電流 | 1イベントあたりエネルギー |
|---|---|---|---|
| スリープ | 99.2 ms | 1.8 uA | 0.178 nWh |
| HFXO起動 | 400 us | 5.5 mA | 0.611 nWh |
| TX(3チャネル) | 372 us | 4.8 mA | 0.496 nWh |
| アドバタイジング1イベント合計 | — | — | 1.285 nWh |
起動エネルギー(0.611 nWh)はアドバタイジングイベント総エネルギーの約48%です。低ESR水晶振動子や低CLを使用して起動時間を短縮すると、平均電流を直接削減できます。ESR = 40 ohmの水晶振動子を使用すると、起動時間を30〜40%短縮し、1イベントあたり約0.2 nWhを節約できます。100 msアドバタイジングを1年間実行した場合:
年間イベント数 = 365.25 * 24 * 3600 / 0.1 = 315,576,000
節約エネルギー = 0.2 nWh * 315,576,000 = 63.1 mWh
CR2032容量 = 220 mAh * 3V = 660 mWh
節約率 = 63.1 / 660 = 9.6%
低ESR水晶振動子でバッテリー寿命を約10%延ばせます。
## 3. 負荷容量計算
これはモジュール設計における最も一般的な周波数誤差の原因です。水晶振動子の負荷容量(CL)は水晶振動子メーカーにより指定されます。外部コンデンサはPCB寄生容量を考慮した後にこの値に一致するよう選定する必要があります。
### 3.1 計算式
CL = (C1 * C2) / (C1 + C2) + Cstray
ここで:
– C1, C2 = 外部負荷コンデンサ値(通常等価)
– Cstray = PCB配線、ソルダーパッド、SoCピンからの寄生容量
C1 = C2 = Cxの場合:
CL = Cx/2 + Cstray
Cx = 2 * (CL - Cstray)
### 3.2 Cstrayの推定
Cstrayが最も難しい部分です。以下が含まれます:
| 要因 | 典型範囲 |
|---|---|
| PCB配線(5 mm、4 mil幅) | 0.5–1.0 pF |
| ソルダーパッド容量 | 0.3–0.5 pF/パッド |
| SoCピン容量 | 2–4 pF/ピン |
| ビア容量 | 0.3–0.5 pF/ビア |
| Cstray合計 | 3–6 pF |
nRF52832の場合、データシートでは水晶振動子ピンあたり約3 pFのピン容量を指定しています。典型的なPCBレイアウトでは、Cstrayは合計約4〜5 pFです。
### 3.3 計算例
ターゲット:CL = 12 pF(水晶振動子仕様)、Cstray = 4.5 pF
Cx = 2 * (12 - 4.5) = 2 * 7.5 = 15 pF
標準E12値を使用:15 pF(完全一致)または16 pF(最も近い標準値)。
Cstrayを無視してCx = 24 pF(2 * 12)を使用した場合:
CL_actual = 24/2 + 4.5 = 16.5 pF
誤差 = (16.5 - 12) / 12 = 37.5%超過
負荷容量ミスマッチによる周波数シフトは約:
df/f0 ≈ -(CL_actual - CL_spec) / (2 * (C0 + CL_spec))
C0 = 2 pF、CL_spec = 12 pFの場合:
df/f0 ≈ -(16.5 - 12) / (2 * (2 + 12)) = -4.5 / 28 = -0.161 = -161 ppm
CLの4.5 pF誤差が161 ppmの周波数シフトを生み出します——BLE許容値の5倍以上です。水晶振動子は公称周波数より161 ppm低く発振し、接続失敗を引き起こします。
### 3.4 コンデンサ公差の影響
1%公差の代わりに5%公差コンデンサを使用した場合:
| CLターゲット | Cx (1%) | Cx (5%) | CL範囲 (1%) | CL範囲 (5%) | ppm変動 (1%) | ppm変動 (5%) |
|---|---|---|---|---|---|---|
| 12 pF | 15 pF | 15 pF | 11.85–12.15 | 11.55–12.45 | ±5.4 ppm | ±16.1 ppm |
5%コンデンサでは、負荷容量だけで±16 ppmの変動を生じ得ます——誤差予算の大部分を消費します。水晶振動子負荷コンデンサには1%公差のC0G/NP0コンデンサを使用してください。
## 4. 32.768 kHz低周波水晶振動子
LF水晶振動子は、次のアドバタイジングイベントやコネクション間隔のウェイクアップタイミングを制御するRTC(リアルタイムカウンタ)を駆動します。その精度がモジュールがスケジュールされたウェイクアップ時間にどれだけ正確に到達するかを決定します。
### 4.1 なぜ重要か
BLEモジュールがアドバタイジングイベント間にスリープする際、次のウェイクアップのタイマーをセットします(例:100 ms)。LFクロックが100 ppm遅いと、モジュールは10 us遅くウェイクアップします。無線はアドバタイジングチャネルが利用可能になるのを待つ必要があり、エネルギーを無駄にします。
コネクションでは、マスターがスレーブにコネクション間隔(例:30 ms)ごとにウェイクアップを指示します。スレーブはアンカーポイントの±2 us以内に準備完了でなければなりません。LFクロックがドリフトすると、スレーブは早く起きて長くリスンするか、遅く起きてパケットを逃します。
### 4.2 RC発振器 vs 水晶振動子
多くのBLE SoCは外部32.768 kHz水晶振動子の代替として内部RC発振器を提供します:
| パラメータ | 外部水晶振動子 | 内部RC (nRF52832) | 内部RC (CC2640R2) |
|---|---|---|---|
| 精度(未校正) | ±20 ppm | ±500 ppm | ±200 ppm |
| 校正必要性 | 不要 | 必要(4〜8秒ごと) | 必要(8秒ごと) |
| 消費電流 | 0.1–0.3 uA | 0.2 uA(動作時) | 0.13 uA(動作時) |
| 校正電流 | — | ~1 uAバースト | ~1 uAバースト |
| BOMコスト | $0.03–0.08 | $0 | $0 |
| PCB面積 | ~2 mm^2 | 0 | 0 |
| 起動時間 | 300–1000 ms | <1 ms | <1 ms |
RC発振器はBOMコストとPCB面積を節約しますが、HF水晶振動子に対する定期校正が必要です。校正中、HF水晶振動子が動作している必要があり、エネルギーを消費します。頻繁にアドバタイジングするモジュール(例:20 ms間隔)では、校正オーバーヘッドが水晶振動子の消費電力を超える可能性があります。
### 4.3 RC校正エネルギー計算
nRF52832は4秒ごと(デフォルト)にRC発振器を校正します。各校正はHF水晶振動子を動作させたまま約17 msかかります:
校正1回あたりエネルギー = 5.5 mA * 3V * 17ms = 0.281 uWh
1日あたりエネルギー = (86400 / 4) * 0.281 = 21600 * 0.281 = 6.07 mWh/day
外部水晶振動子の1日あたりエネルギー:
1日あたりエネルギー = 0.2 uA * 3V * 86400s = 0.052 mWh/day
RC発振器の校正オーバーヘッドは水晶振動子の連続消費の117倍です。CR2032(660 mWh)を使用するバッテリー駆動タグの場合、外部LF水晶振動子の使用で1日あたり約6 mWhを節約し、寿命を延ばします:
660 mWh / 6 mWh/day = 110日間の寿命延長
バッテリー駆動BLEモジュールには必ず外部32.768 kHz水晶振動子を使用してください。
### 4.4 LF水晶振動子の選定
| パラメータ | 典型値 | 備考 |
|---|---|---|
| 周波数 | 32.768 kHz | 音叉型 |
| 負荷容量 | 7–12.5 pF | 低CL = 小容量コンデンサ |
| ESR | 30–70 kohm | SoC仕様の確認必須 |
| 公差 | ±20 ppm | 一般的;±10 ppmもあり |
| 温度特性 | −10/+20 ppm | 音叉型パラボリック曲線 |
| パッケージ | 3215 (3.2×1.5mm) または 2012 (2.0×1.2mm) | SMD |
音叉型水晶振動子は25°Cを中心とするパラボリック温度特性を持ちます:
df/f0 = k * (T - 25)^2
ここで k ≈ −0.035 ppm/°C²。−10°Cまたは+60°Cの場合:
df/f0 = -0.035 * (60 - 25)^2 = -0.035 * 1225 = -42.9 ppm
これは大きなドリフトです。モジュールが温度極限で動作する場合、LFクロックは40+ ppmドリフトし、コネクションイベントのタイミング誤差を引き起こす可能性があります。
## 5. 温度効果と補償
### 5.1 HF水晶振動子の温度特性
ATカット水晶振動子(32 MHz用)は3次温度特性を持ちます:
df/f0 = a1*(T-25) + a3*(T-25)^3 + a5*(T-25)^5
係数は水晶カット角度に依存します。−20〜+60°Cで±10 ppmと仕様化された典型的なATカット水晶振動子の場合、曲線は25°C付近に変曲点を持ち、+85°C付近で±8 ppmのピークを持つ場合があります。
### 5.2 ソフトウェア温度補償
一部のBLE SoC(nRF52840など)は内部温度センサーを備え、水晶振動子の周波数ドリフトを補償するために使用できます。アプローチ:
1. 内部センサーからチップ温度を読み取り
2. 事前校正テーブルから予想周波数オフセットをルックアップ
3. 無線周波数レジスタに補正を適用
nRF52840の場合、周波数補正レジスタ(FREQ)は1 MHz分解能のステップを持ちます。微調整はSFDタイムアウト調整と無線周辺の周波数推定によって行われます。実用上、ソフトウェア補償は全温度範囲での合計周波数誤差を±25 ppmから±10 ppmに削減できます。
### 5.3 TCXOの代替案
温度補償水晶発振器(TCXO)は、発振器パッケージ内に温度センサーと補償回路を統合します。典型的な仕様:
| パラメータ | 標準水晶振動子 | TCXO |
|---|---|---|
| 温度精度 | ±10–30 ppm | ±0.5–2 ppm |
| 消費電流 | 0(パッシブ) | 0.3–1.5 mA |
| BOMコスト | $0.05 | $0.30–0.80 |
| 起動時間 | 200–500 us | 1–5 ms |
| パッケージサイズ | 3.2×2.5mm | 2.5×2.0mm以下 |
ほとんどのBLEモジュールアプリケーションでは、慎重なCL計算を伴う標準水晶振動子で十分な精度が得られます。TCXOが正当化されるのは以下の場合のみ:
– 極端な温度範囲(−40〜+105°C)での動作
– 長いコネクション間隔(>1秒)で蓄積ドリフトが大きい場合
– より厳しいタイミング要件を持つBLE Audio(LE Audio)のサポート
## 6. 水晶振動子のPCBレイアウト
### 6.1 ゴールデンルール
1. 配線長を最小化:水晶振動子からSoCまでの配線を3 mm以下に。1 mmあたり約0.1 pFの寄生容量が追加されます。
2. 対称レイアウト:両方の水晶振動子ピンを等長配線で。非対称は寄生容量の不均衡を生じ、発振周波数をシフトさせます。
3. グラウンドガードリング:水晶振動子を同層のグラウンド銅箔で囲み、複数のビアでSoCグラウンドに接続。
4. 水晶振動子下に信号を通さない:どの層でも水晶振動子パッドの下に高速またはスイッチング信号を配線しない。
5. 負荷コンデンサを水晶振動子の近くに:C1とC2を水晶振動子パッドの可能な限り近くに配置し、グラウンドリターンを短く。
6. 独立したグラウンドリターン:水晶振動子のグラウンドはノイズの多い周辺機器と共有プレーンを通らず、SoCグラウンドパッドに直接接続。
### 6.2 レイアウト寄生容量の推定
典型的な4層PCBスタックアップ(信号-グラウンド-電力-信号)、4 mil配線幅の場合:
| 要素 | 容量 |
|---|---|
| 3 mm配線(信号〜グラウンドプレーン) | 0.3 pF |
| ソルダーパッド(0.6×0.3 mm) | 0.2 pF |
| ビア(信号〜グラウンド) | 0.3 pF |
| SoCピン(内部) | 3.0 pF |
| ピンあたり合計 | 3.8 pF |
| Cstray合計(両ピン) | 7.6 pF |
配線が長い場合(例:6 mm)、Cstrayはピンあたり約5 pF(合計10 pF)に増加します。これにより必要な外部コンデンサが変わります:
Cx = 2 * (12 - 10) = 4 pF
4 pFコンデンサは実用上の入手性の限界にあります。これが水晶振動子配線を短くすることが重要な理由です——Cstrayが大きすぎると、標準コンデンサ値でターゲットCLを達成できません。
## 7. BLEモジュールのクロックツリー設計
### 7.1 典型的なBLE SoCのクロックソース
| クロック | 周波数 | ソース | 用途 |
|---|---|---|---|
| HFXO | 32 MHz | 外部水晶振動子 | RFシンセサイザ、高速周辺 |
| HFXO (代替) | 32 MHz | 外部TCXO | 同上、より高精度 |
| HFINT | 32 MHz | 内部RC | 高速起動、RFには精度不足 |
| LFXO | 32.768 kHz | 外部水晶振動子 | RTC、スリープタイミング |
| LFINT | 32.768 kHz | 内部RC | RTC(校正付き) |
| LFCLK (シンセ) | 32.768 kHz | HFXOから生成 | RTC(高精度、高消費電力) |
### 7.2 省電力のためのクロックゲーティング
現代のBLE SoCは自動クロックゲーティングを実装:周辺がアイドル時にクロックを無効化。モジュールファームウェアは以下でさらに省電力化できます:
– PRCNレジスタで未使用周辺を無効化
– 無線オフ時にすべてのタイミングにLFクロックを使用
– 無線イベントの直前のみHFXOを起動
– PPIを使用してCPU介在なしでクロックを開始/停止
nRF52832のアドバタイジング中の典型的なクロック状態遷移:
スリープ: LFCLK動作 (LFXO)、HFXOオフ、CPUオフ
→ RTCコンペアイベントがPPIをトリガー
→ PPIがHFXOを起動 (400 us起動)
→ HFXO準備完了イベントがRADIOをトリガー
→ 3アドバタイジングチャネルでTX (376 us)
→ RADIO ENDイベントがPPIをトリガー
→ PPIがHFXOを停止
→ CPUがスリープに戻る
この全シーケンスはCPU介在なしで発生し、消費電力を最小化します。重要なのは、LFCLKの精度がRTCがスケジュール時刻にどれだけ近いかを決定することです。LFCLKがドリフトすると、HFXOが早く起動しすぎ(電力浪費)または遅く起動しすぎ(ウィンドウ逸失)する可能性があります。
### 7.3 水晶振動子起動時間の最適化
HFXO起動時間は以下に依存します:
– 水晶振動子ESR(低い = 高速)
– 負荷容量(低い = 高速)
– 発振器駆動強度(高い = 高速、ただし過駆動リスク)
– 負性抵抗マージン(大きい = 高速)
nRF52832、32 MHz、CL=12 pF、ESR=40 ohm水晶振動子の場合:
| 駆動設定 | 起動時間 | 起動中電流 |
|---|---|---|
| デフォルト | 350 us | 5.5 mA |
| ブースト(有効) | 180 us | 8.2 mA |
| ノーマル(ブーストオフ) | 420 us | 4.1 mA |
ブーストモードはより高い起動電流を犠牲にして短い起動時間を実現します。最適な選択はアドバタイジング間隔に依存します:
Energy_default = 5.5mA * 350us = 1.925 uC
Energy_boost = 8.2mA * 180us = 1.476 uC
ブーストモードは実際に起動イベントごとに23%のエネルギーを節約しながら、最初のパケットまでの時間も短縮します。アドバタイジング間隔 < 200 msの場合、HFXOブーストモードを有効にしてください。
## 8. 測定と検証
### 8.1 周波数誤差測定
最も直接的な方法は、BLEテスター(Nordic nRF52 DK + nRF Connect、またはRhode & Schwarz CBTなど)を使用してキャリア周波数オフセットを測定することです:
1. モジュールを連続TXモード(無変調キャリア)に設定
2. スペクトラムアナライザまたは周波数カウンタでキャリア周波数を測定
3. オフセット計算:df = f_measured – f_channel_center
4. ppm変換:error = df / f_channel_center * 1e6
| チャネル | f_center | 期待f_measured (0 ppm) |
|---|---|---|
| 0 | 2402 MHz | 2402.000000 MHz |
| 19 | 2440 MHz | 2440.000000 MHz |
| 39 | 2480 MHz | 2480.000000 MHz |
適切に調整された水晶振動子を持つモジュールは、全3チャネルで20 ppm未満の誤差を示すべきです。誤差が全チャネルで一貫している場合(例:すべて+35 ppm)、水晶振動子が周波数オフ——おそらく負荷容量の問題。チャネル間で誤差が大きく異なる場合、PLLまたはリファレンスクロック乗算器に問題がある可能性があります。
### 8.2 温度チャンバーテスト
温度安定性を検証するには:
1. モジュールを温度チャンバーに設置
2. チャンバーを−20°C、0°C、25°C、40°C、60°C、80°Cに設定
3. 各温度でキャリア周波数を測定(15分ソーク後)
4. 周波数誤差 vs 温度をプロット
ATカット±10 ppm水晶振動子の典型的な結果:
| 温度 | 周波数誤差 (ppm) |
|---|---|
| −20°C | −8.2 |
| 0°C | +3.1 |
| 25°C | +0.5 |
| 40°C | +5.8 |
| 60°C | +7.2 |
| 80°C | +4.1 |
3次曲線が見えます:誤差は−20°Cで下がり、+60°C付近でピークに達し、その後戻り始めます。いずれかのポイントが±20 ppmを超える場合、負荷容量の調査またはより高精度水晶振動子の検討が必要です。
### 8.3 量産テストアプローチ
量産では、各モジュールの周波数テストが必要です:
1. クイックテスト(< 2秒):モジュールがチャネル19で単一アドバタイジングパケットを送信。テストフィクスチャがキャリア周波数を測定。合格/不合格閾値:±30 ppm。
2. 校正:周波数誤差が±50 ppm以内だが±30 ppm外の場合、ソフトウェア補正を適用(SoCが内部コンデンサトリミングをサポートする場合、負荷コンデンサ値レジスタをトリム、またはコンデンサ再作業のためにモジュールをフラグ)。
3. 歩留まり期待値:1%負荷コンデンサと検証済みPCBレイアウトで、初回テスト合格率99%以上。
nRF52832は内部負荷コンデンサトリミング(CAPACITANCEレジスタ、0–15 pF範囲、0.5 pFステップ)をサポートします。これにより物理部品を変更せずに水晶振動子周波数のソフトウェア校正が可能です:
誤差 > +20 ppmの場合: 内部容量を0.5 pFステップで減少
誤差 < -20 ppmの場合: 内部容量を0.5 pFステップで増加
0.5 pFの変更ごとに周波数は約7〜8 ppmシフトします(C0とCLに依存)。31ステップ(0–15 pF)で、トリム範囲は±110 ppm——水晶振動子/負荷コンデンサの変動を補正するのに十分です。
## 9. よくある設計の落とし穴
### 9.1 リファレンスデザインの盲目的コピー
SoCリファレンスデザインは特定のPCBスタックアップ上の特定の水晶振動子向けに最適化されています。PCBの層間スペーシング、誘電率、配線ジオメトリが異なる場合、寄生容量が変わり、負荷コンデンサが不正確になります。実際のPCBで周波数を常に測定・検証してください。
### 9.2 Cstrayの無視
C1 = C2 = 2*CL(例:CL = 12 pFで24 pF)の設定が最も一般的なエラーです。Cstrayを完全に無視し、40〜160 ppmの周波数誤差を生じます。PCBレイアウトからCstrayを常に計算し、外部コンデンサ値を調整してください。
### 9.3 X7R負荷コンデンサの使用
X7Rコンデンサは電圧係数を持ち、印加電圧で10〜15%の容量変動を生じます。水晶振動子発振器はほぼゼロDC電圧を印加するため影響は少ないですが、X7Rはより高い温度変動(C0Gの±30 ppmに対し±15%)も持ちます。水晶振動子負荷コンデンサには常にC0G/NP0誘電体を使用してください。
### 9.4 水晶振動子の過駆動
発振器駆動強度が高すぎる場合、水晶振動子が定格駆動レベル(通常最大100 uW)を超える電力を消費します。これにより:
– 周波数シフト(水晶振動子周波数は駆動レベルに依存)
– 早期エージング(水晶振動子周波数のより速いドリフト)
– 極端な場合は物理的損傷(石英素子の割れ)
nRF52832はHFXO駆動強度の設定が可能です。水晶振動子ESRが低い場合(例:30 ohm)、過駆動を避けるため駆動強度を下げてください。水晶振動子の消費電力が仕様内であることを確認:
P_crystal = I_rms^2 * R1
### 9.5 LF水晶振動子の起動時間
32.768 kHz水晶振動子は非常に長い起動時間—最大1秒—を持ちます。モジュールファームウェアが電源オン直後にRTCを初期化し、水晶振動子が安定化していない場合、最初の数回のタイミング間隔が不正確になります。スリープモードに入る前にLFXO準備完了イベントを常に待つか、起動後数秒間は内部RC発振器を使用してください。
### 9.6 水晶振動子配線のビア
水晶振動子配線にビアを配置すると寄生インダクタンスと容量が増加し、発振器性能が低下します。水晶振動子パッドとSoCピン間にビアのない完全に最上層に配線してください。
## 10. SoC比較:水晶振動子要件
| パラメータ | nRF52832 | nRF52840 | CC2640R2F | TLSR8253 |
|---|---|---|---|---|
| HF周波数 | 32 MHz | 32 MHz | 24 MHz | 24 MHz |
| HF CL(典型) | 12 pF | 12 pF | 9 pF | 12 pF |
| HF最大ESR | 100 ohm | 100 ohm | 60 ohm | 80 ohm |
| HF起動時間 | 350–500 us | 350–500 us | 200–400 us | 300–500 us |
| LFサポート | LFXO + RC | LFXO + RC | LFXO + RC | LFXO + RC |
| LF CL(典型) | 12 pF | 12 pF | 12.5 pF | 12.5 pF |
| 内部キャップトリム | あり (0.5 pFステップ) | あり (0.5 pFステップ) | なし | なし |
| HFXOブースト | あり | あり | なし | なし |
| TCXOサポート | 外部ピン経由 | 外部ピン経由 | なし | なし |
nRF52シリーズが最も柔軟な水晶振動子サポートを持ち、内部容量トリミングとブーストモードを含みます。CC2640R2はより厳しいESR要件(最大60 ohm)を持ちますが、起動はより高速です。TLSR8253が最も制限的—内部トリミングがないため、物理的な負荷コンデンサを正しく設定する必要があります。
## 11. 設計チェックリスト
モジュール設計を確定する前に、各項目を確認してください:
– [ ] 水晶振動子公差 + 安定性 + エージング < 合計±25 ppm
– [ ] PCBレイアウトから測定したCstrayで負荷容量を計算
– [ ] 負荷コンデンサはC0G/NP0、1%公差
– [ ] 水晶振動子配線 < 3 mm、対称、ビアなし
– [ ] 水晶振動子と負荷コンデンサ周囲にグラウンドガードリング
– [ ] 水晶振動子の下または近くに高速信号を配線しない
– [ ] ESRがSoC仕様内で十分なマージン(> 2倍)
– [ ] HFXO起動時間を測定し、消費電力予算内
– [ ] バッテリー駆動アプリにLF水晶振動子(RC発振器ではなく)を使用
– [ ] 起動シーケンスでLF水晶振動子起動時間を考慮
– [ ] 実際のPCBで室温周波数誤差を測定
– [ ] 動作温度範囲で温度チャンバーテスト合格
– [ ] 周波数検証用の量産テストフィクスチャ準備完了
– [ ] 内部キャップトリミングレジスタ設定(サポート時)
– [ ] アドバタイジング間隔 < 200 msでHFXOブーストモード有効
## 12. まとめ
水晶振動子とクロック設計はBLEモジュール性能の基盤です。負荷容量の2 pF誤差が50+ ppmの周波数シフトを引き起こす可能性があり——BLEコンプライアンス不合格や接続ドロップを招くのに十分です。重要なポイント:
1. 実際のPCBレイアウトからCstrayを計算。リファレンスデザインからではなく。3 mm配線の4層PCBでは通常ピンあたり3.8〜5 pFの寄生容量があります。
2. 水晶振動子負荷コンデンサにC0G/NP0 1%コンデンサを使用。X7Rや5%公差部品は周波数誤差予算を過剰に消費します。
3. バッテリー駆動モジュールには必ず外部32.768 kHz水晶振動子を使用。RC発振器の校正オーバーヘッドは水晶振動子自体の100倍のエネルギーを消費します。
4. 低ESR水晶振動子の選定とブーストモード有効化で起動時間を最小化。起動エネルギーはアドバタイジングイベントエネルギーの40〜50%を占めます。
5. 実機で検証:室温と温度チャンバーで周波数誤差を測定。利用可能な場合は内部キャップトリミングで量産校正を実施。
6. SoCメーカーの水晶振動子仕様に従う。ESR、CL、駆動レベルについて。これらは広範な特性評価を通じて検証されており、再検討すべきではありません。
−40〜+85°Cの産業用温度範囲で動作するモジュールの場合、HFクロックにTCXOを検討するか、SoCの内部温度センサーを使用したソフトウェア温度補償を実装してください。標準水晶振動子が全範囲で±20 ppm精度を維持できない場合、0.3〜1.5 mAの追加消費電流が正当化されます。
アプリケーション向けにBluetooth moduleを選定する際、モジュールメーカーがこの水晶振動子設計作業を代わりに行っていることを確認してください——温度間の周波数精度テスト、量産PCBでの負荷容量検証、データシートでの周波数誤差仕様の提供。適切に設計されたモジュールは、動作温度範囲全体で±20 ppm以下を指定し、各ユニットで量産テスト済みの周波数精度を提供すべきです。
