ESP32 ポートに関する一般的なこと

ESP8266 は Espressif Systems 社の人気 WiFi + Bluetooth 対応システムオンチップ(SoC)です。

ボードの多様さ

ESP32 チップを搭載した、さまざまな多数のモジュールとボードがあります。MicroPython はできるだけ多くのボード/モジュール上で動作する汎用ポートを提供しようとしますが、制限があるかもしれません。Espressif 社の開発ボードがリファレンスのボードとして使われています(たとえば、テストがこのボードで実行されています)。別のボードを使う場合は、データシート、回路図、およびボードのその他の参考資料を用意して、ボードのさまざまな機能を調べるようにしてください。

一般的な ESP32 ポートを作成し、可能な限り多くのボードをサポートするには、次の設計と実装の決定が行われました。

  • GPIO ピン番号は ESP32 のチップ番号に基づいています。ボードのピンと実際の ESP32 ピンの対応を見つけるには、ボードのマニュアル/ピン図を用意してください。
  • すべてのピンを MicroPython でサポートしていますが、実際のボードですべてが利用できるとは限りません。たとえば、外部 SPI フラッシュに接続されているピンは使用すべきでなく、ボードはピンの一部のみを露出しているかもしれません。

技術仕様および SoC データシート

ESP32 チップのデータシートおよびその他の参考資料は、ベンダーのサイト https://www.espressif.com/en/support/download/documents?keys=esp32 から入手できます。これらは、チップの技術仕様、機能、動作モード、内部機能などの主要な参考資料となっています。

便宜上、いくつかの技術仕様を以下に示します。

  • アーキテクチャ:Xtensa Dual-Core 32-bit LX6
  • CPU 周波数: 最大 240MHz
  • 使用可能なRAMの合計: 528KB (システムの予約分)
  • ブート ROM: 448KB
  • 内蔵フラッシュROM: なし
  • 外部フラッシュ ROM: コードとデータ、SPIフラッシュ経由。通常のサイズは 4MB
  • GPIO: 34 (GPIO は外部フラッシュROM、UART など、他の機能と多重化されています)
  • UART: 3つのRX/TX UART (ハードウェアハンドシェイクなし)、1つのTX専用 UART
  • SPI: 4つの SPI インタフェース (1つはフラッシュ ROM に使用)。
  • I2C: 2つの I2C (任意のピンでビットバングの実装が可能)。
  • I2S: 2
  • ADC: 最大 18 チャンネルの 12 ビット SAR ADC
  • DAC: 2 つの 8 ビット DAC
  • RMT: 正確なパルス送受信を可能にする8チャンネル
  • プログラミング: UART から BootROM ブートローダーを使用する。外部 FlashROM と常時使用可能な BootROM ブートローダのため、ESP32 が文鎮化することはありません。

詳細については ESP32 データシートを参照してください: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf

MicroPython は ESP32 用の Espressif 社の開発フレームワークである ESP-IDF の上に実装されています。これは FreeRTOS ベースのシステムです。詳細については ESP-IDF Programming Guide を参照してください。