あみらぼ

電子工作がメインのDIYもの作り雑記

ESP32-WROVERで(やっと)Lチカ!

さて、前回、WROVER初起動で一発成功するも、その後どうやっても自動書き込みが

できない、というアメとムチの洗礼を受けました。

自動書き込みにこだわってるとくじけそうなので、他の事を始めます。

後に書きますが、ちょっと意外な挙動も見つけました。

 

引き続き、以下の方法をArduino IDEに組み込む方法を募集中です。

https://www.esp32.com/viewtopic.php?t=6113

 

前回、とりあえず1つのピンでLチカできる事は確認しましたが、

ゆくゆくは(IO0も含めて)使えるピンは全部使う予定なので、

使えそうなピン全てにLEDを接続して、点灯、消灯が可能か確認していきます。

 

まず、安全に使えそうな出力ピンの一覧です。(WROVERの場合です、念のため)

4、13、14、18、19、21、22、23、25、26、27、32、33

次に、条件付きで使えるけどできたら避けた方がよさそうなピンの一覧です。

  • 0、当然、起動モードにかかわる
  • 2、こちらも、起動モードにかかわる
  • 1、3、TX、RX。今回書き込みに使ってたから試してないけど多分問題ない
  • 5、こちらも、起動モードにかかわる
  • 12、こちらも、起動モードにかかわる
  • 15、こちらも、起動モードにかかわる

とりあえず、0、2、12、15、含め、計18個LEDに繋いでみました。

f:id:amilabo:20200301000242j:plain

右側に見えるarduino pro miniや、他のいくつかのパーツは、

以前に作っていた物のテスト時の残骸で、今回のWROVERのテストとは無関係です。

 

LEDは全て、例のarduino uno(の互換機)を買ったときにオマケでついてきた

大量のパーツの中の一部です。絶対使わないと思ってたけど、役立ちました。

わざわざ全部のピンにLEDつけたのは、例のあやしいはんだ付けが、

ちゃんと全部のピンで導通できているかの確認も含めるためです。

あと、LED警察に怒られそうなので、念のため書いておきますが、

電流制限抵抗が各色1本しかないのはわかってて使っています、

2つ以上のLEDは同時に点灯しないので、OKなはずです。

 

www.youtube.com

テスト結果。各ピン順番に点灯した後、特に意味もなく高速に点灯してみました。

とりあえず、起動後は0、2、5、12、15含め、全ピン使えそうです。

 

起動後は特に問題なさそうですが、起動時にちょっと怪しげな動作を見つけました。

起動、リセット関わらず、最初に1秒ほどIO0とIO14のLEDが高速点滅します。

IO0はまぁわかるとして、IO14が点滅したのは意外でした。

IO14は、起動時に短絡してても問題なく使えると思っていましたが、まずそうです。

f:id:amilabo:20200301063103j:plain

何の信号かは謎ですが、ありえるとしたら、MTMSあたりでしょうか?

いずれにしても、IO0、2、5、12、15に加えて、IO14を使うときは、

起動時にはHi-Zになっている事が確実な端子に繋ぐのが安全そうです。

 改めて、使う際に気を付けた方がよさそうな端子のまとめ。

  • 0、起動モードに影響、起動時にHIGHが出る?
  • 2、起動モードに影響、起動時PULL_DOWN
  • 5、起動モードに影響、起動時PULL_UP
  • 12、起動モードに影響、起動時PULL_DOWN
  • 14、起動モードには影響しないが、起動時にHIGHが出る?
  • 15、起動モードに影響、起動時PULL_UP

(起動時PULL_UP/DOWNは、データシートから確認した値です)

 

と、ここで疑問に思ったのですが、IO0が起動時に点滅した件です。

どこを見ても、IO0は起動時にGNDに直結するようなスイッチや回路になってますが、

起動時にIO0にHighがでているという事は、GNDに直結すると大電流が流れて、

ICにダメージをあたえたりすることはないのでしょうか??

恐らく、IO0がGNDになった事を認識して即座に出力を止めるとは思いますし、

以下のようにデータシートにも直結で問題無いような回路が書かれているので、

大丈夫かと思いますが、気になる場合は、小さい値の抵抗を入れた方がいいかもです。

f:id:amilabo:20200301064120j:plain

また、WROVERとは全く関係ない話なのですが、使用した緑のLEDが何か変です。

青色のLEDは、Vf2.5v程度で0.3mA流して十分点灯しているのがわかりますが、

緑色のLEDは、青色のLEDと同程度の輝度にすると、30mA近くの電流が流れました。

その差、実に100倍です。上記の動画がその通りなのですが、電流制限抵抗の値、

青色は2200Ωなのに対して、緑色は22Ωです。(その際どちらもVf2.5v程)

LEDによって、電力に対する発光効率に差があるのはわかりますが、

それにしても酷すぎませんかね?ましてや、青色ではなく緑色なのに。

オマケで貰ったようなLEDなのでこれ以上あれこれ考えない事にしますが、

あまりにも非効率なのと、ICのピン単位の出力限界もあるので、使わない事にします。

 

ちなみに、起動後のLED消灯時の消費電流を計ったところ、約40mA程でした。

省電力という感じではないですが、datasheetによると30~68mAとのことなので、

おおむね予想通りといったところですね。(改めて緑色LEDの異常さがわかります…)

 

さて、想定外の挙動はありましたが、起動後は18本のピンが使える事がわかりました。

ということは、9×9のマトリクス状に配線すれば、WROVER単体で、

81個のLEDが使えそうですね!(もちろんそんな事はやりませんがw)

いずれにしても、Wifi&BT内蔵、DualCore240Mhz、4MFlash、512KRAM、8MPSRAM、

という、一昔前からすれば、夢のような小型マイコンでこんな事をしていたのでは、

苦労した先人たちに申し訳がたちませんし、もったいないお化けが出そうです。

PCやスマホといったドラ〇もんもびっくりな未来道具の一番の使用用途が、

ネットでエロサイトを見る事、といったくらいがっかりな未来です。

 

次回は、もうちょっと進歩した事をできればと思います。ではでは。