Перейти к содержанию
    

ESP32 намертво зависает

2 minutes ago, k155la3 said:

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

 

На столе ни разу не поймал. В полном составе комплекс стоит уже второй месяц. Толку ноль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Spider said:

Не допонимаю цели...

Для поиска сбоя надо сперва набрать статистику, к примеру что "сбой обязательно появится один раз на 20 запусков". Затем "когда идет активная работа WiFi сбой появляется раз-на-10 запусков" и томуподобное. Затем "подозрительное" место в софте или железе "усугубляется" для проверки. Если сбой перешел в "отказ" - это ОНО.

Хотя я так понял, девайс "вне зоны доступа". Ну, хотябы лабораторный или подменный экземпляр должен быть ?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Spider said:

К сожалению устройство без UART. 

А как код заливаете? Если через JTAG то может дебуггер что подскажет

Про питание верно тут говорят. Нужно запитать чисто от литиевого аккумулятора через стабилизатор дающий ток не менее 500мА. При работе с WIFI у него большое потребление. Проверьте наличие зависаний без работы  WIFI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 minutes ago, Spider said:

На столе ни разу не поймал. В полном составе комплекс стоит уже второй месяц. Толку ноль.

На исследование надо брать то железо, которое под подозрением. Ваше "стендовое" возможно хорошо спаяно, все емкости новые, итд итп, вместо "больного" на диагностику отправили здорового.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, k155la3 said:

сбой появляется раз-на-10 запусков

Один запуск, запустили и работает себе не выключаясь. И раз - колом. 

5 minutes ago, k155la3 said:

Хотя я так понял, девайс "вне зоны доступа". Ну, хотябы лабораторный или подменный экземпляр должен быть ?!

Говорю же - на столе есть пара, не могу проявить.

2 minutes ago, Linker said:

А как код заливаете? 

Один раз JTAGом загрузчик залили, далее они по Wifi обновляют сами себя. Я пока им могу только подсовывать новую прошивку. 

2 minutes ago, k155la3 said:

На исследование надо брать то железо, которое под подозрением. Ваше "стендовое" возможно хорошо спаяно, все емкости новые, итд итп, вместо "больного" на диагностику отправили здорового.

взято из одной партии пайки. Пробовали менять со стола в бой и наоборот, ничего не меняется. Виснут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Spider said:

Говорю же - на столе есть пара, не могу проявить.

Если нет возможности вписать в код выдачу лога на USART - поставьте хотябы внешний счетчик авто-ресетов и лог анализа мигает ли лампа "я не завис". Сделайте цикл (включил, подождал загрузку, вошло в рабочий режим, 1-5 минут работы, выключили, пауза 2 мин.) И так - на сутки. Завтра утром придете, проверите счетчик ресетов и завесов. Далее - по результатам.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственное, что разное - это розетка и помещение. ТАМ, это всё в условиях склада и с реальной хаотичной нагрузкой (может там проводка плохая или рядом какая нить электричка ездит, но на мои вопросы об этом - говорят всё стандартно, электричек нет, а сам я туда смогу добраться только в Сентябре, увы. ), у меня же на столе это всё в парниковых условиях, розетка конечно тоже стандартная, но в офисном здании, где приколов никогда не наблюдалось. Опять же у меня нагрузка симулированная, датчики стоят на "пружинках" и в вёдрах с водой, которые я хожу и иногда пиная, чтобы показания изменились.
Но смущает то, что ТАМ иногда, очень иногда у обслуживающего персонала получалось её завесить в такое состояние сразу после подачи питания. Ну т.е. пришли - она висит. Ай яй яй, беда какая. Выдёргивают из розетки, ждут когда потухнет (там очень ёмкие конденсаторы для её потребления) и потом ещё 30 секунд (это уже мои рекомендации были). И вот обратное включение несколько раз приводило к зависанию правктически сразу, т.е. пока они от розетки до железки шли она уже зависала к тому моменту, но при этом на экране остаётся последняя картинка по которой можно судить, что железка прогрузилась и даже начала работать, то как подключилась к wifi, там к серверу, получила регистрацию, начала отображать цифры с датчиков, а на это надо 5-10 секунд и зависла.

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

3 minutes ago, k155la3 said:

Если нет возможности вписать в код выдачу лога на USART - поставьте хотябы внешний счетчик авто-ресетов и лог анализа мигает ли лампа "я не завис". Сделайте цикл (включил, подождал загрузку, вошло в рабочий режим, 1-5 минут работы, выключили, пауза 2 мин.) И так - на сутки. Завтра утром придете, проверите счетчик ресетов и завесов. Далее - по результатам.

 

Уже. На экране выводит аптайм, счётчик загрузок и причина последнего ребута, к слову причину ребута она ещё шлёт на сервер, как и остаток кучи и прочее. НОЛЬ! Ребутов нет. Ни на столе ни в Бою. Но в бою иногда фризится. НИКОГДА не ребутится, всегда фризится. Если бы ребутилась, да и хер с ней! А она фризится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, Spider сказал:

Ребутов нет. Ни на столе ни в Бою. Но в бою иногда фризится. НИКОГДА не ребутится, всегда фризится. Если бы ребутилась, да и хер с ней! А она фризится.

Очень емкие конденсаторы - палка о двух концах. Как минимум они дают медленное нарастание питания и медленный спад. Микроконтроллеры такого очень не любят. Короткие пики тока они вряд ли сгладят для этого нужен быстрый стабилизатор + керамика.

Предложения:

1) Проверьте включен ли в ESP-IDF brownout. Мало ли вдруг забыли. В любом случае внешний супервизор - обязателен. Провести эксперимент с кратковременной просадкой питания (быстро вкл-выкл-вкл)

2) Проверьте включен ли ватчдог, на столе добейтесь его срабатывания чтобы убедиться что он ребутит чип на самом деле

3) Нет ли паразитного питания ESP32 от внешних цепей?

4) Ограничить мощность передатчика WiFi, понизить тактовую частоту CPU. Если у вас 240 он может перегреваться.

5) Проверить что все обработчики прерываний размещены в RAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, _3m said:

Очень емкие конденсаторы - палка о двух концах. Как минимум они дают медленное нарастание питания и медленный спад. Микроконтроллеры такого очень не любят. Короткие пики тока они вряд ли сгладят для этого нужен быстрый стабилизатор + керамика.

Предложения:

1) Проверьте включен ли в ESP-IDF brownout. Мало ли вдруг забыли. В любом случае внешний супервизор - обязателен. Провести эксперимент с кратковременной просадкой питания (быстро вкл-выкл-вкл)

2) Проверьте включен ли ватчдог, на столе добейтесь его срабатывания чтобы убедиться что он ребутит чип на самом деле

3) Нет ли паразитного питания ESP32 от внешних цепей?

4) Ограничить мощность передатчика WiFi, понизить тактовую частоту CPU. Если у вас 240 он может перегреваться.

5) Проверить что все обработчики прерываний размещены в RAM.

Пасибо за конструктив. про тактовую резонно, там у них жарко, климат такой. Попробую понизить.
Ещё раз проверю собачару. И BrO точно включен, я уже думал о нём. Другой вопрос какой порог лучше...
Питания паразитного точно нет, там всё питается от этого же БП.
wifi попробую задушить. На осове всего поста хочу попрпобовать перевести wifi в ondeman  так сказать, разрывать связь и устанавливать на короткие интервалы раз в час например.
Да прерывания уже пробежал, и проверил что они все в IRAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Spider сказал:

несколько раз приводило к зависанию правктически сразу, т.е. пока они от розетки до железки шли она уже зависала к тому моменту, но при этом на экране остаётся последняя картинка по которой можно судить, что железка прогрузилась и даже начала работать, то как подключилась к wifi, там к серверу, получила регистрацию, начала отображать цифры с датчиков, а на это надо 5-10 секунд и зависла.

Это сильный довод в пользу версии бага в коде или в схеме (питании и т.п.), и не в пользу версии о помехах.

1 час назад, Spider сказал:

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

Приобретите испытательный генератор. Который специально предназначен для испытаний на ЭМС. И формирует гарантированные тестовые воздействия на устройство.

А все эти пинания колёс с пылесосами - бесполезная затея.

типа такого:  https://www.samarapribor.ru/main/igje_15-2a.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Spider said:

. . . начала отображать цифры с датчиков,. . . 

Какие внешние подключения есть на девайс. По какому интерфейсу. Есть ли гальв. развязка. Какая длина шлейфов.

Может что на внешние линии "наводит". Проверить что с этими линиями все ОК. Это как проверка гипотезы о возникновении мощной наводки на внешнюю линию, которая вводит девайс в постоянный ступор, при котором даже ресет и WD не эффективны.

ps  

Есть ли постоянное соединение по USB с чем-то, в рабоче-дежурном режиме девайса ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Spider said:

.... Но в бою иногда фризится. НИКОГДА не ребутится, всегда фризится. Если бы ребутилась, да и хер с ней! А она фризится.

Здесь явное противоречие. Курить-проверять-настраивать-тестировать подсистему WDT. Я предлагал выше, в ф-ю WDT_ReGo() добавить индикацию светодиодом. Если внешний вывод "окирпичился", не факт, что внутри софт не работает. Просто пропала привычная-штатная индикация работы. Может где-то крутится-циклится (логическая ошибка программиста или не-обработка какой-либо ошибки), с выдачей WDT_ReGo();

Из "логического" - к примеру в "case" забылся пункт default.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот уже 10 дней без ребутов вообще. Из измененного: запрет прерываня на 1ms путём запрета прерывания и взводом таймера на 1ms в котором оно обратно разрешается. Напомню, что полезный сигнал не чаще 10ms, но шумы и звон могли быть какие угодно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...