Может на avr WDT в esp запилить?

Andy Korg

Moderator
Команда форума
У нас жара (+30) и пережаренный мозг рождает бредовые идеи. Может сделать для esp8266 внешний собачий таймер на attiny13 например. На вход avr будут идти импульсы от esp, а avr будет при отсутствии сообщений от esp сбрасывать эту самую esp. Как вам такая идея?
 

JustACat

Moderator
Команда форума
Andy Korg, а чего в ней бредового? @pvvx, помнится, предлагал дополнительный мелкий МК в добавку к ESP в частности в роли нормального WDT. Только он, емнип, предлагал PIC. Но это кому что ближе, в общем-то.
Заодно можно как расширитель портов использовать, я считаю. Если конечно не тини, а что-то побольше, подключить по I2C, закинуть на АВР-ку прошивку, которая просто будет доступ ко всем портам АВР-ки давать (на чтение, запись, управление), ну, и заодно мониторить состояние ESP и в случае чего его перегружать.
 

pvvx

Активный участник сообщества
Andy Korg, а чего в ней бредового? @pvvx, помнится, предлагал дополнительный мелкий МК в добавку к ESP в частности в роли нормального WDT. Только он, емнип, предлагал PIC. Но это кому что ближе, в общем-то.
Дык Atmel или STM сами "зависучие" от любого внешнего элек.маг. чиха :)
А другие нормальные "бренды" (выпускаемые под военную приемку и фирмы имеют таковой опыт при разработке) имеет малую распространенность и сложности с программированием (требуют особый программатор).
Народ всегда выбирает самый худший вариант. Это всемирный закон и без исключений за практику в 30 лет :)
А Пик предлагал, т.к. первым вспомнился в корпусе SOT23-6...
 
Последнее редактирование:

Andy Korg

Moderator
Команда форума
а чего в ней бредового?... Заодно можно как расширитель портов использовать...
Ага! я не один такой значить умный :) Надо будет запилить чего-нибудь по этому поводу. У меня как раз есть attiny43 со встроенным DC/DC - типа от 0.7V может работать :)
Дык Atmel или STM сами "зависучие" от любого внешнего элек.маг. чиха
Фиг его знает, ихний аппаратный wdt ни разу не подводил, плюс еще brown врубить - и вообще непробиваемый получается. :)
 

JustACat

Moderator
Команда форума
ихний аппаратный wdt ни разу не подводил
Поддержу, у меня некоторые поделки на АВР годами уже работают. При этом помехи дома такие бывают в электросети (увы, дом старый, проводка и т.п. - ужас). Не завод, конечно, и не пром.оборудование. Но в целом меня устраивает на 100%.
 

pvvx

Активный участник сообщества
Поддержу, у меня некоторые поделки на АВР годами уже работают. При этом помехи дома такие бывают в электросети (увы, дом старый, проводка и т.п. - ужас). Не завод, конечно, и не пром.оборудование. Но в целом меня устраивает на 100%.
Проводка тут не при чем - вспомните хоть историю с подключением реле к ESP8266 и коммутацией сети 220 или отверткой по проводкам... :)
Сбрасываются они все, но некоторые можно отстроить и на такие помехи...
 

JustACat

Moderator
Команда форума
pvvx, ну вот, в таких условиях, так же с отвертками, релями и 220, аврки у меня работают прекрасно.
Сбрасываются? Возможно. Главное, чтобы после такого сброса работоспособность восстанавливалась так, чтобы я, как пользователь, этого сброса вообще не замечал.
Ну и 1 штука конкретно работает в качестве центра управления некоторыми функциями, типа освещения, так вот, чтобы она сбросилась хоть раз - я не замечал, а не заметить было бы сложно, т.к. свет тогда бы погас в комнате =)
Я не спорю на счет стабильности, у меня нет сравнительной базы для этого, в частности PIC я вообще не тестировал. Я лишь делюсь наблюдениями.
 

Andy Korg

Moderator
Команда форума
Собственно весь огород только из-за аппаратного WDT, ведь в esp он програмный вроде бы, а значит зависание ядра приведет к зависанию WDT
 

Discriminator

New member
Простите, а зачем ? Внешний сброс это хорошо, но в ESP, как я понимаю есть WDT ? Просто я смотрю как он усердно перезагружается от while(1)....
 

Andy Korg

Moderator
Команда форума
но в ESP, как я понимаю есть WDT
В esp вроде как wdt программный, а значит при зависании ядра получим зависание wdt. В avr WDT отдельный аппаратный блок не зависящий ни от ядра, ни от тактового генератора ядра.
 

pvvx

Активный участник сообщества
В esp вроде как wdt программный, а значит при зависании ядра получим зависание wdt. В avr WDT отдельный аппаратный блок не зависящий ни от ядра, ни от тактового генератора ядра.
В OpenSDKnoWiFi WDT работает нормально. Есть даже проблемы с его вырубанием :)
WDT был назван "программный", по тому что реализован в китай-SDK криво и может зависнуть в самих процедурах его обработки...
Плюс во всех не Espressif проектах, была и во многих, таких как NodeMCU и т.д. остается ошибка с wdt_enable().
 
Последнее редактирование:

Andy Korg

Moderator
Команда форума
...WDT был назван "программный"
Т.е. на самом деле у esp полноценный wdt? Отдельный тактовый генератор, отдельный блок? Мне почему-то думалось, что это какая-то надстройка над внутренним таймером, а этот самый таймер сидит на общем с CPU тактовом генераторе, вот и высказал свою мысль насчет avr.
 

pvvx

Активный участник сообщества
Т.е. на самом деле у esp полноценный wdt? Отдельный тактовый генератор, отдельный блок? Мне почему-то думалось, что это какая-то надстройка над внутренним таймером, а этот самый таймер сидит на общем с CPU тактовом генераторе, вот и высказал свою мысль насчет avr.
Он то отдельный в потрохах чипа, имеет несколько аппаратных режимов работы, но бездарно используется в софте. Его то отключат, то переназначат на другой режим или просто повяжут с китай-обработчиком по прерываниям и подтверждением по софт-таймеру. Каждый "портировщик" имеющихся прошивок на ESP8266 никогда не заморачивался с ним, а лепил как попало, без разбору. От этого WDT у них не работает. Ведь цель всех прошивок - понапихать как угодно поболее всякой фигни, для галочки, да совершенно не адаптированно к системе чипа. А WDT этому мешает. Его просто вырубают. Детям надо "Дурину" и потупее, а в ней система не работает по событиям, а крутит вечный цикл. Строить систему по другому - "сложно для понимания толпы".
Покажите хоть одну прошивку, где WDT что-то проверяет и завязано с какими событиями для проверки работоспособности или контроля её, а не просто тупо подтверждается когда не попадя :) Даже "оконный режим" подтверждения не используется...
Откройте любую тему, близкую к программированию и сделайте поиск по WDT - основной вопрос толпы - "Как отключить WDT" :)
Откройте "Дурино" - там функция отключить WDT есть, а включить обратно - нет :)
О китай-SDK и говорить то не о чем - там в обработке INT от WDT всё зависнуть может. :) и куча функций подтверждения WDT просто так (и отключения WDT) в каждом модуле китай-библиотек, хотя время после подтверждения WDT в китай-SDK больше или равно 1.6 секунды! Т.е. подтверждается везде, лиш-бы не сработал :)

Нормальным средством борьбы с такими, является встраивание в чип WDT, который не отключается никогда и имеет короткое “окно” по времени когда его можно подтвердить, и то с учетом засылки кода, который зависит от прошлого. Если “подтверждение” сброса WDTпоступает в другое время – нафиг сбрасывать чип. Тогда детки сразу “складывают лапки” :) Такой режим у WDT, возможно*, тоже есть в ESP8266 :p
*возможно - У него два аппаратных таймера и вроде свой источник тактирования, но дока или окончательного разбора по нему нема. Счас он виснет ещё по причине множественных ошибок в конфигурации других аппаратных частей чипа. Например можно вырубить CPU или "кэш" или ещё чего и всё зависнет наглухо. А таких ошибок в SDK много, в связи с бездарностью подхода и часто возникают из-за неверно поставленной системы приоритетов прерываний и т.д..

А т.к. чип тимеет мало ресурсов для создания системы “исправления бездарного” кода от домохозяек(ев), то в Дурино-подобных системах WDTпроще отключить. Всё равно системы на “Дуринах” не требуют надежности и система эта создается для обучения отуплению . “Тяп ляп и за пять минут светодиод мигает” - это её главное назначение. :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
А что, если использовать внешний WDT STWD100 или какой-либо его аналог?
Всё можно, но реальной аппаратной беды с WDT у ESP8266 нет. Она только 'софтовская' = китайский SDK. В последних версиях WDT 'усилили', но беда в перезапуске из SDK через ROM-BIOS осталась (китай-код обработки WDT).
 
Сверху Снизу