Версия для печати

-   Форум по покупкам в интернете. /forum/
--  Success story /forum//index.php?f=13
--- esp8266 первые шаги /forum//index.php?t=157




-- aost написал 19 января 2015 0:23
Итак, получаем по почте из Китая голую плату, которую надо как-то подключить хотя бы к питанию. Выясняется, что товарищи сделали на плате такой минимум соединений, что подачи на плату только одного питания - не достаточно.

Оценочная мощность потребления по линии 3.3V: в пике до 300 миллиампер, т.е., требуется отдельная линия питания, ни переходник CP2102, ни ардуина такую мощность выдать не смогут.

Для включения требуется подать на пин:
VCC 3.3V
CH_PD 3.3V
REST 3.3V
GND GND
GPIO0 (прошивка) GND
GPIO15 (если есть) GND
данные передаются по двум линиям RxD и TxD соответственно (3.3V ttl уровни).



Подаем питание: модуль потребляет по 3.3V положенные 150mA - и нихрена не работает! То есть, лампочками-то оно моргает и греется, но ни точки доступа не появляется, ни в терминале ничего разумного...
По слухам - в терминале начальная скорость зашита не стандартная (75-76 KBaud), ну, это чтобы потрахаться по-настоящему...

Буржуи пишут, что все pull-up-ы должны делаться через резисторы 10K...

По отзывам из интернета (http://ramlamyammambam.livejournal.com/352674.html?thread=3489698#t3489698):
[q]

У ESP8266 нет внутренней флешпамяти. На модуле стоит собственно ESP8266 (он же перемаркированный ESP8089, возможно только ROM другой), и SPI-флешка от Winbond или аналог. Исполнение кода идет из флешки, то есть оно медленно и печально читается по SPI (40 или 80МГц на 4 бита - макс 40МБ/сек, для 160МГц проца с 24-битным словом инструкции - это пыль), ну правда может кешироваться в части IRAM - там аппаратный механизм есть. Пока можно установить размер кеша 16 или 32К. И к этой кешированной памяти, если нужен не только код (те которые const data) можно обращаться только 32-битными словами, а куча CRT-функций такого не понимает, поэтому народ там извращается с обработчиками исключений (эмулирует побайтовый и 16-битный доступ). В-общем, аппаратура своеобразная весьма и используется не по задуманному при разработке сценарию.
[/q]



-- aost написал 27 сентября 2015 17:49
Второй подход.

На модуль подано 3.3V питания от 12V аккумулятора через KIS-3R33S - они же на это штатно рассчитаны!

Отдефектовано два модуля: у одного коротыш по питанию, второй лампочками вроде бы мыргает, но жить отказывается. Возможно, от предыдущих экспериментов стерта прошивка.

Третий модуль при включении показал точку доступа в эфире и к нему удалось подключиться с помощью терминальной программы "Cutecom". Переходник USB-UART на чипе CP2102, подключено GND, Rx--Tx и Tx--Rx, соответственно, скорость 9600. Команды приходится набирать большими буквами, а не как раньше в модемах (когда регистр был не важен). Удалось включить MODE2, подключиться к ней клиентом, получить IP 192.168.4.100 и попинговать .1. В общем, теперь будем изучать методы обновления прошивки.

Для начала скачиваю прошивку и утилиту esptool.py (https://github.com/themadinventor/esptool). То, что идет в виде пакетов под названием "esptool", но в формате elf-executable и ставится в /usr/bin/esptool - у меня не заработало.

Сколько стоит памяти на модуле? Если доступна маркировка чипа, то при 25Q40B - 512Kb (4 мегабита), 25Q80 - 1Mb (8 мегабит). Соответственно, и прошивки надо выбирать с учетом этого объема...

[q]

Чтобы перевести контроллер в режим прошивки нужно:

* выключить питание контроллера (отключить пин VCC от USB-TTL конвертора, но не выключать сам конвертер)
* соединить пин GPIO0 к GND
* включить питание контроллера (подключить пин VCC к USB-TTL конвертеру)
* запустить прошивальщик

$ ./esptool.py -p /dev/ttyUSB0 -b 9600 write_flash 0x000000 ./AT21SDK95-2015-01-24.bin

Прошивка длится довольно долго. По окончании нужно отключить питание, отключить пин GPIO0 от GND и включить питание снова. Теперь скорость связи возросла до 115200.
[/q]


Глючит компортовое соединение безбожно, поэтому прежде чем прошивать, проверяем (добиваемся) коннект командой:

[q]

# ./esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
Connecting...
Manufacturer: c8
Device: 4013
[/q]

При правильном подключении работает даже без указания скорости порта. После обращения - надо перегружать чип либо выключением питания, либо ресетом, предварительно повесив кнопку между RESET и GND.

Ссылки и прочую информацию брал с сайтов: http://esp8266.ru (http://esp8266.ru), http://www.programs74.ru.

Пробовал бесплатную прошивку с homes-smart.ru - не понравилось, т.к. часть заявленного функционала не отрабатывает... После общения с автором - функционал бесплатной прошивки поправили. После покупки ключа и установки прошивки с OTA - появляется возможность менять прошивку через (web интерфейс) wi-fi с сайта автора, что позволяет обойтись без USB-UART переходников и не требует физического подключения к модулю.



-- aost написал 23 октября 2015 12:04
Третий подход.

Все подтяжки к земле и питанию (CH_PD, GPIO0, GPIO2, GPIO15) решил сделать через резисторы 10-15КОм, линии Tx и Rx - подключаю к CP2102 через резисторы 100Ом. Работает чуть устойчивее, правда все равно каждый раз после обращения esptools - надо перезапускать чип.



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=105&key=a03c8ed5)



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=106&key=2f4ca3fc)



(http://inet-deal.mpa.ru/forum/file.php?a=photo&ph=107&key=4a9aa6f6)


Разобрался с модулем, у которого был коротыш по питанию: esp-08 с крыжечкой-экраном. То-ли при сборке, то-ли при пайке крыжечки - корпус чипа сдвинулся на пару миллиметров с одного края, так что контактов было не видно. Погрел феном, чип отцентровался "на капельках" припоя и все ожило. Залил туда бесплатную прошивку с home-smart.ru - пару часов отработало...



-- aost написал 30 января 2016 21:40
Модель esp8266 ( WeMos D1 ) - это уже полоборота лицом к человеку. По крайней мере, подключил к ноутбуку по microUSB и без проблем считал идентификатор чипа ( ./esptool.py flash_id ) несколько раз подряд не перегружая его. UART чип - CH341.

Модель ESP07 512K (с керамической антенной и гнездом) про себя говорит:

[q]
Manufacturer: c8
Device: 4013
[/q]


Модель ESP12 с 4Мб памяти, про себя говорит:

[q]
./esptool.py flash_id
Connecting...
Manufacturer: e0
Device: 4016
[/q]


ID: 0x4016 - указывает на тип чипа памяти.


-- aost написал 17 февраля 2016 11:23
Заливка прошивки nodemcu в esp8266 делается с помощью esptool.py

Скачиваем с https://github.com/nodemcu/nodemcu-firmware/releases последний бинарный релиз (говорят, что integer - предпочтительнее), после чего командой

./esptool.py --port /dev/ttyUSB0 write_flash 0x00000 nodemcu_integer_0.9.6-dev_20150704.bin

заливаем прошивку в esp8266. После ресета к ней можно коннектиться с помощью ESPlorer. По слухам, в данной версии сломана работа с 1-wire устройствами (https://github.com/nodemcu/nodemcu-firmware/issues/533).

Для памяти, наиболее часто употребляемые команды esptool:

# получение flash_id устройства
./esptool.py -p /dev/ttyUSB0 flash_id

# сохранение содержимого устройства
./esptool.py -p /dev/ttyUSB0 read_flash address(0x00000) size filename

# запись на устройство
./esptool.py -p /dev/ttyUSB0 write_flash [--verify] address(0x00000) file_name




-- aost написал 15 апреля 2016 11:40
Обновил Arduino IDE до версии 1.6.8 и подключил в нем поддержку esp8266 (https://github.com/esp8266/arduino). Теперь есть возможность самостоятельно писать программы под esp8266 и отлаживать их традиционными для arduino способами.

По-русски описание реализованных функций Wiring для esp8266 есть на http://esp8266.ru/arduino-ide-esp8266/ (http://esp8266.ru/arduino-ide-esp8266/)

Использование выводов (GPIO):
i2c
[q]
I'm using GPIO0/GPIO2 since they also need PullUps for boot mode, so perfect for I2C bus too.
Wire.begin(0, 2);

But if you don't provide pins, they will be defaulted according to the board variant, Generic is 4/5.
[/q]

DS18B20
Подключаются к GPIO 12 или GPIO 2


-- aost написал 18 августа 2016 10:47
При сборке автономной системы на батарейке от телефона и солнечном элементе 5V выяснилось, что на платах esp8266 нет супервизора питания, поэтому иногда, при относительно медленном нарастании напряжения питания, плата не запускается.

Выход: прикручиваем супервизор на 2.9V. Супервизор взял дорогущий MCP1319T-29 (с ресетами обоих типов: низким и высоким), но можно было брать просто с открытым коллектором, формирующий RESET низкого уровня.

Подключаем его к выводу "CH_PD", а не "REST" чипа, т.к. этот пин может быть задействован для других целей (sleep например), да и по сообщениями зарубежных пользователей сети - надежнее получается выключать/включать esp8266, а не ресетить его.


Этот форум работает на скрипте Intellect Board
© 2004-2007, 4X_Pro, Объединенный Открытый Проект, Разнообразная информация
2004, Все права на содержимое сайта принадлежат его владельцу и охраняются законодательством