Chapter 09
コンパレータ・発振回路・PLL
この章がなぜ必要なのか——「比較する」「振らせる」「同期させる」は基本動作だから.
- コンパレータ: アナログ量をデジタルの 1 ビットに変える
- 発振回路: すべてのデジタル回路に必要なクロックを作る
- PLL: 周波数を逓倍し、位相を合わせる
そして——オペアンプをコンパレータとして使ってはいけないという よくある誤解を、ここで解いておく。
この章で使う既出の用語(定義は各リンク先). バイアス(01 章 4 節)、ESR(02 章 2 節)、オペアンプ(05 章)、スイッチング電源(05 章)、増幅(05 章 2 節)、線形領域(05 章 2 節)、MOSFET(06 章 6 節)、制御(06 章 6 節)、大電流(06 章 6 節)、飽和(06 章 3 節)、容量性負荷(07 章 4 節)
1. コンパレータ
2 つの入力を比較して、デジタル出力を出す。
オペアンプとの違い
| オペアンプ | コンパレータ | |
|---|---|---|
| 用途 | 負帰還をかけて線形動作 | 飽和領域で使う(帰還なし、または正帰還) |
| 出力段 | プッシュプル(線形) | オープンドレイン/コレクタ、またはロジック出力 |
| 位相補償 | あり(安定性のため) | なし(速度優先) |
| 応答速度 | µs〜数十 ns | 数 ns〜数十 ns |
| 入力段の耐性 | 差動入力電圧に制限あり | 大きな差動入力に耐える |
オペアンプをコンパレータとして使ってはいけない理由.
- 遅い。 位相補償のせいで、飽和からの復帰に時間がかかる(数 µs)
- 出力が飽和すると内部トランジスタが飽和し、回復が遅れる
- 差動入力電圧の定格を超えることがある(入力保護ダイオードに大電流が流れる)
- 出力がロジックレベルでないことがある
逆に——コンパレータをオペアンプとして使ってもいけない。 位相補償がないので、負帰還をかけると確実に発振する。
出力形式
| 形式 | 特徴 |
|---|---|
| オープンドレイン/コレクタ | プルアップ抵抗が必要。ワイヤード OR ができる。レベル変換も可能 |
| プッシュプル(CMOS 出力) | 外付け不要。速い |
| LVDS / PECL 出力 | 超高速。差動 |
ヒステリシス — 必須の技法
入力がゆっくり変化すると、閾値付近でノイズによりチャタリングする。
正帰還で閾値を 2 つ持たせる。
ヒステリシス幅は
ヒステリシスの効果を見る
ノイズ量とヒステリシス幅を変えて、出力のチャタリングを確かめられる。
ヒステリシス幅の決め方.
予想されるノイズの振幅(ピークツーピーク)より大きくする。
目安:
- 一般的な用途: 50〜200 mV
- ノイズの多い環境: 500 mV 以上
- 高精度が要る用途: 数十 mV(ただしノイズ対策を別途行う)
代償: 閾値の精度が落ちる。 ヒステリシス幅の分だけ不確定になる。
内部にヒステリシスを持つ品種もある(数 mV〜数十 mV)。 「ヒステリシス内蔵」でも、外部ノイズには足りないことが多い。
シュミットトリガ
ヒステリシスを内蔵したロジック入力。
| デバイス | 用途 |
|---|---|
| 74xx14 / 74xx132 | シュミットトリガインバータ/NAND |
| MCU の GPIO | 多くがシュミット入力(データシートで確認) |
| リセット IC | 内部にヒステリシスを持つ |
なまった波形(03 章の RC でデバウンスした信号など)は、必ずシュミット入力で受ける。
2. 発振回路
発振の条件(バルクハウゼンの条件)
持続的に発振するには:
起動時は \(|A\beta| > 1\) でなければならない.
ちょうど 1 では、ノイズから成長しない。 起動時は 1 より大きくして成長させ、 振幅が大きくなったら非線形性(飽和)で 1 に落ち着かせる。
高品質な発振器では、AGC(自動利得制御)で振幅を制御する。 飽和による歪みを避けるためである。
水晶発振回路(ピアース発振)
組み込みで最も使われる発振回路。
| 部品 | 役割 |
|---|---|
| インバータ | 増幅器(180° の位相回転) |
| \(R_f\)(1〜10 MΩ) | インバータを線形領域にバイアスする |
| 水晶 | 共振で周波数を決める。+180° の位相回転 |
| \(C_1, C_2\) | 負荷容量。周波数の微調整 |
負荷容量の設計
水晶のデータシートに「負荷容量 \(C_L\)」が指定されている。
\(C_{stray}\) は基板・パッケージ・ピンの浮遊容量(通常 3〜5 pF)。
\(C_1 = C_2 = C\) とすると
例: \(C_L = 12\) pF、\(C_{stray} = 4\) pF なら
負荷容量が合っていないと、周波数がずれる.
- \(C_L\) が指定より大きい → 周波数が低くなる
- \(C_L\) が指定より小さい → 周波数が高くなる
ずれの量は数十〜数百 ppm。 UART の通信では 2 % のずれで通信不能になる(20 章)ので、 20000 ppm までは許容されるが、RTC や USB では致命的である。
用途 許容誤差 UART ±2 %(20000 ppm) USB フルスピード ±0.25 %(2500 ppm) CAN ±0.5 %(5000 ppm、ボーレートによる) RTC(時計) ±20 ppm(1 日 1.7 秒のずれ) 無線(BLE 等) ±20〜40 ppm
発振の駆動レベル
水晶に過大な電力をかけると、劣化・破損する。
| 対策 | 内容 |
|---|---|
| 直列抵抗 \(R_d\) | XOUT と水晶の間に入れて電流を制限(100 Ω〜数 kΩ) |
| MCU の駆動能力設定 | 多くの MCU がゲインを選択できる |
「発振しない」トラブルの原因ランキング.
- 負荷容量が合っていない(\(C_1, C_2\) の値)
- \(R_f\) がない/値が不適切(内蔵の場合は不要)
- 駆動レベルが足りない(MCU のゲイン設定が低い)
- 配線が長い/浮遊容量が大きい
- 水晶の直近に GND ガードがない(ノイズを拾う)
- 起動時間が足りない(水晶は起動に数 ms〜数十 ms かかる)
水晶回路は、基板レイアウトに最も敏感な部分の 1 つである。
- MCU の直近に配置する
- 配線を最短にする
- 周囲に GND を敷き、他の信号を通さない
発振回路の種類
| 種類 | 精度 | 用途 |
|---|---|---|
| 水晶(XTAL) | ±10〜50 ppm | MCU のメインクロック、通信 |
| 水晶発振器(XO/TCXO/OCXO) | ±0.5〜5 ppm(TCXO)、±0.01 ppm(OCXO) | 高精度用途 |
| セラミック発振子 | ±0.3〜0.5 % | 安価。UART 程度なら可 |
| MEMS 発振器 | ±20〜50 ppm | 耐振動性に優れる |
| RC 発振(内蔵) | ±1〜5 %(校正後 ±1 %) | 精度不問の用途 |
| LC 発振 | 中 | RF |
MCU 内蔵の RC 発振器(HSI / HIRC など)の精度は要確認.
「工場校正済みで ±1 %」という品種が多いが、 温度を含めると ±2〜5 % になることがある。
- UART(±2 % 必要)→ ぎりぎり。温度範囲によっては不可
- USB(±0.25 % 必要)→ 不可(ただし USB のフレームで校正する仕組みを持つ MCU もある)
- CAN → 不可
通信を使うなら、外付けの水晶かセラミック発振子を検討すること。
マルチバイブレータ(矩形波発振)
シュミットトリガと RC だけで発振させられる。
精度は低いが、部品 2 個で作れる。 タイミングが厳密でない用途に。
3. PLL(位相同期ループ)
入力の位相に、出力を同期させる。
| 要素 | 役割 |
|---|---|
| 位相比較器 (PFD) | 2 つの信号の位相差を検出し、誤差信号を出す |
| チャージポンプ | 誤差信号を電流に変換 |
| ループフィルタ (LPF) | 平滑化。PLL の動特性を決める |
| VCO | 電圧制御発振器。制御電圧で周波数が変わる |
| 分周器 | 出力を \(1/N\) にして比較器に戻す |
用途
| 用途 | 内容 |
|---|---|
| クロック逓倍 | MCU の内部クロック生成(8 MHz 水晶 → 168 MHz) |
| クロックリカバリ | データ信号からクロックを再生(USB、Ethernet) |
| 周波数シンセサイザ | 無線の局部発振 |
| スキュー補正 | 分配したクロックの遅延を補正 |
PLL の特性
| パラメータ | 意味 |
|---|---|
| ループ帯域 | 追従できる速度。広いと速いがノイズを通す |
| ロック時間 | 同期するまでの時間(数 µs〜数 ms) |
| ジッタ | 出力のタイミング揺らぎ |
| スプリアス | 基準周波数の漏れ |
PLL のジッタは、内部の位相ノイズと基準のノイズで決まる.
| 帯域内(ループ帯域より低い周波数) | 基準クロックのノイズが支配(\(\times N\) で増幅される) |
| 帯域外 | VCO のノイズが支配 |
\(N\) 倍逓倍すると、基準の位相ノイズも \(20\log N\) dB 増える。 8 MHz → 168 MHz(\(N = 21\))なら +26 dB。
だから高速シリアル通信では、基準クロックの品質が重要になる。
MCU での PLL 設定
PLL 設定でよくある失敗.
- VCO の動作範囲を外れている(データシートに規定がある。例: 100〜432 MHz)
- PLL 入力周波数の範囲を外れている(例: 1〜2 MHz)
- ロック待ちをしていない(設定直後にクロックを切り替えると暴走)
- フラッシュのウェイトステートを先に設定していない (高速化する前にウェイトを増やす。順序を間違えるとハングする)
クロック設定の順序は、MCU のリファレンスマニュアルどおりに行うこと。
4. 発振の「意図しない」発生
発振させたくないのに発振する——これが実務のトラブルである。
| 場所 | 原因 | 対策 |
|---|---|---|
| オペアンプ | 容量性負荷、帰還ループが長い | アイソレーション抵抗(08 章) |
| LDO | 出力容量の ESR が範囲外 | 指定の ESR 範囲を守る(14 章) |
| スイッチング電源 | 位相余裕不足 | 補償回路の設計(15 章) |
| 高利得アンプ | 入出力の結合(配線、電源経由) | シールド、電源分離、レイアウト |
| ロジック入力の開放 | 閾値付近で浮く | プルアップ/プルダウン(19 章) |
| MOSFET | ゲートの寄生 LC | ゲート抵抗(05 章) |
「入出力の結合による発振」は見つけにくい.
利得 1000 倍のアンプで、出力の 1/1000 が入力に戻れば発振する。 1 V の出力に対して 1 mV ——これは配線間の容量結合や、 共通インピーダンス(GND の配線抵抗)で簡単に起きる。
対策:
- 入力と出力の配線を離す・交差させない
- GND を 1 点に集める(または広いプレーンで低インピーダンスにする)
- 段間をシールドする
- 電源を段ごとにフィルタする
高利得回路のレイアウトは、回路設計と同じくらい重要である。
5. この章のまとめ
| ポイント | 内容 | ||
|---|---|---|---|
| コンパレータ | 飽和領域で使う。位相補償がなく速い | ||
| オペアンプとの相互代用 | どちらもやってはいけない(遅い/発振する) | ||
| ヒステリシス | 正帰還で閾値を 2 つ持たせる。ノイズ振幅より大きく(50〜200 mV) | ||
| シュミットトリガ | なまった波形は必ずこれで受ける | ||
| バルクハウゼン | $` | A\beta | = 1`$、位相 0°。起動時は 1 より大きく |
| ピアース発振 | インバータ + 水晶 + \(C_1, C_2\) + \(R_f\) | ||
| 負荷容量 | \(C = 2(C_L - C_{stray})\)。合わないと周波数がずれる | ||
| クロック精度 | UART ±2 %、USB ±0.25 %、CAN ±0.5 %、RTC ±20 ppm | ||
| 内蔵 RC | ±1〜5 %。USB・CAN には使えない | ||
| 水晶のレイアウト | 最短配線・GND ガード・他の信号を通さない | ||
| PLL | \(f_{out} = N f_{ref}\)。基準のノイズも \(20\log N\) dB 増幅される | ||
| PLL 設定の順序 | VCO 範囲・入力範囲・ロック待ち・フラッシュウェイトの順序 | ||
| 意図しない発振 | 容量性負荷・入出力結合・共通インピーダンス。レイアウトが効く |
次章では、アナログ IC の基準となる—— 電圧リファレンスと温度センサを扱う。