Рубликатор

 



























Все о псориазе



О сбоях в работе

микроконтроллера AT90S2313

В процессе макетирования одного из устройств, где был применен микроконтроллер AT90S2313, обнаружилась крайне низкая помехоустойчивость данной микросхемы. Проявлялось это в том, что когда при помощи реле выключалась нагрузка с довольно большой индуктивность, происходило безнадежное "зависание" микроконтроллера.

Нужно сказать, силовая, цифровая и аналоговая «земли» в данном устройстве были гальванически связаны, хотя конструктивно они были разделены. Все изложенные в документации требования по прокладке цепей питания и «земли», а также по установке блокирующих конденсаторов были выполнены. На входе сброса микроконтроллера был установлен монитор питания. Затем, для большего подавления помех от силовой части, были дополнительно введены симметричные LC-развязки, всевозможные искрогасящие и ограничительные цепи. Однако это не дало желаемых результатов. Контроллер, хотя и реже, продолжал «зависать» при выключении индуктивной нагрузки. При этом другие цифровые узлы данного устройства не реагировали на эти выключения ни до, ни после принятия помехоподавляющих мер.

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

Структурная схема испытательного макета

Была также написана специальная программа для экспериментов.

Задача была сформулирована следующим образом. При включении питания микроконтроллер должен был циклически измерять напряжение Uref, которое поступало от независимого лабораторного источника питания (так был имитирован датчик).

Измерение осуществлялось по известной схеме программно-аппаратного АЦП, в которой внутренний компаратор микроконтроллера сравнивает пилообразное напряжение на конденсаторе С, подключенном к его инвертирующему входу, с напряжением датчика, подаваемого на неинвертирующий вход.

При совпадении значений возникает прерывание по переключению компаратора и определяется количество импульсов, которое успел накопить счетчик внутреннего таймера, запущенный параллельно с пилообразным напряжением. (Подробнее о таком способе аналогового измерения можно прочесть на сайте Atmel в разделе, посвященном применению AVR-контроллеров.) В зависимости от результата измерения контроллер должен был включить ту или иную нагрузку. Переключение нагрузок должно было осуществляться при положительном переходе через ноль тока нагрузки. Контроль за переходом тока через ноль производился при помощи компаратора К и резистивного датчика R. С выхода компаратора прямоугольные импульсы подавались на вход внешнего прерывания INT0, который настроен на реакцию по фронту импульса.

Включение нагрузок, коммутируемых в реальности с помощью оптосимисторов, имитировалось светодиодами, подключенными к выходам микроконтроллера. К выводам, оставшимся свободными, были подключены светодиоды, которые должны были показывать состояние микроконтроллера. Для этого исполняемая программа была разбита на части, между которыми были вставлены дополнительные команды и задержки. Таким образом, после завершения выполнения каждой части программы включался соответствующий светодиод, и осуществлялась некоторая задержка перед выполнением следующей части, чтобы включение и выключение светодиода было легко опознаваемым.

Для имитации помех параллельно с макетом (к тем же клеммам) через кнопку S была подключена первичная обмотка ненагруженного 20-ваттного силового трансформатора L.

Также параллельно была подключена 100-ваттная лампа накаливания, так как в реальном устройстве нагрузка могла быть как активной, так и активно-индуктивной. При включении и выключении индуктивности с помощью кнопки наблюдались те же сбои, которые происходили в реальном устройстве. Микроконтроллер «зависал». Симптомы «зависания» были такими. Контроллер переставал реагировать на внешние и внутренние прерывания. Сброс от сторожевого таймера, а иногда и внешний сигнал сброса не выводили контроллер из этого состояния. Нормальную работу удавалось восстановить только выключением-включением питания контроллера.

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

Анализируя результаты экспериментов, удалось выяснить, что виновником происходящего является внутренний аналоговый компаратор микроконтроллера.

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

Оказалось, что радикально решить проблему удается включением и выключением питания компаратора, сбрасывая и устанавливая бит ACD в регистре ACSR до и после использования. В связи с тем, что время установления электрических режимов после включения компаратора также неизвестно, рекомендуется включать компаратор заблаговременно, по крайней мере за несколько тактов до того момента, когда нужно получить от него результат сравнения.

Характер поведения компаратора, особенно восстановление его работоспособности после выключения питания, дает основания предположить, что в схеме при воздействии помехи происходит «защелкивание» какой-то паразитной тиристорной структуры. Известно, что при формировании на кристалле КМОП-структур между подложкой и КМОП-структурой образуются паразитные тиристорные структуры, которые могут срабатывать при определенных условиях и нарушать нормальную работу всего кристалла.

Были проведены эксперименты с пятью контроллерами из абсолютно разных партий, и все они проявляли низкую помехоустойчивость при включенном внутреннем компараторе. В связи с этим есть основания предположить, что аналогичные дефекты характерны и для других кристаллов AVR, содержащих в своем составе аналоговый компаратор.

Андрей Кривецкий


Статьи по: ARM PIC AVR MSP430, DSP, RF компоненты, Преобразование и коммутация речевых сигналов, Аналоговая техника, ADC, DAC, PLD, FPGA, MOSFET, IGBT, Дискретные полупрoводниковые приборы. Sensor, Проектирование и технология, LCD, LCM, LED. Оптоэлектроника и ВОЛС, Дистрибуция электронных компонентов, Оборудование и измерительная техника, Пассивные элементы и коммутационные устройства, Системы идентификации и защиты информации, Корпуса, Печатные платы

Design by GAW.RU