Выпуск #8/2008
М.Соколов.
Новое поколение совместимых 8- и 32-разрядных микроконтроллеров
Новое поколение совместимых 8- и 32-разрядных микроконтроллеров
Просмотры: 2489
Компания Freescale реализует концепцию Controller Continuum, суть которой – создание условий для плавного перехода от 8-разрядных микроконтроллеров на базе ядра RS08 к высокопроизводительным 32-разрядным на основе ядра ColdFire. Плавность означает возможность постоянного использования единой среды разработки и отработанного программного кода. Внедрение концепции Controller Continuum позволит унифицировать некоторые решения для потребительского и промышленного рынков, перераспределить расходы на их разработку.
Компания Freescale Semiconductor, мировой лидер в области производства микроконтроллеров для встраиваемых приложений и автомобильной электроники, в июле 2007 года выпустила первое в мире семейство полностью совместимых 8- и 32-разрядных микроконтроллеров (МК) со сверхнизким энергопотреблением – Flexis [1]. Первыми микроконтроллерами в этой линейке были микроконтроллеры общего назначения MC9S08QEхх (8-разрядное ядро S08) и MCF51QEхх (32-разрядное ядро Coldfire V1). Полная линейка МК общего назначения семейства Flexis приведена на рис.1. В 2008 году компания Freescale вывела на рынок еще три линейки совместимых МК этого семейства: MCF51LMxx с LCD-модулем и периферией для измерительных систем (16-разрядные АЦП, умножители и т. п.); MCF51JMxx с USB – интерфейсом, модулями аппаратного шифрования и генерации случайных чисел, а также MCF51ACxx с CAN интерфейсом для промышленных и автомобильных приложений (рис.2).
Эти линейки МК совместимы благодаря унифицированным корпусам (для 8-разрядных МК – версии с объемом флеш памяти от 60 Кбайт до 128 Кбайт), единой периферии. За счет программирования на языке СИ также обеспечивается общий программный код. Технология создания универсального ПО, способного работать на совместимых ядрах семейства Flexis, изложена в отдельном документе, его можно найти на сайте компании. Компания предлагает также единую среду разработки ПО – CodeWarrior IDE версии 6.0 – и общие средства отладки и программирования. Причем в качестве программатора предлагается стандартный отладчик USB BDM Multilink, который уже применяется во всех существующих линейках 8- и 16-разрядных МК семейств MC9S08хх и MC9S12хх. Однако вопросы совместимости заслуживают более детального рассмотрения, что выходит за рамки данной статьи. Остановимся на особенностях и режимах работы, обеспечивающих сверхмалое энергопотребление в семействе Flexis.
Микроконтроллеры семейства Flexis имеют следующие общие свойства (вне зависимости от разрядности):
* максимальные частота ядра – 50 МГц и частота шины – 25М Гц;
* полнофункциональная работа ядра и периферии в диапазоне напряжений от 3,6 до 2,1 В, в диапазоне напряжений от 2,1 до 1,8 В возможна работа ядра на частотах до 20 МГц;
* память до 128 Кбайт флеш, SRAM до 8 Кбайт, эмуляция EEPROM в флеш-памяти возможна во всем рабочем диапазоне напряжений от 3,6 до 1,8 В;
* интерфейсы SCI(UART)x2, I2Cx2, SPIx2;
* модули клавиатуры/внешних прерываний KBI (8-канальный) x2;
* модули 16-разрядных таймеров: 1×6-канальный, 2×3-канальный;
* 12-разрядный 24-канальный модуль АЦП;
* два аналоговых компаратора;
* до 70 портов ввода/вывода общего назначения;
* сторожевой таймер;
* модуль встроенного генератора с системой автоподстройки частоты FLL, работающей быстрее, нежели обычные ФАПЧ (PLL);
* регулятор напряжения с быстрым восстановлением;
* микропотребляющие кварцевый генератор 32 кГц и встроенный генератор 1 кГц;
* микропотребляющий счетчик реального времени;
* система распределенного управления тактированием периферийных модулей.
При идентичных периферийных модулях и сравнимой стоимости (для версий с одинаковым объемом флеш-памяти) МК семейства Flexis имеют разные применения.
Микроконтроллеры MC9S08QExx, выполненные по CISC-архитектуре, в первую очередь предназначены для приложений с ультранизким энергопотреблением, в которых не предполагается значительных математических вычислений, а также для приложений с повышенными требованиями к объему программного кода. Все это напрямую влияет на стоимость чипа.
Микроконтроллеры MCF51QE128 (Coldfire V1) решают задачи, в которых требуется высокая производительность, возможность обработки сложных математических алгоритмов. При этом микроконтроллер должен иметь стоимость на уровне 8-разрядных МК и работать с минимальным энергопотреблением как в активных, так и в "спящих" режимах. Производительность MCF51QEхх составляет 0,76 DMIPS/МГц при выполнении кода из флеш-памяти и 0,94 DMIPS/МГц – при выполнении кода из ОЗУ. Потребление мощности данного МК во всех режимах работы несколько превосходит его 8-разрядный "аналог", однако для 32-разрядного ядра эти значения крайне низки. Таким образом, МК MCF51QE128 по праву можно отнести к категории микропотребляющих. Детальное описание всех общих элементов и некоторых отличий между 8- и 32- разрядными МК семейства Flexis можно найти на сайте производителя.
Основные факторы, обеспечивающие сверхнизкое потребление в МК семейства Flexis, можно разделить на две группы:
* Микропотребляющие режимы работы:
* шесть унифицированных режимов работы МК (для MCF51QE128 – дополнительный индивидуальный режим stop4);
* возможность работы на максимальной частоте до 50 МГц в диапазоне напряжений от 3,6 до 2,1 В, на частоте до 20 МГц – в диапазоне напряжений от 2,1 до 1,8 В;
* возможность внутрисхемного программирования и эмуляции EEPROM во флeш-памяти во всем рабочем диапазоне напряжений от 3,6 до l1,8 В;
* работа центрального процессора и периферии при внутреннем регуляторе напряжения, находящемся в "спящем" режиме;
* сниженные токи потребления в активных и "спящих" режимах;
* быстрый переход из "спящего" в активное состояние (от 6 мкс и больше, в зависимости от активированного "спящего" режима и настроек модуля внутреннего генератора).
* Микропотребляющие система тактирования и счетчик реального времени:
* микропотребляющий счетчик реального времени работает в активных и "спящих" режимах;
* возможность управлять сигналами тактирования каждого из периферийных модулей с индивидуальным отключением любого отдельного модуля;
* внутренний генератор с возможностью смены источника тактирования и перестройки частоты в процессе работы;
* полноценное функционирование всех подсистем МК при сниженной частоте тактирования (до единиц килогерц);
* модернизированный генератор с тактированием от внешнего кварцевого резонатора, потребляющий менее 1 мкА;
* микропотребляющий внутренний генератор 1 кГц.
Рассмотрим некоторые из перечисленных факторов.
Режимы работы микроконтроллеров семейства Flexis
В отличие от предыдущих версий ядра MC9S08, модернизированное ядро MC9S08QEхх может работать в шести режимах. Ядро Coldfire V1 (MCF51QExx) помимо шести унифицированных режимов, обладает собственным, седьмым, режимом пониженного энергопотребления.
Run – центральный процессор работает в активном режиме, максимальная частота 50 МГц, внутренний регулятор напряжения полностью активен. Потребление тока на максимальной частоте при активации всех периферийных модулей: 17 мА – для MC9S08QE128 и 33 мА – для MCF51QE128. При отключенных периферийных модулях: 11 мА – для MC9S08QE128 и 27 мА – для MCF51QE128.
Wait – центральный процессор отключен, система тактирования и внутренний регулятор полностью активны. Режим позволяет сократить потребление по сравнению с активным режимом, например при работе с периферией, когда процессор ожидает данных для обработки. Потребление тока на максимальной частоте при отключенных периферийных модулях: 5,7 мА – для MC9S08QE128 и 4,1 мА – для MCF51QE128.
Low-power run (LPRun) – максимальная частота тактирования шины центрального процессора и периферии ограничена уровнем 125 кГц, внутренний регулятор находится в "спящем" режиме. Потребление тока МК на частоте ядра процессора 32 кГц, при отключенных периферийных модулях и при выполнении программного кода из флеш-памяти: 22 мкА – для MC9S08QE128 и 50 мкА – для MCF51QE128. При выполнении программного кода из RAM: 7 мкА – для MC9S08QE128 и 19 мкА – для MCF51QE128.
Low-power wait (LPWait) – центральный процессор отключен, максимальная частота тактирования периферии ограничена уровнем 125кГц, внутренний регулятор находится в "спящем" режиме. Потребление тока при отключенных периферийных модулях: 3,3 мкА – для MC9S08QE128 и 5 мкА – для MCF51QE128.
Stop4 (только для Coldfire V1) – центральный процессор и периферия отключены, внутренний регулятор полностью активен, тактовый генератор работает на максимальной заданной частоте для мгновенного перехода в активный режим, при этом содержимое ОЗУ сохраняется.
Stop3 – центральный процессор отключен, внутренний регулятор частично активен и обеспечивает быструю активацию периферии; максимальная частота внутреннего генератора ограничена уровнем 125 кГц; содержимое ОЗУ сохраняется; при выходе из режима не требуется повторной инициализации периферии. Потребление тока при отключенных периферийных модулях: для MC9S08QE128 – 450 нА при напряжении питания 3В и 350 нА при напряжении питания 2В; для MCF51QE128 – 520 нА.
Stop2 – режим наименьшего энергопотребления – предусматривает возможность активации счетчика реального времени. Тактирование счетчика производится от двух источников: от внутреннего микропотребляющего генератора 1 кГц либо от кварцевого генератора без перемножителя частоты в диапазоне от 31,25 до 38,4 кГц. Центральный процессор и остальные периферийные модули отключены, внутренний регулятор напряжения частично выключен, содержимое ОЗУ сохраняется, также как и состояния портов ввода-вывода. Потребление тока составляет: 350 нА для MC9S08QE128 – при 3 В и 250 нА при 2 В; для MCF51QE128 – 350 нА.
Для всех МК семейства Flexis время перехода из "спящего" в активный режим включает: время активации микропотребляющего регулятора напряжения и выхода на режим внутреннего генератора. Время активации регулятора напряжения составляет примерно 5 мкс вне зависимости от частоты тактирования генератора, время стабилизации частоты внутреннего генератора зависит от выбранного "спящего" режима и, соответственно, рабочей частоты генератора. Число циклов, необходимых для стабилизации частоты, всегда одинаково.
Микропотребление в системе МК достигается не только за счет малых рабочих токов периферийных модулей, ЦП и экономичных "спящих" режимов. Немалую роль здесь играет возможность гибкого динамического управления системой тактирования МК в активных режимах работы Run и LPRun. Перечислим основные составляющие динамического управления:
* работа ЦП на максимальной частоте при выполнении задач, к которым предъявляются повышенные требования к производительности и времени выполнения;
* работа ЦП на низких частотах (до единиц килогерц), например, при ожидании результатов работы периферийных модулей;
* работа системы тактирования от внешнего низкочастотного источника при отключенной FLL (система автоматической подстройки частоты).
Все перечисленные функции в семействе Flexis обеспечивает модуль внутреннего генератора (ICS). В модуле есть система автоматической подстройки частоты (FLL) с возможностью дополнительной настройки внутреннего опорного сигнала с точностью до 0,2% и разбросом значений до 2% во всем диапазоне рабочих напряжений и температур. Диапазон входных частот FLL – от 31,25 до 38,4 кГц. Источником сигнала для FLL могут быть как внутренний опорный сигнал, так и внешний сигнал тактирования (кварц или генератор). В качестве источника тактирования МК выступают как внутренний, так и внешние сигналы, с использованием FLL и без него. Вне зависимости от источника сигнала тактирования, частота тактирования может быть уменьшена предделителем. Модуль внутреннего генератора обеспечивает возможность тактирования ЦП и большинства периферийных модулей от внутреннего источника либо от внешнего источника с FLL при одновременном тактировании счетчика реального времени непосредственно от внешнего "часового" кварца либо от внутреннего генератора 1 кГц, а также тактирование модуля АЦП от собственного внутреннего асинхронного генератора. Три цифровых генератора оптимизированы под различные диапазоны частот и имеют дополнительную опцию по генерации максимальной рабочей частоты от опорного внешнего сигнала 32,768 кГц. Три из семи режимов работы внутреннего генератора не требуют никаких внешних компонентов. Все режимы работы активируются программно и могут быть изменены в любой момент работы МК. В табл.1 приведены значения токов потребления МК семейства Flexis в основных режимах работы при напряжении питания 3 В и температуре 25°С.
Новое семейство микроконтроллеров Flexis 8/16-разрядных недорогих следует признать сильным игроком на рынке, способным потеснить, казалось бы, незыблимые позиции TI и Microchip (табл.2). Для сравнения в табл. 2 добавлены два других популярных 8-разрядных микроконтроллера компании Freescale, созданных на ядре MC9S08, но не относящихся к новому микропотребляющему семейству Flexis. Можно сказать, что МК MCF51QE128 (см. табл.1) устанавливает новые стандарты в области 32-разрядных микропотребляющих МК. Информацию о новом семействе МК можно найти на сайте производителя www.freescale.com/flexis.
М.Соколов
Эти линейки МК совместимы благодаря унифицированным корпусам (для 8-разрядных МК – версии с объемом флеш памяти от 60 Кбайт до 128 Кбайт), единой периферии. За счет программирования на языке СИ также обеспечивается общий программный код. Технология создания универсального ПО, способного работать на совместимых ядрах семейства Flexis, изложена в отдельном документе, его можно найти на сайте компании. Компания предлагает также единую среду разработки ПО – CodeWarrior IDE версии 6.0 – и общие средства отладки и программирования. Причем в качестве программатора предлагается стандартный отладчик USB BDM Multilink, который уже применяется во всех существующих линейках 8- и 16-разрядных МК семейств MC9S08хх и MC9S12хх. Однако вопросы совместимости заслуживают более детального рассмотрения, что выходит за рамки данной статьи. Остановимся на особенностях и режимах работы, обеспечивающих сверхмалое энергопотребление в семействе Flexis.
Микроконтроллеры семейства Flexis имеют следующие общие свойства (вне зависимости от разрядности):
* максимальные частота ядра – 50 МГц и частота шины – 25М Гц;
* полнофункциональная работа ядра и периферии в диапазоне напряжений от 3,6 до 2,1 В, в диапазоне напряжений от 2,1 до 1,8 В возможна работа ядра на частотах до 20 МГц;
* память до 128 Кбайт флеш, SRAM до 8 Кбайт, эмуляция EEPROM в флеш-памяти возможна во всем рабочем диапазоне напряжений от 3,6 до 1,8 В;
* интерфейсы SCI(UART)x2, I2Cx2, SPIx2;
* модули клавиатуры/внешних прерываний KBI (8-канальный) x2;
* модули 16-разрядных таймеров: 1×6-канальный, 2×3-канальный;
* 12-разрядный 24-канальный модуль АЦП;
* два аналоговых компаратора;
* до 70 портов ввода/вывода общего назначения;
* сторожевой таймер;
* модуль встроенного генератора с системой автоподстройки частоты FLL, работающей быстрее, нежели обычные ФАПЧ (PLL);
* регулятор напряжения с быстрым восстановлением;
* микропотребляющие кварцевый генератор 32 кГц и встроенный генератор 1 кГц;
* микропотребляющий счетчик реального времени;
* система распределенного управления тактированием периферийных модулей.
При идентичных периферийных модулях и сравнимой стоимости (для версий с одинаковым объемом флеш-памяти) МК семейства Flexis имеют разные применения.
Микроконтроллеры MC9S08QExx, выполненные по CISC-архитектуре, в первую очередь предназначены для приложений с ультранизким энергопотреблением, в которых не предполагается значительных математических вычислений, а также для приложений с повышенными требованиями к объему программного кода. Все это напрямую влияет на стоимость чипа.
Микроконтроллеры MCF51QE128 (Coldfire V1) решают задачи, в которых требуется высокая производительность, возможность обработки сложных математических алгоритмов. При этом микроконтроллер должен иметь стоимость на уровне 8-разрядных МК и работать с минимальным энергопотреблением как в активных, так и в "спящих" режимах. Производительность MCF51QEхх составляет 0,76 DMIPS/МГц при выполнении кода из флеш-памяти и 0,94 DMIPS/МГц – при выполнении кода из ОЗУ. Потребление мощности данного МК во всех режимах работы несколько превосходит его 8-разрядный "аналог", однако для 32-разрядного ядра эти значения крайне низки. Таким образом, МК MCF51QE128 по праву можно отнести к категории микропотребляющих. Детальное описание всех общих элементов и некоторых отличий между 8- и 32- разрядными МК семейства Flexis можно найти на сайте производителя.
Основные факторы, обеспечивающие сверхнизкое потребление в МК семейства Flexis, можно разделить на две группы:
* Микропотребляющие режимы работы:
* шесть унифицированных режимов работы МК (для MCF51QE128 – дополнительный индивидуальный режим stop4);
* возможность работы на максимальной частоте до 50 МГц в диапазоне напряжений от 3,6 до 2,1 В, на частоте до 20 МГц – в диапазоне напряжений от 2,1 до 1,8 В;
* возможность внутрисхемного программирования и эмуляции EEPROM во флeш-памяти во всем рабочем диапазоне напряжений от 3,6 до l1,8 В;
* работа центрального процессора и периферии при внутреннем регуляторе напряжения, находящемся в "спящем" режиме;
* сниженные токи потребления в активных и "спящих" режимах;
* быстрый переход из "спящего" в активное состояние (от 6 мкс и больше, в зависимости от активированного "спящего" режима и настроек модуля внутреннего генератора).
* Микропотребляющие система тактирования и счетчик реального времени:
* микропотребляющий счетчик реального времени работает в активных и "спящих" режимах;
* возможность управлять сигналами тактирования каждого из периферийных модулей с индивидуальным отключением любого отдельного модуля;
* внутренний генератор с возможностью смены источника тактирования и перестройки частоты в процессе работы;
* полноценное функционирование всех подсистем МК при сниженной частоте тактирования (до единиц килогерц);
* модернизированный генератор с тактированием от внешнего кварцевого резонатора, потребляющий менее 1 мкА;
* микропотребляющий внутренний генератор 1 кГц.
Рассмотрим некоторые из перечисленных факторов.
Режимы работы микроконтроллеров семейства Flexis
В отличие от предыдущих версий ядра MC9S08, модернизированное ядро MC9S08QEхх может работать в шести режимах. Ядро Coldfire V1 (MCF51QExx) помимо шести унифицированных режимов, обладает собственным, седьмым, режимом пониженного энергопотребления.
Run – центральный процессор работает в активном режиме, максимальная частота 50 МГц, внутренний регулятор напряжения полностью активен. Потребление тока на максимальной частоте при активации всех периферийных модулей: 17 мА – для MC9S08QE128 и 33 мА – для MCF51QE128. При отключенных периферийных модулях: 11 мА – для MC9S08QE128 и 27 мА – для MCF51QE128.
Wait – центральный процессор отключен, система тактирования и внутренний регулятор полностью активны. Режим позволяет сократить потребление по сравнению с активным режимом, например при работе с периферией, когда процессор ожидает данных для обработки. Потребление тока на максимальной частоте при отключенных периферийных модулях: 5,7 мА – для MC9S08QE128 и 4,1 мА – для MCF51QE128.
Low-power run (LPRun) – максимальная частота тактирования шины центрального процессора и периферии ограничена уровнем 125 кГц, внутренний регулятор находится в "спящем" режиме. Потребление тока МК на частоте ядра процессора 32 кГц, при отключенных периферийных модулях и при выполнении программного кода из флеш-памяти: 22 мкА – для MC9S08QE128 и 50 мкА – для MCF51QE128. При выполнении программного кода из RAM: 7 мкА – для MC9S08QE128 и 19 мкА – для MCF51QE128.
Low-power wait (LPWait) – центральный процессор отключен, максимальная частота тактирования периферии ограничена уровнем 125кГц, внутренний регулятор находится в "спящем" режиме. Потребление тока при отключенных периферийных модулях: 3,3 мкА – для MC9S08QE128 и 5 мкА – для MCF51QE128.
Stop4 (только для Coldfire V1) – центральный процессор и периферия отключены, внутренний регулятор полностью активен, тактовый генератор работает на максимальной заданной частоте для мгновенного перехода в активный режим, при этом содержимое ОЗУ сохраняется.
Stop3 – центральный процессор отключен, внутренний регулятор частично активен и обеспечивает быструю активацию периферии; максимальная частота внутреннего генератора ограничена уровнем 125 кГц; содержимое ОЗУ сохраняется; при выходе из режима не требуется повторной инициализации периферии. Потребление тока при отключенных периферийных модулях: для MC9S08QE128 – 450 нА при напряжении питания 3В и 350 нА при напряжении питания 2В; для MCF51QE128 – 520 нА.
Stop2 – режим наименьшего энергопотребления – предусматривает возможность активации счетчика реального времени. Тактирование счетчика производится от двух источников: от внутреннего микропотребляющего генератора 1 кГц либо от кварцевого генератора без перемножителя частоты в диапазоне от 31,25 до 38,4 кГц. Центральный процессор и остальные периферийные модули отключены, внутренний регулятор напряжения частично выключен, содержимое ОЗУ сохраняется, также как и состояния портов ввода-вывода. Потребление тока составляет: 350 нА для MC9S08QE128 – при 3 В и 250 нА при 2 В; для MCF51QE128 – 350 нА.
Для всех МК семейства Flexis время перехода из "спящего" в активный режим включает: время активации микропотребляющего регулятора напряжения и выхода на режим внутреннего генератора. Время активации регулятора напряжения составляет примерно 5 мкс вне зависимости от частоты тактирования генератора, время стабилизации частоты внутреннего генератора зависит от выбранного "спящего" режима и, соответственно, рабочей частоты генератора. Число циклов, необходимых для стабилизации частоты, всегда одинаково.
Микропотребление в системе МК достигается не только за счет малых рабочих токов периферийных модулей, ЦП и экономичных "спящих" режимов. Немалую роль здесь играет возможность гибкого динамического управления системой тактирования МК в активных режимах работы Run и LPRun. Перечислим основные составляющие динамического управления:
* работа ЦП на максимальной частоте при выполнении задач, к которым предъявляются повышенные требования к производительности и времени выполнения;
* работа ЦП на низких частотах (до единиц килогерц), например, при ожидании результатов работы периферийных модулей;
* работа системы тактирования от внешнего низкочастотного источника при отключенной FLL (система автоматической подстройки частоты).
Все перечисленные функции в семействе Flexis обеспечивает модуль внутреннего генератора (ICS). В модуле есть система автоматической подстройки частоты (FLL) с возможностью дополнительной настройки внутреннего опорного сигнала с точностью до 0,2% и разбросом значений до 2% во всем диапазоне рабочих напряжений и температур. Диапазон входных частот FLL – от 31,25 до 38,4 кГц. Источником сигнала для FLL могут быть как внутренний опорный сигнал, так и внешний сигнал тактирования (кварц или генератор). В качестве источника тактирования МК выступают как внутренний, так и внешние сигналы, с использованием FLL и без него. Вне зависимости от источника сигнала тактирования, частота тактирования может быть уменьшена предделителем. Модуль внутреннего генератора обеспечивает возможность тактирования ЦП и большинства периферийных модулей от внутреннего источника либо от внешнего источника с FLL при одновременном тактировании счетчика реального времени непосредственно от внешнего "часового" кварца либо от внутреннего генератора 1 кГц, а также тактирование модуля АЦП от собственного внутреннего асинхронного генератора. Три цифровых генератора оптимизированы под различные диапазоны частот и имеют дополнительную опцию по генерации максимальной рабочей частоты от опорного внешнего сигнала 32,768 кГц. Три из семи режимов работы внутреннего генератора не требуют никаких внешних компонентов. Все режимы работы активируются программно и могут быть изменены в любой момент работы МК. В табл.1 приведены значения токов потребления МК семейства Flexis в основных режимах работы при напряжении питания 3 В и температуре 25°С.
Новое семейство микроконтроллеров Flexis 8/16-разрядных недорогих следует признать сильным игроком на рынке, способным потеснить, казалось бы, незыблимые позиции TI и Microchip (табл.2). Для сравнения в табл. 2 добавлены два других популярных 8-разрядных микроконтроллера компании Freescale, созданных на ядре MC9S08, но не относящихся к новому микропотребляющему семейству Flexis. Можно сказать, что МК MCF51QE128 (см. табл.1) устанавливает новые стандарты в области 32-разрядных микропотребляющих МК. Информацию о новом семействе МК можно найти на сайте производителя www.freescale.com/flexis.
М.Соколов
Отзывы читателей