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

Решено Дохнет после сброса питания

A.V

New member
Добрейшей пятницы!

вопрос, собс-но, традиционный - что делать?

Радостно спаял плату почти-метео станции, но нарвался на глюк. После отключения питания модуля, обратно он в себя не приходит. Поиск выдал подобное поведение где-то у "буржуев", без конкретного ответа.

ESP-07, все ноги подтянуты как полагается, для собственных нужд используются GPIO4,5,11-13.
Что делаю:
1. Прошиваю (NodeMCU, AT22 - не суть важно что, поведение одинаковое)
2. сбрасываю reset-ом (возможно, иногда питанием)
3. В ESPlorer-e гружу модули и пробую запустить - работает
4. soft-reset в nodemcu тоже работает
5. выключаю питание и включаю обратно
6. Всё. "Сдох". Судя по логу на 74480 "слетают" адреса загрузки:
нормальное поведение
Код:
--- Miniterm on /dev/ttyUSB1: 74480,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

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

load 0x40100000, len 28740, room 16
tail 4
chksum 0xe7
load 0x3ffe8000, len 2888, room 4
tail 4
chksum 0xd6
load 0x3ffe8b50, len 15536, room 4
tail 12
chksum 0x39
csum 0x39
А вот так становится после сброса питания:

Код:
--- Miniterm on /dev/ttyUSB1: 74480,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

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

load 0x40100000, len 28740, room 16
tail 4
chksum 0xdc
load 0xb901a921, len 154245393, room 4
 

A.V

New member
Подключение, вроде, стандартно. По мотивам мануалов с форума...
Что-то у меня файлы не аттачатся...
https://www.dropbox.com/s/7v1qfgm0x4y4vnm/esp.png?dl=0

А, кстати, важное дополнение. Начиналось всё, вроде, нормально. Вчера. Потом, сдуру, создал кривой, init.lua, который не давал ничего сделать. Перешивал сначала nodemcu, потом АТ21 пока не сбросилось. Вот последующая заливка nodemcu всё и сотворила. После уже пробовал обнулять и прошивать всякое в 0x3e000/7e000/7c000 примерно с тем же результатом.

Т.е. после каких-то перепрошивок всё иногда ненадолго оживает, но до первого (или второго?) сброса питания
 

Victor

Administrator
Команда форума
По мотивам мануалов с форума...
Попробуйте R8 и R9 заменить на 4,7k, если не поможет, то замените R8 на RC-цепь в соответствии с документацией

После проблем с файловой системой NodeMCU (или других) можно прошить поверх NodeMCU AT прошивку (желательно с той же версией SDK, что и NodeMCU, чтобы esp_init_data_default совпали), затем опять NodeMCU - все будет ок
 

A.V

New member
Ща попробуем...

АТ прошивку поверх шил. Если восстанавливалось, то опять до первого дерганья питания... Отпаял крышку - там полкило флюса было... Вычистил, но без толку.
Ещё слегка смущает boot mode(3,3) - вместо 3,7. Младший бит в "7", похоже, говорит о типе сброса - 1 - по питанию, 2 - через пин ресета...
 

pvvx

Активный участник сообщества
rst cause:2 - это вроде по питанию или по reset (дает rtc_get_reset_reason(), значение вычисляется из 0x60000714, 0x60000718, 0x60000708 адресов портов - это неописанная область RTC_BASE)
boot mode:(3,2) - это показывает напрямую биты из 0x60000318 = GPIO_IN (+GPIO_STRAPPING)
первая позиция - это 16..18 биты (3 шт) из GPIO_IN, второе - 29..31 биты (3 шт). В принципе, если номеров битов вычесть 16 - получите номера GPIO перед стартом.
 

A.V

New member
Хмм... Похоже, таки светит мне отпаивать это модуль... Шанс потренировать навык в работе с феном %)

Перепаял резисторы - ожидаемо не помогло :(
Перешил заново АТ 0.9.6. Теперь при старте пишет "flash read err.".

подключился к модулю на макетке (из той же партии, но внешне был более чистый, первый изначально какой-то заляпанный был) - всё живёт и работает.
остаётся понять, как мне удалось его убить, чтобы не повторять в будущем...

pvvx, у меня выходит не второй бит, а первый на тип ресета. Смущает то, что ничего не менялось, а 3й бит перестал показываться (т.е. вместо 3,7/3,6 стало 3,3/3,2) - где-то же я что-то ему потёр, что он потерял один бит. Электрически ничего не менялось.
 

pvvx

Активный участник сообщества
Вот несколько вариантов старта модуля ESP-12:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
ets Jan 8 2013,rst cause:1, boot mode:(3,0)
ets Jan 8 2013,rst cause:1, boot mode:(3,6)
Все являются стартовыми успешно.
В конце каждого:
RTC MEM CHECK FAIL!!! - это привет от горе програмиста из Espressif, который считает контрольку данных в RTC путем побитного or.
При таком расчете миллионы комбинаций, когда контролька совпадет.
Но данного сообщения в новых SDK не видно - там стоит сброс вывода и вылезают кракозябы вместо него...
Считаю, что вы зря полезли "паять".
Модуль часто при старте виснет из-за ПО, т.к. питание RTC не выведено. У вас скорее всего складывается в RAM RTC некая закономерность после отключения питания...
Запускается путем включения в режим программирования и снова сброса в нормальный режим. При этом часто выходит восстановить "включение" модуля.
Есть зависимости в том, как включались порты перед сбросом. Типа они "запоминают" состояние и не сбросить, не переключая выводы или через заход в режим программирования (без самого программирования) и повторного сброса...
Ошибки могут быть и в NodeMCU - у I/O прописываются состояния для режимов sleep...
Всех комбинаций я описать не смогу, т.к. в каждой процедуре SDK написанной Espressif по несколько ошибок... В ворованных из открытых источников вставках ошибок практически нет, а их там за 60% и по тому модуль как-то ещё работает.
 
Последнее редактирование:
  • Like
Реакции: A.V

A.V

New member
RTCMEMCHECK не ловится. Всё, похоже, дохнет чуть раньше - в загрузчике... Вот бы ту часть, что в 0x40100000 как-то перепрописать заново.

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

... где б закупить 2мм гребёнки по разумной цене (а есть ещё NRF24LE1 с 1.27 шагом) что-то на али не ищется
 

pvvx

Активный участник сообщества
RTCMEMCHECK не ловится.
Её и не видно в стандартной прошивке.
Всё, похоже, дохнет чуть раньше - в загрузчике... Вот бы ту часть, что в 0x40100000 как-то перепрописать заново.
Это грузится с flash, программой во внутренней ROM чипа. Загрузка зависит от пинов и качества самой flash (на модули китайцы паяют наихудшую и самую дешевую). Так-же загрузка зависит от состояния RTC и как переключались пины.
Остальное не грузиться, а включается на отображение и названо "кешируется".
Однако, работает перепаянный... Из старого натекла лужа китайского флюса
Флюсы ныне не обязательно смывать - иногда и наоборот - защищают от влаги (но за флюс отвечает монтажник, а они там каждую сотую копейки жадничают) . Вы наверно это сами знаете, раз фен есть. :)
 

pvvx

Активный участник сообщества
а Вы откуда такую схему для Reset сигнала взяли?
Обычно кондер вешают чтобы при включении питания reset сформировать.
Извините, но ныне не те годы, когда входной транзистор в микросхеме был с копейку и запросто разряжал кондер при отключении питания без перегрева...
По этому вместо большого по габаритам кондера ставят супервайзер питания в SOT-23-3, но и в самом проце он есть...
Тут кондер до пары нан на ресет нужен только для подавления помех
----------
A.V - забыл подходящий на 100% вариант. Вы не указали о стабильности напряжения питания при прошивке. При записи flash, а она на данном модуле работает и при 1.71В питании, внутренние ячейки flash "заряжаются" малым напряжением, т.к. это уже не в рамках спецификации, хотя работает. При продолжении работы на 1.71В всё будет хорошо, т.к. уровень их "заряда" выше порога различия "1" или "0". Но при повышении порог тоже повышается, а "заряд" остается малым и падает ниже порога. Данное проверено на модуле. При 1.71В полностью работает, а при повышении к 3.3 - возникают нестабильности, пока не переписать flash на нормальном уровне напряжения её питания.
Об ошибках с flash указывает это:
load 0x40100000, len 28740, room 16
tail 4
chksum 0xdc
- тут уже другая контролька.
load 0xb901a921, len 154245393, room 4 - а тут прочитан неверный заголовок.
Всё указывает о ошибках в данных, получаемых с flash.
 
Последнее редактирование:

nikolz

Well-known member
пусть будет так, но кондер-то нужен, либо стабилизатор питания.
у меня было пару раз нечто подобное.
Т е шилась с ошибками и даже один раз дало адрес ошибки
Выход оказался простой - надо сходить попить чаю, погулять.
после этого все опять шьется без ошибок.
Но DEVKIT на ESD-12 просто не убиваем также как и ESP-01.
 
Последнее редактирование:

A.V

New member
откуда такую схему для Reset сигнала взяли
У буржуев где-то, кажется. Там была мысль, что вот таким хитрым путём они избавлялись от зависания при использовании deepsleep. Что-то про зомбей такое...

pvvx, Питание пока нормальное - с компа от USB-TTL шнурка ну и 1117 с кондёрами на 10нФ/100+мкФ на плате распаяны, честные 3.31В и под 75мА от 5В отъедает.

Про ошибку флеша и сам догадываюсь, не понимаю только источник. Если esptool-ом скачать прошивку, она скачивается нормально (несколько раз пробовал), потому и грешу не столько на флеша, сколько на код, что его читает...

ЗЫ: на данную секунду с новым модулем честно читаются bmp085, dht22 и ds18b20. Начал разбираться с mqtt - пока "не жужжит", но ещё не въехал, как его правильно готовить ;)
 

A.V

New member
Напаял ног на выдранный модуль и воткнул в макетку.

3 часа – полёт нормальный, что с "ардуиной", что с nodemcu. Разве что спалил очередной конвертер на pl2303 (хорошо, их десяток с Китая пришло) то ли статикой, то ли хз чем :(

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

В макетке, правда, подключено всего 2 ноги, и те напрямую (chpd и gpio15). Перепаянный на "основную" плату модуль работает. Разве что MQTT нормально так и не завёлся, доеду до дома – буду пробовать версию ардуино.
 
Сверху Снизу