ESP12F работает неопределенно долго, а затем застревает в неустранимом аппаратном "загрузочном цикле"WDT?
У меня есть скетч, работающий на нескольких модулях ESP12F (AiThinker). Они могут работать в течение нескольких месяцев подряд, могут быть циклически включены, могут перемещаться и т. Д. Это сложный скетч с несколькими частями и все еще использует ядро 2.4.2.
То, что я видел, происходит на все большем количестве из них, это то, что модули могут застрять в каком-то цикле загрузки, что я подозреваю, является аппаратным сторожевым пином.
При сбросе неисправного устройства в отладочный порт на 74880 выводится следующее:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vbb28d4a3
~ld
Я думаю, что это приравнивается к:
- Сброс внешнего пина или пробуждение от глубокого сна
- Загрузка с флэш-памяти
- SDIO High Speed V2 IO / UART1 (я так и не смог найти никакого объяснения тому, что это на самом деле означает, и многие посты рекомендуют по существу игнорировать!)
Примерно через 1,5 секунды на дисплее 74880 печатается следующее:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vbb28d4a3
~ld
Единственная разница здесь, как мне кажется, заключается в том, что (3,7)
изменилось на (3,6)
, что приравнивается к:
- SDIO Low Speed V1 IO / UART1 (опять же, понятия не имею, что это значит)
После этого каждые 5,5 секунды (примерно) печатается следующее, на этот раз на 115200:
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vbb28d4a3
~ld
Это тот же самый выход, что и раньше, только выход с другой скоростью передачи в бодах.
Этот цикл загрузки будет продолжаться бесконечно (я оставил его в таком состоянии на несколько дней, чтобы посмотреть, не случилось ли чего). Цикл включения питания просто возвращает его к первым отладочным сообщениям, а затем просто возвращается в цикл загрузки.
Никакого последовательного вывода из моего настоящего скетча никогда не видно. Это, наряду с 5,5-секундным циклом, заставляет меня думать, что аппаратный сторожевой пес запускает и даже не позволяет моему скетчу работать. Это звучит правильно?
В настоящее время это, по-видимому, затрагивает около 5 из 50 устройств. Большинство счастливо бегут без оглядки. Пораженные устройства могут быть перепрошиты, на первый взгляд успешно, и будут работать так, как они должны, но примерно через 5-10 циклов питания они снова попадают в этот цикл. Это похоже на то, что оборудование было постоянно повреждено и никогда не может быть положено снова!
Кто-нибудь видел такое поведение раньше? Каковы мнения людей о том, что могло стать причиной этого? Может ли плохой код навсегда испортить аппаратное обеспечение так, как я думаю, что вижу?
@Pinja, 👍1
0
- Разница между этими двумя платами NodeMCU?
- Esp8266 Vin контакт
- nodemcu esp8266 не загружается, когда контакт 5 вольт подключен в качестве источника VIN
- Прошивка загрузчика ESP8266 (на ESP8266)
- Получение сброса wdt + перезагрузка каждые 5 секунд с помощью простого кода кнопки/реле
- Запуск функции аппаратного прерывания на NodeMCU ESP8266, исключение (0) после четырех итераций, невозможно отключить функцию прерывания
- D1 mini esp8266 ошибка: esptool.FatalError: Не удалось подключиться к ESP8266: Истекло время ожидания заголовка пакета
- Причина сброса wdt: 4, режим загрузки: (3,6)