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 を参照してください。