реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> К вопросу о надежности сторожа в AVR, Нужен совет
DVF
сообщение May 31 2010, 06:06
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 630
Регистрация: 26-07-06
Из: Саратов
Пользователь №: 19 097



Предполагается, что люлька ребенка будет подогреваться. насколько надежен AVR в плане надежности работы сторожа? Мне навязывают независимую (дублирующую) схему на компараторе для обеспечения надежности от "вдруг AVR зависнет вместе со сторожем)?" Отсюда вопрос: "В каких случаях может зависнуть cторож?" Подогрев через контакты реле.
Go to the top of the page
 
+Quote Post
GDI
сообщение May 31 2010, 08:42
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Всегда думал, что "сторож" - это WatchDog, может вы имеете ввиду BOD (детектор снижения напряжения)? Тогда почему он должен "зависнуть вместе с АВР", там, наверное, тот же компаратор стоит, только еще и с цепями задержки сигнала Reset.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
DVF
сообщение May 31 2010, 09:28
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 630
Регистрация: 26-07-06
Из: Саратов
Пользователь №: 19 097



Имел ввиду WatchDog. Ну, предположим у меня хорошее питание, внешний Reset Circuit STM811, климатика - в помещении. Как мне переубедить? Или лучше иметь дублирующую цепь, помня о конечности рессурса МК?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 31 2010, 09:42
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Для такого случая (дети) я бы поставил ещё и внешний комбинированный wdt+supervisor...
Тут любые предположения о надёжности-ненадёжности неуместны нужно по-любому дублировать. ИМХО.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
DVF
сообщение May 31 2010, 10:05
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 630
Регистрация: 26-07-06
Из: Саратов
Пользователь №: 19 097



Да будет так.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 31 2010, 10:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(DVF @ May 31 2010, 08:06) *
Предполагается, что люлька ребенка будет подогреваться. насколько надежен AVR в плане надежности работы сторожа?

Смотрите наличие у выбранного чипа сертификата на использование в медицинском оборудовании. Если есть, посылаете всех нафиг. Если нет, то это Ваши проблемы. Добавляете Watchdog и ресетчик.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
e-serg
сообщение Jun 1 2010, 01:26
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 24-07-08
Из: Иркутск
Пользователь №: 39 180



Цитата(zltigo @ May 31 2010, 19:09) *
Смотрите наличие у выбранного чипа сертификата на использование в медицинском оборудовании. Если есть, посылаете всех нафиг. Если нет, то это Ваши проблемы. Добавляете Watchdog и ресетчик.

Просто сертификата на микросхему, как бы очень мало. Нужен будет сертификат на все устройство.
Это же не кресло с подогревом, для любимого начальника.
кого поджарить советуете?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 1 2010, 05:16
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(e-serg @ Jun 1 2010, 03:26) *
Нужен будет сертификат на все устройство.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sbw
сообщение Oct 4 2010, 11:17
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 5-10-07
Из: Харьков, Украина
Пользователь №: 31 107



Цитата(DVF @ May 31 2010, 09:06) *
Предполагается, что люлька ребенка будет подогреваться. насколько надежен AVR в плане надежности работы сторожа? Мне навязывают независимую (дублирующую) схему на компараторе для обеспечения надежности от "вдруг AVR зависнет вместе со сторожем)?" Отсюда вопрос: "В каких случаях может зависнуть cторож?" Подогрев через контакты реле.


Столкнулся с ситуацией, когда виснет устройство (на mega32), причем так, что включенный WDT его не ресетит. Уже несколько дней извел на понимание проблемы, но пока безрезультатно. Иногда не виснет, а глючит (однократный сбой). BOD включен, WD включен... Процессор еще не менял, но до сих пор мне сбойные не попадались.

Так что я бы советовал ставить внешний супервизор со своим таймаутом и пинать его от ножки проца.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Oct 4 2010, 12:31
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Столкнулся с ситуацией, когда виснет устройство (на mega32), причем так, что включенный WDT его не ресетит.

В "подвисшем состоянии" код проходит через точку сброса WDT...
Цитата
Так что я бы советовал ставить внешний супервизор со своим таймаутом и пинать его от ножки проца.

Что помешает ему так-же "подвиснуть" как и с внутреним?
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Oct 4 2010, 12:41
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(sbw @ Oct 4 2010, 18:17) *
Столкнулся с ситуацией, когда виснет устройство (на mega32), причем так, что включенный WDT его не ресетит.


В каком месте программы сбрасываете ватчдог? Надеюсь, не в прерывании?
Go to the top of the page
 
+Quote Post
Jhohn
сообщение Oct 4 2010, 13:26
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(Dima_G @ Oct 4 2010, 16:41) *
В каком месте программы сбрасываете ватчдог? Надеюсь, не в прерывании?


Все прекрасно описано в " Сторожевой таймер!..., быть ему ...или не быть?" http://electronix.ru/forum/index.php?showt...=15187&st=0
Go to the top of the page
 
+Quote Post
sbw
сообщение Oct 4 2010, 16:06
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 5-10-07
Из: Харьков, Украина
Пользователь №: 31 107



Цитата(Dima_G @ Oct 4 2010, 15:41) *
В каком месте программы сбрасываете ватчдог? Надеюсь, не в прерывании?

В прерывании готовности АЦП. Прерывание - freerun. Причем ресетится вочдог после выставления уровня на ноге. В этом же прерывании происходит передача по SPI.

// отправить байт по SPI

if (data_command == command_)
{
data_command = data_;

if (transfer_address <= max_channel) // если номер канала в пределах массива
{
PORTB &= ~(1<<packet_control); // ~SS = 0 - начать передачу
SPDR = transfer_address; // послать 1й стартовый ноль или адрес
} // если за пределами массива - ничего не посылаем
}
else // data_command = data_
{
data_command = command_;

if (transfer_address == 0)
{
SPDR = 0; // второй стартовый ноль
transfer_address++; // увеличить номер канала
}
else
{
if (transfer_address <= max_channel) // если номер канала в пределах массива
{
SPDR = ch_levels_address_send [transfer_address-1]; // послать уровень канала
transfer_address++; // увеличить номер канала
}
else // if transfer_address > max_channel
{
PORTB |= 1<<packet_control; // ~SS = 1, завершить передачу
transfer_address=0;

ch_levels_address_temp = ch_levels_address_change; // переписать указатели на массивы
ch_levels_address_change = ch_levels_address_send;
ch_levels_address_send = ch_levels_address_temp;

wdt_reset(); // <<<<<<<<<<<<---------- WD reset
}

}
}

переменная transfer_address в другом месте не обнуляется, только при старте программы.
Состояние после зависа - уровень 1 на ноге выставлен, передачи нет (ни данных, ни клока).
Когда происходит просто сбой - то ощущение, что меняется код программы: часть данных передается, а часть - нет. Или будто бы память (в котором хранится массив на передачу) запорота и не обновляется.


Цитата(ArtemKAD @ Oct 4 2010, 15:31) *
В "подвисшем состоянии" код проходит через точку сброса WDT...

Что помешает ему так-же "подвиснуть" как и с внутреним?


если бы проходил - была бы передача по SPI, чего не наблюдается осциллографом.

Забыл добавить, что мега работает от внешнего кварца 16мгц. Грешил на него - менял, менял конденсаторы обвязки. Но после того, как переключил на внутренний RC и оно зависло все равно - "опустились руки". Завтра попробую поменять мегу, она "не свежая" была, выпаяна из другого проекта.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 4 2010, 16:27
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Глупо просто/тупо сбрасывать WDT в прерывании. laughing.gif
Сбрасывать WDT нужно только после проверки условия и только при выполнении этого условия. В условии обычно проверяются флаги прохождения критически важных участков кода. Т.е. в разных местах программы взводятся битовые флаги. При проверке условия установки этих флагов WDT сбрасывается только в том случае, если установлены все эти флаги. После сброса WDT сбрасываются и флаги.
Go to the top of the page
 
+Quote Post
Jhohn
сообщение Oct 5 2010, 07:34
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(rezident @ Oct 4 2010, 20:27) *
Сбрасывать WDT нужно только после проверки условия и только при выполнении этого условия. В условии обычно проверяются флаги прохождения критически важных участков кода. Т.е. в разных местах программы взводятся битовые флаги. При проверке условия установки этих флагов WDT сбрасывается только в том случае, если установлены все эти флаги. После сброса WDT сбрасываются и флаги.

Используется для диагностики при зависании, чтобы выявить место глюка?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016