背景
ESP32はWiFiやBluetoothが使える組み込む向けのIC(集積回路)です。ICのバージョンが知りたかったので確認方法を調べ、esp-idfのサンプルコードで下記のような情報を表示可能と分かりました。
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 0, 4MB external flash
Minimum free heap size: 284432 bytes
期待していたほど詳しい情報は取得できませんでしたが、備忘録を兼ねて記事として共有します。
使ったもの
- ESP32にプログラムを書き込む環境
Arduino IDE + esp32-arduinoもしくはPlatformIOで書き込めます。 - esp-idfのサンプルコード
esp-idfをお使いの方は、上記リンクのコードを書き込んでログを見ればバージョンが分かります。 - 調査対象のESP32装置
esp-idf向けのコードをesp32-arduino向けに書き換え
ICの情報を確認できるesp-idfのサンプルコードはArduinoに必要なsetupやloopの関数がありません。そのままではArduino向けにビルドできないため、app_mainをsetupに書き換え、空のloop関数を定義してください。
また、先頭に「#include <Arduino.h>」を追加してください。
上記の変更を行えば、Arduino環境でビルドして書き込めます。
[platformioのプロジェクト]/src/main.cpp
#include <Arduino.h>
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
void setup() {
printf("Hello world!\n");
/* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
CONFIG_IDF_TARGET,
chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
printf("silicon revision %d, ", chip_info.revision);
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
for (int i = 10; i >= 0; i--) {
printf("Restarting in %d seconds...\n", i);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.\n");
fflush(stdout);
esp_restart();
}
void loop() {}
ESP32に書き込んでバージョンなどの情報を確認
手元にあるESP32にプログラムを書き込んで情報を確認してみました。WROOM-32(末尾のアルファベット無し): Rev0
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 0, 4MB external flashsilicon revisionは0でした。
Minimum free heap size: 284432 bytes
WROOM-32U: Rev1
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 4MB external flashsilicon revisionは1でした。
Minimum free heap size: 284908 bytes
M5Stack Basic: Rev1
2018.3版です。
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 4MB external flashsilicon versionは1でした。
Minimum free heap size: 284112 bytes
M5Stack Fire: Rev1
2018.2A版です。
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 16MB external flashsilicon versionは1でした。
Minimum free heap size: 284476 bytes
これは16MBのflashを積んでいるのが分かります。
M5Stack Core2: Rev3
2020.07.07版です。
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 3, 16MB external flashsilicon versionは3でした。
Minimum free heap size: 284388 bytes
おわり
手持ちのESP32装置では、ICのバージョン(silicon revision)として0,1,3を確認できました。ESP32のWikipediaではICの種類として「D0WDQ6」や「U4WDH」があるので詳しい情報を見れるかと思ったのですが、バージョン情報が整数だったので期待してたほどの情報を確認はできませんでした。
他の確認方法があれば、コメントなどで教えていただけると嬉しいです。
参考
Find out the Revision of the ESP32 Chipesp-idf/examples/get-started/hello_world/main/hello_world_main.c
0 件のコメント :
コメントを投稿