MicroPython:Платы/ESP32/Общая информация о порте MicroPython для ESP32
Общая информация о порте MicroPython для ESP32[1]
ESP32 – это популярное SoC-устройство (от англ. «system on chip», т.е. «система на чипе») с функциями WiFi и Bluetooth, разработанное Espressif Systems.
Большое разнообразие плат
Платы и модули с чипом ESP32 выпускаются разными компаниями, поэтому на рынке можно найти много разных моделей. Разработчики порта MicroPython для ESP32 постарались сделать максимально универсальный порт, который можно было бы запустить на как можно большем количестве плат/модулей, но есть и некоторые ограничения. При разработке порта в качестве базовых плат использовались платы разработчика Espressif (то есть, к примеру, все тесты, выполнялись на них). Какую бы плату вы не использовали, убедитесь, что у вас есть ее схема, даташит и справочные материалы, чтобы вы в любой момент могли подсмотреть, какие функции она поддерживает.
В целях создания максимально универсального ESP32-порта были приняты следующие конструкторские решения:
- Нумерация GPIO-контактов соответствует физической нумерации контактов ESP32-чипа. Всегда держите под рукой руководство или распиновку своей платы, чтобы понимать как номера контактов на вашей плате соответствуют номерам контактов на чипе ESP32.
- В MicroPython поддерживаются все контакты ESP32, но не каждая модель платы/модуля поддерживает использование всех контактов. Например, контакты, подключенные к внешнему чипу SPI flash, использовать нельзя, а ваша плата может быть сконструирована таким образом, что у нее могут быть выведены не все контакты ESP32-чипа.
Технические характеристики и документация SoC
Документация и другие справочные материалы по чипу ESP32 можно найти на сайте производителя. Это главные справочные материалы о технических характеристиках чипа, его функциях, режимах работы, внутреннем устройстве и т.д.
Для вашего удобства некоторые из этих технических характеристик приведены ниже:
- Архитектура: 2-ядерная 32-битная Xtensa LX6
- Частота CPU: до 240 МГц
- Общий размер RAM-памяти: 528 Кб (часть зарезервирована под систему)
- BootROM: 448 Кб
- Внутренняя FlashROM: Нет
- Внешняя FlashROM: код и данные через Spi Flash (как правило, размер 4 Мб)
- GPIO-контакты: 34 (на GPIO-контактах могут быть реализованы другие функции, включая коммуникацию с внешней FlashROM, UART и т.д.)
- UART: три UART-порта с линиями RX и TX (без аппаратного квитирования), один UART-порт с TX-линией
- SPI: четыре интерфейса SPI (один используется для FlashROM)
- I2C: два порта I2C («bit-banging» можно использовать на всех контактах)
- I2S: два порта
- АЦП: 12-битное АЦП последовательного приближения (поддерживается до 18 каналов)
- ЦАП: два 8-битных ЦАП-порта
- RMT: 8 каналов для точной передачи/получения инфракрасных сигналов
- Программирование: при помощи загрузчика BootROM через UART. Благодаря внешней FlashROM и всегда доступному загрузчик BootROM чип ESP32 невозможно «окирпичить»
Больше информации о ESP32 ищите в его документации здесь.
MicroPython реализован поверх ESP-IDF, среды разработки Espressif для ESP32. Это система на базе FreeRTOS. Более подробно о ней читайте в руководстве по программированию с помощью ESP-IDF.