• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Разработка ‘библиотеки’ малого webсервера на esp8266.

pvvx

Активный участник сообщества
А в чем принципиальная разница между SDK 1.4.0 (у меня сейчас используется) и современной 1.5.2 ? Какая стабильнее? стоит ли перейти на 1.5.2 ?
Уже описывалось.
Чтоб модуль программировать. Посмотрите на схему Schematics for ESP-12E DevKit | User Manual for ESP-12E DevKit Видите куда идет RTC CP2102. Если у VCP CP2102 перевести RTC в активное состояние то формируется сигнал eRST. hercules_3-2-8 это позволяет.
Я думал GPIO15 припаяно к RESET ESP8266. :)
Это влияет на что-то кроме красоты? Т.е. "гадость" выше является штатной. Но почему она не детерминирована?
Что за гадость?
-------
Доделал "ход конем" при перезагрузке когда выставлен на GPIO2 уровень ноль (GPIO0 = "0", GPIO1 = "1", GPIO2 = "0" (boot mode: ( 2,x)) (Ещё одна хитрая опция так и не доделана...).
esp8266web/app_main.c at master · pvvx/esp8266web · GitHub
А то надоел поток "протектед" сообщений при перезагрузке при опущенном GPIO2
Теперь при первой загрузке (GPIO2 обязательно должен быть в "1") штатно пишет:
Код:
 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 92, room 16
tail 12
chksum 0x85
csum 0x85
А если потом замкнуть через резистор GPIO2 на GND и пересбросить ESP8266, то:
Код:
 ets Jan  8 2013,rst cause:2, boot mode:(2,0)

Jump Boot...
 
Последнее редактирование:

PycLan

New member
Но абракадабра то вылезает. Значит по какой-то причине не читается flash. Данное сообщение выводится по копированию из кеша на Flash строки в RAM, а наблюдаем не строку, а абракадабру. И таких неверных чтений в логе несколько. Причин тоже может быть несколько. Наперво надо проверить контакты с flash, питание и не подключено ли чего лишнего к шине flash. Пробовать читать flash в файл и сравнивать.
Доброе утро.
Расказываю предисторию.
Вечером не выключая железки, залил последнюю версию web страницы.
Проверил, что все работает как нужно и выключил. Утром, как уже писал, включаю и "Ограниченный доступ".
Но если оставить так висеть с ограниченным доступом, то через некоторое время, подключение становится в "Подключенно" и все пашет.
При этом заливка разных "фулфлаш" не помогала, но при этом не менялся сам WEBFiles.bin.
Сегодня утром, по совету pvvx считать флаш, я просто перезалил WEBFiles.bin и все стало в норму.
Как все намекали на INI и я думаю, что проблема была в "битом" файле init.ini и приводило к "Ограниченный доступ",
после неудачных попыток считать из него данные, ESP инилась по внутриним параметрам, что в итоге приводило к "Подключенно".
 

vad7

Active member
У меня они хорошо работают, те которые на этой плате:
У меня другие, сзади написано ESP12-F. Антенна тоже другая - широкая.
Какая память сказать не могу, крышку еще не снимал, вот сейчас хочу определиться, это я что-то не так делаю, или это брак. Если брак буду открывать диспут, а потом уже ковырять.
Странно, что прошивка пишется и читается, программа начинает выполняться, а потом в ошибку вываливается или виснет. Выводы подключал как здесь.
Судя по строчке "rror wifi_config!" настройки WiFi читаются пустые. Инициализации их не нашел.
Получается, сначала эти настройки нужно перенести в 7D000 и в 7E000 для вебсвалки?
 

pvvx

Активный участник сообщества
Судя по строчке "rror wifi_config!" настройки WiFi читаются пустые. Инициализации их не нашел.
Получается, сначала эти настройки нужно перенести в 7D000 и в 7E000 для вебсвалки?
Это китайское дело их инить. У меня разобрана только стартовая проверка и загрузка, а меняют и пишут китайцы сами эти сектора по смене установок WiFi и прочего до дырок... На каждую запись этих секторов китайцы стирают и пишут сектор с их контролькой в 0x7f000. Количество записей отображается в web на странице Debug and Test: "Counter erase the last flash sector..."
Кроме того в эти настройки пишет китайский загрузчик (который у меня не используется), а контрольку не правит. Всё у них по китайски. :) Подумаешь, что опции WiFi слетят при переключении загрузчиков - так и должно считают китайцы...
 
Последнее редактирование:

aloika

Active member
Уже описывалось.
Не добавилось, а изменилось с одних глюков на другие. В 1.4.2 есть очень плохой глюк с подключениями STATION и его не обойти. В 1.5.2 его нет, но есть другие :)
Это всё и останавливает от полного реверса, т.к. нет стабильного варианта по WiFi от китайцев, на котором можно-бы было построить базовую версию. А из-за "недокументированости" WiFi регистров исправить код будет невозможно, т.е. реверс будет неполным, но переносимым. Переносить и реверсить китай-глюки нет никакого желания.
Т.е. с этих пор ничего принципиально не поменялось?
 

vad7

Active member
@pvvx, Так что мне с этими платами то делать? Прошивка не работает.
Китайский загрузчик в китайской прошивке пишет в другое место, так флеш не 512KB, а больше.
Чипы бракованные или я что-то упускаю из вида?
 

pvvx

Активный участник сообщества
Т.е. с этих пор ничего принципиально не поменялось?
Не знаю, что такое принципиально не менялось. Вроде много менялось - modbus там прижился и ещё ошибка пофиксена в tcp_srv_conn.c, сменился алго TCP2UART... Сегодня вот boot mode: ( 2, x), которая давала вечный поток protected при перезагрузке, если GPIO2 на GND... В табличке загрузки у китайцев значится как 'Jump Boot'.
 
Последнее редактирование:

pvvx

Активный участник сообщества
@pvvx, Так что мне с этими платами то делать? Прошивка не работает.
Китайский загрузчик в китайской прошивке пишет в другое место, так флеш не 512KB, а больше.
Чипы бракованные или я что-то упускаю из вида?
В честь чего он пишет в другое место, если написано в первом сообщении темы ставить всегда разметку на flash на 512k?
Если сочиняете свои загрузчики, тогда всё меняйте сами.
 

pvvx

Активный участник сообщества
PostLast - какова причина абракадабры при выводе?
По вопросу с RESET от транзисторов в модуле DEVKIT - он работет, а если припаять правильные номиналы резисторов, то и deep_sleep работает. Проблем не встречалось, чтобы RESET от USB не работал.

@pvvx, ковыряю тут модули ESP12-F, что-то ни как не запускается.
Прошивки с АТ шьются, если ставлю 4Mb флеш - падает, 8Mb - выдает приветсвие и тишина, на команды не отвечает.
Прошиваю вебсвалку - не грузится, выдает вперемежку с мусором - "rror wifi_config!" и "ets_main.c".
Я не помню, как на этих "-F" модулях распаяна Flash. Были модули с DIO (DSPI), а не c QIO (QSPI). Если без QSPI - то однозначно в помойку, т.к. тормоз. :) NodeMCU-шникам показалось, что надо освободить ещё пару выводов, лишая модуль производительности... при этом потребление не падает :)
 
Последнее редактирование:

aloika

Active member
http://esp8266.ru/forum/threads/esp-12f-esp-202.612/

Вот тема про ESP12-F. У меня такие были, веб-свалка на них отлично работает (на SDK 1.4.0). Вообще разницы, кроме светодиода, не заметил по сравнению с -E и -Q.
Может, конечно, партии разные или брак какой...
 

vad7

Active member
В честь чего он пишет в другое место, если написано в первом сообщении темы ставить всегда разметку на flash на 512k?
Это я про китайскую АТ прошивку, которая там стояла с завода. В ней настройки сохранены по другому адресу. Ваша прошивка запускаясь не находит по нему настройки, так как там пусто. пробежался бегло по коду, но не нашел вызов инициализации настроек в tst_cfg_wifi уже идет работа с настройками, а там 0xFF.

Кто-то в отзывах у продавца написал: "Check flash shows 4MB of 40 MHz QIO"

Я так понимаю, если память была бы DIO, то прошивка вообще бы не стартанула, т.к. в загрузчике стоит включение QIO режима.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Это я про китайскую АТ прошивку, которая там стояла с завода. В ней настройки сохранены по другому адресу. Ваша прошивка запускаясь не находит по нему настройки, так как там пусто. пробежался бегло по коду, но не нашел вызов инициализации настроек в tst_cfg_wifi уже идет работа с настройками, а там 0xFF.

Кто-то в отзывах у продавца написал: "Check flash shows 4MB of 40 MHz QIO"
Тип Flash же считывается в программе программирования... На ESP12-F замечены эти BG25Q32A: http://www.firstjit.com/Uploadfiles/20131107103522734.pdf
Я так понимаю, если память была бы DIO, то прошивка вообще бы не стартанула, т.к. в загрузчике стоит включение QIO режима.
Проверить не могу - нет модулей с распайкой только DIO, а резать дороги - лень. :)
 

pvvx

Активный участник сообщества
@aloika - ещё по старой просьбе кого-то что-то кое-как поменял в makefile :) , чтобы транслировалась нормально и при изменении в проекте кода meSDK, а не надо было делать clean или clobber... Ещё websocket заработал...
 
  • Like
Реакции: vad7

pvp

New member
@aloika - ещё по старой просьбе кого-то что-то кое-как поменял в makefile :) , чтобы транслировалась нормально и при изменении в проекте кода meSDK, а не надо было делать clean или clobber... Ещё websocket заработал...
Что-то мусорничает немного (выделил жирным)...
Вот вывод при загрузке:

ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 92, room 16
tail 12
chksum 0x85
csum 0x85


meSDK<0>lŒ#{|Œd`don't use rtc mem data

Save rx_gain_dc table (0, 1)


Изменил в проекте только скорость UARTo со 115200 на 74880 (ну чтобы совсем без крокозябр было) и перенаправил вывод в UART0 вмместо UART1.
 

vad7

Active member
@pvvx, иногда (через несколько успешных) идут сбои подключения к WiFi роутеру. Пишет Error wifi_config!. Это на модуле ESP01 с 512KB.
Error wifi_config! Clear.
юr
Simple WEB version: 0.1.4
......
read-id:6977[304] ok,size:304 WiFi mode:3 phy:3 dhcp:1/0
AP:ESP8266[7] hiden(0) psw:[0123456789] au:0 chl:1 maxcon:4 beacon:100
ip:192.168.4.1 gw:192.168.4.1 msk:255.255.255.0 mac:1a:fe:34:9c:b8:d1
DHCP ip:192.168.4.2..192.168.4.10
ST:[test] psw:[xxxxxxxx] b:0 e4:8d:8c:23:99:2e ac:1
ip:192.168.0.222 gw:192.168.0.10 msk:255.255.255.0 mac:18:fe:34:9c:b8:d1
sleep:0, rect:30, maxtpw:78, sthn:[ESP_9CB8D1]
sleep disable
ErrWiFiSet: 0x00000800

Disk init: 64 files, addr = 0x0003e000
mode : softAP(1a:fe:34:9c:b8:d1)
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
WiFi mode:3 phy:3 dhcp:1/0
AP:ESP8266[7] hiden(0) psw:[0123456789] au:0 chl:1 maxcon:4 beacon:100
ip:192.168.4.1 gw:192.168.4.1 msk:255.255.255.0 mac:1a:fe:34:9c:b8:d1
DHCP ip:192.168.4.2..192.168.4.10
ST:[test] psw:[xxxxxxxx] b:0 e4:8d:8c:23:99:2e ac:1
ip:192.168.0.222 gw:192.168.0.10 msk:255.255.255.0 mac:18:fe:34:9c:b8:d1
sleep:0, rect:30, maxtpw:78, sthn:[ESP_9CB8D1]
bcn 0
del if1
usl
add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
bcn 0
del if1
usl
add if1
bcn 100
ErrWiFiSet: 0x00000600
WiFi event(7): Probe Request (MAC:08:11:96:01:a3:14, RSSI:-84)

После сброса - нормально подключается, потом через несколько сбросов - опять ошибка и т.д.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Что-то мусорничает немного (выделил жирным)...
meSDK<0>lŒ#{|Œd`don't use rtc mem data
Это нормально. Это гадят китайские процедуры в init_wifi(). У них так задумано. Они там скорости UART переключают, общую PLL крутят, FIFO UART сбрасывают, не заботясь что перед этим сами что-то вывели в UART. :) Пытаются наверно китайские символы вывести...или зашифровать :) Выходит как на китайском - не читаемо.
don't use rtc mem data - это тоже сообщение от них (из init_wifi()). Я его уже из буфера UART выуживаю, иначе оно тоже в кракозябы у них шифруется...
Вот - перед входом в этот бардак перенаправляю вывод не в UART, а в буфер esp8266web/app_main.c at master · pvvx/esp8266web · GitHub
Потом распечатываю, что они там хотели сказать: esp8266web/app_main.c at master · pvvx/esp8266web · GitHub
Но что они творили с выходом UART не поправить. Надо всё ихнее выкидывать, "реверсить" и исправлять, но лень.
 
Последнее редактирование:

pvvx

Активный участник сообщества
@pvvx, иногда (через несколько успешных) идут сбои подключения к WiFi роутеру. Пишет Error wifi_config!. Это на модуле ESP01 с 512KB.

sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error
sec 7f error

После сброса - нормально подключается, потом через несколько сбросов - опять ошибка и т.д.
sec 7f error - это китайцы не смогли записать свой любимый сектор с контрольками.
Первый раз вижу это соо в живую, но видел процедуру, которая это выводит.
Что-то с настройками flash?
Проверил - работает, диск пишет, а там не одна запись и раз 20 сбросил - всё ok.
Как такое достичь?
 
Последнее редактирование:

pvp

New member
@pvvx,
Спасибо за исчерпывающее объяснение.

А ещё дурацкий вопрос - поддерживается ли режим сниффера в Вашем MinEspSDK?
 
Последнее редактирование:

vad7

Active member
Как такое достичь?
Я вашу прошивку практически не изменил. Несколько мест пере-инициализации UART заремарил, мне UART1 сразу при старте нужен, уменьшил скорость UART0 до 74888, чтобы постоянно не переключать скорость, прерывание по GPIO3 используются, но оно в это время не срабатывает.
Прошивка здесь: https://github.com/vad7/PowerMeter/blob/master/bin/firmware.bin

Я тут еще одну непонятку словил: опять же часто, но не всегда, через несколько секунд после старта меняются настройки GPIO.
Я для I2C использую в качестве SDA - GPIO2, SCL - CPIO0.
Слева импульсы это нормально чтение I2C памяти, потом через 2.9 секунды GPIO0 уходит "само" в low.
1.jpg

через 4.6 сек - начинается какая-то генерация c частотой 5.7кHz на GPIO0.

3.jpg

2.jpg

В отладке ничего необычного - "Run ini file: protect/init.ini" и далее до "WiFi event(7):".....
Что это и как это отловить вообще не представляю! Тем более без отладчика.
 
Сверху Снизу