Например TDA7294

Форум РадиоКот • Просмотр темы - WatchDog Timer Сторожевой таймер в AVR
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 06:50:37

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 228 ]     ... , , , 11,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Чт май 30, 2019 07:30:56 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2802
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18067
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
а как ты думаешь, while (1) когда закончится?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Чт май 30, 2019 07:35:49 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
а как ты думаешь, while (1) когда закончится?

Когда WDT сработает :)

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Пн июн 03, 2019 16:15:15 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 1244
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7517
Рейтинг сообщения: 0
Цитата:
абсолютно правильный /верный и программно и железно ?


Идейно да. Сброс по WDT аналогичен сбросу кнопкой ресета.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Пн июн 17, 2019 20:11:08 
Прорезались зубы

Карма: -1
Рейтинг сообщений: -37
Зарегистрирован: Чт фев 11, 2016 11:20:23
Сообщений: 222
Откуда: Мск
Рейтинг сообщения: 0
Подскажите Attiny13A от attiny85 сильно отличается в программном плане, или только объемом памяти? Можно ли перепаять на место 85ой 13ую в digispark и прошить, будет ли нормально работать watchdog и прерывания?


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 18, 2019 08:38:05 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4220
Откуда: Ижевск
Рейтинг сообщения: 1
Отличается и очень сильно
-тактирование
-адресами прерываний
-аппаратной поддержкой интерфейсов


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Пн июн 24, 2019 13:47:59 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2802
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18067
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
а как ты думаешь, while (1) когда закончится?

Когда WDT сработает :)
там у него перед
while (1)
стоит
wdt_enable(0);
и когда, по твоему, WDT сработает, если он отключен этой строкой программы?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Пн июн 24, 2019 15:40:10 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
и месяца не прошло :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 01, 2021 08:25:59 
Мучитель микросхем

Зарегистрирован: Вс апр 18, 2021 15:43:55
Сообщений: 422
Рейтинг сообщения: 0
Необходимо сделать защиту цепи от зависания МК. Т.к. если МК зависнет с высоким уровнем на ноге, часть схемы может сгореть. Отсюда вижу 2 варианта:
1. Делать защиту по таймеру 555 на периферии (ограничить время протекания тока). Но это лишние элементы на плате.
2. Использовать как способ защиты WatchDog.

Если делать защиту на WatchDog, хотелось бы быть уверенным, что WatchDog сработает в 100% случаях. Отсюда вопрос: насколько механизм WatchDog надежен?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 01, 2021 09:00:47 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
WatchDog надежен ровно в той степени, в какой надежна любая периферия МК.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 01, 2021 09:21:23 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Цитата:
насколько механизм WatchDog надежен?

целиком и полностью зависит от программы. Надо обязательно помнить, что вачдог инертен. Степень инертности зависит от аппаратных озможностей, а также программных решений.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 01, 2021 09:22:48 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
parovoZZ писал(а):
вачдог инертен
поясните

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 01, 2021 14:51:00 
Мучитель микросхем

Зарегистрирован: Вс апр 18, 2021 15:43:55
Сообщений: 422
Рейтинг сообщения: 0
WatchDog надежен ровно в той степени, в какой надежна любая периферия МК.

Насколько надежна периферия МК?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Вт июн 01, 2021 14:52:52 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
параметры надежности некоторых моделей AVR можно найти среди технической документации на сайте производителя. во всяком случае я когда-то их там находил.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 10:50:35 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Всем привет! И с новым годом! :beer:
Для тех кто проснулся и протрезвел :)) Вопрос - задачка под 1 января!

Хочу к проекту подкрутить сторожевой таймер что бы перестраховаться на случай зависания МК.
И вот столкнулся с доселе неизвестной мне проблемой! Но давайте об аномалии поподробнее.

Среда: atmel studio 7 МК: ATtiny841 (datasheet) Фьюзы: H:D5, L:E2, Ext: FF

Загрузчика нет. Заливаю прошивку сразу по SPI.

Программа уже написана и отлажена осталось прикрутить WatchDog. Чтобы всю портянку не выкладывать приведу схематичны кусок кода.

Код:
#include <avr/wdt.h>  //подключаем библиотек WatchDog
int main(void)
{
   USART_Init();
   printf("MiniPrimaryClock\n"); //При перезагрузке приветствие в Com порт
   //Здесь инициализация портов
   wdt_enable(WDTO_2S); //Включаем WatchDog на 2с

   while (1)
   {
      if (PinVolt&Pin_Volt) //Проверяем Пин. Если лог 1 то
      {
         wdt_reset();//сбрасываем таймер
      }
   }

Код простой но вызывает странную реакцию.
Когда лог. 1 на пине то МК стартует нормально. И в СОМ порте пишется приветствие "MiniPrimaryClock (с переводом строки)". Все проходит штатно.
Стоит изменить состояние пина на лог. 0 то через 2с МК перезагружается. И в СОМ порт начинает лететь одно и тоже "MiniPrimaryClockMiniPrimaryClockMiniPrimaryClockMiniPrimaryClockMiniPrimaryClock.......и тд. (Перевода строки нет)".
Как будто МК в постоянной и циклической перезагрузке.
И самое странное в этой истории это то что МК не реагирует на ФИЗИЧЕСКОЕ нажатие на кнопку ресет! :shock: МК якобы перезагружается но прям сразу начинает писать белиберду.
Помогает вывести МК из такого состояния только физическое отключение питания.

Я уже не знаю куда дальше копать...... Кто ни будь знает в чем может быть причина?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 14:00:41 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Как будто МК в постоянной и циклической перезагрузке.

Так и есть. И это не зависит от конкретного МК. Просто в алгоритме неверно прописана функция очистки флага сторожевого таймера. То есть не в том месте алгоритма где это должно быть (как я подозреваю). Или вообще эта функция отсутствует в алгоритме, а она должна быть в самом начале алгоритма....
Как я понял (но могу и ошибаться, так как не владею языком Си), поправьте если не прав. У Вас после подачи питания выполняется вначале отправка сообщения по UART . Затем выполняется конфигурация портов и только при условии значения на выводе пина (при лог 0), осуществляется включение сторожевого таймера с соответствующими настройками. Верно? Если так, то Вы и получаете такой вот эффект.
Чтобы убрать данный эффект, После старта МК Вам необходимо прописать функцию очистки флага сторожевого таймера и тогда повторный сброс МК не будет происходить. Вернее будет, но только после 2 сек. (согласно настройке интервала отсчёта сторожевого таймера) если на соответствующем пине будет продолжать висеть лог 0.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 14:37:51 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Пробовал вначале писать и wdt_reset(); и wdt_disable(); не помогает.

Вообще я предполагал что после отработки WatchDog происходит общий сброс МК (как после нажатия кнопки Ресет). (На других популярных МК так и происходит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 15:39:24 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Вообще я предполагал что после отработки WatchDog происходит общий сброс МК (как после нажатия кнопки Ресет).

Да, так и есть происходит сброс МК… и вот в начале вашего алгоритма, Вам необходимо выключит сторожевой таймер. Так как он у Вас уже включен и флаг прерывания не сброшен, что и вызывает повторный сброс после перезагрузки МК. Вам при загрузке МК необходимо прописать процедуру выключения сторожевого таймера. Для включения/выключения сторожевого таймера используются два разряда регистра WDTCR, это WDE и WDTOE. Разряд WDE отвечает за включения/отключения сторожевого таймера. То есть если установлен в 1 – таймер включен, если 0 – таймер выключен. Разряд WDTOE служит как защитой для непреднамеренного отключения сторожевого таймера. То есть сброс разряда WDE произойдёт после того как в разряд WDTOE будет записана 1. Данный разряд (WDTOE) автоматически сбрасывается после 4 машинных цикла в ноль.
Если короче, то в начале Вашего алгоритма нужно прописать такую процедуру: соответствующее число записать в регистр WDTCR. Что будет соответствовать выключению сторожевого таймера. Как это прописывается на Си я не знаю. :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 16:19:05 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Вам необходимо выключит сторожевой таймер.

Вас я понял, но в распространенных МК такого не требуется.
Кроме того я уже писал выше что пробовал так делать.
Самой первой инструкцией писал wdt_disable();

Попробую тогда еще сделать в ручную на уровне регистров.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 16:35:33 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Я могу путать регистры для Вашего МК… надо в даташите глянуть как отключается сторожевой таймер именно для тини841… но то, что его необходимо отключит в Вашем случае при перезапуске МК это однозначно. :)

Добавлено after 8 minutes 12 seconds:
Посмотрел даташит... Да, с регистрами я напутал :oops: :
Вложение:
1.png [41.6 KiB]
Скачиваний: 129

Но вот то, что его необходимо отключить, мысль правильная. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: WatchDog Timer Сторожевой таймер в AVR
СообщениеДобавлено: Сб янв 01, 2022 17:10:03 
Грызет канифоль

Карма: 2
Рейтинг сообщений: 21
Зарегистрирован: Сб фев 06, 2010 20:39:59
Сообщений: 286
Рейтинг сообщения: 0
Но вот то, что его необходимо отключить, мысль правильная. :)

Мысль то возможно правильная но не очевидная если честно.....
Таймеры работают по кругу... досчитают до определенного момента, произведут событие и сбросятся. Продолжат считать опять от нуля. (Это из моего опыта с другими МК. Там все работает без лишних отключений/переключений).

Вообще МК этот 841 очень странный. Точнее урезанный в каких то неожиданных местах. (Я первый раз сейчас программирую этот МК и брал его из за размеров)

Что касается Сторожевого таймера.
Если честно я почти отчаялся за вчерашний вечер и сегодняшний день :)
Но ваши мысли и рассуждения были правильные!
Помогла вот такая вставка в самом начале
asm volatile("wdr\n\t");
WDTCSR=(0<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);

И кстати даташит тоже не очень четко все это дело описывает......

Большое спасибо что помогли с этим чудом разобраться! :beer:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 228 ]     ... , , , 11,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y