|
Защита от зависания |
|
|
|
Oct 13 2005, 08:52
|
Участник

Группа: Свой
Сообщений: 24
Регистрация: 3-03-05
Пользователь №: 3 039

|
Разрабатываю устройство на AVR критичное к длительным зависаниям контроллера. Раньше никогда у меня авр-ки не висли. Ставил RC - цепочку и диод на RESET. Подумываю поставить монитор питания со сторожевым таймером.
1. Насколько часто виснут AVRки? 2. При установке монитора на вход сброса больше ничего подсоединять не нужно? 3. Нашел ds1232 но дороговат может есть что подешевле.
|
|
|
|
|
Oct 13 2005, 10:04
|
Участник

Группа: Свой
Сообщений: 24
Регистрация: 3-03-05
Пользователь №: 3 039

|
Знаю что присутствует, но слышал что они иногда так виснут что и внутрений сторожевой таймер не помогает. Сам не сталкивался...
|
|
|
|
|
Oct 13 2005, 11:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(BAA @ Oct 13 2005, 14:04) Знаю что присутствует, но слышал что они иногда так виснут что и внутрений сторожевой таймер не помогает. Сам не сталкивался... А Вы ОБС не слушейте, а делайте в соответствии с фирменными рекомендациями. WDT он и в Африке WDT!  А если ваша встроенная система повиснет, так что собственный WDT не помогает, то не поможет и внешний. Причина такого зависания совершенно иного характера. Попробуйте 'стрельнуть' мощным электромагнитным импульсом и узнаете, как работает электроника...
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 13 2005, 12:18
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(Nikola Kirov @ Oct 13 2005, 16:05) Деиствително возможно что иногда внутренъи WDT не может помоч. Но не получается точно зависание контролера. Он работает но что то в RAM поменялос или получился преход там куда не надо в следствие внешнеи помехи. В зависимост стуктуру конкретной програме возможно что и при етом положение WTD обнуляется ворвемя но програма не работает нормално. С етим нада рзбиратся с програмнъие средства,а если проект болшои и очен ответствен можно и внешнии WTD сделат. Но как правило в более ответственние устроиств AVR не рекомендуется ползоват. MSP430 очен удачнъие для етих целях. Nikola! В этих случаях о которых Вы говорите программа при начальном старте должна иметь корректную инициализацию, что бы полностью возобновить работу системы после рестартов не зависимо, что у нее находиться в RAM. Иначе само предназначение WDT становиться бесполезным.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 13 2005, 12:39
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(Nikola Kirov @ Oct 13 2005, 16:29) Не не говорил об етом что процесор сделает ресет при помехи. Просто програма уходит в месте куда по логики самои програме не должна бъйт или стоиност какой то переменной в памяти поменялос при помехи и поетому и логика работъи не такая как нада бъит. Но процесор работает и регулярно обнуляет WTD. Поставляем внешнии WTD не на месте внутреннего а ани работают паралелно. И если програмка циклит в участке где обнуляется один из них другой будет сработат. Но опят же предупреждаю что AVR не предназначенъие для более ответственъие устроиств. Они и електростатического теста изделия, если соответствущее изделие должно проходит такои, очен трудно переходят. Согласен, может быть и такая ситуация, но это 'предельный' (очень редкий) случай, которого можно не допустить! Подобная ситуация не может возникнуть на устройстве с гарвардской архитектурой, если там не будет существовать такого кода (обнуление WDT).
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 13 2005, 12:41
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(BVU @ Oct 13 2005, 14:20) Цитата(BAA @ Oct 13 2005, 14:04) Знаю что присутствует, но слышал что они иногда так виснут что и внутрений сторожевой таймер не помогает. Сам не сталкивался... А Вы ОБС не слушейте, а делайте в соответствии с фирменными рекомендациями. WDT он и в Африке WDT!  А если ваша встроенная система повиснет, так что собственный WDT не помогает, то не поможет и внешний. Причина такого зависания совершенно иного характера. Попробуйте 'стрельнуть' мощным электромагнитным импульсом и узнаете, как работает электроника...  Это смотря где поставить команду asm("wdr")! У нас была ситуация, когда при испытаниях на ЭМС, устройство висло, хоть тресни! После анализа кода программистом, он убрал достаточно много сбросов WDT и, о чудо! Устройство прошло по самой жесткой категории на ЭМС! Совершенно согласен с Уважаемым BVU, что устройство можно вогнать в такое состояние, когда вернуть его в "чувство" поможет только снятие и повторная подача питания. Было. Проходили. Но не все же устройства у Уважаемых коллег работают в таких диких условиях. Поэтому, я лично(моё мнение) никогда не ставлю asm("wdr") в тех участках программы, где, например, дожидаюсь готовности от чего-то и время ожидания этой готовности заведомо меньше, чем время сработки WDT. А вот если готовности за это время не было, то тут сработает WDT, а далее перезапуск программы, переинициализация перефирии и т.д. и т.п. Тут уже нужно стараться, чтоб не "висла" периферия.  Ярчайший пример часто "виснущей" в неблагоприятных электромагнитных условиях периферии - это ЖКИ с внутренним контроллером. Поэтому, при случаях полного клинча устройства, не нужно сразу грешить на контроллер. Тут собака может быть зарыта где угодно! Только кропотливый и детальный анализ ситуации поможет в ней разобраться.
|
|
|
|
|
Oct 13 2005, 13:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(Igor26 @ Oct 13 2005, 16:41) Ярчайший пример часто "виснущей" в неблагоприятных электромагнитных условиях периферии - это ЖКИ с внутренним контроллером. Поэтому, при случаях полного клинча устройства, не нужно сразу грешить на контроллер. Тут собака может быть зарыта где угодно! Только кропотливый и детальный анализ ситуации поможет в ней разобраться. Где-то в глубинах нашего AVR форума находиться такая тема, которую я с пару недель тому назад 'приподняв' пытался возобновить для обсуждения. Проблема действительно 'гнусная', т.к. не все разработчики скажем для своих 'домашних' изысканий способны приобретать и конструировать устройства с индикацией на ЖК с требуемыми параметрами эксплуатации (в условиях мощных помех) и как следствие - дорогостоющие. Отсюда и 'падкость' на WinStar и ему подобные LCD, которые имеют подобные недостатки. Вероятно это связано с низкой помехоустойчивостью как микросхемы управляющего контроллера, так и памяти, а так же диапазон питающего напряжения, который находится в узких пределах. Но победить их по всей видимости можно, если последовательно обеспечить все требования по снижению в конструкции как электростатические, так и электромагнитные помехи. Но это уже другая история требующая возобновления старой или создание новой темы для обсуждения.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Oct 13 2005, 13:22
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(BVU @ Oct 13 2005, 16:11) Цитата(Igor26 @ Oct 13 2005, 16:41) Ярчайший пример часто "виснущей" в неблагоприятных электромагнитных условиях периферии - это ЖКИ с внутренним контроллером. Поэтому, при случаях полного клинча устройства, не нужно сразу грешить на контроллер. Тут собака может быть зарыта где угодно! Только кропотливый и детальный анализ ситуации поможет в ней разобраться. Где-то в глубинах нашего AVR форума находиться такая тема, которую я с пару недель тому назад 'приподняв' пытался возобновить для обсуждения. Проблема действительно 'гнусная', т.к. не все разработчики скажем для своих 'домашних' изысканий способны приобретать и конструировать устройства с индикацией на ЖК с требуемыми параметрами эксплуатации (в условиях мощных помех) и как следствие - дорогостоющие. Отсюда и 'падкость' на WinStar и ему подобные LCD, которые имеют подобные недостатки. Вероятно это связано с низкой помехоустойчивостью как микросхемы управляющего контроллера, так и памяти, а так же диапазон питающего напряжения, который находится в узких пределах. Но победить их по всей видимости можно, если последовательно обеспечить все требования по снижению в конструкции как электростатические, так и электромагнитные помехи. Но это уже другая история требующая возобновления старой или создание новой темы для обсуждения. Совершенно согласен! Эта тема далеко не закрыта и ещё не один раз будет поднята! И, скорее всего, будут предлагаться "обходные" пути решения этой проблемы. Хотя...
|
|
|
|
|
Oct 13 2005, 18:13
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 978

|
У меня есть подозрение, что AVR-ы менее устойчивы чем Pic-и. Ни в коем случае не хотел бы спровоцировать класическую дискуссию что лучше, хочу только поделится личными наблюдениями. Pic контроллеры, хорошие они или плохие но они точно очень устойчивы. Мы применяли различные серии, в различных устройствах, никогда нечего не зависало. Вывести их из строя практически невозможно. В некоторых изделиях Pic-и управляют транзисторами в блоках питания, стоят рядом с силовыми имп.трансами, что разработчики работающие с AVR категорически не рекомендуют делать. У нас устройства на Pic проходили тестирование разрядами и радио излучением, рамкой, проблем нет. Иногда при ошибках монтажа они работали при 8В в питании. C AVR не работал но судя по материалам форума заметно что с AVR бывают проблемы со стабильностью. Возможно это связано с ранним выходом на рынок с флэш технологиями, Pic-и очень долго выпускались только с OTP памятью.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|