ESP-WROOM-02のライターを作る
SwitchScienceに、ESP-WROOM-02の開発ボードが売っていますが、これはFTDIのUSBシリアルモジュールとLDOレギュレータが最初から乗っている上、書き込みモードとフラッシュブートモードが切り替えられ、形も非常におさまりが良い優れものですが、単価1944円とちょっと値が張ります。
ESPr Developer(ESP-WROOM-02開発ボード)
積んでいる部品を足し算するとまあそれくらいにはなるんですが、入手難易度を度外視すると、RaspberryPi Zero Wとコストが変わらなくなります。開発用にはいいんですけど、このモジュール積んだプロダクトを数個作ろうとなると、この値段が重しになります。
そもそもFTDIは書き込み時と、必要に応じてデバッグ時に用いる程度で、ランニング時には不要です。ということで、専用ライターを作ることにしました。対象は、秋月電子のDIP化モジュールです。これなら1個650円で済みます。
Wi−Fiモジュール ESP−WROOM−02 DIP化キット: 無線、高周波関連商品 秋月電子通商-電子部品・ネット通販
ということで、ESP-WROOM-02用のライターを作ってみました。
ちなみに、形が気にくわない場合、矩形のピッチ変換基板が単体で売っています。ただし、自分で半田付けの必要があります。
ESP-WROOM-02ピッチ変換用基板《フル版》(基板のみ) - スイッチサイエンス
部品
ざっと箇条書きで。
- ユニバーサル基板
- 抵抗 10K
- 細ピン用ピンソケット(WROOM-02用とUSBシリアルモジュール用)
- USBシリアルモジュール
- レギュレータ(3.3V降圧)
- タクトスイッチ
- アルミ電解コンデンサ 47μF
- 積層セラミックコンデンサ 0.1μF
- すずメッキ線、ワイヤー
ユニバーサル基板
ライターは2つ作ったのですが、1つ目はサンハヤトのICB-86という、ICによく使われるパターンのユニバーサル基板を使用しました。使用しましたが、今回の用途にはあんまり向いていない感じがしました。普通のユニバーサル基板の方が配線しやすいです。かなり無理やりワイヤー引っ張る羽目になりました。2つ目は普通のCタイプで作成しました。
USBシリアルモジュール
1つ目はFT234Xを積んだ小型モジュール(AE-FT234X)を使用しました。FTDI積んでいるにしては安価です。秋月電子で600円。ただし、100mAまでしか出力できないので、ESP-WROOM-02をフル稼働させると電流不足に陥ります。とはいえ、書き込みだとWiFi動かさないので、これで足りることは確認しました。足少ないので楽というのもあります。
2つ目はFT232RLを使用したモジュール使用しました。なんとAmazonで1つ326円です。奇跡の安さ。はんだ付けしなくてもRX,TX,DTR,CTSとVCC,GNDピンは最初から出ているという親切設計で、VCCは3.3Vか5Vかをジャンパピンで設定可能。ちなみにマイクロBではなく、ミニBです。3.3Vだと50mAしか流れず、動作しません。5Vを使用しましょう。
SODIAL(R)FT232RLモジュール5V 3.3V FTDI USB TTL変換アダプタレッド
※ちなみにWROOM-02は最大170mAとありますが、Flashブートの起動時、波形を確認すると300mAくらい流れているように見えます。500mAは欲しいところです。
※最近確認したら、500mAは供給してね、と書いてありました。ええ……
コンデンサとレギュレータ
コンデンサはパスコンです。降圧している分、コンデンサを差さないと電圧が安定しませんので、手抜きしないようにしましょう。秋月で三端子レギュレータを買うと、同梱していることが多いです。VIN-GND, VOUT-GNDに少なくとも1つずつアルミ電解コンデンサを配置しておきましょう。
レギュレータは三端子レギュレータでOK。5Vから3.3Vへ降圧します。別にDCDCでも構いません。
配線
1次資料であるESPrのデータシートを参考に。
http://espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf
- 3.3V ... 3.3V直結
- GND ... GND直結
- IO0 ... GNDへ
- EN ... 10K接続して3.3Vへ
- IO15 ... 10K接続してGNDへ
- RST ... プルアップ3.3V, タクトスイッチ経由でGNDへ接続
- TX ... RXへ接続
- RX ... TXへ接続
残りはオープンのままです。ライターなので、IO0は直GNDでOK。RSTについては、書き込み時にsync failedが出ることがたまにあるので、その場合、スイッチ押してリセットをかけます。なので、GNDへタクトスイッチ通して繋いでおきます。
完成品
写真は2作目のライター(FT232RL使用)です。L字のピンソケットがなかったので、USBシリアルモジュールが真上から刺さるという少々間抜けな形をしていますが。
ArduinoIDEからも、ちゃんと書き込み確認できました。
回路図
回路図も載せておきます。