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

 
 
> К вопросу о надежности сторожа в 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
 
Start new topic
Ответов
sbw
сообщение Oct 4 2010, 11:17
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Dima_G
сообщение Oct 4 2010, 12:41
Сообщение #3


Местный
***

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



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


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


Участник
*

Группа: Участник
Сообщений: 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

Сообщений в этой теме
- DVF   К вопросу о надежности сторожа в AVR   May 31 2010, 06:06
- - GDI   Всегда думал, что "сторож" - это WatchDo...   May 31 2010, 08:42
- - DVF   Имел ввиду WatchDog. Ну, предположим у меня хороше...   May 31 2010, 09:28
|- - demiurg_spb   Для такого случая (дети) я бы поставил ещё и внешн...   May 31 2010, 09:42
- - DVF   Да будет так.   May 31 2010, 10:05
- - zltigo   Цитата(DVF @ May 31 2010, 08:06) Предпола...   May 31 2010, 10:09
|- - e-serg   Цитата(zltigo @ May 31 2010, 19:09) Смотр...   Jun 1 2010, 01:26
|- - zltigo   Цитата(e-serg @ Jun 1 2010, 03:26) Н...   Jun 1 2010, 05:16
|- - Jhohn   Цитата(Dima_G @ Oct 4 2010, 16:41) В како...   Oct 4 2010, 13:26
- - ArtemKAD   ЦитатаСтолкнулся с ситуацией, когда виснет устройс...   Oct 4 2010, 12:31
- - rezident   Глупо просто/тупо сбрасывать WDT в прерывании. ...   Oct 4 2010, 16:27
|- - Jhohn   Цитата(rezident @ Oct 4 2010, 20:27) Сбра...   Oct 5 2010, 07:34
- - ArtemKAD   Цитатаесли бы проходил - была бы передача по SPI, ...   Oct 5 2010, 10:54
|- - sbw   Цитата(ArtemKAD @ Oct 5 2010, 13:54) Може...   Oct 5 2010, 15:18
- - Batman   Обычно все критичные устройства включаю через т.н....   Oct 5 2010, 11:15
- - ArtemKAD   ЦитатаВ случае зависания МК (который и генерирует ...   Oct 5 2010, 12:32
- - Batman   По моему Вас понесло с надежностью . Мне кажется ...   Oct 5 2010, 13:41
- - ArtemKAD   ЦитатаВыограли порты. Да, порты выгорали... После ...   Oct 5 2010, 14:22
- - ArtemKAD   Цитатамежду моментом сброса, когда порты отключены...   Oct 5 2010, 15:57
- - Itch   Мне кажется стоит подключить какой-нибудь кондовый...   Oct 6 2010, 03:36


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

 


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


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