М. Еременко
Новые FLASH-контроллеры PIC18F1320/230/4320 с технологией микропотребления NanoWatt фирмы Microchip
В прошлых номерах журнала при рассказе о новых контроллерах Microchip мы упоминали о новых семействах PIC18F c микропотреблением. В этот раз мы остановимся подробнее на особенностях технологии NanoWatt фирмы Microchip и расскажем, какие преимущества можно получить при проектировании устройств с батарейным питанием.
Снижение цен на микроконтроллеры привело к повсеместному их использованию. А вследствие миниатюризации огромное число стационарных и передвижных приборов и технологических станций, стендов, превратились из громоздких агрегатов в миниатюрные переносные приборы. Разумеется, в компактных приборах используются батареи и остро стоит проблема экономии электроэнергии. Поэтому рынок микроконтроллеров с нетерпением ждал появления новых микропотребляющих моделей микроконтроллеров. Микроконтроллеры первых поколений вполне обходились режимом "sleep", в котором работа микроконтроллера приостанавливалась, а потребление резко уменьшалось. Но скоро этого стало недостаточно, что привело к появлению новой технологии NanoWatt фирмы Microchip, позволяющей более гибко и экономно расходовать энергию батарей.
Улучшение экономичности при высокой производительности в технологии NanoWatt достигается следующим образом:
- совершенствованием технологии изготовления кристаллов и минимизацией токов утечки;
- снижением напряжения питания (все FLASH-микроконтроллеры Microchip могут работать при напряжениях 2,0…5,5 В);
- специальными раздельными режимами тактирования ядра и периферии.
Если первые два способа традиционно использовались при изготовлении PICmicro, то последний применён впервые и позволяет более гибко использовать ресурсы микроконтроллера, затрачивая при этом минимум энергии.
Структурная схема тактирования ядра микроконтроллеров PIC18F1320/2320/4320
Схема тактирования ядра новых PIC18 представлена на рисунке. Слева показаны три основных источника тактовых сигналов:
- Основной тактовый генератор (входы OSC1, OSC2). Сюда можно подключить резонаторы различной частоты (32 кГц…25 МГц) или внешнюю RC-цепочку. Предусмотрена схема умножения частоты на 4 (4xPLL), при включении которой ядро работает с производительностью 10 MIPS (внутренняя частота 40 МГц) с кварцевым резонатором 10 МГц. Если не требуется использовать основной тактовый генератор, то выводы OSC1 и OSC2 могут работать как обычные порты ввода/вывода.
- Дополнительный тактовый генератор (генератор таймера 1). Для его работы необходимо подключить внешний кварцевый резонатор к выводам T1OSO и T1OSI. Разумеется, если не использовать TMR1 в качестве дополнительного тактового генератора, то к этим выводам можно подключать внешний сигнал (режим счёта внешних событий) или вообще использовать эти входы как обычные порты ввода/вывода.
- Внутренний микропотребляющий RC-генератор с постделителем. Внутренний генератор калибруется на заводе-изготовителе и обеспечивает стабильность частоты не хуже ±1%, что во многих задачах (даже при работе, например, с COM-портом компьютера на небольших скоростях) позволяет вообще отказаться от использования внешних резонаторов и сэкономить на его стоимости. Внутренний генератор имеет частоту 31 кГц, а также схему умножителя, повышающую эту частоту до 8 МГц, с возможностью дальнейшего деления на разные коэффициенты. Эту операцию выполняет программно управляемый постделитель. В результате при работе с внутренним генератором можно программно "на лету" выбирать тактовую частоту из 8 значений: 31, 125, 500 кГц, 1, 2, 4, 8 МГц. Частота 31 кГц также подаётся на схему сторожевого WDT-таймера. Это позволило резко повысить стабильность работы WDT-таймера, а также отказаться от дополнительного внутреннего RC-генератора, обслуживающего исключительно WDT, и потребляющего дополнительный ток.
Рисунок
Справа на рисунке расположен программно управляемый мультиплексор, непосредственно выбирающий источник тактовых импульсов, сигнал с которого и подаётся на схемы тактирования ядра и периферии. Обратите внимание, что есть возможность программно "остановить" тактирование ядра (ключ IDLEN), при этом периферия может продолжать работу. Разумеется, есть и полный режим останова микроконтроллера (аналогичный стандартному "SLEEP"), при котором работа всех узлов замораживается и контроллер потребляет минимальнейший ток.
Обнаружение отказа тактового генератора и автоматический переход на резервный источник
Наличие трёх тактовых генераторов в микроконтроллерах PIC18F1320/2320/4320 позволило реализовать несколько интересных функций. Встроенную функцию обнаружения отказа основного тактового генератора по достоинству оценят создатели медицинских приборов (например, кардиостимуляторов), разработчики пожарно-охранной техники, систем жизнеобеспечения. Автоматическое переключение на внутренний RC-генератор позволяет сохранить работоспособность прибора. Переключение устанавливает специальный флаг сбоя генератора и генерируется запрос на прерывание. Коэффициент постделителя может быть задан заранее, чтобы получить наилучшую частоту из 8 возможных вариантов. На этапе программирования контроллера работу модуля защиты от сбоев можно аппаратно заблокировать.
Режим быстрого старта
Очень часто встречаются задачи, когда решающим параметром при выборе микроконтроллера является то, насколько он быстро "стартует" - начинает работу после подачи напряжения питания или при выходе из режима "SLEEP". Именно для таких задач пригодится режим быстрого старта.
Предположим, что мы используем основной тактовый генератор с внешним кварцевым резонатором. Как известно, такой генератор относительно долго выходит на стабильный режим работы. Поэтому схема запуска автоматически "ждёт" первые 1024 периода такого генератора, и лишь после этого разрешает работу микроконтроллера. В ряде задач такие задержки неприемлемы. При включенном же режиме быстрого старта быстро запускается внутренний RC-генератор, и программа пользователя начинает работу с ним. Одновременно стартует и основной тактовый генератор. После выхода тактового генератора на стабильный режим микроконтроллер автоматически переключается с внутреннего генератора на основной. При этом устанавливается специальный флаг, сообщающий программе пользователя, что тактовая частота стабилизировалась и можно приступать к выполнению подпрограмм, особо критичных к стабильности тактового генератора.
При необходимости можно заблокировать эту функцию на этапе программирования микроконтроллера.
Режимы работы микроконтроллера
Варианты режимов работы показаны в табл. 1. Нужный режим переключается "на лету" во время работы программы путём изменения служебных регистров. Именно такое многообразие и простота переключения позволяют пользователю минимизировать энергопотребление (то есть работать на минимальных частотах), при этом не экономя на быстродействии в ответственных моментах работы программы.
Таблица 1. Режимы работы микроконтроллеров NanoWatt PIC18F
Режим
|
CPU
|
Периферия
|
PRI_IDLE
|
Выкл.
|
Вкл. от основного генератора
|
SEC_IDLE
|
Выкл.
|
Вкл. от дополн. генератора T1OSC
|
RC_IDLE
|
Выкл.
|
Вкл. от внутр. RC-генератора
|
PRI_RUN
|
Вкл. от основного генератора OSC1
|
Вкл. от основного генератора OSC1
|
SEC_RUN
|
Вкл. от дополн. генератора Т1OSC
|
Вкл. от дополн. генератора T1OSC
|
RC_RUN
|
Вкл. от внутр. RC-генератора
|
Вкл. от внутр. RC-генератора
|
SLEEP
|
Выкл.
|
Выкл.
|
Усовершенствованный модуль EUSART для работы по LIN-протоколу
Микроконтроллеры фирмы Microchip всегда славились разнообразием и количеством встроенных периферийных модулей. Внутренним USART сейчас никого не удивишь, но в микроконтроллерах PIC18F1220/1320 встроен усовершенствованный модуль, способный аппаратно поддерживать набирающий всё большую популярность протокол LIN. Этот модуль - EUSART позволяет не только самостоятельно принимать/передавать данные, разгружая ядро, но и в состоянии SLEEP принимать информацию с шины и давать сигнал "пробуждения" контроллеру при возникновении активности на шине в соответствии со спецификацией стандарта LIN.
Добавив к микроконтроллеру PIC18F1320 специализированную микросхему драйвера LIN - MCP201, можно получить законченное устройство с поддержкой LIN-протокола. В этом случае не потребуется стабилизатор напряжения 5 В, так как он уже встроен в MCP201. Таким образом можно получить готовое устройство с минимальными затратами на разработку аппаратного и программного обеспечения.
FLASH-микроконтроллеры PIC18FXX20 с дополнительными режимами энергосбережения
На сегодняшний момент семейство PIC18F с NanoWatt-технологией состоит из 6 микросхем (табл. 2). В ближайшем будущем планируется расширение семейства. Все рассмотренные микроконтроллеры позволяют осуществлять внутрисхемную отладку на базе встроенного модуля ICD. О внутрисхемном программаторе-отладчике MPLAB-ICD2 (DV164007) мы рассказывали в прошлых номерах журнала. Так же поддерживается внутрисхемное программирование ICSP.
Таблица 2. Семейство PIC18F с NanoWatt-технологией
Тип
|
FLASH- память программ
|
ОЗУ данных
|
EEPROM
|
Порты I/O
|
аналов 10-бит АЦП
|
Анало говые компа раторы
|
CCP (ШИМ)
|
AUSART
|
Аппа- ратный LIN
|
SPI, Master I²C
|
Таймеры 8/16 бит
|
Аппар атное умно жение
|
Байт
|
Прогр. слов
|
PIC18F1220
|
4096
|
2048x16
|
256
|
256
|
16
|
7
|
2
|
1
|
Есть
|
Есть
|
Нет
|
1/3
|
Есть
|
PIC18F1320
|
8192
|
4096x16
|
256
|
256
|
16
|
7
|
2
|
1
|
Есть
|
Есть
|
Нет
|
1/3
|
Есть
|
PIC18F2220
|
4096
|
2048x16
|
512
|
256
|
23
|
10
|
2
|
2
|
Есть
|
Нет
|
Есть
|
1/3
|
Есть
|
PIC18F2320
|
8192
|
4096x16
|
512
|
256
|
23
|
10
|
2
|
2
|
Есть
|
Нет
|
Есть
|
1/3
|
Есть
|
PIC18F4220
|
4096
|
2048x16
|
512
|
256
|
34
|
13
|
2
|
2
|
Есть
|
Нет
|
Есть
|
1/3
|
Есть
|
PIC18F4320
|
8192
|
4096x16
|
512
|
256
|
34
|
13
|
2
|
2
|
Есть
|
Нет
|
Есть
|
1/3
|
Есть
|
Совершенно очевидно, что данная технология завоюет популярность среди разработчиков портативных приборов с батарейным питанием, в первую очередь, в тех областях, где помимо микропотребления требуется высокая производительность и работа в режиме реального времени.
В данной статье рассмотрено лишь старшее семейство PIC18. Но основные принципы NanoWatt-технологии также применены в новых микроконтроллерах более дешёвого семейства PIC16. Об этих новинках мы расскажем в следующих номерах.
|