目的
ESP32は非常に優れたデバイスで、ユーザーも多いので多くの情報をウェブ上で見つけることができるが、ハードウェア関連の情報は結構離散的で探すのに苦労する。今回ESP32を使った基板開発を行ったので、参照したドキュメントなどをまとめて残してみる。
ESP32-S3 データシート
各デバイス(S3, C3など)のデータシートが存在する。各ピンの特殊機能などが詳しく書かれている。デバイスによっては入力専用ピンなどが存在するので、基板作り終わったあとにビックリしないように一度は見たほうが良い。
ESP32-S3-WROOM データシート
ESP32-S3-WROOMは外付けのクロックやフラッシュメモリなどがパッケージ化されているタイプのことで、ESP32-S3はその中のマイコン単体を指す。パッケージ化された状態の使い方が書いてある。フラッシュやPSRAMがどれだけ載っているかは結構忘れるので、データシートを見てちょくちょく思い出す必要あり。
ESP32-S3 ハードウェアデザインマニュアル
基板を作るときにESP32をどのように配置・配線すればよいかが記載されている。特にアンテナにまつわる基板上での配置に制約があり、注意する必要がある。配置によっては電波感度が下がってしまうらしい。アンテナ一体型タイプは使いやすいが、アプリケーションによってはアンテナ外付けを選択するのもありかと思う。
ESP32-S3 Devボード設計情報
Devボードは基板を作る上でかなり参考になる。プログラム書き込み周りとかはじっくり見たほうがよい。
KiCADで基板設計
KiCADを使う上で重要なことが網羅されている素晴らしいサイト。KiCADを使っていて何か行き詰まったらここをのぞいてみていただきたい。
ESP32-S3 KiCADシンボル
KiCADのフットプリント・シンボルライブラリがなかなか見つからなかったが、本丸のEspressif社がGithubに載せていた。これは安心して使えると思う。
KiCADでテストPADを作る
チェックピンを設置することなく、手軽にテストパッドを設けることができる(この手法はかなりすごいと思う)。部品もいらず、CAD上の定義だけでよい。ESP32に限った話ではないが、KiCADを使うならこの手法は取り入れるべき。
その他基板設計上重要なポイント
- Strapping PINという起動時に使うピン(S3の場合GPIO0, 45, 46, 3)がある。これらのピンを使ったときの副作用がよくわからない(最悪起動しないこともありえる)ので、使わないのが無難。ESP32-S3-WROOMのデータシートに記載されている。
- ESP32-S3-WROOMにSPIフラッシュが載っていて、SPIのピンが外にでている(S3の場合GPIO35, 36, 37)。SPIポートとして使えるらしいが、これらも通常用途では使わないのが無難。
- ノーマルESP32-WROOMでは、GPIO12がプルアップされているとSPIフラッシュが1.8Vモードになりプログラム書き込みができなくなるらしい。ESP32-S3のデータシートを見る限り、そのような記載を見つけられなかったが、結局確証を得られなかったので使用しないことにした。。。
所感
設計中に見ていた情報は全部載せたと思うので、自分用のリファレンスとして残しました。基板はコストがかかり、設計期間が長く、製造も長く、手戻りも長く、それでいて失敗するとすごく怒られるという理不尽さがあるので、ちゃんとした情報をベースに設計したいところ。でも、基板できあがってもみんなしらーっとしてんだよなぁ。「これは奇跡の産物なんですよ」と伝えたい。。。