ESP8266. О платформе.
Все-таки надо пару слов сказать про "чудо-платформу" ESP8266EX... Далее, в-основном, использованы материалы es8266.ru.
Два (для первого знакомства) небольших документа, дают общее представление о проекте:
ESP8266_Module Application Design Guide и ESP8266_Beginners_Guide.
Как уже было сказано на плате модуля ESP-01 (как, впрочем, и всех других) имеется "сердце" проекта - микросхема ESP8266EX, память к ней, кварцевый кристалл на 26МГц, пара светодиодов и (не на всех модулях) антенна...
Функциональная схема "главного чипа" показана на рисунке.
Два (для первого знакомства) небольших документа, дают общее представление о проекте:
ESP8266_Module Application Design Guide и ESP8266_Beginners_Guide.
Как уже было сказано на плате модуля ESP-01 (как, впрочем, и всех других) имеется "сердце" проекта - микросхема ESP8266EX, память к ней, кварцевый кристалл на 26МГц, пара светодиодов и (не на всех модулях) антенна...
Функциональная схема "главного чипа" показана на рисунке.
Тут есть все что нужно для организации беспроводной связи: начиная от антенного коммутатора и кончая цифровыми интерфейсами...
Выдержка из Beginners_Guide: Espressif Systems’ Smart Connectivity Platform представляет собой высокоэффективный, высокоинтегрированный комплекс для создания беспроводных систем на одном кристалле. Он обеспечивает возможности: встраивания доступа к сетям Wi-Fi в различные системы, функционировать как самостоятельное приложение, с наименьшими затратами, и минимальными требованиями к окружению. Он может быть использован как полное и самодостаточное беспроводной сетевое решение или как связку с Wi-Fi какого-либо иного самостоятельного решения.
Features
Выдержка из 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, 1x1 MIMO, 2x1 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
Принципиальная схема модулей ESP-xx показана выше.
Модули, как правило, различаются количеством разведенных выводов GPIO, типом/наличием антенны, конструктивным исполнением.
Назначение выводов - довольно большая табличка, ее можно посмотреть в выше указанных файлах.
Режим работы модуля определяется состоянием некоторых выводов микросхемы при подаче питания.
Рассмотрим те линии, которые непосредственно нам доступны и влияют на работу модуля:
Подробнее о назначении выводов и их работе в разных режимах написано тут.
Модули, как правило, различаются количеством разведенных выводов 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 (что это означает!?)
Подробнее о назначении выводов и их работе в разных режимах написано тут.
На плате модуля разведены два контрольных светодиода - на принципиальной схеме я их пририсовал, на фото они рядом с антенной:
Красный - включен для контроля питания в цепи VCC (3.3V) - расположен ближе к краю платы модуля.
Синий - подключен к линии U0TXD(p.26) анодом к цепи питания. Таким образом светодиод "моргает" при обмене через UART; еще его можно использовать как контроль линии GPIO1 (когда на ней уровень Low - светодиод светится).
С модулями можно работать двумя способами:
1. Использовать "прошивку" производителя, например, v0.21. В этом случае нам потребуется внешний микроконтроллер, кторый по UART будет общаться с ESP-01 с помощью АТ-команд. Используя "язык АТ-команд" можно организовать сеть или подключиться к существующей. Например, для Arduino существуют библиотеки, основанные на АТ, позволяющие работать в сети Wi-Fi через модуль.
2. Игнорировать "прошивку" производителя и самому написать программу для модуля. Конечно, более трудоемкий способ, но, благодаря наличию готовых библиотек, вполне реализуемый. Например, для среды Arduino IDE уже есть компилятор с массой готовых примеров. (Скорей всего, именно этим "ленивым" способом я и буду пользоваться в дальнейшем...)
опубликовано 26.05.2015