| ESP32: рейтинг по количеству каналов АЦП |
|
| Добавил(а) microsin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
При разработке проектов на ESP32 количество доступных АЦП-входов критично, когда нужно подключить много аналоговых датчиков. Ниже — детальный обзор по актуальным чипам Espressif от лидера по числу входов до самых компактных моделей. Наибольшее количество аналоговых входов предлагают линейки ESP32-S2 и ESP32-S3, а также старшие модели оригинального ESP32. Ниже представлена сводная таблица для сравнения:
Обратите внимание: все перечисленные АЦП относятся к типу SAR (последовательного приближения), что обеспечивает хорошую скорость измерения. [Важные нюансы использования] При выборе МК учитывайте не только количество портов, но и особенности их работы: 1. Проблема ADC2 и Wi-Fi (ESP32 и ESP32-S2): в классическом ESP32 и ESP32-S2 10 каналов второго АЦП (ADC2) используются драйверами Wi-Fi. Если в вашем проекте активен Wi-Fi, вы не сможете одновременно считывать аналоговые сигналы с этих портов GPIO — это вызовет ошибку. Для сенсоров при работе с Wi-Fi используйте только ADC1 (порты GPIO 32–39 на ESP32). 2. Разрядность: более высокая разрядность (13 бит у ESP32-S2 и ESP32-S3 против 12 у оригинального ESP32) дает чуть лучшую теоретическую точность, но на практике для стабильных показаний все равно требуется программная калибровка. 3. Не используйте GPIO0 для сенсоров на ESP32: в старых платах (ESP32) порт GPIO0 отвечает за загрузку (Boot Mode). Подключение датчика к этому выводу может помешать прошивке устройства. Если ваша задача — опрашивать много аналоговых датчиков (например, массив фоторезисторов или потенциометров), берите ESP32-S3. Он дает максимум входов (20) и при этом современен. Для большинства стандартных задач (подключение 3-5 датчиков) с запасом хватит ESP32-C3 или ESP32-C6 — они компактнее и дешевле. Старый добрый ESP32 остается отличным выбором, но помните про конфликт ADC2 с Wi-Fi и используйте только первую группу портов GPIO (32–39). [Выбор платы разработчика для ESP32-S3] Вопрос о платах разработки для ESP32-S3 очень актуальный, так как именно на этом чипе больше всего аналоговых входов — целых 20 каналов АЦП. Это идеальный выбор для проектов с множеством аналоговых датчиков. Среди популярных плат можно выделить несколько ключевых категорий, и важно понимать, сколько входов АЦП вы реально сможете задействовать на каждой из них.
Важный момент: приведенные числа — это максимальный технический потенциал. В реальном проекте количество доступных аналоговых входов всегда будет меньше, потому что: 1. Часть портов занята встроенными на плате компонентами (дисплеи, microSD, аудиочипы). [Привязка входов АЦП ESP32-S3 к выводам портов GPIO] Входы АЦП у ESP32-S3 жестко привязаны к определенным выводам GPIO. Это аппаратное ограничение — вы не можете произвольно назначить любой GPIO для аналогового ввода. Доступен фиксированный набор из 20 портов GPIO, которые разделены между двумя АЦП-модулями. ESP32-S3 имеет два 12-битных SAR АЦП (ADC1 и ADC2), каждый из которых поддерживает по 10 каналов. Полная таблица привязки АЦП к GPIO:
Примечание *: strapping pin (вывод управления загрузкой). Таким образом, этот вход использовать для аналогового ввода - плохая идея. Таким образом, каждый аналоговый вход доступен строго на GPIO1–GPIO20. Все остальные порты (GPIO21, GPIO26–48) такой функции не имеют. Ключевые ограничения и предостережения: 1. Конфликт ADC2 с Wi-Fi (важнее всего!). На ESP32-S3, как и на оригинальном ESP32, АЦП-модуль ADC2 используется Wi-Fi драйвером. Если в вашем проекте активен Wi-Fi (например, вы отправляете данные на сервер), вы не сможете одновременно читать аналоговые сигналы с GPIO11–GPIO20. Это вызовет ошибки. Для аналоговых датчиков при работе с Wi-Fi используйте только ADC1 (GPIO1–GPIO10). 2. Strapping pins (выводы, влияющие на загрузку). Некоторые порты, входящие в группу аналоговых, имеют особые функции при старте чипа и требуют осторожного обращения: ● GPIO0 и GPIO3: используются для определения режима загрузки (UART download mode, JTAG интерфейс). Подача неправильного уровня на эти порты во время включения может помешать запуску или прошивке. 3. Порты, занятые flash/PSRAM (GPIO9 и GPIO10). На многих платах разработки с ESP32-S3 выводы GPIO9 и GPIO10 используются для подключения внешней flash-памяти и PSRAM. В таких платах эти порты не выведены на разъемы или их использование для других целей крайне не рекомендуется, так как это нарушит работу с памятью. Практические рекомендации: 1. Проекты с Wi-Fi: используйте только GPIO1–GPIO10 (ADC1). Это даст вам 10 аналоговых входов, которых достаточно для большинства задач. Проекты без Wi-Fi: у вас есть доступ ко всем 20 аналоговым портам (GPIO1–GPIO20, с учетом других ограничений). [Порты для АЦП у платы YD-ESP32-23] В магазине OZON можно купить недорогую плату [3], по сути это открытый проект [4]. На этой плате для входов АЦП можно использовать порты, помеченные зеленым цветом:
Важные замечания: 1. Помеченные красным цветом порты использовать как входы АЦП на этой плате нельзя. 2. Аналоговые функции: как видно из таблицы, эти порты используются двумя разными АЦП — ADC1 (GPIO1-10) и ADC2 (GPIO11-18). Это деление важно, так как АЦП2 имеет некоторые особенности при одновременном использовании с Wi-Fi. 3. Сенсорные входы (TOUCH): почти все эти порты, за исключением GPIO14-18, могут работать как входы для емкостных сенсорных кнопок. 4. SPI интерфейсы: многие порты имеют альтернативные функции для шин SPI (например, FSPI* для основного контроллера и SUBSPI* для вспомогательного), что полезно при подключении нескольких SPI-устройств. [Ссылки] 1. ESP32-C3: работа со встроенным АЦП. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||