ESP32-C3 SuperMini описание портов GPIO

16 сентября 2024

ESP32-C3 SuperMini – это мощная и компактная плата, основанная на микроконтроллере ESP32-C3 от Espressif Systems. Она сочетает в себе богатый набор функций, включая Wi-Fi и Bluetooth, что делает её идеальной для IoT-проектов. Но сегодня мы сосредоточимся на её портах GPIO.

Что такое порты GPIO? Порты GPIO – это универсальные порты ввода/вывода, которые можно программировать для выполнения различных задач, таких как чтение данных с датчиков или управление светодиодами. В ESP32-C3 SuperMini есть множество таких портов, и каждый из них может быть настроен для выполнения определённых функций.

Схема платы контроллера

ESP32-C3 и замечания по использованию

Контакты для обвязки чрезвычайно важны, о которых следует позаботиться при разработке специальной печатной платы ESP32-C3. Я бы порекомендовал добавить к ним контрольную точку, чтобы вы могли позже устранить проблемы, связанные с загрузкой и перепрошивкой.

Подключение неправильных сигналов к соединительным контактам может привести к тому, что они перейдут в неправильные состояния, в результате чего ESP32-C3 не будет загружаться или прошиваться.

GPIO 2 [обвязка] [RTC]

  • Во всех случаях должен быть ВЫСОКИЙ уровень во время сброса.
  • Если этот вывод переходит в низкий уровень во время сброса, чтение флэш-памяти или UART могут не работать.
  • Домен RTC, может использоваться для ADC.

GPIO 8 [обвязка]

  • Во всех случаях должен быть ВЫСОКИЙ уровень во время сброса.
  • Перепрошивка через UART может не работать, если этот вывод переходит в низкий уровень в момент сброса.
  • На этом порту так же подключен системный светодиод
  • После сброса работает как обычные GPIO, главное, что бы обвязка порта не стягивала его на ноль.

GPIO 9 [внутренний ПУ] [обвязка]

  • После сброса работает как обычные GPIO.
  • ВЫСОКИЙ — загрузка SPI
    НИЗКИЙ — загрузка UART
  • Эквивалентен GPIO-0 чипа ESP32, где он должен быть высоким для регулярного выполнения и низким для прошивки приложения.

Другие GPIO ESP32-C3 — общего назначения

Эти GPIO можно использовать более гибко и с ними не связано столько ограничений. Некоторые из них являются GPIO RTC, а другие — обычными GPIO.

GPIO 0 [RTC]

  • По умолчанию GPIO
  • Может использоваться для кварцевого резонатора 32 кГц или входа АЦП.
  • Поддержка функций RTC

GPIO 1 [RTC]

  • По умолчанию GPIO
  • Может использоваться для кварцевого резонатора 32 кГц или входа АЦП.
  • Поддержка функций RTC

GPIO 3 [RTC]

  • По умолчанию GPIO
  • Поддержка функций RTC и АЦП.

GPIO 4 [RTC]

  • По умолчанию JTAG MTMS.
  • Поддержка функций RTC и АЦП.

GPIO 5 [RTC]

  • По умолчанию JTAG MTDI.
  • Поддержка функций RTC и АЦП.

GPIO 6

  • По умолчанию JTAG MTCK.

GPIO 7

  • По умолчанию JTAG MTDO.

GPIO 10

  • По умолчанию GPIO

GPIO 18

  • По умолчанию USB D-

GPIO 19

  • По умолчанию USB D+, с включенной внутренней подгрузкой USB.

GPIO 20 — RxD для UART

  • По умолчанию RxD.
  • Может использоваться для других пассивных приложений, если программатор не активен.
  • Если мост USB-UART не подает на этот вывод высокий ток, этот вывод можно использовать для светодиодного индикатора, кнопки устранения дребезга и т. д.

GPIO 21 — TxD для UART

  • По умолчанию TxD для прошивки.
  • Может использоваться для светодиодов или других индикаторов, которые могут управляться, когда связь по UART не всегда требуется.

Внешние прерывания INT

Все пины ввода/вывода GPIO контроллера ESP32C3 можно использовать в качестве источников внешних прерываний

Настройки в Arduino IDE

В Arduino IDE в менеджере плат нужно выбирать "ESP32C3 Dev Module". Поменять Flash Mode QIO на Flash Mode DIO, объем памяти выбрать 4MB. Если нужно использовать Serial, надо включить «USB CDC On Boot».

Если контроллер перестал прошиваться

Если вы случайно прошили код с ошибкой, например загнали микроконтроллер в режим deep sleep, а разбудить не можете. То контроллер в этом случае невозможно будет перепрошить. Но для таких случаев предусмотрена кнопка BOOT. Нужно отключить контроллер от USB кабеля, нажать кнопку boot и подключить USB кабель обратно. После чего контроллер снова появится в настройках IDE. И напоследок жмем кнопку прошить в Arduino IDE. Очень часто новые из упаковки микроконтроллеры при подключении не определяются или определяются  на 2 пару секунд и исчезают и так по циклу. Не стоит паниковать прошиваем его по выше приведенной инструкции, с использованием кнопки boot.

Если зашили новую программу

После заливки в микроконтроллер нового кода, нужно обязательно его перезапустить иначе новая прошивка не будет в нем выполняться.

Blink

Для проверки микроконтроллера нужно зашить в него тестовый скетч Blink, но имейте ввиду, что системный светодиод находится на D8 и включается низким уровнем сигнала LOW

Код для проверки:

#define LED 8
void setup() 
{
  pinMode(LED, OUTPUT);
}

void loop() 
{
  digitalWrite(LED, LOW);  
  delay(1000);  
  digitalWrite(LED, HIGH);
  delay(1000);   
}

Заключение

Теперь вы знаете назначение основных портов GPIO на ESP32-C3 SuperMini и как их использовать в своих проектах. Эти порты открывают безграничные возможности для создания умных устройств и IoT-проектов. Экспериментируйте, создавайте и делитесь своими ардуино проектами!

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.