• Система автоматизации с открытым исходным кодом на базе 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 нормально так и не завёлся, доеду до дома – буду пробовать версию ардуино.
 
Сверху Снизу