ESP-M2の開発ボード


ESP-M2はこちらのメーカが販売しているESP8285を使ったモ ジュールです。
CoreはESP8266EXと同じTensilica L106 32-bit microcontrollerですが、1MのFlashがDualOutモードでビルトインされています。
Arduino環境で開発するときは、Tools→Board→Generic ESP8285 Moduleを選びます。
写真の様にESP-12よりも一回り小さいモジュールで、ピンピッチは1.5mmです。


ボードはこちらのメーカが手掛けています。
DIY MOREはArduino互換ボードやESP8266/ESP32開発ボード、STM32開発ボードなどを多数手がけていて、
黒い基盤にDMの文字がとても印象的です。

実装されているレギュレータはAMS1117、USBシリアル変換チップはCH340です。
ボードの赤のピンは5V出力(実際の出力は4.7Vぐらい)で、3.3V出力ピンは有りません。
せっかくレギュレータに1A仕様のAMS1117が使われているのに、3.3V出力が無いのは残念です。
オンボードLEDはGPIO16に繋がっています。


裏面にはなぜかESP-M3のパターンが有ります。
ESP-M3はこちらで紹介していますが、もしかしたら同じ基板で ESP-M3が実装されている開発ボードも有るのかも知れません。


ESP8285は1MのFlashがビルトインされているモデルしかないと思っていましたが、
こ ちらのデータシートを見ると、ESP8285H16というモデルは2MのFlashがビルトインされているようです。
そこで、このボードのFlash情報を読み出してみましたが、残念ながら1MのFlashでした。


また、1MモデルにもESP8285N08とESP8285H08の2種類が有ることが分かりました。
この違いは温度耐性の違いだけの様です。

ESP8285について調べていたら、こ ちらに面白い資料を発見しました。
ESP8285のProduct/Process Change Noticeで、2019年8月に細かな仕様が変わったことが分かります。
変更内容が細部に渡って公開されていることが分かります。



こちらもESP-M2を使った開発ボードです。
ボードはモジュールと同じDoItが手掛けています。
実装されているレギュレータはRT9193、USBシリアル変換チップはCH340です。
RT9193は300mAしか流せません。
3.3V出力ピンが出ています。
オンボードLEDはGPIO16に繋がっています。


こちらも、裏面にはなぜかESP-M3のパターンが有ります。




こ ちらのスケッチを利用してチップ情報を読み出してみました。
上からESP12F、ESP01、ESP8285、ESP8285です。
今のところ、ずばり8266と8285を区別できる情報は無さそうです。
無理やり区別するとすれば、ESP8285に内蔵されているFlashのIDは必ず144051になっています。
-----ESP8266 Chip Infomation -----

Core Version = 2_7_4
CPU Frequency = 80 MHz
ChipID = 8CF400
Flash ID = 164068
SDK version = 2.2.2-dev(38a443e)
Boot version = 31
Boot Mode = 1
Flash Chip IDE Size = 4194304 byte
Flash Chip Real Size = 4194304 byte
Flash Frequency = 40000000 Hz
Flash Chip Mode = DIO
Free Heap Size = 52648
Free Sketch Size = 1826816
Sketch Size = 268400


-----ESP8266 Chip Infomation -----

Core Version = 2_7_4
CPU Frequency = 80 MHz
ChipID = E5B28
Flash ID = 1440EF
SDK version = 2.2.2-dev(38a443e)
Boot version = 2
Boot Mode = 1
Flash Chip IDE Size = 1048576 byte
Flash Chip Real Size = 1048576 byte
Flash Frequency = 40000000 Hz
Flash Chip Mode = DIO
Free Heap Size = 52648
Free Sketch Size = 692224
Sketch Size = 268400



-----ESP8266 Chip Infomation -----

Core Version = 2_7_4
CPU Frequency = 80 MHz
ChipID = 994149
Flash ID = 144051
SDK version = 2.2.2-dev(38a443e)
Boot version = 31
Boot Mode = 1
Flash Chip IDE Size = 1048576 byte
Flash Chip Real Size = 1048576 byte
Flash Frequency = 40000000 Hz
Flash Chip Mode = DOUT
Free Heap Size = 52272
Free Sketch Size = 692224
Sketch Size = 268432



-----ESP8266 Chip Infomation -----

Core Version = 2_7_4
CPU Frequency = 80 MHz
ChipID = AFBB62
Flash ID = 144051
SDK version = 2.2.2-dev(38a443e)
Boot version = 31
Boot Mode = 1
Flash Chip IDE Size = 1048576 byte
Flash Chip Real Size = 1048576 byte
Flash Frequency = 40000000 Hz
Flash Chip Mode = DOUT
Free Heap Size = 52648
Free Sketch Size = 692224
Sketch Size = 268432



ESP8285をArduino-IDEでコンパイルした場合、ESP8266の定義が使われます。
以下がコンパイル時のログの一部です。
Using board 'esp8285' from platform in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0
Using core 'esp8266' from platform in folder: C:\Users\user\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0

ESP8266とESP8285は、Flashへの書き込み方法が違うだけで、コンパイル時のマクロ定義も、ESP8266と同じも のが使われます。
Flashサイズが1MのESP8266と考えて問題ないです。
-DMMU_IRAM_SIZE=0x8000
-DMMU_ICACHE_SIZE=0x8000
-DNONOSDK22x_190703=1
-DF_CPU=80000000L
-DLWIP_OPEN_SRC
-DTCP_MSS=536
-DLWIP_FEATURES=1
-DLWIP_IPV6=0
-DARDUINO=10812
-DARDUINO_ESP8266_ESP01
-DARDUINO_ARCH_ESP8266
-DARDUINO_BOARD=\"ESP8266_ESP01\"
-DLED_BUILTIN=2
-DFLASHMODE_DOUT
-DESP8266