クイックスペック
電源供給:
3.3V、最小500mA
クリスタル:
40MHz、±10 ppm
ピーク電流:
~500mA (WiFi送信時)
はじめに
ESP32は、IoTプロジェクトで最も人気のあるマイクロコントローラーの1つで、WiFi、Bluetooth、デュアルコア処理能力を手頃な価格で提供します。しかし、信頼性の高いESP32ハードウェアを設計するには、電源供給、アンテナ配置、ストラッピングピン設定に細心の注意を払う必要があります。
この包括的なガイドでは、モジュールとベアチップの選択から、信頼性の高いWiFi接続を確保し、恐ろしいブラウンアウトリセットを防ぐPCBレイアウトのベストプラクティスまで、堅牢なESP32ハードウェアを設計するために知っておくべきすべてをカバーしています。
モジュール vs ベアチップ:どちらを選ぶべきか?
回路設計に入る前に、プリビルトモジュールを使用するか、ベアESP32チップを中心に設計するかを決定する必要があります。
ESP32モジュールのバリエーション
| モジュール | Flash | PSRAM | アンテナ | 備考 |
|---|---|---|---|---|
| ESP32-WROOM-32E | 4-16MB | なし | PCB | 新規設計に推奨 |
| ESP32-WROVER-E | 4-16MB | 8MB | PCB | メモリ集約型アプリ向け |
| ESP32-WROOM-32UE | 4-16MB | なし | U.FL | 外部アンテナオプション |
| ESP32-S3-WROOM-1 | 4-16MB | 2-8MB | PCB | 新型、USB OTGサポート |
| ESP32-C3-WROOM-02 | 4MB | なし | PCB | シングルコア、RISC-V、低コスト |
重要:ESP32-WROOM-32(非E)は避けてください
元のESP32-WROOM-32モジュールは、既知のバグがある古いシリコン(v0/v1)を使用しています。常に"E"で終わるモジュール(ESP32-WROOM-32E、ESP32-WROVER-E)を使用してください。これらはこれらの問題が修正されています。
各オプションを使用する場合
プリビルトモジュールを使用する場合:
- • プロトタイピングまたは少量生産
- • 事前認証済みRF設計が必要(FCC/CE)
- • RF設計経験が限られている
- • 市場投入までの時間が重要
- • 2層PCB設計
ベアチップを使用する場合:
- • 大量生産(10k+ユニット)
- • 極端なスペース制約
- • カスタムアンテナ要件
- • コスト最適化が重要
- • RF認証を自社で処理
電源供給設計
電源供給は、ESP32の問題の最も一般的な原因です。チップはWiFi送信中に最大500mAを消費し、適切に設計されていないと電圧降下を引き起こし、ブラウンアウトリセットをトリガーする可能性があります。
電圧要件
| 電源ドメイン | ピン | 範囲 | 標準 |
|---|---|---|---|
| VDD3P3(デジタル) | 複数 | 1.8V - 3.6V | 3.3V |
| VDD3P3_RTC | ピン19 | 2.3V - 3.6V | 3.3V |
| VDD3P3_CPU | ピン37 | 1.8V - 3.6V | 3.3V |
| VDDA(アナログ) | ピン1、3、4、43、46 | 2.3V - 3.6V | 3.3V |
| VDD_SDIO | ピン26 | 1.8Vまたは3.3V | 3.3V(デフォルト) |
デカップリングコンデンサ
適切なデカップリングは、安定したESP32動作に不可欠です。このコンデンサ配置ガイドに従ってください:
デカップリングコンデンサを含む推奨電源供給設計
| 位置 | 値 | タイプ | 目的 |
|---|---|---|---|
| 電源入口 | 10-22µF | セラミックまたはタンタル | バルクストレージ、ESD保護 |
| VDD3P3レール | 10µF | セラミックX5R/X7R | WiFi送信電流サージ |
| 各VDDピン | 0.1µF | セラミックMLCC | 高周波フィルタリング |
| CAP1/CAP2 | 10nF | セラミック±10% | 内部LDO(必須) |
| ADC入力 | 0.1µF | セラミック | ノイズフィルタリング |
| オプションバルク | 100-470µF | 低ESR電解 | 電流スパイク吸収 |
LDOレギュレータの選択
高速過渡応答を持つLDOを選択してください。ESP32の電流需要は、マイクロ秒単位でマイクロアンペア(スリープ)から500mA(WiFi送信)に変化する可能性があります。
これらのLDOは避けてください:
- AMS1117 - 非常に遅い過渡応答、クラッシュを引き起こす
- LD1117 - 電流需要への応答時間が悪い
- MCP1702 - ピーク500mAのみ、ESP32には限界的
推奨LDO:
- AP2112K-3.3 - 600mA、高速応答、低ドロップアウト
- LDL1117-3.3 - 高速過渡、10µF X7Rで動作
- RT9080-33GJ5 - 600mA、超低ドロップアウト
- XC6220B331MR - 700mA、優れた過渡応答
ブラウンアウト防止
ESP32のブラウンアウト検出器は約2.44Vでトリガーされ、電圧がこのしきい値を下回るとチップをリセットします。一般的な原因と解決策:
1. 電源供給電流不足
症状: WiFi起動時または送信中のブラウンアウト
修正: 最小5V/1A電源を使用、ESP32近くに22-100µFバルクコンデンサを追加
2. 粗悪なUSBケーブル
症状: 一部のコンピュータで動作するが、他では動作しない
修正: 短くて太いUSBケーブルを使用、細い導体を持つ安価なケーブルを避ける
3. デカップリング不足/欠落
症状: 動作中のランダムリセット
修正: 各電源ピンの近くに10µFセラミック + 0.1µFセラミックを追加
4. LDO応答が遅い
症状: スリープから復帰時のブラウンアウト
修正: AMS1117/LD1117を高速応答LDOに交換
ストラッピングピンとブートモード
ESP32は起動時に特定のGPIOピンを読み取り、ブートモードおよびその他の設定を決定します。これらの"ストラッピングピン"は慎重に扱う必要があります。
ブートモード設定
| ピン | デフォルト | 機能 | 設計ガイドライン |
|---|---|---|---|
| GPIO0 | プルアップ | ブートモード:HIGH=Flash、LOW=ダウンロード | 10Kプルアップ + BOOTボタンをGNDに追加 |
| GPIO2 | プルダウン | ダウンロード時はLOWまたはフローティングが必要 | フローティングまたはプルダウンのまま、プルアップを避ける |
| GPIO12 (MTDI) | プルダウン | Flash電圧:LOW=3.3V、HIGH=1.8V | 3.3V Flash用にLOWに保つ(ほとんどのモジュール) |
| GPIO15 (MTDO) | プルアップ | UARTブートメッセージ:LOW=サイレント | デバッグメッセージ用にプルアップ |
| GPIO5 | プルアップ | SDIOタイミング | 通常使用は通常安全 |
重要:GPIO12ストラッピング問題
GPIO12が起動時にHIGHにプルされると、ESP32はFlashを1.8Vで電源供給しようとしますが、ほとんどのモジュールは3.3V Flashを使用しています。これは起動失敗または不安定な動作を引き起こします。1.8V Flashが必要であることがわかっている場合を除き、GPIO12にプルアップを接続しないでください。
GPIO0回路設計
GPIO0には、プルアップ(通常起動用)とLOWにプルする方法(ダウンロードモード用)の両方が必要です:
- 3.3Vへの10kΩプルアップ抵抗
- GPIO0をGNDに接続するBOOTボタン
- 信号を遅延させる高容量コンデンサ(>100nF)を避ける
自動リセット回路(DTR/RTS)
ボタンを押さずに自動プログラミングを行うには、USB-シリアル変換器からのDTRおよびRTS信号を使用して自動リセット回路を実装します:
自動プログラミング用の自動リセット回路
主要コンポーネント:
- 2つのNPNトランジスタ(S8050または類似品)
- ベース電流制限用の10kΩ抵抗
- 信頼性の高いリセット用のENピンの1µF-10µFコンデンサ
ESP32-S3/C3/C6の利点
新しいESP32バリアント(S3、C3、C6)には、組み込みUSB-serial-JTAGが搭載されており、ほとんどの場合、外部USB-シリアル変換器と自動リセット回路が不要になります。
クリスタル発振器設計
40MHzクリスタルの選択
ESP32には、厳密な仕様を持つ40MHzクリスタルが必要です:
- 周波数: 40MHz(必須、交渉不可)
- 精度: ±10 ppm以下
- 負荷容量(CL): 通常10pF
- ESR: データシートを確認(起動信頼性に影響)
- パッケージ: 3.2x2.5mmまたは2.5x2.0mmが一般的
負荷コンデンサの計算
以下を使用して外部負荷コンデンサを計算します:
C1 = C2 = 2 × CL - Cstray
ここで:
- CL = データシートからのクリスタルの負荷容量(例:10pF)
- Cstray = PCB浮遊容量(4層で約3-5pF、2層で約5-7pF)
例: 4層PCBでの10pFクリスタルの場合:
C1 = C2 = 2 × 10pF - 4pF = 16pF
15pFまたは18pF NP0/C0Gコンデンサを使用
コンデンサタイプが重要
クリスタル負荷コンデンサには常にNP0/C0Gセラミックコンデンサを使用してください。X7RまたはY5V誘電体は温度依存性の容量を持ち、周波数ドリフトを引き起こします。
アンテナとRF設計
アンテナオプション
PCBアンテナ(内蔵)
ほとんどのモジュールにはPCBトレースアンテナが含まれています。
- + 外部コンポーネント不要
- + 事前認証済みRF設計
- + コンパクトソリューション
- - 限定的な範囲(屋内約10-30m)
- - 筐体効果に敏感
外部アンテナ(U.FL/IPEX)
外部アンテナ用のU.FLコネクタを持つモジュール。
- + 拡張範囲が可能
- + 筐体外のアンテナ
- + 柔軟な配置オプション
- - 追加コストと組み立て
- - 再認証が必要な場合がある
RFマッチング回路
ベアチップ設計の場合、50Ωインピーダンスを達成するためにCLCマッチング回路を実装します:
- 寄生効果を最小限に抑えるために0201パッケージコンポーネントを使用
- RFピンに近いジグザグパターンでコンポーネントを配置
- 標準値:C11 = 1.2-1.8pF、L2 = 2.4-3.0nH、C12 = 1.2-1.8pF
- 高調波抑制のために最初のコンデンサに15 milスタブを追加
立入禁止ゾーン
アンテナ周辺の適切なクリアランスを維持することは、RF性能にとって重要です:
アンテナ配置と立入禁止ゾーン要件
- 15mm最小アンテナエリア周辺のクリアランス—銅、コンポーネント、トレースなし
- アンテナをPCBエッジに配置、できればメインボードを超えて延長
- USBポート、シリアルチップ、UARTトレースをアンテナから遠くに保つ
- クリスタル、DDR、または高周波クロックをアンテナ近くに配置しない
- 最高性能のためにアンテナ下のベースボードを切り取ることを検討
PCBレイアウトガイドライン
層構成
Espressifは、最高のRFおよびEMI性能のために4層PCBを推奨しています:
| 層 | 名前 | 内容 | 備考 |
|---|---|---|---|
| 1 | TOP | 信号トレース、コンポーネント | RFトレース、ESP32、デカップリングキャップ |
| 2 | GND | ソリッドグランドプレーン | 信号トレースなし—ソリッドを維持! |
| 3 | POWER | 電源トレース、一部信号 | RFとクリスタルの下にGNDを保つ |
| 4 | BOTTOM | 最小限のトレース | コンポーネントを避ける、グランドフィル |
2層設計の場合:最小限のルーティングでボトム層をソリッドグランドプレーンとして保ちます。すべてのコンポーネントはトップ層に配置します。
コンポーネント配置
- ESP32モジュールを最初に: ボードエッジにアンテナを配置
- デカップリングキャップ: 各電源ピンにできるだけ近く
- クリスタル: クロックピンから2.7mm以内、周囲にグランドビア
- USB-シリアルチップ: アンテナから離れ、USBコネクタ近く
- LDOレギュレータ: 電源入力近く、サーマルリリーフ付き
ルーティングガイドライン
- RFトレース: 50Ω制御インピーダンス、ビアなし、135°ベンドのみ
- 電源トレース: メインは≥25 mil、VDD3P3は≥20 mil
- グランド: RFおよびクリスタルエリア周辺のビアステッチング
- UART: グランドで囲む、アンテナから離す
- SPI: ±50 mil以内で長さマッチング、ESP32近くにシリーズ抵抗を追加
GPIOリファレンス
避けるべきピン
これらのピンは使用しないでください:
- GPIO6-11: 内部Flashに接続—チップをクラッシュさせます
- GPIO34-39: 入力のみ、内部プルアップ/ダウンなし
- GPIO12: ストラッピングピン—プルアップは絶対に避ける
ADCの考慮事項
- ADC1(GPIO32-39): いつでも使用可能—アナログに推奨
- ADC2(GPIO0、2、4、12-15、25-27): WiFiアクティブ時は使用不可
- ノイズ低減のために各ADC入力に0.1µFフィルターコンデンサを追加
- キャリブレーション後の精度:減衰に応じて±23mVから±60mV
よくある間違いと修正
1. WiFi中のブラウンアウトリセット
原因: 電源供給不足または遅いLDO
修正: 5V/1A電源を使用、22-100µFバルクキャップを追加、AMS1117をAP2112Kに交換
2. ダウンロードモードに入れない
原因: GPIO0が適切にLOWにプルされていない、またはGPIO2がHIGHにプル
修正: GPIO0にBOOTボタンを追加、GPIO2がフローティングまたはLOWであることを確認
3. WiFi範囲が悪い
原因: アンテナが筐体、グランドプレーン、またはコンポーネントによってブロックされている
修正: 15mmクリアランスを維持、ボードエッジにアンテナを配置、最終ハウジングでテスト
4. チップが起動しない
原因: GPIO12がHIGHにプル(誤ったFlash電圧)またはENがフローティング
修正: GPIO12をLOWに保つ、ENに10Kプルアップ + RC遅延を追加
5. 自動リセットが機能しない
原因: ENコンデンサの欠落、誤ったトランジスタ接続
修正: ENに1-10µFキャップを追加、DTR/RTS回路が参照設計と一致することを確認
6. ADC読み取り値がノイズまたは誤り
原因: フィルターキャップの欠落、WiFi干渉(ADC2)
修正: ADC1チャネルを使用、0.1µFフィルターキャップを追加、ソフトウェアでキャリブレーション
回路図チェックリスト
製造前に、このチェックリストに対して設計を確認してください:
電源供給
- ☐最小500mA対応の3.3V電源
- ☐電源入口に10µF+コンデンサ
- ☐各VDDピンに0.1µFコンデンサ
- ☐CAP1/CAP2に10nFコンデンサ
- ☐電源入力でのESD保護
ストラッピングとリセット
- ☐GPIO0:10Kプルアップ + BOOTボタン
- ☐GPIO2:フローティングまたはLOWにプル
- ☐GPIO12:プルアップなし(LOWに保つ)
- ☐EN:10Kプルアップ + RC遅延回路
- ☐USB-シリアル使用時は自動リセット回路
クリスタルとRF
- ☐±10ppm精度の40MHzクリスタル
- ☐クリスタルCL用に計算された負荷コンデンサ
- ☐銅/コンポーネントがないアンテナエリア(15mm)
- ☐ボードエッジにモジュールアンテナ
GPIO
- ☐GPIO6-11への接続なし(Flashピン)
- ☐ADC入力に0.1µFフィルターキャップ
- ☐入力のみピン(34-39)に必要に応じて外部プル抵抗
最小設計例
ESP32-WROOM-32Eモジュールの最小回路図は次のとおりです:
プログラミングインターフェース付きESP32-WROOM-32Eの最小回路
必須コンポーネント:
- U1: ESP32-WROOM-32Eモジュール
- U2: AP2112K-3.3 LDOレギュレータ
- U3: CP2102NまたはCH340C USB-シリアル変換器
- C1-C4: 10µF + 0.1µFデカップリングコンデンサ
- R1-R3: 10Kプルアップ抵抗(EN、GPIO0、GPIO2)
- Q1-Q2: 自動リセット用S8050トランジスタ
- SW1: BOOTボタン(GPIO0からGND)
- SW2: RESETボタン(ENからGND)
よくある質問
Q:ESP32に2層PCBを使用できますか?
はい、ただし最小限のトレースでボトム層をソリッドグランドプレーンとして保ちます。より広いRFトレース(約20 mil)と慎重なコンポーネント配置が必要です。より良いRF性能と簡単なルーティングのためには4層が推奨されます。
Q:WiFi接続時にESP32がリセットされるのはなぜですか?
WiFi送信は最大500mAを消費し、電源供給が十分に速く応答できない場合に電圧降下を引き起こします。ESP32近くにバルクコンデンサ(22-100µF)を追加し、高速応答LDOを使用してください。AMS1117は絶対に使用しないでください。
Q:CAP1/CAP2コンデンサは必要ですか?
はい、必須です。これらの10nFコンデンサは内部LDOレギュレータ用です。これらがないとESP32は安定して動作しません。
Q:WiFi実行中にADC2を使用できないのはなぜですか?
ADC2はWiFi無線と内部回路を共有しています。WiFiがアクティブな場合、ADC2は使用できません。WiFiアプリケーションでのアナログ測定にはADC1チャネル(GPIO32-39)を使用してください。
Q:ESP32-WROOM-32とESP32-WROOM-32Eのどちらを使用すべきですか?
常に"E"バージョン(ESP32-WROOM-32E)を使用してください。元のESP32-WROOM-32は、ランダムクラッシュや電源投入問題を引き起こす可能性がある既知のバグを持つ古いシリコンを使用しています。
結論
信頼性の高いESP32ハードウェアを設計するには、いくつかの重要な領域に注意を払う必要があります:適切なデカップリングを備えた堅牢な電源供給、正しいストラッピングピン設定、適切なアンテナクリアランス、そして慎重なPCBレイアウト。このチュートリアルのガイドラインに従うことで、ブラウンアウト、WiFi問題、起動失敗を引き起こす一般的な落とし穴を回避できます。
重要なポイント:
- ESP32-WROOM-32Eまたはそれ以降のモジュールを使用—元のWROOM-32は避ける
- 電源供給に最小500mAを確保、AP2112Kのような高速LDOを使用
- GPIO12をHIGHにプルしない—Flash電圧を変更し起動失敗を引き起こす
- アンテナエリア周辺に15mmクリアランスを維持
- 可能な限り4層PCBを使用、レイヤー2にソリッドグランドプレーンを維持
- 適切なデカップリングを追加:10µFバルク + ピンごとに0.1µF + CAP1/CAP2に10nF
ESP32設計を検証
Schemalyzerを使用して、製造前にEasyEDA回路図を分析します。AI搭載の分析により、デカップリングコンデンサの欠落、誤ったストラッピングピン設定、電源供給の問題など、一般的なESP32設計ミスを検出します。