ESP32-C3: справочник по выводам |
Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ESP32-C3 это одноядерный микроконтроллер SoC, основанный на открытой архитектуре RISC-V. В нем хорошо сбалансированы энергопотребление, возможности ввода/вывода, безопасность и производительность, что подходит для реализации недорогих беспроводных устройств. Доступность Wi-Fi и Bluetooth 5 (LE) позволяет не только просто конфигурировать устройства, но также увеличивает область применения благодаря возможностям беспроводных соединений по разным протоколам. На популярных платах разработчика доступны не все выводы чипа, и некоторые из ножки кристалла использовать не получится. Возникает множество вопросов о том, какие выводы ESP32-C3 для чего нужны. Какие выводы GPIO нужно использовать? Какие выводы следует избегать в своих проектах? В этой статье (перевод блога [1]) представлено простое руководство, помогающее ответить на подобные вопросы. [Голый чип ESP32-C3] На следующем рисунке показана цоколевка корпуса чипа ESP32-C3 QFN 5×5. Используйте эту диаграмму, если применяете чипы ESP32-C3 напрямую, без готовых модулей. Периферия ESP32-C3. На борту чипа находятся следующие периферийные устройства: • Максимум до 22 программируемых GPIO (обычно доступно меньше, в зависимости от условий применения). Типовая нагрузочная способность одного выхода порта GPIO составляет 40 мА для лог. 1, 28 мА для лог. 0. Функции ADC (Analogue to Digital Converter, АЦП) назначены на определенные ножки. Однако можно самому определить, на какие ножки будут выведены UART, I2C, SPI, PWM, и т. д., потому что это назначается в коде программы благодаря наличию функции мультиплексирования периферии и GPIO. Примечание: в настоящий момент существует множество модулей, доступных как от компании Espressif (см. архив [4]), так и от сторонних разработчиков. У этих плат могут отличаться физические размеры, наличие антенны, количество выведенных портов GPIO, и т. п. [Как лучше всего использовать ножки ESP32-C3] В зависимости от конкретных условий некоторые выводы с определенными функциями могут подойти, а могут и не подойти для Вашего проекта. В следующей таблице показано, какие выводы лучше использовать как входы, какие как выходы, и какие выводы следует использовать с осторожностью. Жирным шрифтом в таблице помечены функции по умолчанию. Ножки, помеченные зеленым цветом, можно использовать свободно. Ножки, помеченные желтым, также можно использовать, однако это следует делать с осторожностью, особенно при загрузке. Ножки, помеченные красным цветом, не рекомендуется использовать как входы или выходы.
Примечания: (1) PA: аналоговое питание, PD: питание для RTC IO, I: вход, O: выход, T: высокое сопротивление. SPI flash и VDD_SPI. На некоторых платах разработки (однако очень редко) могут быть выведены порты GPIO11 .. GPIO17. Однако эти выводы подключены к встроенной памяти SPI flash, где содержится код программы, и их не рекомендуется использовать для других целей. По умолчанию ножка VDD_SPI используется для питания памяти VDD_SPI. В рабочем режиме это выход встроенного стабилизатора 3.3V, в режиме пониженного энергопотребления на VDD_SPI напряжение отсутствует, чем достигается дополнительное снижение потребляемого тока. В некоторых случаях может использоваться внешняя память SPI flash, и если не требуется управление её питанием, то ножку VDD_SPI можно использовать как дополнительный порт GPIO11. Для этого необходимо перепрограммировать eFuse-бита VDD_SPI_AS_GPIO [3]. Имейте в виду, что после этого функцию VDD_SPI обратно вернуть будет невозможно! ADC. ESP32-C3 содержит на кристалле два 12-битных SAR ADC (ADC1 и ADC2), до 6 каналов (для сравнения: у чипа ESP8266 только один 10-битный ADC). Ниже показан список каналов ADC и соответствующие им ножки портов GPIO. ADC1_CH0 GPIO0 • ADC1 поддерживает измерения на 5 каналах, и он был предварительно откалиброван на заводе. PWM. Контроллер LED PWM [2] может одновременно формировать ШИМ-сигналы на 6 независимых каналах, причем каждый канал может быть выведен на любую из ножек порта GPIO. Период и скважность ШИМ можно конфигурировать программно, доступна точность скважности до 18 бит. Сигнал ШИМ может формироваться даже когда CPU находится в режиме пониженного энергопотребления Light-sleep. Контроллер ШИМ может аппаратно реализовать фейдинг (т. е. плавно увеличивать или уменьшать скважность периода ШИМ). I2C. Интерфейс шины I2C может работать в режимах master или slave, в зависимости от программной конфигурации. Поддерживаются следующие функции I2C: • Стандартный режим (скорость 100 килобит/сек) и быстрый режим (400 килобит/сек). SPI. Чип ESP32-C3 имеет на кристалле 3 интерфейса SPI: SPI0, SPI1, SPI2. SPI0 и SPI1 могут работать только в режиме памяти SPI (SPI Memory mode), и используют одни и те же выводы корпуса. SPI2 может работать как в режиме памяти SPI, так и для подключения любых внешних устройств SPI (general-purpose SPI), с поддержкой до 6 сигналов выборки (CS). SPI Memory mode. Интерфейсы SPI0 и SPI1 могут работать только в режиме подключения памяти SPI, и они работают как master. Данные передаются байтами. Поддерживается сигналы данных до 4 линий STR на операциях чтения и записи. Тактовая частота конфигурируется, в режиме STR она может быть до 120 МГц. General-purpose SPI (GP-SPI). Когда SPI2 работает в качестве SPI общего назначения, он может быть сконфигурирован в режимах master и slave. SPI2 поддерживает двухпроводный полнодуплексный обмен, а также одно-/двух-/четырехпроводный полудуплексный обмен в обоих режимах master и slave. Тактовая частота хоста конфигурируется. Данные передаются байтами. Полярность тактов (CPOL) и их фаза (CPHA) также конфигурируется. SPI2 интерфейс можно подсоединить к GDMA. – В режиме master тактовая частота обычно 80 МГц, и поддерживается 4 режима формата транзакции SPI. Сответствие между сигналами шины SPI и ножками GPIO показаны в таблице ниже.
В большинстве случаев соединение порта данных между ESP32-C3 и внешней SPI flash для 1-/2-/4-проводного режима организуется следующим образом:
Датчик температуры. Встроенный сенсор температуры ESP32-C3 генерирует напряжение, которое зависит от температуры кристалла. Это напряжение внутренне преобразовывается с помощью ADC в цифровое значение. Диапазон измерения температуры составляет от –40°C до 125°C. Датчик температуры предназначен главным образом для анализа измерения температуры кристалла, которая может зависеть от многих факторов, таких как частота тактирования, рабочий режим, использования беспроводных соединений и нагрузки выходов. Обычно внутренняя температура кристалла выше, чем температура окружающей среды. [Выводы управления загрузкой (Strapping Pins)] Следующие ножки портов GPIO чипа ESP32-C3 могут управлять режимом загрузки программного обеспечения: GPIO2 Эти выводы используются для активизации режима загрузчика (bootloader mode) ESP32-C3, иногда это называют режимом прошивки (flashing mode). На большинстве плат разработчика со встроенным преобразователем USB-UART не нужно беспокоиться о логическом состоянии этих выводов. Плата переведет эти выводы в нужное состояние, когда необходимо активизировать режим прошивки (flashing mode или boot mode). Однако если к этим выводам Вы подключили периферийные устройства, то потенциально могут возникнуть проблемы при попытке загрузить новый код, когда нужно прошить SPI flash. Если такие проблемы возникли, то вероятно внешние периферийные устройства устанавливают на этих выводах уровни, которые не дают ESP32-C3 войти в нужный режим. После сброса, прошивки или загрузки эти выводы будут работать так, как ожидалось. [Выводы, на которых лог. 1 во время загрузки] Некоторые выводы GPIO при загрузке выводят уровень лог. 1 или выводят сигналы PWM. Это означает, что если Вы подсоединили к таким GPIO другие выходы, то после сброса или загрузки можно получить непредсказуемое поведение ESP32-C3. GPIO0 .. GPIO8 [Вывод разрешения (EN)] Вывод EN (CHIP_EN) управляет работой встроенного регулятора 3.3V. Этот вывод подтянут к лог. 1, и для запрета регулятора 3.3V на него может быть подан лог. 0 (например, если внешняя цепь или кнопка подтянет уровень к GND). Таким образом, ножка EN может использоваться для перезапуска ESP32-C3. 1: ESP32-C3 включен, работа кристалла разрешена. Внимание: не оставляйте ножку EN висящей (никуда не подключенной). [Ссылки] 1. ESP32-C3 Pinout site:studiopieters.nl. |