ESPシリーズのFlushチップ


ESPシリーズはいずれもESP8266EXチップ+Flushメモリーで構成されています。
FlushメモリーのチップIDは以下のスケッチで調べることができます。

/*
 * Chip ID & Chip Size get
 */

void setup() {
  delay(1000);
  Serial.begin(9600);
}

void loop() {
  uint32_t chipId;
  uint32_t chipSize;
  uint32_t chipSizeK;
  int chipSizeM;
    /*
     * Chip ID
     * 00 - always 00 (Chip ID use only 3 byte)
     * 17 - 2^xx is size in Byte
     * 40 - memory Type
     * C8 - manufacturer ID
     */
  chipId = ESP.getFlashChipId();
  Serial.print("getFlashChipId=");
  Serial.print(chipId,HEX);
  delay(100);
 
  chipSize = ESP.getFlashChipSizeByChipId();
  chipSizeK = chipSize/1024;
  chipSizeM = chipSizeK/1024;
  Serial.print(" getFlashChipSizeByChipId=");
  Serial.print(chipSize);
  Serial.print("Bytes[");
  Serial.print(chipSizeM);
  Serial.print("MBytes]");
  delay(100);
 
  chipSize = ESP.getFlashChipRealSize();
  chipSizeK = chipSize/1024;
  chipSizeM = chipSizeK/1024;
  Serial.print(" getFlashChipRealSiz=");
  Serial.print(chipSize);
  Serial.print("Bytes[");
  Serial.print(chipSizeM);
  Serial.println("MBytes]");
  delay(1000);
}

こ ちらを参照すれば、チップIDからメーカ、型番、容量が分かります。
また、getFlashChipSizeByChipId()のソースはこ ちらで公開されています。
getFlashChipSizeByChipId()のソースを見る限り、ESPシリーズで使われているチップはWinbond GigaDevice BergMicroの3種類のようです。

ESP-01の場合
getFlashChipId=1440C8 getFlashChipSizeByChipId=1048576Bytes[1MBytes] getFlashChipRealSiz=1048576Bytes[1MBytes]

ESP-01Sの場合
getFlashChipId=1440EF getFlashChipSizeByChipId=1048576Bytes[1MBytes] getFlashChipRealSiz=1048576Bytes[1MBytes]

ESP-12Eの場合
getFlashChipId=1640EF getFlashChipSizeByChipId=4194304Bytes[4MBytes] getFlashChipRealSiz=4194304Bytes[4MBytes]

ESP-13の場合
getFlashChipId=1640E0 getFlashChipSizeByChipId=4194304Bytes[4MBytes] getFlashChipRealSiz=4194304Bytes[4MBytes]

ESP-100の場合
getFlashChipId=1740EF getFlashChipSizeByChipId=0Bytes[0MBytes] getFlashChipRealSiz=8388608Bytes[8MBytes]

ESP-201の場合
getFlashChipId=1440E0 getFlashChipSizeByChipId=1048576Bytes[1MBytes] getFlashChipRealSiz=1048576Bytes[1MBytes]

ESP-202の場合
getFlashChipId=1640C8 getFlashChipSizeByChipId=4194304Bytes[4MBytes] getFlashChipRealSiz=4194304Bytes[4MBytes]

そこで、アンテナが付属するESPシリーズのチップIDを調べてみました。
ESP-08のようにGPIOはたくさんあっても、アンテナが無いものはちょっと手が出せません。
なお、アンテナの有無はこ ちらで調べることができます。
モデル ベンダー チップID チップベンダー チップ型番 チップ容量[MByte]
ESP-01 AI-THINKER 0x1440C8 GigaDevice GD25Q80B 1M
ESP-01S AI-THINKER 0x1440EF Winbond W25Q80 1M
ESP-07 AI-THINKER 0x1440E0 BergMicro BG25Q80
1M
ESP-07S AI-THINKER 手配中


ESP-12 AI-THINKER 0x1640EF Winbond W25Q32 4M
ESP-12E AI-THINKER 0x1640EF Winbond W25Q32 4M
ESP-12F AI-THINKER 0x1640E0 BergMicro BG25Q32 4M
ESP-12S AI-THINKER 0x1640EF Winbond W25Q32 4M
ESP-13 AI-THINKER 0x1640E0 BergMicro BG25Q32 4M
ESP-100 Cloud-Linked 0x1740EF Winbond
W25Q64BV
8M
ESP-201 YISON(??) 0x1440E0 BergMicro BG25Q80
1M
ESP-202 YISON 0x1640C8 GigaDevice
GD25Q32
4M

余談ですが、WinbondのW25シリー ズには以下の3種類があります。
32MBit W25Q32
16MBit W25Q16
8MBit W25Q80
W25Q80というコードは紛らわしいです。W25Q08にすべきです。

ESP.getFlashChipId()
ESP.getFlashChipSizeByChipId()
ESP.getFlashChipRealSize()

これらの関数はEspClassと呼ばれていて、こ ちらにClass Referenceがあります。