Новые Flash-микроконтроллеры PIC16F со сверхнизким энергопотреблением
от Microchip
В одном из предыдущих номеров журнала ("КиТ" № 9'2002) уже рассказывалось о микропотребляющих Flash-контроллерах компании Microchip из серии высокопроизводительных микроконтроллеров PIC18F.
В отличие от более мощного семейства PIC18F, микроконтроллеры PIC16F ориентированы в первую очередь на продукцию, выпускаемую огромными тиражами, а это требует минимальной цены микроконтроллера. Поэтому реализация всех режимов микропотребления, имеющихся в PIC18, повлекла бы увеличение цены микроконтроллера. Тем не менее разработчикам Microchip удалось решить эту непростую задачу: добавлены все новые режимы энергосбережения, и при этом цена микроконтроллеров даже несколько снизилась по сравнению со старыми моделями PIC16. Такая непростая задача была решена традиционным для Microchip способом: «каждой задаче — отдельный PICmicro!».Рассмотрев таблицу 1, можно заметить, что выпущена целая линейка семейств PIC16F с различными сочетаниями параметров. Таким образом,можно подобрать контроллер практически под любую задачу,при этом максимально сэкономив на его цене.
Уменьшение энергопотребления при высокой производительности в технологии NanoWatt достигается тремя способами:
- Совершенствованием технологии изготовления кристаллов и минимизацией токов утечки.
- Снижением напряжения питания (все Flash-микроконтроллеры Microchip могут работать при напряжениях 2 –5,5 В).
- Специальными режимами тактирования ядра и периферии.
Если первые два способа традиционно использовались в ранних семействах PICmicro, то последний стал применяться в новых семействах NanoWatt PIC18 и PIC16 и позволяет более гибко использовать ресурсы микроконтроллера, затрачивая при этом минимум энергии.
Схема тактирования контроллера
Рассмотрим блок-схему тактирования семейств PIC16F c режимами энергосбережения (рис.1). Что изменилось по сравнению с традиционным PIC16?
Модуль Таймера1 существенно изменен,благодаря чему в несколько раз сократился потребляемый им ток (менее 2 мкА). Это позволило в большинстве задач отказаться от применения специализированной микросхемы при создании часов реального времени, подключая низкочастотный резонатор 32768 Гц непосредственно к модулю Таймера1. Еще одной примечательной особенностью таймера стало то, что он может использоваться как дополнительный источник тактовых импульсов для тактирования ядра микроконтроллера как непосредственно, так и через схему умножителя FLL с последующим делением до нужного значения. В последнем случае выводы OSC1 и OSC2 основного генератора можно использовать как порты ввода-вывода общего назначения, стартовать от внутреннего генератора, а атем переключаться на Таймер1 (32768 Гц) с последующим умножением. Таким образом, с одним низкочастотным кварцевым резонатором можно работать на частотах до 256 32,768 кГц=8,38 МГц и иметь встроенные часы реального времени. Разумеется, что если не использовать TMR1 в качестве дополнительного тактового генератора, то к его выводам можно подключать внешний сигнал (режим счета внешних событий) или использовать его входы как обычные порты ввода-вывода.
Таблица 1. PIC16F с режимами микропотребления Low Power Modes
Тип |
Flash память программ |
ОЗУ данных |
EEPROM |
Коли-чество выво-дов |
Порты I/O |
Каналов 10 бит АЦП |
Анало-говые компа-раторы |
CCP (ШИМ) |
AUSART |
SPI, Master I 2 C |
Тай-меры 8/16 бит |
Внутрен-ний RC гене-ратор 1% |
Отладка ICD2 |
Байт |
Прогр.слов |
PIC16F684 |
3584 |
2048x14 |
128 |
256 |
14 |
12 |
8 |
2 |
1 (4 канала) |
Нет |
Нет |
2/1 |
Есть |
Есть |
PIC16F627A |
1792 |
1024x14 |
224 |
128 |
18 |
16 |
Нет |
2 |
1 |
Есть |
Нет |
2/1 |
Есть |
Нет |
PIC16F628A |
3584 |
2048x14 |
224 |
128 |
18 |
16 |
Нет |
2 |
1 |
Есть |
Нет |
2/1 |
Есть |
Нет |
PIC16F648A |
7168 |
4096x14 |
256 |
256 |
18 |
16 |
Нет |
2 |
1 |
Есть |
Нет |
2/1 |
Есть |
Нет |
PIC16F818 |
1792 |
1024x14 |
128 |
128 |
18 |
16 |
5 |
Нет |
1 |
Нет |
Есть |
2/1 |
Есть |
Есть |
PIC16F819 |
3584 |
2048x14 |
256 |
256 |
18 |
16 |
5 |
Нет |
1 |
Нет |
Есть |
2/1 |
Есть |
Есть |
PIC16F87 |
7168 |
4096x14 |
368 |
256 |
18 |
16 |
Нет |
2 |
1 |
Есть |
Нет |
2/1 |
Есть |
Есть |
PIC16F88 |
7168 |
4096x14 |
368 |
256 |
18 |
16 |
7 |
2 |
1 |
Есть |
Нет |
2/1 |
Есть |
Есть |
PIC16F737 |
7168 |
4096x14 |
368 |
Нет |
28 |
25 |
11 |
2 |
3 |
Есть |
Есть |
2/1 |
Есть |
Есть |
PIC16F747 |
7168 |
4096x14 |
368 |
Нет |
40 |
36 |
14 |
2 |
3 |
Есть |
Есть |
2/1 |
Есть |
Есть |
PIC16F767 |
14336 |
8192x14 |
368 |
Нет |
28 |
25 |
11 |
2 |
3 |
Есть |
Есть |
2/1 |
Есть |
Есть |
PIC16F777 |
14336 |
8192x14 |
368 |
Нет |
40 |
36 |
14 |
2 |
3 |
Есть |
Есть |
2/1 |
Есть |
Есть |
Добавлен новый микропотребляющий модуль внутреннего RC-генератора с умножителем FLL и постделителем (аналогичный NanoWatt PIC18F)с программно управляемым мультиплексором выбора источника тактовых сигналов. Этот модуль, так же как и Таймер1, полностью переработан. В несколько раз снижено энергопотребление, модуль нечувствителен к изменениям температуры и напряжения питания. Схема генератора термокомпенсирована и уход частоты составляет не более ±2%во всем диапазоне рабочих температур и питающих напряжений. Калибровка генератора производится на заводе-изготовителе, чем обеспечивается точность частоты. Это позволяет во многих задачах (при работе, например, с COM-портом компьютера на скорости 9600 бит/с) вообще отказаться от использования внешних резонаторов и сэкономить на их стоимости. Внутренний генератор работает на частоте 31,25 кГц, а специальный модуль умножителя FLL (256) повышает эту частоту до 8 МГц. Благодаря встроенному постделителю при работе с внутренним генератором можно программно «на лету » выбирать тактовую частоту из 8 значений: 31,25 кГц, 125 кГц, 500 кГц, 1 МГц, 2 МГц, 4 МГц, 8 МГц,управляя мультиплексором тактового сигнала. Эта особенность позволяет управлять производительностью микроконтроллера, а значит, и потреблением тока.
Убран традиционный нестабильный сторожевой таймер WDT. Теперь внутренний RC-генератор тактирует и схему WDT, что обеспечивает отличную стабильность при изменении напряжения питания и температуры. Новый период WDT теперь стал 4 мс (вместо 18 мс), но добавлен дополнительный 16-разрядный постделитель для совместимости со старыми моделями. Отказ от отдельного RC-генератора, обслуживающего исключительно WDT, позволил еще снизить потребление контроллера.
Обнаружение отказа тактового генератора и автоматический переход на резервный источник
Наличие трех тактовых генераторов в микроконтроллерах семейства PIC16F NanoWatt позволило реализовать несколько интересных функций. Встроенную функцию обнаружения отказа основного тактового генератора по достоинству оценят создатели медицинских приборов (например, кардиостимуляторов), разработчики пожарно-охранной техники, систем жизнеобеспечения. Как известно,в критических условиях (вибрация, пониженная температура и т.п.) может произойти отказ или уход параметров кварцевого резонатора. Автоматическое переключение на внутренний RC-генератор при отказе основного генератора позволяет сохранить работоспособность прибора. При этом устанавливается специальный флаг сбоя ГТИ и генерируется запрос на прерывание. Коэффициент постделителя может быть задан заранее, чтобы получить наилучшую частоту из 8 возможных вариантов. На этапе программирования контроллера работу модуля защиты от сбоев можно аппаратно заблокировать специальным битом в конфигурационном слове.
Режим быстрого старта
Очень часто встречаются задачи, когда решающим параметром при выборе микроконтроллера является то, насколько быстро он «стартует » — начинает работу после подачи напряжения питания или при выходе из режима «SLEEP ». Именно для таких задач пригодится режим быстрого старта.
Предположим, что мы используем основной тактовый генератор с внешним кварцевым резонатором. Как известно, такой генератор относительно долго выходит на стабильный режим работы. Поэтому схема запуска автоматически «ждет » первые 1024 периода такого генератора, и лишь после этого разрешает работу микроконтроллера. В ряде задач такие задержки неприемлемы, для чего и предусмотрен режим быстрого старта. В режиме быстрого старта запускается внутренний RC-генератор,и программа пользователя начинает (продолжает) работу именно с ним. Одновременно стартует и основной (или дополнительный) ГТИ. После его выхода на стабильный режим работы микроконтроллер автоматически переключается с внутреннего RC-генератора на основной. При этом устанавливается специальный флаг, сообщающий программе пользователя, что тактовая частота стабилизировалась и можно приступать к выполнению подпрограмм, особо критичных к стабильности тактового генератора.
Таблица 2. Режимы микропотребления в PIC16F
Возможности микропотребления |
16F684 |
16F627/628A |
16F818/819 |
16F87/88 |
16F7x7 |
Коментарии |
Самопрограммирование FLASH |
Да |
Нет |
Да |
Да |
Да |
Возможность удаленного программирования |
Низкопотребляющий TMR1 |
Да |
Да |
Да |
Да |
Да |
1 мкА @32 кГц |
Внутренний RC генератор (2%Typ) |
Да |
Да |
Да |
Да |
Да |
Низкопотребляющий 1 мкА |
Умножитель частоты RC генератора |
Да |
Нет |
Да |
Да |
Да |
от 8 МГц до 31,25 кГц (стабильность 1%) |
Тактирование ядра от TMR1 |
Нет |
Нет |
Нет |
Да |
Да |
от 8 МГц до 32 кГц (стабильность <1%) |
Тактирование WDT от внутр.RC |
Да |
Нет |
Да |
Да |
Да |
Низкопотребляющий 1 мкА |
Большой период WDT |
Да |
Нет |
Нет |
Да |
Да |
Период WDT от 131 сек до 4 мсек |
Низкопотребляющий WDT |
Да |
Да |
Да |
Да |
Да |
Низкопотребляющий 1 мкА |
Режим быстрого старта |
Да |
Да |
Нет |
Да |
Да |
Быстрый запуск на внутреннем генераторе |
Переключение частоты |
Нет |
Нет |
Нет |
Да |
Да |
переключение между TMR1 и INT RC |
Детектор сбоя генератора |
Да |
Нет |
Нет |
Да |
Да |
- |
Функцию быстрого старта при необходимости можно заблокировать на этапе программирования микроконтроллера.
По существу, практически все, что есть в NanoWatt PIC18F, есть и в новых PIC16F, с той лишь разницей, что нет четкой систематизации режимов работы, и переключение их происходит настройкой управляющих регистров периферийных модулей. Отдельно следует отметить, что приведенная блок-схема в некоторых семействах PIC16F может быть реализована не полностью, в зависимости от конкретного типа PICmicro (см.табл.2). Таким образом достигается максимальное снижение цены для некоторых типов PIC16F. К сожалению, объем статьи не позволяет привести список всех различий для PIC16F, поэтому настоятельно рекомендуем воспользоваться фирменной документацией на продукцию Microchip, которою можно найти на сайте www.microchip.com или на компакт-диске 2003 года.
Все рассмотренные микроконтроллеры позволяют осуществлять внутрисхемную отладку на базе встроенного модуля ICD. Отличные характеристики при чрезвычайно низкой цене позволяют использовать новые микроконтроллеры в крупносерийных изделиях. Малые размеры, низкое потребление и встроенная аналоговая периферия позволяют использовать эти микроконтроллеры в приборах с батарейным питанием. А благодаря высокой надежности работы контроллеры PICmicro крайне привлекательны для устройств автомобильной электроники, пожарной сигнализации и промышленной автоматики.
Максим Еременко
|