На сайт "Мир микроконтроллеров"   Закрыть окно помощи

 

FUSE калькулятор
Страница помощи

 

Система контроля питания.

Большинство микроконтроллеров AVR имеет встроенную систему контроля питания. Так называемый BOD (Brown-out Detection). Назначение этой системы - повышение стабильности и надежности работы микропроцессорных систем при понижении напряжения питания. Эта система осуществляет постоянное сравнение напряжения питания с неким пороговым уровнем. Уровень порога срабатывания схемы BOD можно устанавливать при помощи fuse-переключателей BODLEVEL. Если напряжение снизится ниже порога, система контроля питания автоматически вырабатывает внутренний сигнал сброса, который останавливает выполнение программы. После того, как напряжение питания повысится, сигнал сброса еще действует некоторое время (TTOUT) и не позволяет процессору работать по программе. Любое новое снижение напряжения ниже порога запускает отсчет задержки сначала. Если напряжение питания восстановит свое нормальное значение и в течение всего периода задержки больше не упадет ниже контрольного уровня, сигнал сброса заканчивается и микроконтроллер начинает выполнение программы. Причем программа выполняется с самого начала. То есть, с того места, с которого она начинает работу при начальном сбросе. Для того что бы микроконтроллер мог учесть в своей работы сам факт сбоя по напряжению питания, многие модели AVR имеют специальный регистр, в котором хранится код источника сигнала сброса.

BODLEVEL

Значение периода задержки TTOUT фиксировано. Его можно посмотреть в документации на конкретный контроллер. Порог срабатывания системы BOD обычно не один. Для переключения нескольких вариантов порога служат FUSE переключатели BODLEVEL. Обычно это несколько битов (BODLEVEL1, BODLEVEL2 …). Режим работы определяется различным сочетанием их значений. Наш FUSE-калькулятор упрощает выбор значений переключателей. Просто выберите нужный порог срабатывания системы в выпадающем списке «Режимы работы системы контроля питания».

BODEN

Если вам не нужен контроль напряжения, вы можете ее выключить. В некоторых моделях выключение BOD – это один из режимов, определяемый фьюзами BODLEVEL. В других же моделях для включения и отключения BOD имеется специальный фьюз, который называется BODEN. Если имеется BODEN и его значение равно нулю (он запрограммирован), система работает. Если значение BODEN равно единице, то BOD отключен, и состояние фьюзов BODLEVEL не на что не влияет.


Рекомендации по выбору режимов

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

Гистерезис

Как уже было сказано выше, в систему BOD заложено несколько вариантов уровня срабатывания. Нужный вам уровень вы выбираете при помощи фьюзов BODLEVEL. Однако, если бы система срабатывала по этому одному уровню, это могло бы привести к многократному перезапуску программы в случае, если напряжение питания "гуляет" вблизи порога срабатывания. Поэтому в системе защиты введен гистерезис. И существует такой параметр, как величина гистерезиса. В документации фирмы Atmel эта величина называется VHYST. Для получения эффекта гистерезиса в системе BOD вводится два порога срабатывания. Порог включения и порог выключения. Разница между этими порогами как раз равна VHYST. Если выбранное вами пороговое напряжение равно VBOT, то порог включения и порог выключения соответственно будут равны:

VBOT+ = VBOT + VHYST/2
VBOT- = VBOT - VHYST/2

Система BOD срабатывает в момент, когда напряжение питания упадет ниже VBOT- . В этот момент вырабатывается сигнал внутреннего сброса и выполнение программ приостанавливается. Когда напряжение питания повысится и станет выше порога VBOT+ , начинается отсчет специального таймера. По окончании этой выдержки (tTOUT) внутренний сброс заканчивается и процессор возобновляет выполнение программы. На рисунке ниже показан весь процесс работы BOD.