Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Защита от зависания
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
BAA
Разрабатываю устройство на AVR критичное к длительным зависаниям контроллера. Раньше никогда у меня авр-ки не висли. Ставил RC - цепочку и диод на RESET.
Подумываю поставить монитор питания со сторожевым таймером.

1. Насколько часто виснут AVRки?
2. При установке монитора на вход сброса больше ничего подсоединять не нужно?
3. Нашел ds1232 но дороговат может есть что подешевле.
Alexandr
AVR-ы вроде бы все УЖЕ оснащены сторожевым таймером (WDT), зачем ставить еще что-то внешнее? А супервизор питания конечно не помешает.
beer_warrior
Собственно говоря в AVR присутствует
watchdog для вывода из вечного цикла
и brown-out detector для сброса по провалу питания
внимательно перечетай главу с описанием fuse bits.
BAA
Знаю что присутствует, но слышал что они иногда так виснут что и внутрений сторожевой таймер не помогает.
Сам не сталкивался...
BVU
Цитата(BAA @ Oct 13 2005, 14:04)
Знаю что присутствует, но слышал что они иногда так виснут что и внутрений сторожевой таймер не помогает.
Сам не сталкивался...
*

А Вы ОБС не слушейте, а делайте в соответствии с фирменными рекомендациями. WDT он и в Африке WDT! wink.gif
А если ваша встроенная система повиснет, так что собственный WDT не помогает, то не поможет и внешний. Причина такого зависания совершенно иного характера. Попробуйте 'стрельнуть' мощным электромагнитным импульсом и узнаете, как работает электроника... wacko.gif
Nikola Kirov
Деиствително возможно что иногда внутренъи WDT не может помоч. Но не получается точно зависание контролера. Он работает но что то в RAM поменялос или получился преход там куда не надо в следствие внешнеи помехи. В зависимост стуктуру конкретной програме возможно что и при етом положение WTD обнуляется ворвемя но програма не работает нормално.
С етим нада рзбиратся с програмнъие средства,а если проект болшои и очен ответствен можно и внешнии WTD сделат. Но как правило в более ответственние устроиств AVR не рекомендуется ползоват.
MSP430 очен удачнъие для етих целях.
Pyku_He_oTTyda
Я недавно поднимал такую тему здесь и советовался с "матерыми" разработчиками. Они меня успокоили, сказали что WDT достаточно, можно не переживать.
BVU
Цитата(Nikola Kirov @ Oct 13 2005, 16:05)
Деиствително возможно что иногда внутренъи WDT не может помоч. Но не получается точно зависание контролера. Он работает но что то в RAM поменялос или получился преход там куда не надо в следствие внешнеи помехи. В зависимост стуктуру конкретной  програме возможно что и при етом положение WTD обнуляется  ворвемя  но програма не работает нормално.
С етим нада рзбиратся с програмнъие средства,а если проект болшои и очен ответствен можно и внешнии WTD сделат. Но как правило в более ответственние устроиств AVR не рекомендуется ползоват.
MSP430 очен удачнъие для етих целях.
*

Nikola! В этих случаях о которых Вы говорите программа при начальном старте должна иметь корректную инициализацию, что бы полностью возобновить работу системы после рестартов не зависимо, что у нее находиться в RAM. Иначе само предназначение WDT становиться бесполезным.
Rash
Я пользую супервизоры MAX814 или ADM706-708, стоят 1,5$ нареканей пока небыло, там и WDR и RESET прямой или обратный, и Low Batery есть выбирай на свой вкус.
Nikola Kirov
Не не говорил об етом что процесор сделает ресет при помехи. Просто програма уходит в месте куда по логики самои програме не должна бъйт или стоиност какой то переменной в памяти поменялос при помехи и поетому и логика работъи не такая как нада бъит. Но процесор работает и регулярно обнуляет WTD. Поставляем внешнии WTD не на месте внутреннего а ани работают паралелно. И если програмка циклит в участке где обнуляется один из них другой будет сработат.
Но опят же предупреждаю что AVR не предназначенъие для более ответственъие устроиств. Они и електростатического теста изделия, если соответствущее изделие должно проходит такои, очен трудно переходят.
BVU
Цитата(Nikola Kirov @ Oct 13 2005, 16:29)
Не не говорил об етом что процесор сделает ресет при помехи. Просто програма уходит в месте куда по логики самои програме не должна бъйт или стоиност какой то переменной в памяти поменялос при помехи и поетому и логика работъи не такая как нада бъит. Но процесор работает и регулярно обнуляет WTD.  Поставляем внешнии WTD не на месте внутреннего а ани работают паралелно. И если програмка циклит в участке где обнуляется один из них другой будет сработат.
Но опят же предупреждаю что AVR не предназначенъие для более ответственъие устроиств. Они и електростатического теста изделия, если соответствущее изделие должно проходит такои,  очен трудно переходят.
*

Согласен, может быть и такая ситуация, но это 'предельный' (очень редкий) случай, которого можно не допустить! Подобная ситуация не может возникнуть на устройстве с гарвардской архитектурой, если там не будет существовать такого кода (обнуление WDT).
Igor26
Цитата(BVU @ Oct 13 2005, 14:20)
Цитата(BAA @ Oct 13 2005, 14:04)
Знаю что присутствует, но слышал что они иногда так виснут что и внутрений сторожевой таймер не помогает.
Сам не сталкивался...
*

А Вы ОБС не слушейте, а делайте в соответствии с фирменными рекомендациями. WDT он и в Африке WDT! wink.gif
А если ваша встроенная система повиснет, так что собственный WDT не помогает, то не поможет и внешний. Причина такого зависания совершенно иного характера. Попробуйте 'стрельнуть' мощным электромагнитным импульсом и узнаете, как работает электроника... wacko.gif
*


Это смотря где поставить команду asm("wdr")! У нас была ситуация, когда при испытаниях на ЭМС, устройство висло, хоть тресни! После анализа кода программистом, он убрал достаточно много сбросов WDT и, о чудо! Устройство прошло по самой жесткой категории на ЭМС! Совершенно согласен с Уважаемым BVU, что устройство можно вогнать в такое состояние, когда вернуть его в "чувство" поможет только снятие и повторная подача питания. Было. Проходили. Но не все же устройства у Уважаемых коллег работают в таких диких условиях. Поэтому, я лично(моё мнение) никогда не ставлю asm("wdr") в тех участках программы, где, например, дожидаюсь готовности от чего-то и время ожидания этой готовности заведомо меньше, чем время сработки WDT. А вот если готовности за это время не было, то тут сработает WDT, а далее перезапуск программы, переинициализация перефирии и т.д. и т.п. Тут уже нужно стараться, чтоб не "висла" периферия. smile3009.gif Ярчайший пример часто "виснущей" в неблагоприятных электромагнитных условиях периферии - это ЖКИ с внутренним контроллером. Поэтому, при случаях полного клинча устройства, не нужно сразу грешить на контроллер. Тут собака может быть зарыта где угодно! Только кропотливый и детальный анализ ситуации поможет в ней разобраться.
BVU
Цитата(Igor26 @ Oct 13 2005, 16:41)
Ярчайший пример часто "виснущей" в неблагоприятных электромагнитных условиях периферии - это ЖКИ с внутренним контроллером.    Поэтому, при случаях полного клинча устройства, не нужно сразу грешить на контроллер. Тут собака может быть зарыта где угодно! Только кропотливый и детальный анализ ситуации поможет в ней разобраться.
*

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

Где-то в глубинах нашего AVR форума находиться такая тема, которую я с пару недель тому назад 'приподняв' пытался возобновить для обсуждения. Проблема действительно 'гнусная', т.к. не все разработчики скажем для своих 'домашних' изысканий способны приобретать и конструировать устройства с индикацией на ЖК с требуемыми параметрами эксплуатации (в условиях мощных помех) и как следствие - дорогостоющие. Отсюда и 'падкость' на WinStar и ему подобные LCD, которые имеют подобные недостатки. Вероятно это связано с низкой помехоустойчивостью как микросхемы управляющего контроллера, так и памяти, а так же диапазон питающего напряжения, который находится в узких пределах. Но победить их по всей видимости можно, если последовательно обеспечить все требования по снижению в конструкции как электростатические, так и электромагнитные помехи. Но это уже другая история требующая возобновления старой или создание новой темы для обсуждения.
*


Совершенно согласен! Эта тема далеко не закрыта и ещё не один раз будет поднята! И, скорее всего, будут предлагаться "обходные" пути решения этой проблемы. Хотя...
vm1
У меня есть подозрение, что AVR-ы менее
устойчивы чем Pic-и.
Ни в коем случае не хотел бы спровоцировать
класическую дискуссию что лучше,
хочу только поделится личными наблюдениями.
Pic контроллеры, хорошие они или плохие но они точно очень устойчивы.
Мы применяли различные серии, в различных устройствах,
никогда нечего не зависало.
Вывести их из строя практически невозможно.
В некоторых изделиях Pic-и управляют
транзисторами в блоках питания,
стоят рядом с силовыми имп.трансами,
что разработчики работающие с AVR категорически
не рекомендуют делать.
У нас устройства на Pic проходили тестирование разрядами
и радио излучением, рамкой, проблем нет.
Иногда при ошибках монтажа они работали при 8В в питании.
C AVR не работал но судя по материалам
форума заметно что с AVR бывают проблемы со стабильностью.
Возможно это связано с ранним выходом на рынок с флэш технологиями,
Pic-и очень долго выпускались только с OTP памятью.
mse
Цитата(vm1 @ Oct 13 2005, 21:13)
что разработчики работающие с AVR категорически
не рекомендуют делать.
У нас устройства на Pic проходили тестирование разрядами
и радио излучением, рамкой, проблем нет.
*


Рекомендуют и делают. И полный набор, аналогично.
Всё дело в радиусе кривизны. В Телесиське, порой, встречаются индивидуумы, которые и те самые ПИКи ставят в недвусмысленную позу.
INT1
я наверное повторюсь:
http://avdey.nm.ru/doc/doc12.htm
но сам периодически эту "классику" перечитываю. ИМХо, проблема помехоустойчивости больше перераспределена в область конструкторскую, разводка земЕль, и т.п., хотя, и программными способами принебрегать не стоит. Вообще-то есть мнение, и это "интуитивно понятно" ( относительно авр или пик ) - чем выше быстродействие, тем ниже помехоустойчивость.
BVU
Вообще все эти вопросы, касающиеся помехоустойчивости AVR интересно было бы задать разработчикам Atmel. Если подумать, то можно на форуме AVR сделать некую 'карзину вопросов', где наболевший вопрос обращался к изначальным истокам (к специалистам Atmel).
Мое мнение по этому поводу таково. С переходом интегральных технологий на выпуск кристаллов с все более меньшим размерами (разрешением) в следствии чего уменьшается потребляемая мощность, увеличивается быстродействие, и т.д. На ряду с этими позитивными свойствами ухудшается помехозащищенность в основном от электромагнитных помех. По всей видимости это будет проблема всех нано-технологий основанных на электронной схемотехнике. Представте себе вентиль с пропускной способностью в один электрон (идеализация)... Да на него - 'подуть' посильнее и он работать перестанет, неговоря уже о мощных импульсах и излучении. Если бы производители размещали кристалл в момехозащищенную среду, что некоторые из них пытаются делать (специализированные и военные изделия), то подобные претензии редко бы имели место. В большинстве случаев мы же используем ширпотреб...!
halfdoom
Цитата(BAA @ Oct 13 2005, 11:52)
1. Насколько часто виснут AVRки?

Если рассматривать баги в кремнии, то некоторые AVR имеют документированные проблемы с WDT и ресетом. Например, мега161 (см. errata). Сам прошел по этим граблям. После апгрейда на мега162 все работает как часы.
АДИКМ
На мой взгляд, если позволяют условия - лучше поставить нечто похожее на TLC7705 (сброс и собака)...
В крайнем случае будуту не запаивать, но предусмотреть можно.
После того как устройство собрано и программа написана, надо проверить его на помехи.
Пощелкать обычной бытовой зажигалкой около процессора, кварца, сброса и посмотреть как себя ведет девайс...
GrayCat
Пронаблюдал как-то прекрасно работавший PIC16F628, который, как выяснилось после моего об него ожога, питался от 12 Вольт.

Увы, AtMega128 не перенесла 12В и пары секунд sad.gif
mse
Цитата(GrayCat @ Oct 14 2005, 16:36)
Пронаблюдал как-то прекрасно работавший PIC16F628, который, как выяснилось после моего об него ожога,  питался от 12 Вольт.

Увы, AtMega128 не перенесла 12В и пары секунд  sad.gif
*


Ну и что? В чём мораль?
АДИКМ
Думаю это ни о чем не говорит. Тысячи раз переплюсовывал надолго AVR и ничего , живые. Грелись правда очень...
mse
Цитата(АДИКМ @ Oct 15 2005, 19:32)
Думаю это ни о чем не говорит. Тысячи раз переплюсовывал надолго AVR и ничего , живые. Грелись правда очень...
*


Кстати, выгорание при превышении, гораздо лучше сохранения работоспособности. Лажанулся - МК сгорел, ага, исправил. Сразу виден дефект. А то - о работает, а мы его на объект. В другой город. В другой конец страны. А там - лето жаркое. Он неделю проработал и сдох. А если не в город, а, например, на телевышку. А там доступ два раза в год на регламент. И пипец.
INT1
не хотелось бы, чтобы тема переросла в спор, что помехоустойчивей АВР или ПИК, вобще- то пром стандарт "де факто" 51/2 семейство. Но пришлось учавствовать в проекте по разработке устройства для промэлектроники, работающего что говориться в самой клоаке, в окружении всевозможных реле, пускателей, электродвигателй, при мощностях силовых цепей порядка нескольких десятков кВт, и непрерывно(круглосуточно). Причем стоимость обслуживаемого изделия порядка $50(штук), что по отношению к стоимости АТ_4433... smile.gif, и было на певых порах немножко "стремно" , но ничего, работает вроде (тьху*3) smile.gif, так что проблемы помехоустойчивости скорей всего не в типе контроллера.
2 mse, вот вот, а если к примеру в Иран sad.gif , а там маджахеды..
mse
"так что проблемы помехоустойчивости скорей всего не в типе контроллера"
Ессно. Хотя NEC, например, свои поделия остро ориентирует в сегмент шбко надёжных. Типа на пол-кристалла защит наворочено, контроль целостности данных в ОЗУ-регистрах и прочая мутота. А в конце концов рекомендации =АК= в качестве обязательных условий работы. ;О) А с инми и обычный МК живёт долго и щщясливо.
Что касаемо промстандарта, то это 511 серия. P-MOS 27В логика. Пока помеха через 12-14В не перевалит - никого нет дома. Да и быстродействие было аж под 400кГц. Тут не забалуеш. НС помехи как класс отдыхают. И вообще, этих промстандартов в последнее время...

"а если к примеру в Иран , а там маджахеды.."
Тут как обычно: "...они говорят, что если откажетесь - они вас зарэжут...Шютка..."
INT1
мы эту шютку перефразировали: "..если контроллер откажет, то они нас..", или в командировку туда придется ехать sad.gif .
инфы на эту тему много, от книг, статей, до факов, .. вот нашел у себя - неплохо помогают ферритовые фильтры, и это подтверждено практикой, и еще там одна статья, попутно:
http://webfile.ru/575609
Имя файла - emc.rar , размер 490 Кбайт. Файлу присвоен номер 575609, он будет доступен до 23.10.2005 09:14.
vaivai
Ребята, я 7 лет как занимаюсь установкой сигнализаций в помещениях и к сожелению ихние централи виснут (они же на МК)-одно утешение,что это случается довольно редко,а другое то,что устройство не
теряет работоспособности полностью - востонавливается только переключением питания.В DSC централях
не понять какие МК, в HESTIA - PICы, в SPECTRA - ATMEL.Зависаний SPECTRA вроде мне непопадалось,
но я их,сравнительно,немного установил. По моему нужно предусматривать внешние цепи сброса.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.