Одним из основных показателей микроконтроллера является энергопотребление. Величина энергопотребления характеризуется напряжением питания микроконтроллера и потребляемым током.
По напряжению питания все выпускаемые микроконтроллеры можно условно разделить на три группы:
0 Микроконтроллеры с напряжением питания 5,0В±10%. Предназначены для работы в изделиях, питающихся от промышленной или бытовой сети. Как правило, это довольно мощные микроконтроллеры с развитым набором функциональных блоков.
0 Микроконтроллеры с расширенным диапазоном напряжения питания. Диапазон может быть различен в пределах от 2-х до 7 В. в зависимости от изготовителя и конкретного типа. Например, микроконтроллер ATmega163 работоспособен при напряжении питания от 4 до 5,5 В, а его модификация ATmega163L - от 2,7 до 5,5В. Такие микроконтроллеры могут быть использованы как в изделиях с питанием от сети, так и с автономным питанием.
0 Микроконтроллеры с пониженным напряжением питания. Напряжение питания таких микроконтроллеров обычно не превышает 3 В. Они специально разрабатываются для изделий с автономными источниками питания.
Ток, потребляемый микроконтроллером, зависит от его напряжения питания и тактовой частоты процессорного ядра. С ростом напряжения питания и с ростом тактовой частоты потребляемый ток всегда возрастает.
Большинство современных микроконтроллеров имеют несколько режимов работы, различающихся энергопотреблением. Обычно они разделяются на две группы:
0 Активный режим (Run Mode). Обычный рабочий режим, в котором микроконтроллер выполняет заложенную в него программу и включены все его функциональные блоки.
0 Режимы энергосбережения (Sleep Mode). Режимы, в которых отключаются те или иные функциональные блоки микроконтроллера и его энергопотребление существенно снижается. Режимы энергосбережения, в свою очередь, могут быть различны, например:
Режим холостого хода (Idle mode). Останавливается процессорное ядро, но продолжают работу некоторые функциональные блоки, связывающие микроконтроллер с системой. Через эти блоки процессорное ядро может быть вновь переведено в активный режим. Режимы ожидания (Wait mode или Power Down Mode). Останавливается процессорное ядро и отключается большинство функциональных блоков. Процессорное ядро может быть переведено в активный режим только через систему сброса или систему прерываний.
Для перевода микроконтроллера в тот или иной режим энергосбережения в системе команд предусматриваются специальные инструкции, а в его архитектуре - специальные регистры. Например, у AVR-микроконтроллеров фирмы Atmel для перехода в режимы энергосбережения используется инструкция Sleep, а задание режима осуществляется через регистр MCUCR (MCU Control Register) (рис. 14.1).
Рис. 14.1. Биты управления режимами энергосбережения микроконтроллера
ATmegal63
В активном режиме при напряжении питания ЗВ и тактовой частоте 4 МГц микроконтроллер потребляет ток 5 мА. Для снижения энергопотребления в нем предусмотрено 4 различных режима. Для перевода в любой из этих режимов энергосбережения бит SE (Sleep Enable) в регистре MCUCR должен быть установлен в состояние 1. Биты SM1 и SM0 (Sleep Mode Select bits 1 and 0) регистра MCUCR определяют, какой из четырех режимов:
0 Idle,
0 ADC Noise Reduction,
0 Power Down или
0 Power Save
будет запущен командой SLEEP. Выбор режима осуществляется в соответствии с таблицей 14.1.
Таблица 14.1. Выбор режимов энергосбережения микроконтроллера АТтеда163
SM1 | SM0 | Режим энергосбережения |
Холостого хода (Idle) | ||
Шумоподавления (ADC Noise Reduction) | ||
Ожидания (Power-down) | ||
Экономии (Power Save) |
В любом из четырех режимов процессорное ядро контроллера останавливается. При возникновении разрешенного прерывания во время режима энергосбережения, ядро включается, выполняет подпрограмму обработки прерывания и продолжает работу в активном режиме. Если во время режима энергосбережения происходит сброс, ядро также активизируется и начинает работу по вектору сброса. Содержимое регистров общего назначения, памяти данных и регистров ввода/вывода в процессе активизации не изменяется.