• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь ESP12E не до конца возвращается из DeepSleep

MaDerer

New member
Кстати!!!!! Сейчас всмотрелся в вывод заливки моего бина на исправную ESP-12E и обнаружил:
root@raspberrypi:/home/pi# esptool.py -p /dev/ttyS0 write_flash -fm dout 0x0000 1.bin
esptool.py v2.6
Serial port /dev/ttyS0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: cc:50:e3:46:75:a5
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0340
Compressed 297552 bytes to 206998...
Wrote 297552 bytes (206998 compressed) at 0x00000000 in 19.0 seconds (effective 125.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Т.е. на этих неисправных получается не определяется размер флешь памяти... Это серьёзный повод задуматься!
 

nikolz

Well-known member
Кстати!!!!! Сейчас всмотрелся в вывод заливки моего бина на исправную ESP-12E и обнаружил:
root@raspberrypi:/home/pi# esptool.py -p /dev/ttyS0 write_flash -fm dout 0x0000 1.bin
esptool.py v2.6
Serial port /dev/ttyS0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: cc:50:e3:46:75:a5
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0340
Compressed 297552 bytes to 206998...
Wrote 297552 bytes (206998 compressed) at 0x00000000 in 19.0 seconds (effective 125.2 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Т.е. на этих неисправных получается не определяется размер флешь памяти... Это серьёзный повод задуматься!
я вам выше написал - определите чип флеша
но так как у вас программа работает то флеш скорее всего исправна
возможно не определяется так как чип не оригинальный
 

MaDerer

New member
Отбой паники/радости. Повторно всё определилось нормально. На вторую плату с 5-ю резисторами (в том числе и RST-VCC) залил Вашу прошивку и получил:
Код:
00:44:04.382 ->  ets Jan  8 2013,rst cause:1, boot mode:(3,0)
00:44:04.382 ->
00:44:04.382 -> load 0x40100000, len 416, room 16
00:44:04.415 -> tail 0
00:44:04.415 -> chksum 0xdd
00:44:04.415 -> load 0x3ffe8000, len 216, room 8
00:44:04.415 -> tail 0
00:44:04.415 -> chksum 0x25
00:44:04.415 -> csum 0x25
А теперь к вопросу о вышеозначеных ошибках при первой заливке Вашей прошивки. Вы пишите на С#, а значит Ваш код оптимизированей и выполняется в разы быстрее. По этому в случае дребезга при подаче питания и идет такая ошибка. После нормального запуска я переткнул питание и опять получил череду ошибок. Переткнул - всё нормально.

Теперь вопрос, если у вас там был какой-то вывод в Serial, то на какой, так сказать, частоте?
 

MaDerer

New member
По этому в случае дребезга при подаче питания и идет такая ошибка.
Даже более того. Те платы, где идет ошибка "Fatal exception (28):" спаяны крышки, и ни какое "передергивание" питания или нажатие на RESET не помогает, но это не мешает работать медленным скетчам Arduino IDE.
 

nikolz

Well-known member
Даже более того. Те платы, где идет ошибка "Fatal exception (28):" спаяны крышки, и ни какое "передергивание" питания или нажатие на RESET не помогает, но это не мешает работать медленным скетчам Arduino IDE.
там нет вывода на печать кроме сообщений самого загрузчика при рестарте
Я пишу на СИ, не C#,не C++.
Я не понял работает или нет
Вы должны видеть перезагрузку загрузчика при выходе из сна
Вы припаяли резистор?
 

MaDerer

New member
Резистор припаян. Всё, что выводится я показал. Похоже тут не то что выхода из сна, даже в сон не уходит.
На рабочей c NodeMCU проверить не смогу, так там нет крышки и вываливается в постоянный Fatal.
 

nikolz

Well-known member
Резистор припаян. Всё, что выводится я показал. Похоже тут не то что выхода из сна, даже в сон не уходит.
На рабочей c NodeMCU проверить не смогу, так там нет крышки и вываливается в постоянный Fatal.
у вас это сообщение выводится один раз или несколько
если несколько то с каким интервалом
 

nikolz

Well-known member
Резистор припаян. Всё, что выводится я показал. Похоже тут не то что выхода из сна, даже в сон не уходит.
На рабочей c NodeMCU проверить не смогу, так там нет крышки и вываливается в постоянный Fatal.
вот прошивка которая печатает сообщение
скорость та же что для сообщений ром загрузчика
 

Вложения

MaDerer

New member
Не выдумывайте ерунды, важно только на какой частоте проц работает, а там и там скорость одинаковая.
Самое интересное в выводах.

Вывод не верный, судя по boot mode:(3,0) при подаче питания у вас не те уровни на нужных выводах, которые отвечают за загрузку.
Спокойно, без паники. Так бывает после подачи питания. После ресета - 3,6.

@MaDerer, попробуйте сбросить есп, записав в нее АТ прошивку, как в https://esp8266.ru/forum/threads/wdt-reset.3599/#post-53442
Flash Download Tools - Windows прога, т.е. не вариант. Думаю esptool.py справилась бы с этим, просто для каждого bin надо указать адрес старта, но если после каждого bin придется выводить в режим прошивки, то я пас. Если же спокойно по очереди - то может и заморочусь.

полагаю , что все теперь работает?
Не, полагаю, что в 2 часа ночи лучше таки лечь спать. А так как тут не чат, то решил не уведомлять об этом читающих.

А теперь о важном:
08:40:19.500 ->
08:40:19.500 -> ets Jan 8 2013,rst cause:2, boot mode:(3,7)
08:40:19.500 ->
08:40:19.500 -> load 0x40100000, len 484, room 16
08:40:19.500 -> tail 4
08:40:19.500 -> chksum 0x3e
08:40:19.500 -> load 0x3ffe8000, len 240, room 4
08:40:19.500 -> tail 12
08:40:19.500 -> chksum 0xf7
08:40:19.500 -> csum 0xf7
08:40:19.500 -> ⸮⸮⸮⸮⸮⸮ ⸮ ⸮⸮⸮⸮⸮⸮⸮⸮⸮
08:40:23.499 ->
08:40:23.499 -> ets Jan 8 2013,rst cause:2, boot mode:(3,7)
08:40:23.499 ->
08:40:23.499 -> load 0x40100000, len 484, room 16
08:40:23.499 -> tail 4
08:40:23.499 -> chksum 0x3e
08:40:23.499 -> load 0x3ffe8000, len 240, room 4
08:40:23.617 -> tail 12
08:40:23.617 -> chksum 0xf7
08:40:23.617 -> csum 0xf7
08:40:23.617 -> ⸮⸮⸮⸮⸮⸮ ⸮ ⸮⸮⸮⸮⸮⸮⸮⸮⸮
08:40:27.497 ->
08:40:27.497 -> ets Jan 8 2013,rst cause:2, boot mode:(3,7)
08:40:27.627 ->
08:40:27.627 -> load 0x40100000, len 484, room 16
08:40:27.627 -> tail 4
08:40:27.627 -> chksum 0x3e
08:40:27.627 -> load 0x3ffe8000, len 240, room 4
08:40:27.627 -> tail 12
08:40:27.627 -> chksum 0xf7
08:40:27.627 -> csum 0xf7
08:40:27.627 -> ⸮⸮⸮⸮⸮⸮ ⸮ ⸮⸮⸮⸮⸮⸮⸮⸮⸮
Это вывод Вашей второй прошивки. Т.е. теперь всё заработало, ну за исключением непринятия кириллицы, но это мелочь. По всей видимости в первой прошивке ESP должна была сразу уйти в сон безо всяких задержек, по этому уход в сон не успевал отрабатываться. Тут же вывод сообщения предоставил необходимую задержку. Т.е. по крайней мере условно можно считать ESP рабочей. Но всё таки в ней что-то не так. Вон и модель памяти другая, и маркировка кварца иначе читается, и цвет конденсатора над памятью различается. И один и тот же скетч Arduino IDE на одной отрабатывается, на другой нет.
Теперь по подключению. Сейчас сняты все дополнительные резисторы, т.е. подведены только CH_PC на VCC и GPIO15 на GND. RST и GPIO16 закорочены напрямую.
 

nikolz

Well-known member
UPDATE: Второй nkboot.bin на плате без крышки тоже завелся.
Первую прошивку я дал не ту.
Давно делал, быстро поправил. Потом посмотрел а в ней сделано для работы с батарейкой и контроля падения напряжения.
----------------
Теперь о главном.
Хочу чтобы Вы признали что модули исправны.
и Вы зря ругали железо.
 

MaDerer

New member
Хочу чтобы Вы признали что модули исправны.
Нет, не могу. Ведь если две платы в АБСОЛЮТНО одинаковых условиях ведут себя по разному, то где-то зарыта собака, которая вытаскивается на свет божий только в определенном случае. В моём - использование команды ESP.DeepSleep () в Arduino IDE. Или можно сказать, что они исправны, но различаются не самым приятным образом.
и Вы зря ругали железо.
:Железо собиралось на разных заводах. Детали имеют различную или различающуюся маркировку. Вот по-любому либо кондер стоит с "допустимой погрешностью", либо резистор не того значения... либо в памяти дело и тут бы, будь у меня оборудование и прямые руки, поменять чипы памяти местами и проверить, но увы.

И да, когда придут ESP-12S, ESP-12F и Wemos, зашью в них скетч и отпишусь, как они себя ведут.
 

MaDerer

New member
И да, не надо мне говорить, что дело в неправильной/отсутствующей обвязке. Плата поставленная мною на NodeMCU всё равно не выходит из глубокого сна при прошивке из Arduino IDE.

А еще у меня просьба. Не могли бы вы тут выложить код той прошивки, что Вы мне дали?
 

nikolz

Well-known member
Нет, не могу. Ведь если две платы в АБСОЛЮТНО одинаковых условиях ведут себя по разному, то где-то зарыта собака, которая вытаскивается на свет божий только в определенном случае. В моём - использование команды ESP.DeepSleep () в Arduino IDE.
:Железо собиралось на разных заводах. Детали имеют различную или различающуюся маркировку. Вот по-любому либо кондер стоит с "допустимой погрешностью", либо резистор не того значения... либо в памяти дело и тут бы, будь у меня оборудование и прямые руки, поменять чипы памяти местами и проверить, но увы.
И да, когда придут ESP-12S, ESP-12F и Wemos, зашью в них скетч и отпишусь, как они себя ведут.
Дело в памяти, но не железной, а человеческой.
Я уже давно ничего нового не делаю на ESP, так как сделал все, что придумал(ну почти все)
и появились новые модули с BLE , на которых можно сделать все тоже самое(ну почти все) при потреблении в 100 раз меньше.
----------------------------
Я просто забыл изначально сказать вам припаять этот резистор.
И Вы не первый кто, не понимая физики явления, начинает сначала ругать железо, потом ссылается на таких же дилетантов, которые его ругали раньше в инете.
инет - это большая свалка.
Каждый находит на ней в меру своих знаний.
-----------------------
Из собственного опыта замечу.
Когда берусь делать проект в новой для меня области знаний и у меня что-то не получается ,
то в первую очередь я отношу это к отсутствию у меня надлежащих знаний.
И чтобы решить проблему изучаю документацию (если это железо) и научные отчеты, патенты и учебники (если это методы )
В результате у меня нет проектов, которые я не решил бы.
И как не странно все железо из китая - работает прекрасно.
Чего и Вам желаю.
---------------------
Примечание,
полагаю, что я знаю причину отличия работы Ваших модулей ,
так как припаять резистор я вам сказал не с потолка, а для устранения этой причины.
Но ответ на вопрос "почему" требует определенных знаний и всегда сложнее,
чем ответ на вопрос "как".
Поэтому писать Вам здесь лекции не буду.
Успехов в изучении железа и реализации Ваших проектов.
 
Сверху Снизу