Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Цепи сброса AVR

Читайте также:
  1. Методики набора массы и сброса жира
  2. Оценка экономического ущерба от сброса загрязняющих веществ в водоем после реализации водоохранного проекта
  3. Оценка экономического ущерба от сброса загрязняющих веществ в водоем после реализации воохранного проекта
  4. Предельно допустимые объемы изъятия водных ресурсов или сброса сточных вод нормативного качества в водные объекты в течение определенного периода времени - это
  5. Расчет укрупненного эколого-экономического ущерба от сброса загрязняющих веществ в водоемы.
  6. Расчет условий сброса сточных вод в водные объекты.

1. Общие сведения.

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

В х51 есть только одна возможность сбросить - подуть внешний импульс сброса. В AVR есть несколько источников сброса.

Во-первых, AVR может сброситься нулевым сигналом. Есть и автоматический сброс при включении питания. Для этого выход Reset подключен через внутреннее сопротивление R. И сигнал здесь анализируется специальной схемой. То есть е надо внешняя цепочка для сброса как в х51.

WDT - сторожевой. Программа может зависнуть, например из-за ошибок программы или неправильных действий оператора и сторожевой таймер обнаруживает это зависание и формирует сигнал сброса

BOR. Напряжение питания может медленно изменяясь покинуть стандартную зону и стать меньше разрешенного уровня, при котором некоторые блоки перестают работать или работают некорректно. И чтобы исключить режим работы при пониженном питании, есть специальные схемы, правда не у всех, которые контролируют напряжение питания и формируют сигнал сброса, когда нужно

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

2. Внутренний сброс при включении питания

Для контроля питания внутри у входу RESET есть внутренний резистор, твердотельный 50-100 кОм. Таким образом, напряжение питания измеряется, и при включении могут быть проблемы - из-за заряда фильтрующих конденсаторов напряжения питания может изменяться медленно, и существует некий порог, выше которого все устройства работают. Ниже - могут работать, а могут и нет. Поэтому схема внутреннего сброса держит сигнал сброса в активном состоянии до тех пор, пока питание не превысит разрешенный уровень. Длительность импульса должна быть больше времени разгона кварцевого генератора.

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

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

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

3. Сброс при понижении питания

Broun Out. В ходе работа напряжения питания тоже может меняться, например, садится батарейка или в момент подключения других нагрузок напряжение проседает. При уменьшении напряжения питания некоторые блоки процессора могут неправильно работать, особенно если изменение медленное. Может запуститься нечаянно программатор встроенный и коды программы или кода данных исказятся, и система станет неработоспособной. Чаще всего это происходит с нулевой ячейкой. Чтобы исключить неправильную работу при пониженном питании нужно использовать контроль ха питанием, внешний или внутренний монитор супервизор питания. Многие кристаллы в настоящее время имеют встроенный монитор, который в момент понижения напряжения, меньше порога, срабатывает и формирует сигнал сброса, то есть держит узлы процессора в исходном состоянии. После того, как напряжение питания восстановится, как и ранее, делается пауза. И только после паузы сигнал RESET убирается. Все современные системы должны иметь супервизор питания.

4. Сброс от сторожевого таймера

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

Многие процессоры, а том числе и AVR имеют встроенный стороженный таймер - watch dog timer - WDT. Для управления этим таймером используется специальный регистр, его имя WDT Control Register. В этом регистре отдельные биты обеспечивают управление таймером - разрешают работу, устанавливают частоту обновления таймера, программируют предделитель. Как правило, сторожевой таймер имеет собственный генератор, чтобы если откажет системный генератор, сторожевой таймер работал.

Этот генератор твердотельный и потому нестабильный. Но большой точности от него и не требуется. Длительность сторожевого интервала определяет программист - больше длительности выполнения самой медленной ветви алгоритма. При «мелком» управлении, то есть отдельными битами, программист задает времена выполнения, включает, выключает его, но чаще всего уже производители или компилятор дают функции управления таймером:

WDT_RESET()

WDT_DESABLE() - запрет работы

WDT_ENABLE(wdt0_500ms) - разрешение работы в качестве параметра используется константа, и чтобы не запоминать ее, микрофункция дает ряд имен этих констант с обозначением времени.

 




Дата добавления: 2015-01-30; просмотров: 72 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав