Обзор и сравнение микроконтроллеров ESP8266 и ESP32
В данной статье производится обзор и сравнение двух популярных микроконтроллеров ESP8266 и ESP32. Рассматриваются и сравниваются основные возможности.
Обзор и сравнение микроконтроллеров ESP8266 и ESP32
27.04.2024 в 09:00   2254 0
Версия для печати

Сравнение ESP8266 и ESP32

Многие люди, которые мало знакомы с электроникой, часто с трудом различают ESP8266 и ESP32. Возникает много сомнений относительно того, какую плату использовать и в чем разница между ними. В данной статья я постараюсь максимально подробно ответить на этот вопрос.

И ESP32, и ESP8266 - это дешевые SOC на базе Wi-Fi (Systems on Chip или системы на чипе), идеально подходящие для проектов DIY в Интернете вещей. Оба имеют 32-разрядные процессоры, ESP32 - двухъядерный процессор с частотой от 80 МГц до 240 МГц, а ESP8266 - одноядерный процессор с частотой 80 МГц. Эти модули имеют несколько GPIO (general-purpose input/output, или по русски низкоуровневый интерфейс ввода-вывода прямого управления), которые поддерживают различные протоколы, такие как SPI, I2C, UART, ADC, DAC и PWM. ESP32 и ESP8266 работают при напряжении 3,3 В.

ESP8266

Отладочных плат на базе ESP8266 существует великое множество. Отличаются они между собой как размерами и дополнительной обвязкой (типа USB разъема и стабилизатора напряжения), так и версией микросхемы ESP8266 и количеством доступных GPIO выводов. В данной статье для сравнения возьмем одну из самых популярных отладочных плат на базе ESP8266  NodeMCU. 

Модуль ESP-12E на плате содержит микросхему ESP8266 с 32-разрядным RISC-микропроцессором Tensilica Xtensa LX106, который поддерживает RTOS и работает с регулируемой тактовой частотой от 80 до 160 МГц.  Nodemcu ESP8266 включает приемопередатчик Wi-Fi стандарта 802.11b / g / n HT40, позволяющий подключаться к сети Wi-Fi и взаимодействовать с Интернетом. Модуль может функционировать как точка доступа, так и станция. 

Этот модуль обладает достаточно мощными возможностями встроенной обработки и хранения данных, что позволяет интегрировать его с датчиками и другими устройствами, специфичными для конкретного приложения, через GPIO с минимальной предварительной разработкой и минимальной загрузкой во время выполнения. Он имеет 128 КБ ОЗУ и 4 МБ флэш-памяти (для хранения приложений и данных), чего более чем достаточно для обработки огромных строк, составляющих веб-страницы, данных в формате JSON / XML и всего остального, что мы используем в устройствах Интернета вещей в наши дни.

Модуль ESP8266 NodeMCU доступен в двух вариантах, где один построен с мостом CP2102 USB to UART, а другой с мостом CH340 USB to UART.

Питание

Плата оснащена регулятором напряжения LDO для поддержания стабильного напряжения на уровне 3,3 В, в то время как рабочий диапазон напряжения ESP8266 составляет от 3 В до 3,6 В. Когда ESP8266 потребляет до 80 мА во время радиочастотной передачи, регулятор может надежно подавать до 600 мА, чего должно быть более чем достаточно. Выход регулятора также выведен на одну из сторон платы и обозначен как 3V3. Через этот вывод можно подавать питание на внешние компоненты. Встроенный разъем MicroB USB обеспечивает питание ESP8266 NodeMCU. Вы можете использовать вывод VIN для питания ESP8266 и его периферийных устройств напрямую, если питание подается от источника 5 В.

Для связи ESP8266 требуется источник питания 3,3 В и логические уровни 3,3 В. Контакты GPIO не имеют допуска 5 В.

Распиновка

Модуль Wi-Fi ESP8266 имеет в общей сложности 17 выводов GPIO, доступных с обеих сторон отладочной платы. Эти контакты могут быть назначены для всех видов периферийных функций.

  • Вывод питания: выводы питания состоят из одного вывода VIN и трех выводов 3,3 В. Если у вас есть регулируемый источник питания 5 В, вы можете использовать вывод VIN для непосредственного питания ESP8266 и его периферийных устройств. Контакты 3,3 В являются выходами регулятора напряжения, встроенного в плату. Питание может подаваться на внешние компоненты через эти контакты.
  • Контакты I2C: они используются для подключения всех датчиков I2C вашего проекта и периферийных устройств. Поддерживаются как ведущий, так и ведомый интерфейсы I2C.
  • КОНТАКТЫ GPIO: ESP8266 NodeMCU включает в себя 17 контактов GPIO, которые могут быть программно назначены для различных задач, таких как I2C, I2S, UART, PWM, ИК-пульт дистанционного управления, светодиодная подсветка и кнопка. 
  • ЗАЗЕМЛЕНИЕ: это контакт заземления отладочной платы ESP8266 NodeMCU.
  • КАНАЛ АЦП: В NodeMCU встроен АЦП SAR с 10-разрядной точностью. Тестирование напряжения питания на выводе VDD3P3 и тестирование входного напряжения на выводе TOUT - это две функции, которые могут быть реализованы с помощью АЦП. Они не могут быть реализованы одновременно.
  • КОНТАКТЫ UART: ESP8266 NodeMCU оснащен двумя портами UART, UART0 и UART1, которые могут взаимодействовать со скоростью до 4,5 Мбит / с и обеспечивают асинхронную связь (RS232 и RS485). Для связи может использоваться UART0 (контакты TXD0, RXD0, RST0 и CTS0). Он поддерживает контроль жидкости. Однако, поскольку UART1 (вывод TXD1) передает только данные, он обычно используется для печати журналов.
  • КОНТАКТЫ SPI: ESP8266 имеет два SPI (SPI и HSPI), которые могут использоваться в режимах slave и master.
  • КОНТАКТЫ PWM: на  плате имеется четыре канала широтно-импульсной модуляции (PWM). Выход PWM может быть программно реализован и использован для управления цифровыми двигателями и светодиодами. Диапазон частот PWM регулируется от 1000 мкс до 10000 мкс, то есть от 100 Гц до 1 кГц.
  • КОНТАКТЫ УПРАВЛЕНИЯ: используются для управления микроконтроллером ESP8266. Среди этих контактов - вывод включения чипа (EN), вывод сброса (RST) и вывод пробуждения.

На ESP8266 NodeMCU есть две кнопки. Кнопка сброса, обозначенная как RST и расположенная в верхнем левом углу, используется для сброса чипа ESP8266. Кнопка FLASH расположена в нижнем левом углу и используется для обновления прошивки. На плате также имеется программируемый пользователем светодиодный индикатор, который подключается к контакту D0.

ESP32

Отладчная плата оснащена модулем ESP-WROOM-32, содержащим двухъядерный 32-разрядный микропроцессор Tensilica Xtensa LX6. Этот процессор сопоставим с ESP8266, за исключением того, что он включает в себя два ядра процессора (каждое из которых может работать отдельно), тактовую частоту от 80 до 240 МГц и производительность до 600 DMIPS (сто миллионов инструкций в секунду).

В ESP32 встроен приемопередатчик Wi-Fi стандарта 802.11b / g/n HT40, который позволяет не только подключаться к сети Wi-Fi для взаимодействия с Интернетом, но и создавать собственную сеть, к которой другие устройства могут подключаться напрямую. Wi-Fi Direct также поддерживается ESP32, который является подходящей альтернативой для одноранговых соединений, для которых не требуется точка доступа. Проще настроить WiFi Direct и имеет значительно более высокую скорость передачи данных, чем Bluetooth. Чип также поддерживает как Bluetooth 4.0 (BLE / Bluetooth Smart), так и Bluetooth Classic (BT), что делает его еще более универсальным.

Nodemcu ESP32 представляет собой серию недорогих микроконтроллеров с низким энергопотреблением со встроенным ESP32 Wi-Fi и двухрежимным Bluetooth. ESP32 предназначен для приложений Интернета вещей с низким энергопотреблением. Высокая вычислительная мощность в сочетании со встроенными функциями Wi-Fi, Bluetooth и режима глубокого сна, 520 КБ SRAM, 448 КБ ROM и 4 МБ флэш-памяти (для хранения программного обеспечения и данных) делают его подходящим для большинства портативных устройств Интернета вещей.

Питание

Плата оснащена регулятором напряжения LDO для поддержания стабильного напряжения на уровне 3,3 В, в то время как диапазон рабочих напряжений Arduino ESP32 составляет от 2,2 В до 3,6 В. Когда ESP32 потребляет до 250 мА во время радиочастотной передачи, он может надежно подавать до 600 мА, чего должно быть более чем достаточно. Выход регулятора также выведен на одну из сторон платы и обозначен как 3V3. Через этот вывод можно подавать питание на внешние компоненты. Встроенный порт MicroUSB обеспечивает питание отладочной платы ESP32. Вы можете использовать вывод VIN для питания ESP32 и его периферийных устройств напрямую через внешний источник питания 5 В.

Для связи ESP32 требуется источник питания 3,3 В и логические уровни 3,3 В. Контакты GPIO не имеют допуска 5 В.

Распиновка

Плата ESP-32 имеет 48 контактов ввода / вывода общего назначения, из которых только 25 доступны в качестве контактных разъемов с обеих сторон платы ESP-32. Эти контакты могут быть назначены для всех видов периферийных функций.

  • КОНТАКТЫ ПИТАНИЯ: вывод VIN и вывод 3,3 В являются двумя контактами питания. Если у вас есть управляемый источник питания 5 В, вы можете использовать вывод VIN для непосредственного питания ESP32 и его периферийных устройств. Выход бортового регулятора напряжения подключен к контакту 3,3 В. Через этот вывод можно подавать питание на внешние компоненты.
  • КОНТАКТЫ ARDUINO: аппаратные контакты I2C и SPI ESP32, которые вы можете использовать для подключения всех видов датчиков и периферийных устройств к вашему проекту.
  • КОНТАКТЫ GPIO: Плата разработки ESP32 оснащена 25 выводами GPIO, которые могут быть программно назначены для различных функций. Каждый GPIO с цифровой поддержкой может быть настроен на высокий импеданс или внутреннее подтягивание или опускание. Он также может быть установлен на edge-trigger или level-trigger для генерации прерываний процессора при настройке в качестве входных данных
  • ЗАЗЕМЛЕНИЕ: контакт заземления отладочной платы ESP32.
  • КАНАЛЫ АЦП: Плата имеет 12-разрядные АЦП SAR и 15 каналов измерения (аналоговые контакты с поддержкой). Некоторые из этих выводов могут быть использованы для создания программируемого усилителя усиления для измерения малых аналоговых сигналов. ESP32 также способен измерять напряжения, находясь в спящем режиме.
  • КАНАЛЫ ЦАП: Два 8-разрядных канала ЦАП в схеме преобразуют цифровые сигналы в настоящие аналоговые напряжения. Этот двойной ЦАП может управлять другими цепями. Сенсорные панели Плата оснащена 9 графическими процессорами с емкостным датчиком, которые обнаруживают изменения емкости, вызванные прямым контактом или близостью GPIO к пальцу или другим объектам.
  • КОНТАКТЫ UART: Плата разработки ESP32 содержит два интерфейса UART, UART0 и UART2, которые обеспечивают асинхронную связь (RS232 и RS485) и IrDA со скоростью до 5 Мбит / с. UART обеспечивает аппаратное управление сигналами CTS и RTS, а также программное управление потоком (XON и XOFF).
  • КОНТАКТЫ SPI: Контакты SPI ESP32 имеют три SPI (SPI, HSPI и VSPI) в режимах slave и master. Все SPI также могут использоваться для подключения к внешней флэш-памяти / SRAM и ЖК-дисплею.
  • ~ КОНТАКТЫ PWM: плата имеет 25 каналов (почти все контакты GPIO) контактов PWM, управляемых контроллером широтно-импульсной модуляции (PWM). ШИМ-выход может использоваться для управления цифровыми двигателями и светодиодами. Контроллер состоит из таймеров PWM и оператора PWM. Каждый таймер обеспечивает синхронизацию в синхронной или независимой форме, и каждый оператор PWM генерирует форму сигнала для одного канала PWM.

EN PIN: используется для включения ESP32. Чип включается при высоком напряжении. При низком напряжении микросхема работает на минимальной мощности.

Так что же лучше? ESP8266 против ESP32.

ESP8266 - очень популярная и доступная платформа для реализации энергоэффективных приложений Интернета вещей, которые работают на основе подключения Wi-Fi.
В свою очередь, Espressif ESP32 является относительно новым и более продвинутым решением, в котором разработчики увеличили скорость Wi-Fi, добавили поддержку Bluetooth 4.2 и Bluetooth Low Energy, а также увеличили количество входов / выходов.

ESP32 имеет больше GPIO, чем ESP8266, и вы можете указать, какие контакты используются для UART, I2C и SPI в коде. Это возможно благодаря возможности мультиплексирования чипа ESP32, который позволяет назначать множество функций одному контакту. Сигналы PWM могут быть установлены в любом GPIO с настраиваемыми частотами и рабочими циклами кода. Аналоговые контакты являются статическими, но ESP32 поддерживает измерения на 18 каналах (аналоговые контакты), тогда как ESP8266  имеет только один 10-разрядный вывод АЦП. Два 8-разрядных канала ЦАП также поддерживаются ESP32. Кроме того, ESP32 содержит 10 GPIO с емкостным датчиком, которые распознают прикосновения и могут использоваться для запуска событий или пробуждения ESP32 от глубокого сна. ESP32 поддерживает протокол связи Bluetooth по умолчанию, в то время как ESP8266 этого не может.

Беспроводная связь

Заметным отличием ESP32 является его функция Bluetooth, которая позволяет ESP32 не ограничиваться только связью по Wi-Fi, позволяя интегрировать его в большее количество проектов. Он поддерживает как классический Bluetooth, так и Bluetooth с низким энергопотреблением. В то время как ESP8266 не поддерживает Bluetooth.

Обработка

ESP8266 имеет встроенный процессор, но из-за многозадачности, связанной с обновлением стека Wi-Fi, большинство приложений используют отдельный микроконтроллер для взаимодействия с датчиками, цифрового ввода-вывода и обработки данных. При использовании ESP32 вам может не понадобиться использовать дополнительный микроконтроллер, поскольку ESP32 оснащен двумя 32-разрядными микропроцессорами и будет работать на распределительных платах и модулях с частотой от 160 МГц до 240 МГц. Это обеспечивает достаточную скорость для любого приложения, которому требуется микроконтроллер с возможностью подключения.

  • ESP32 быстрее, чем ESP8266;
  • ESP32 поставляется с большим количеством GPIO с множеством функций;
  • ESP32 поддерживает аналоговые измерения на 18 каналах (аналоговые контакты) по сравнению с одним 10-разрядным выводом АЦП на ESP8266;
  • ESP32 поддерживает Bluetooth, а ESP8266 - нет;
  • ESP32 является двухъядерным, а ESP8266 - одноядерным;
  • ESP8266 дешевле, чем ESP32;
  • У ESP8266 более широкая поддержка сообщества. Хотя разрыв постоянно сокращается;
  • Для многих проектов IoT и Wi-Fi ESP8266 может выполнять эту работу по более низкой цене;
  • Обе платы могут быть запрограммированы с помощью Arduino IDE или других поддерживаемых IDE.
  • Обе платы поддерживают  MicroPython.

Вот сравнительная таблица технических характеристик ESP8266 и ESP32:

СПЕЦИФИКАЦИЯ ESP8266 ESP32
Микроконтроллер Одноядерный 32-разрядный процессор Xtensa L106 Xtensa двухъядерный 32-разрядный LX6 с 600 DMIPS
802.11 b / g / n Wi-Fi Да, HT20 Да, HT40
АЦП 10-разрядный 12-разрядный
Аппаратный/ программный ШИМ Нет / 8 каналов 1/16 канала
Типичная частота 80 МГц 160 МГц
SRAM 160 КБ 512 КБ
GPIO 17 36
Сенсорный датчик Нет ДА
Bluetooth Нет Bluetooth 4.2
SPI / I2C / I2S/UART 2/1/2/2 4/2/2/3
АЦП 10-разрядный 12-разрядный
CAN Нет 1
ПЗУ Нет программируемого 448 КБ ПЗУ для загрузки и основных функций
Рабочая температура от -40 °C до 125 °C от -40 °C до 125 °C

Заключение

Подводя итог 'этому краткому обзору, можно сказать, что ESP8266 - отличный бюджетный микроконтроллер на базе Wi-Fi, но если вам нужно что-то более энергоэффективное и совместимое с Bluetooth, рассмотрите его преемника – модуль ESP32. Оба микроконтроллера ESP8266 и ESP32 SoC предоставляют любителям устройства для связи с Интернетом, но ESP32 - немного лучший вариант. В любом случае, оба устройства являются хорошими представителями своих ниш.

Материал также доступен на моем канале: Яндекс Дзен и в группе ВК
Категория: Техническая информация | Добавил: :, (29.01.2023)
Просмотров: 2254 | Теги: ESP822, ESP32 | Рейтинг: 0.0/0
Поделиться:
Всего комментариев: 0
avatar