Совсем не Arduino… ESP8266. Пара слов о платформе

Все-таки надо пару слов сказать про «чудо-платформу» ESP8266EX… Далее, в-основном, использованы материалы es8266.ru.
Два (для первого знакомства) небольших документа, дают общее представление о проекте:
ESP8266_Module Application Design Guide  и  ESP8266_Beginners_Guide.8266_spi

Как уже было сказано на плате модуля ESP-01 (как, впрочем, и всех других) имеется «сердце» проекта — микросхема ESP8266EX, память к ней, кварцевый кристалл на 26МГц, пара светодиодов и (не на всех модулях) антенна…

Функциональная схема «главного чипа» показана на рисунке.8266_bc

Тут есть все что нужно для организации беспроводной связи: начиная от антенного коммутатора и кончая цифровыми интерфейсами…

Выдержка из Beginners_Guide: Espressif Systems’ Smart Connectivity Platform представляет собой высокоэффективный, высокоинтегрированный комплекс для создания беспроводных систем на одном кристалле. Он обеспечивает возможности: встраивания доступа к сетям Wi-Fi в различные системы, функционировать как самостоятельное приложение, с наименьшими затратами, и минимальными требованиями к окружению. Он может быть использован как полное и самодостаточное беспроводной сетевое решение или как связку с Wi-Fi какого-либо иного самостоятельного решения.

Features

  • 802.11 b/g/n protocol
  • Wi-Fi 2.4 GHz, support WPA/WPA2
  • Super small module size (11.5mm x 11.5mm)
  • Integrated 10-bit ADC
  • Integrated TCP/IP protocol stack
  • Integrated TR switch, balun, LNA, power amplifier and matching network
  • Integrated PLL, regulators, and power management units
  • +20dBm output power in 802.11b mode
  • Supports antenna diversity
  • Deep sleep power <10uA, Power down leakage current < 5uA
  • Integrated low power 32-bit MCU
  • SDIO 2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMO
  • A-MPDU & A-MSDU aggregation & 0.4?s guard interval
  • Wake up and transmit packets in < 2ms
  • Standby power consumption of < 1.0mW (DTIM3)
  • Operating temperature range -40C ~ 125C

8266_ps

Принципиальная схема модулей ESP-xx показана выше.
Модули, как правило, различаются количеством разведенных выводов GPIO, типом/наличием антенны, конструктивным исполнением.
Назначение выводов — довольно большая табличка, ее можно посмотреть в выше указанных файлах.

Режим работы модуля определяется состоянием некоторых выводов микросхемы при подаче питания.
Рассмотрим те линии, которые непосредственно нам доступны и влияют на работу модуля:

  • MTDIO(p.13) — нам не доступен, считается, что он нам не мешает и имеет уровень Low, если было бы не так — нам бы не удалось «завести» модуль.
  • GPIO0(р.15) — это главная линия! Когда на ней при включении питания уровень Low (вывод соединен с GND), устройство переходит в режим загрузки микропрограммы по UART (выводы U0RXD(p.25), U0TXD(p.26)). Если уровень High, это нормальный режим работы — микроконтроллер читает программу из ПЗУ и работает по ней.
  • U0TXD(p.26) — так же надо обратить внимание: если при подаче питания тут Low (например, вывод используется как линия ввода-вывода GPIO1 и к ней подключен светодиод катодом на землю), то устройство переходит в тестовый режим (про который нигде не написано…).
  • XPD_DCDC(p.8) (на модуле обозначен часто как GPIO16) — интересный вывод: I/O Deep-Sleep Wakeup — пробуждение из «глубокой спячки». Обычно про него нигде не упоминают и он остается в «подвешенном состоянии». Но, тем не менее, очень интересно было бы его использовать в качестве линии ввода-вывода GPIO16. В схемах его часто цепляют на Reset.
  • CHIP_EN(p.7) — Chip Enable. Чтоб «не заморачиваться» вывод советуют подключать к питанию. Однако в «гайдах» намекают, что его очень было бы хорошо использовать для перевода устройства в режим малого потребления, например, в датчиках — когда надо данные передать раз в несколько минут — тогда уровень High подают непосредственно перед началом передачи…
  • U0RXD(p.25) — кроме «прямого назначения», можно использовать как линию ввода-вывода GPIO3.
  • GPIO2(p.14) — линия ввода-вывода. Но: альтернативное назначение — передача данных UART1, а уровень Low при включении питания может сыграть «злую шутку» (хотя я такого не наблюдал!) — Remapping (что это означает!?)
  • В иных datasheets (например — этом), выводы р.16 и р.24 отмечены, соответственно, как GPIO4 и GPIO5, очень было бы полезно их задействовать, но на ESP-01 они не подключены…

Подробнее о назначении выводов и их работе в разных режимах написано тут.e8266-pin        8266_mod

На плате модуля ESP-01 разведены два контрольных светодиода — на принципиальной схеме я их пририсовал, на фото они рядом с антенной:
Красный — включен для контроля питания в цепи VCC (3.3V) — расположен ближе к краю платы модуля.
Синий — подключен к линии U0TXD(p.26) анодом к цепи питания. Таким образом светодиод «моргает» при обмене через UART; еще его можно использовать как контроль линии GPIO1 (когда на ней уровень Low — светодиод светится).

С модулями можно работать двумя способами:
1. Использовать «прошивку» производителя, например, v0.21. В этом случае нам потребуется внешний микроконтроллер, кторый по UART будет общаться с ESP-01 с помощью АТ-команд. Используя «язык АТ-команд» можно организовать сеть или подключиться к существующей. Например, для Arduino существуют библиотеки, основанные на АТ, позволяющие работать в сети Wi-Fi через модуль.
2. Игнорировать «прошивку» производителя и самому написать программу для модуля. Конечно, более трудоемкий способ, но, благодаря наличию готовых библиотек, вполне реализуемый. Например, для среды Arduino IDE уже есть компилятор с массой готовых примеров.

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".