Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции - Микропроцессорная техника - файл Лекция_09_Режимы энергосбережения.doc


Лекции - Микропроцессорная техника
скачать (4640.4 kb.)

Доступные файлы (14):

Лекция_09_Режимы энергосбережения.doc77kb.29.04.2009 23:18скачать
Лекция_10 Конфигурационные биты.doc127kb.29.04.2009 23:20скачать
Лекция_11_ ФИД.doc275kb.28.04.2009 02:30скачать
Лекция_12_клавиатура (без прерывания).doc399kb.27.05.2009 01:01скачать
Лекция_13_клавиатура (с прерыванием).doc281kb.27.05.2009 01:02скачать
Лекция_14_дисплей.doc568kb.18.05.2009 23:32скачать
Лекция_1.doc603kb.11.02.2009 10:21скачать
Лекция_2.doc920kb.22.02.2009 20:24скачать
Лекция_3.doc1478kb.03.03.2009 23:46скачать
Лекция_4.doc455kb.31.03.2009 22:23скачать
Лекция_5 Таймеры.doc1912kb.07.04.2009 18:59скачать
Лекция_6 Таймеры_продолжение.doc1318kb.21.04.2009 22:34скачать
Лекция_7 Сторож_таймер.doc543kb.14.04.2009 21:04скачать
Лекция_8 Прерывания_итог.doc538kb.23.04.2009 00:20скачать

содержание
Загрузка...

Лекция_09_Режимы энергосбережения.doc

Реклама MarketGid:
Загрузка...
Лекция №9


"Спящие" режимы центрального процессора


Микроконтроллеры нередко применяются в приборах с питанием от аккуму­ляторов и батарей. В таких случаях особенно важно, чтобы потребление тока мик­роконтроллером было как можно меньшим. Микроконтроллеры семейства АVR изготовлены по технологии КМОП, и потому для их работы необходим ток не­большой силы. Благодаря выбору более низкого уровня питающего напряжения, потребление тока снижается еще больше. Если и этого недостаточно, то можно выбрать настолько низкую тактовую частоту, насколько позволяет прикладная за­дача, поскольку из-за токов перезарядки паразитных емкостей ток потребления КМОП-схем почти пропорционален тактовой частоте. В дополнение к перечисленным мерам, центральный процессор микроконтроллеров семейства АVR можно перевести в режим пониженного энергопотребления или "спящий режим" (Sleep Mode). В таком режиме потребление тока резко снижается.

В табл. 9.1 показано типичное потребление тока центральным процессором модели А T90S1200 для различных режимов работы при температуре окружающей среды 250С, отключенном аналоговом компараторе и заблокированном сторожевом таймере.

Таблица 9.1. Типичное потребление тока Icc центральным процессором модели АT90S 1200 для различных режимов работы


Vcc

Ф

Icc/

Активный

Icc/

Ждущий

Icc/

Пониженное потребление

5 В

12МГц

9 мА

2,4 мА

0,75 мкА

5 В

2МГц

4 мА

1 мА

0,75 мкА

3,3 В

6МГц

2,5 мА

0,7 мА

0,1 мкА

3,3 В

2МГц

1,8 мА

0,4 мА

0,1 мкА


Для перевода микроконтроллера семейства АVR в один из режимов понижен­ного потребления энергии необходимо разряд SE (Sleep EnabIe) регистра управле­ния MCUCR установить в лог. 1, а затем выполнить команду sleep. Благодаря связи команды sleep с разрядом SE, центральный процессор не может быть не­преднамеренно переведен в режим пониженного энергопотребления.

Когда во время режима пониженного энергопотребления происходит преры­вание, центральный процессор выходит из "спящего" режима, выполняет подпро­грамму обработки прерывания и продолжает выполнение программы с команды, следующей после команды sleep. Если во время режима пониженного энергопо­требления поступает сигнал сброса, то центральный процессор выходит из "спя­щего" режима и продолжает выполнение программы с команды, расположенной по адресу $000 области команд.

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

Для микроконтроллеров семейства АVR может быть выбран один из двух "спящих" режимов:

  • в ждущем режиме (Idle Mode) работа центрального процессора приоста­навливается, но таймер/счетчик, сторожевой таймер, система прерываний и тактирования остаются активными. Благодаря этому, центральный процессор может быть возвращен в обычный режим работы с помощью стороже­вого таймера, таймера/счетчика или внешнего прерывания. Если нет необ­ходимости в том, чтобы выход из ждущего режима осуществлялся с помо­щью аналогового компаратора, то компаратор отключается посредством установки в лог. 1 разряда АСО регистра ACSR. Это еще более снижает потребление тока в ждущем режиме, как это показано в табл. 9.2.

  • В режиме пониженного энергопотребления (Power Down Mode) систем­ный осциллятор (а значит и весь микроконтроллер) находится в отключен­ном состоянии. В таком режиме с помощью внутреннего RC-генератора колебаний может включаться лишь сторожевой таймер со своим собствен­ным обеспечением тактовой частотой. Для этого используется разряд WDE регистра WDTCR. Активный сторожевой таймер по истечении времени за­держки опять переводит микроконтроллер в нормальное состояние. Если сторожевой таймер также отключен, то в нормальное состояние его может перевести только сигнал сброса на выводе /RESET или внешнее прерыва­ние, активизированное по достижению определенного уровня сигнала.


Таблица 9.2. Типичное потребление тока Icc процессором модели AT90S1200 в ждущем режиме при активном и отключенном аналоговом компараторе


Vcc






Icc/

Аkтивный

^ Icc /Ждущий

Icc / Ждущий

Ф

Аналоговый компаратор

Аналоговый компаратор

включен

отключен

58

12 МГц

9мА

2,9мА

2,4мА

58

2МГц

4мА

1,5 мА

1 мА

3,38

6МГц

2,5 мА

0,9 мА

0,7 мА

3,3 8

2МГц

1,8 мА

0,5 мА

0,4мА


В табл. 9.3 показано потребление тока центральным процессором модели А T90S 1200 в режиме пониженного энергопотребления при активном и от­ключенном сторожевом таймере.


Таблица 9.3. Типичное потребление тока lee центральным процессором модели AT90S1200 в режиме пониженного энергопотребления при активном и отключенном сторожевом таймере


Vcc


Icc / Пониженное потребление

Icc / Пониженное потребление

Сторожевой таймер включен

Сторожевой таймер отключен

58

80 мкА

0,75 мкА

3,38

18мкА

0,1 мкА


Выбор одного из "спящих" режимов осуществляется с помощью разряда SM регистра MCUCR. Если разряд SM установлен в лог. 1, то микроконтроллер пере­водится в режим пониженного энергопотребления последующей командой sleep, если же разряд SM сброшен в лог. О, то последующей командой sleep микрокон­троллер переводится в ждущий режим в том случае, если ранее в регистре MCUCR был установлен разряд SE.


^ Режимы энергосбережения


Режимы энергосбережения нужны для того, чтобы экономить питание. Применять их следует при питании от автономного ис­точника - как правило, любой МК большую часть времени простаивает в ожидании событий. Например, процедура динамической индикации, повторяющаяся с частотой сотни герц, сама по себе выполняется всего за несколько десятков микросекунд, т. е. занимает сотые доли общего време­ни работы МК и даже меньше. Если считать, что в активном режиме МК по­требляет порядка 10-15 мА, то ввод его в режим энергосбережения в паузах между событиями позволяет снизить суммарное потребление до -100 мкА и повысить временной ресурс работы схемы в сотни раз.

Но правильно организовать работу МК в режиме энергосбережения не так-то просто. Следует учитывать внешние соединения - один забытый в "нулевом состоянии" выход с подсоединенным подтягивающим резистором способен испортить всю картину. Переключение всех выводов на вход также может не дать нужного эффекта, если часть из них "висит в воздухе" - наводки будут переключать входную логику (если она не отключена) и тем самым повышать потребление. Отключение логики происходит автоматически при вводе в ре­жим энергосбережения, но не для всех контактов - остаются включенными, например, выводы внешних прерываний, если они разрешены в программе, а также некоторые другие, если они используются в режиме альтернативных функций. Следует также не забывать выключать аналоговый компаратор, ко­торый включен по умолчанию.

Не имеет большого смысла заниматься энергосбережением, если у вас в схе­ме имеются другие элементы с большим потреблением, которые невозможно отключить. Большинство стан­дартных устройств, ориентированных на подключение к МК (EEPROM, часы, tlasll-карты, современные преобразователи уровня RS-232), автоматически (или по команде извне) устанавливаются в режим пониженного энергопо­требления, когда находятся в ожидании команд. Но могут быть и компонен­ты, для отключения которых приходится изобретать специальные способы.

Нужно учитывать и нюансы внутренней работы МК. Скажем, когда вы посы­лаете байт через UART, то собственно передача после окончания операции записи в регистр данных начнет выполняться аппаратно, и может длиться порядка миллисекунды, в то время как GPU уже формально свободен для других операций. Если в этот момент ввести МК в режим энергосбережения, то вместе со всеми остальными модулями выключится и UART, и передача не будет выполнена. Поэтому в таком случае следует либо организовать за­держку выключения, либо (что более грамотно) использовать прерывание"передача завершена" (ТХ complete), либо просто в цикле ожидать, пока бит ТХС регистра UCSRA не окажется в состоянии логической единицы.


^ Обзор режимов энергосбережения


В различных моделях МК АVR имеется от 2-3 (семейства Classic и Tiny) до 5-6 (старшие Mega) режимов энергосбережения.


Два базовых режима общие для всех моделей: Idle mode и Power Down mode. Отметим, что к режимам энергосбережения также относят стоящий несколько особняком специальный режим АDС Noise Reduction, который имеет иное назначение, и мы его рас­смотрим далее. При практическом использовании режимов энергосбере­жения следует учесть, что их нельзя вызывать из процедуры прерывания - только из основной программы.


В МК АVR имеются следующие разновидности режимов энергосбережения.

В Idle mode (режиме ожидания) останавливается GPU (а также устройство управления выборкой команд из памяти). Все периферийные устройства ­таймеры, АЦП, порты - продолжают функционировать. Поэтому значи­тельной экономии не получается: потребление снижается лишь на 30-50%. Очевидно, что режим Idle mode имеет смысл использовать тогда, когда общее по­требление устройства лимитируется именно МК, который при этом обяза­тельно должен находиться в состоянии постоянной готовности. Во всех ос­тальных случаях следует выбирать режимы "глубокого" энергосбережения, когда собственное потребление МК снижается до единиц или десятков мик­роампер.

К таким режимам относится, в первую очередь, общий для всех моделей ^ Power Down mode. В нем останавливаются все узлы МК, за исключением сторожевого таймера (если он включен), системы обработки внешних асин­хронных прерываний и модуля TWI. Соответственно, выход из этого режима возможен либо по сбросу МК (в том числе и от сторожевого таймера), либо от прерывания TWI, либо от внешнего прерывания (причем, только того, которое обнаруживается асинхронно). В роли "будящего" устройства может выступать и модуль уни­версального последовательного интерфейса USI (в тех моделях, в которых он заменяет TWI). Потребление в этом режиме может составить до нескольких десятков микроампер.

Важная особенность ^ Power Down mode - то, что в этом режиме останавли­вается тактовый генератор. Это означает, что при выходе из спящего режима тактовый генератор потратит время на "раскрутку", причем этот интервал будет тем же самым, что задается конфигурационными ячейками SUT1..0 для задержки сброса (см, раздел Конфигурационные биты). По умолчанию оно составляет 16384 такта (около 4 мс при тактовой частоте 4 МГц), что следует учитывать при разработке программы; при необходимости это время для случая кварце­вого резонатора можно сократить до 1024 тактов установкой при программи­ровании кристалла ячейки CKSEL0 в состояние лог. 0. Если это время критич­но, то применение RC-генератора или тактирование от внешнего источника (при соответствующей установке ячеек СКSЕL3..1) позволяет сократить время выхода на режим до минимума, когда задержка составит всего 6 тактов (+ 8 тактов на переход к выполнению "разбудившего" прерывания). Установка ячеек CKSEL0 и SUT1..0 при этом не имеет значения.


^ Power Save mode отличается от Power Down тем, что если в МК имеется таймер, могущий работать в асинхронном режиме от отдельного тактового генератора, и этот таймер вклю­чен, то он продолжит работу и в этом режиме. Это несколько увеличивает потребление, зато выход из режима Power Save возможен по прерываниям от таймера-счетчика. Практически это удобно при реализации часов реального времени.

^ Standby mode отличается от Power Down тем, что в этом режиме продолжает работать тактовый генератор (только при установке внешнего резонатора). Режим полезен тем, что позволяет выходить из "спящего" состояния всего за 6 тактов. В некоторых моделях есть еще режим Extended Standby, который объединяет в себе Standby и Power Save.


^ Программирование режима энергосбережения


Само по себе программирование режима энергосбережения - без учета всех отмеченных нюансов - очень простое.

Некоторую сложность здесь пред­ставляет только выбор режима из-за того, что в разных моделях МК АVR управляющие биты SMx (в младших Tiny и в семействе Classic всего один та­кой бит SM, выбирающий между двумя режимами Idle и Power Down, в ос­тальных их больше) "разбросаны" по разным регистрам, и приходится смот­реть в описание, чтобы не ошибиться. В большинстве младших моделей Mega, а также в Tiny и Classic, эти биты находятся в регистре MCUCR – в том же, который отвечает и за внешние прерывания. Но вот, например в АTmega8515 (в отличие от сделанного на его же основе А Tmega8535, где также один ре­гистр MCUCR), три бита SM0..2 разбросаны по трем регистрам MSUCR, MCUCSR и IEMCUCR. Есть и другие варианты: в АTmega16 все эти биты также в одном ре­гистре MCUCR, но бит SM2 почему-то поменялся местами с битом разрешения slеер -режима SE.

По умолчанию все биты установки ^ Sleep Mode, сколько их есть (три SM0..2, два SM0..1 или один SM), установлены в нулевое состояние, что означает ре­жим Idle. Тогда достаточно установить бит разрешения SE (он-то всегда нахо­дится в регистре MCUCR) и вызвать команду sleep.

Как мы уже отмечали, команду sleep нельзя вызывать из прерывания (она попросту не сработа­ет). Инструкция рекомендует устанавливать бит разрешения непосредственно перед вызовом команды sleep: фактически это предохранитель, как и в некоторых других случаях (см., например, запись в EEPROM или обращение со сторожевым таймером далее), дублирование одной и той же операции во из­бежание самопроизвольного "ухода" МК в спящее состояние при наличии помех. Обратите внимание, что первым делом после выхода из режима "сна" выполнится обработчик прерывания, "разбудившего" компьютер, а после не­го - команда, следующая после sleep.

На практике чаще всего применяют общий для всех моделей МК режим ^ Power Down. Он определяется установкой бита SM1 (либо SM, если бит уста­новки единственный) в единичное состояние. Удобен режим Standby (в тех МК, где он доступен), когда тактовый генератор продолжает работать, и по­тому для выхода из состояния "сна" требуется гораздо меньше времени ­всего шесть машинных циклов, в то время как выход из режима Power Down по времени аналогичен запуску МК после сброса.


Скачать файл (4640.4 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru