Espressif Systemsの無線通信モジュールESP32-S3-WROOM-1を使った自作ESP32-S3ボードを製作しました!
ESP32-S3はこれまでのESP-WROOM-32などと比べクロックが高速化しBluetooth5やUSB-JTAG機能、またUSB機能が内蔵されホストにもデバイスにもなれるのが特徴だと思います。
ESP32-S3-WROOM-1が使われた市販されている開発ボードはいくつか持っています。
ESP32-S3-DevKitC-1は技適が取得され入手性もよく、ブレッドボードを使ったテストでも使いやすいと思います。(microUSB端子なのがちょっと!)
市販されているESP32-S3開発ボードが一つあればテスト等で使えるわけですが、自作基板でESP32-S3を使ったテスト回路を組む際に最小構成で組んだボードがあると何かと便利なことから製作してみることにしました!
目次
自作ESP32-S3ボードの製作!(ESP32-S3-WROOM-1)
ESP32-S3-DevKitC-1といった市販されている開発ボードはいくつか持っているのですが、ボードに付けられた不要な機能や回路を省きコアとなるESP32-S3-WROOM-1の機能を試せるシンプルなボードが1つあると独自の開発ボードを設計する際やESP32-S3を使った自作基板を製作したい場合に何かと重宝すると思います。
先日ESP-WROOM-32を使ったミニ動画再生プレイヤーを製作したのですが、基板サイズに対してパーツ点数が多かったことから基板設計は非常に苦労しました。
この投稿をInstagramで見る
ESP-WROOM-32にプログラムを書き込むにはUSB-シリアル変換チップが必要だし、自動書き込み(オートフラッシュ)回路も搭載するか否か・・・など、基板サイズが小さいがゆえに回路設計は何度もやり直しました。
スケッチを一部修正しESP32-S3-DevKitC-1でも動作することは確認出来ていたので、ESP32-S3を使った回路構成に変更しようかとも考えていました。
ESP32-S3にはUSB機能が内蔵されているのでデバイスとして使うだけならUSB-シリアル変換チップは不要となり、ESP-WROOM-32を使うときよりもパーツ点数を減らし回路をシンプルに設計することが出来そうです。
・・・なんですが、市販されている開発ボードではこのプロジェクトには必要ない機能も搭載されているので、回路設計時に必要な部分の回路のみを組みテストや動作チェックなどをするのが困難となります。
実基板で組む時と同じ構成で組んだものが無いと、何かとトラブルや失敗の原因にもなりますからね!
そんなことから、ESP32-S3の機能をフルに使える最小構成で組んだ自作ボードもあった方が便利だなということで製作することにしました。
ボードのイメージ
ESP32-S3-WROOM-1の全I/Oピンを引き出しESP32-S3の機能をフルで試せるボードのイメージです。
単にブレッドボードにESP32-S3-WROOM-1を単体で差し込んで使うDIP化基板みたいなものでもよかったのですが、モジュールのサイズ上それではどうしてもI/Oラベルが見にくくなりテスト回路を組む際に面倒です。
以前同様のコンセプトでRP2040の自作開発ボードを製作したことがあるのですが、このボードの使い勝手が良かったのでボード形状&構成をこれに統一させて製作することにしました。
ブレッドボードと並べて配置すれば10cmワイヤーでもちょうど挿せるため、相性もいい感じです!
試したい回路はあとから接続してテスト出来るように不要な機能は一切付けず、リセットスイッチやブートスイッチ、3.3Vレギュレータ、オンボードLEDといった最低限の機能のみを付けたボード構成にしました。
基板設計
最低限ESP32-S3を動かす事が出来る最小構成となっているので全体回路は非常にシンプルです。
参考 ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U DatasheetEspressif SystemsESP32-S3 コア部分
USB端子のデータラインはESP32-S3-WROOM-1のIO19(USB D-)とIO20(USB D+)に直結しているので、USB機能を使う場合はIO19/IO20はGPIOピンとしては使えません。
またIO35/IO36/IO37はPSRAMに接続されているので通常のGPIOピンとして使うのは非推奨となっています!
USB-シリアル変換チップも省略しているので、それら機能を使ったテストではUSB-シリアル変換モジュールをTXD0/RXD0に外部接続するなどして行います。
RESET・FLASHスイッチ / オンボードLED
ESP32-S3をリセットするためのスイッチとダウンロードモードで起動し書き込むためのFLASHスイッチを付けました。
またGPIO6にオンボードLEDも取り付けています。
3.3V レギュレーター
ESP32-S3を駆動するための3.3V出力レギュレータにLDL1117S33Rを使いました。
LDL1117S33Rは1117系ではドロップアウト電圧が低く出力電流も最大1.2Aあるので、ESP32-S3がアクティブ動作時にも問題になることはないと思います。
I/O端子
ESP32-S3-WROOM-1の全I/O端子を引き出し、VBUS端子(USB端子からの5V)と外部電源用のVIN端子(~18Vまで対応)を取り付け、片側20ピン(2列)、両サイド40ピンのI/O端子としました。
40ピンではGND端子を1ヶ所しか取れないのが少し残念なんですが、2列取っているので対応は出来そうです。
設計時はピンヘッダー&ピンソケットという組み合わせで使う予定でしたが、
GND端子が1ヶ所しかないので、実装はピンソケットに統一させました。
以上が今回製作したESP32-S3ボードの全体構成です。
非常にシンプルな構成です。
ここから目的の構成になるように回路を付け加えていきテスト等で使えるボードとして使うといったイメージです!
簡単な構成の基板ですが、たまたまSNSに基板設計に関して問いかけてみたところ、多くのコメントを頂き非常に勉強になりました!
はい、電気的特性により修正した方がよい所を3つ述べよ👀 pic.twitter.com/JBp07Wq6ux
— ガジェット大好き!! (@smartphone_jp1) March 19, 2024
コメントを受けて何度か設計をやり直したので、PCB設計に関して得るものが多かったプロジェクトにもなりました。
基板発注
基板の発注はPCBWayを使いました。
PCBWayでの基板発注は今回初めてだったのですが、事前チェックからの見積もり価格からデータチェックを受けての最終価格決定という流れは初めてでも非常に分かりやすく良かったです!
基板発注に慣れない頃は思わぬ追加料金がかかってしまったという事はよくあることかと思います。
今回発注した基板でも見積もり時には無かった追加料金が発生し最終価格が大きくアップするというトラブル?があったのですが・・・
どうやらESP32-S3-WROOM-1の背面グランドビアの穴径が大きすぎたため追加費用が発生していたことを教えて頂きました。
この2段階のチェック体制はPCBの発注に不慣れな方や初めての方でも分かりやすく安心して発注出来る仕組みだと思います。
そして今回製作した基板は標準的な設計?で進めたものなので、発注時の選択項目はほぼデフォルトで選択されている項目を選んで発注しました。(レジストやシルクの色はお好みで!)
基板製造時に他の基板と区別するために入ってしまう製品番号を削除するオプション[Remove product No]を選択したのみです。(1.5ドルのオプション料金がかかります)
PCBWayの利用は今回初めてだったので、テスト的にステンシル(メタルマスク)も基板と一緒に発注しました。
他の基板も同時に発注したのですが、10cm×10cm以内に収まる基板サイズだと標準料金の5ドルで製造ができ製品番号を削除するオプションに1.5ドル、ステンシル料金が10ドル、配送業者はOCSを選択し約20ドルのトータル約37ドルという基板製作コストでした。
JLCPCBと比べると送料が少し割高に感じますが、複数基板を同時に発注すればその分コストを抑えることが出来ます。
基板製造はステンシル込みで2日で製造が完了しその当日に発送、OCSで4日のトータルで基板発注から6日で手元に届きました。
非常に早いですね!
PCBWayでの基板発注方法はこちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。
また今回発注した自作ESP32-S3ボードの基板データ(ガーバーファイル)をダウンロード出来るようにしておきます。(修正済み)
何かの参考になればと思います。
ESP32 S3 Development Board Rev11(Gerber)
パーツの実装
発注から6日で手元に基板が届きました!
それほど小さなパーツは使っていませんが、今回ステンシルも作っていたので実装作業は楽に出来ました。
パーツの実装はミニリフロー装置MHP50を使いました。
MHP30からホットプレートサイズが大きくなったMiniwareさんの新製品です。
PD電源が使え作業スペースの邪魔にもなりにくい、コンパクトで便利なリフロー装置です。
MHP50に関しては後日MHP30の記事に追記しておきます。
そしてAndonstar様から頂いたデジタルマイクロスコープ『Andonstar AD249S』を今回実践で初投入しました!
ここまで見えるとSMDパーツを扱った実装の効率が上がり作業が楽に出来ます!
この投稿をInstagramで見る
動作確認
綺麗にパーツ実装出来ました。
動作確認でUSB端子を接続した初回起動時にリセットを繰り返すという現象に遭遇したのですが、調べてみるとどうやらESP32-S3-WROOM-1に何もソフトウェアが書き込まれていないことが原因だったようです。
初回書き込み時はダウンロードモードで起動し書き込みを行う必要があるようです!
ボードの[FLASH]ボタンを押した状態で[RESET]ボタンを押すとダウンロードモードで起動するので、あとは通常手順でスケッチを書き込めば問題ありません。
GPIO6にオンボードLEDを取り付けているので、Lチカスケッチを書き込み問題なく動作してくれました。
冒頭でご紹介したミニビデオプレイヤーもESP32-S3で動かすことが出来ました。(ESP32-S3にはDACが無いのでオーディオ部分は修正が必要なようですが!)
最小構成で組んだボードなので、自作基板を製作する時のテスト回路や動作チェックをする際に想定している必要な回路を組み込んで試すことが出来るので便利です!
この投稿をInstagramで見る
使用パーツ一覧
今回使用したパーツ一覧です。
パーツ | 定数 | 入手先 |
コンデンサ (0805) | C2 4.7μF C4 1μF | AliExpress |
コンデンサ (0603) | C5/C7 0.1μF C6 10μF | AliExpress |
ダイオード (SOD-123) | D1/D2 1N5819W | AliExpress |
抵抗 (0603) | R1/R3 5.1kΩ R2/R5 1kΩ R4 10kΩ | AliExpress |
LED (0603) | LED1/LED2 | AliExpress |
タクトスイッチ (SMD) | SW1/SW2 3mm×4mm | AliExpress |
3.3V レギュレータ | U2 LDL1117S33R | AliExpress |
MCU | U3 ESP32-S3-WROOM-1-N16R8 | 秋月電子 |
端子 | J1 Type-C | 秋月電子 / AliExpress |
J1/J2/J3/J4 ピンヘッダー or ピンソケット(1×20P) | 秋月電子 |
最後に!
市販されている開発ボードを使えば大抵のことはテスト等出来ると思います。
しかし独自ボードや自作基板の製作では不要な機能などを省きシンプルにテスト出来るボードも欲しいところです。
市販ボードに搭載されている機能に制限されることがないですからね!
自作基板の製作でテスト回路を組む際に市販ボードではプロジェクトに関係ない余計な回路や機能が含まれていてそれが原因となりトラブルにつながることも私のようにまだ基板製作に慣れていない頃にはよく起こりがちです。
最小構成で組んだこのようなボードを自作しておくと、基板設計時に同じ構成で組んで動作させることが出来るので何かと重宝するかと思います。
コメントを残す