Театр начинается с вешалки, а работа с микроконтроллером с назначения выводов. Даже если использовать его только как "конструктор для домохозяек" в среде Arduino IDE исключительно с использованием готовых библиотек - необходимо понимать на какие ноги, что подключать, и какие лучше не использовать совсем и почему.
ESP32-S3-WROOM периферийные устройства
- 20 каналов аналого-цифрового преобразователя (АЦП)
- 4 интерфейса SPI
- 2 интерфейса UART
- 2 интерфейса I2C
- 8 выходных каналов ШИМ (LEDC)
- 2 цифро-аналоговых преобразователя (ЦАП)
- 1 интерфейс I2S
- 14 емкостных датчиков GPIO
Вы можете решить, какие контакты будут UART, I2C, SPI, PWM и т. д. — вам просто нужно назначить их в коде. Это возможно благодаря функции мультиплексирования чипа ESP32-S3.
Пихать такую диаграмму в схемы проектов не очень удобно - поэтому решил нарисовать свою собственную. Здесь указаны только наиболее часто используемые интерфейсы SPI, I2C и UART и ноги к которым обычно по умолчанию привязаны библиотеки в среде Arduino IDE).
GPIO 0, 45 которые нельзя использовать;
GPIO 39, 40, 41, 42 могут менять свое состояние при загрузке платы;
GPIO 46 может использоваться только как вход;
GPIO 38 встроенный светодиод;
GPIO 48 любопытная плюшка - адресный RGB светодиод.
ESP32-S3-WROOM емкостные сенсорные GPIO
ESP32-S3 имеет 14 внутренних емкостных сенсорных датчиков. Они могут чувствовать изменения во всем, что содержит электрический заряд, например, в человеческой коже. Таким образом, они могут обнаружить изменения, возникающие при прикосновении к GPIO пальцем. Эти контакты можно легко интегрировать в емкостные площадки и заменить механические кнопки. Емкостные сенсорные контакты также можно использовать для вывода ESP32-S3 из режима глубокого сна.
Эти внутренние сенсорные датчики подключены к следующим GPIO:
- Touch1 (GPIO 1)
- Touch2 (GPIO 2)
- Touch3 (GPIO 3)
- Touch4 (GPIO 4)
- Touch5 (GPIO 5)
- Touch6 (GPIO 6)
- Touch7 (GPIO 7)
- Touch8 (GPIO 8)
- Touch9 (GPIO 9)
- Touch10 (GPIO 10)
- Touch11 (GPIO 11)
- Touch12 (GPIO 12)
- Touch13 (GPIO 13)
- Touch14 (GPIO 14)
Поддержка тач-интерфейса реализована в среде Arduino IDE - если лень паять кнопки, можно использовать любые другие металлические площадки. Писал об этом тут.
ESP32-S3 Аналого-цифровой преобразователь (АЦП)
ESP32-S3 имеет 2 АЦП SAR ( регистр последовательного приближения ), поддерживающих в общей сложности 20 каналов измерения (аналоговые контакты). Это GPIO, которые можно использовать в качестве АЦП и соответствующих каналов:
- АЦП1_CH0 (GPIO 1)
- АЦП1_CH1 (GPIO 2)
- АЦП1_CH2 (GPIO 3)
- АЦП1_CH3 (GPIO 4)
- АЦП1_CH4 (GPIO 5)
- АЦП1_CH5 (GPIO 6)
- АЦП1_CH6 (GPIO7)
- АЦП1_CH7(GPIO8)
- АЦП1_CH8 (GPIO 9)
- АЦП1_CH9 (GPIO 10)
- АЦП2_CH0 (GPIO 11)
- АЦП2_CH1 (GPIO 12)
- АЦП2_CH2 (GPIO 13)
- АЦП2_CH3 (GPIO 14)
- АЦП2_CH4 (GPIO 15)
- АЦП2_CH5 (GPIO 16)
- АЦП2_CH6 (GPIO 17)
- АЦП2_CH7 (GPIO 18)
- АЦП2_CH8 (GPIO 19)
- АЦП2_CH9 (GPIO 20)
ESP32-S3 Цифро-аналоговый преобразователь (ЦАП)
На ESP32-S2 имеется 2 × 8-битных канала ЦАП для преобразования цифровых сигналов в выходные аналоговые сигналы напряжения. Это каналы ЦАП:
- ЦАП1 (GPIO17)
- ЦАП2 (GPIO18)
ESP32-S3 RTC GPIO
ESP32-S2 поддерживает RTC GPIO. GPIO, направленные на маломощную подсистему RTC, можно использовать, когда ESP32-S2 находится в глубоком сне. Эти RTC GPIO можно использовать для вывода ESP32-S2 из режима глубокого сна, когда работает сопроцессор со сверхнизким энергопотреблением (ULP). Следующие GPIO можно использовать в качестве внешнего источника пробуждения.
- RTC_GPIO0 (GPIO0) (контакт для обвязки)
- RTC_GPIO1 (GPIO1)
- RTC_GPIO2 (GPIO2)
- RTC_GPIO3 (GPIO3)
- RTC_GPIO4 (GPIO4)
- RTC_GPIO5 (GPIO5)
- RTC_GPIO6 (GPIO6)
- RTC_GPIO7 (GPIO7)
- RTC_GPIO8 (GPIO8)
- RTC_GPIO9 (GPIO9)
- RTC_GPIO10 (GPIO10)
- RTC_GPIO11 (GPI11)
- RTC_GPIO12 (GPI12)
- RTC_GPIO13 (GPIO13)
- RTC_GPIO14 (GPIO14)
- RTC_GPIO15 (GPIO15)
- RTC_GPIO16 (GPIO16)
- RTC_GPIO17 (GPIO17)
- RTC_GPIO18 (GPIO18)
- RTC_GPIO19 (GPIO19)
- RTC_GPIO20 (GPIO20)
- RTC_GPIO21 (GPIO21)
ESP32-S3 PWM
ШИМ-контроллер ESP32-S2 имеет 8 независимых каналов, которые можно настроить для генерации ШИМ-сигналов с различными свойствами. Все контакты, которые могут выступать в качестве выходов, могут использоваться как контакты ШИМ.
Чтобы установить сигнал ШИМ, вам необходимо определить в коде следующие параметры:
- Частота сигнала;
- Рабочий цикл;
- ШИМ-канал;
- GPIO, куда вы хотите вывести сигнал.
ESP32-S3 I2C
ESP32-S2 имеет два канала I2C, и любой вывод можно установить как SDA или SCL. При использовании ESP32-S3 с Arduino IDE по умолчанию используются следующие контакты I2C:
- GPIO 8 (SDA)
- GPIO9 (SCL)
ESP32-S3 Потребляемый ток GPIO
Абсолютный максимальный ток, потребляемый каждым GPIO, составляет 40 мА в соответствии с разделом «Рекомендуемые условия эксплуатации» в таблице данных ESP32-S3.
Сам я еще только начинаю работать с этой версией платы ESP32, поэтому дальше все будем тестировать и проверять - информации для старта изложенной в этой статье я думаю, что будет достаточно.
Оглавление канала тут:
Всем удачи!