Новое семейство
малопотребляющих микроконтроллеров М8Р430Р5хх
Микроконтроллеры семейства МБР430Р5хх представляют собой следующий шаг в развитии микроконтроллеров с ультранизким энергопотреблением МБР430. Новые микроконтроллеры имеют много общего с предшественниками, но в то же время и много отличий. В этой статье мы рассмотрим основные отличия.
Александр КВАШИН
a.kvashin@compel.ru
Обзор
Микроконтроллеры М8Р430 начали свое развитие с появлением семейства М8Р430х3хх, они работали в диапазоне напряжений 2,5—5,5 В и имели производительность до 4 М1Р8. Сейчас это семейство считается устаревшим, так как не имеет встроенной Аа8Ь-памяти и не выдерживает конкуренции с новыми семействами с точки зрения производительности и энергопотребления.
На смену М8Р430х3хх поступили следующие семейства, а именно М8Р430х1хх и М8Р43х4хх. Эти микроконтроллеры работают уже в диапазоне напряжений 1,8-3,6 В, производительность их увеличилась до 8 М1Р8, появилась встроенная АазЬ-память и множество периферийных устройств и коммуникационных интерфейсов. Микроконтроллеры М8Р43х4хх отличаются наличием контроллера ЖКИ.
Микроконтроллеры М8Р430Б2хх являются усовершенствованной версией М8Р430х1хх. Новое семейство имеет производительность до 16 М1Р8, расширенное адресное пространство, меньшее энергопотребление, поддерживает большее количество коммуникационных интерфейсов и при этом отличается меньшей ценой. Старое и новое семейство совместимы по системе команд и средствам отладки.
Не так давно анонсировано новое семейство М8Р430Б5хх, это вершина развития контроллеров с 430-м ядром. Новые представители данного семейства регулярно появляются в линейке Т1 и заметно выделяются своими характеристиками на фоне предыдущих семейств М8Р430.
Частота работы до 25 Мгц обеспечивает данные контроллеры большим запасом производительности, что позволяет применять их в приложениях, где важную роль играет
время, потраченное на вычисления. Это также позволяет контроллеру больше времени проводить режимах пониженного потребления (сна).
Помимо исключительно полезных архитектурных изменений, в 5-е семейство включено беспрецедентное разнообразие периферийных блоков, таких как ИБ-модуль или ШБ-интерфейс (ожидаются в IV квартале 2009 года). Также в новой линейке нашла применение БИАМ-память. Практически каждый периферийный модуль был заново переработан и значительно улучшен по отношению к предыдущим представителям линейки.
На рис. 1 представлена карта микроконтроллеров М8Р430, которые выпускаются или готовятся к производству. По горизонтальной оси обозначена степень интеграции, иначе говоря — условное количество периферийных блоков в микроконтроллерах. По вертикальной оси — производительность. Как видно на рис. 1, микроконтроллеры М8Р430 развиваются по обеим ключевым характеристикам.
Некоторые отличительные черты 5-го семейства приведены в таблице.
При этом немаловажным остается тот факт, что потребление энергии так же продолжает снижаться по мере совершенствования технологии. И по этому параметру 5-е поколение оставляет далеко позади другие конкурирующие решения.
О В производстве С У Поставка образцов В разработке
Запланировано на будущее
F = Flash С= ROM
Семейство 1хх
• 8 MIPS
• 1—60 кбайт
Семейство 2хх
• 16 MIPS
• 1—120 кбайт
• 500 нА в режиме сна
5хх-6хх
Up to 25 MIPS Up to 256 кбайт
• FRAM, USB, RF 6xx-w/LCD
• Память FRAM
4хх-ЖКИ
• 8/16 MIPS
• 4—120 кбайт
• ЖКИ
• ASSP
Интеграция
Рис. 1. Л инейка микроконтроллеров MSP430
Таблица. Характеристики микроконтроллеров 5-го семейства
Параметр MSP430F2xx MSP430F5xx
Максимальный объем памяти программ (flash), кбайт 120 256
Максимальный объем оперативной памяти 512 байт 16 кбайт
Частота ядра, МГц до 16 до 25
Наличие USB-интерфейса нет да
Энергопотребление в активном режиме, мкА/МГц ~220 ~160
Напряжение питания, В 1,8-3,6 1,8-3,6
Потребление тока в режиме сна, мкА 0,5 0,5
Переход с 2хх/4хх серии на 5хх
Новое семейство имеет схожую архитектуру с предыдущими, что позволяет производить портирование легко и быстро. Для адаптации уже готовых программ под платформу 5-й серии потребуется незначительное количество действий.
• Во-первых, необходимо будет адаптировать те модули, которые отвечают за управление системой тактирования и питания (модули USC и PMM).
• Во-вторых, последовательные порты потребуют некоторую коррекцию кода в связи с тем, что они стали более гибкими в настройке.
• Необходимо обратить внимание на описание прерываний.
• Порты и периферийные устройства поменяли адреса и расположение битов управления в них, и если данные адреса и биты были заданы не именами, а числами, то нужна ручная перестановка; в случае, если регистры заданы именами, то это облегчит задачу программиста, а компилятор сам найдет адреса из нового заголовочного файла (*.h), соответствующего новому микроконтроллеру.
Основные области применения нового семейства
Данную линейку контроллеров можно смело назвать семейством микроконтроллеров «для общего применения» (general purpose). Этот вывод можно сделать благодаря наличию гибко развитой системы периферии. Но при всех этих преимуществах данные приборы обладают традиционно для MSP430 контроллеров низким энергопотреблением. Поэтому, а также из-за специфики российского рынка, на котором востребованными считаются различного рода датчики для систем автоматизации, данные микросхемы удачно вписываются в концепцию беспроводных устройств. Это могут быть охранно-пожарные датчики с различными радиоинтерфейсами.
Данные устройства найдут достойное применение и в медицине. На сайте www.ti.com представленные такие интересные разработки (reference design), как ЭКГ-монитор на базе контроллера с ядром MSP430.
Счетчики электроэнергии, как и счетчики воды, газа, тепла, сейчас нуждаются в энергетически экономичных системах контроля и учета, а данные контроллеры идеально для этого подходят.
Кроме беспроводных устройств, новая линейка отлично подходит для построения портативной техники — различных измерителей, регистраторов и проч., в том числе и для медицины.
Система памяти
Система памяти MSP430F5xx значительно отличается от системы памяти MSP430F2xx
и MSP430x4xx. Эти изменения необходимы для расширения адресного пространства, поддержки новых периферийных устройств и дальнейших усовершенствований. Таким образом, 5-е семейство позволило включать объем памяти программ 256 кбайт, а в будущем — до 1 Мбайт. Область памяти для периферийных устройств расширилась до 4 кбайт. Раньше эта область памяти имела побайтную организацию, что тоже изменилось. Доступ к большинству регистров периферийных устройств можно осуществлять в формате байт и слов (16 бит), однако есть исключения.
Область памяти ОЗУ MSP430F5xx начинается с адреса 01C00h. Размер этой области зависит от объема ОЗУ конкретного микроконтроллера. Таблица векторов прерываний находится там же, вверху адресного пространства, но число векторов прерываний увеличилось до 64. Область памяти для загрузчика увеличилась до 2 кбайт, так как загрузчик поддерживает большее количество режимов загрузки, в том числе и режим, генерируемый пользователем.
Ядро
Ядро состоит из следующих модулей: CPUX, PMM, UCS, SYS и JTAG/EEM. Состав ядра нового семейства остался неизменным.
Центральный процессор (CPUX)
Микроконтроллеры MSP430F5xx построены на базе ядра CPUX, которое было впервые использовано в MSP430xG461x. Ядро CPUX поддерживает систему команд MSP430x с расширенным адресуемым пространством до 1 Мбайт. Аппаратное исполнение CPUX микроконтроллеров MSP430F5xx тоже имеет некоторые отличия по сравнению с MSP430x2xx/ MSP430x4xx, выражающиеся в изменении числа циклов выполнения определенных операций. Подробную информацию можно найти в документе “MSP430x5xx Family User's Guide”.
Модуль управления напряжением питания (PMM)
Микроконтроллеры MSP430x5xx производятся по новой технологии, в связи с чем снизилось напряжение питания ядра и множества периферийных модулей. Модуль управления напряжением питания (PMM) — это совершенно новый модуль в составе MSP430. К нему подключена большая часть логики MSP430x5xx. Его задача, как уже понятно из названия, заключается в регулировании напряжения питания MSP430x5xx.
PMM осуществляет контроль падения напряжения питания. Уровни допустимых значений напряжения питания регулируются программно. PMM может использоваться для динамического переключения между четырьмя уровнями напряжения питания. Эта возможность позволяет снижать энергопотребление приложения в те моменты, когда не требуется максимальная производительность.
Объединенная система синхронизации
Система синхронизации И8С имеет много общего с системой М8Р430х4хх FLL+. В микроконтроллерах М8Р430х5хх добавлен новый низкочастотный встроенный осциллятор — ИЕБО. Этот осциллятор позволяет обойтись без 32-килогерцового часового кварца при построении приложения. ИЕБО может использоваться как источник опорного сигнала системы синхронизации.
иС8 содержит несколько осцилляторов, которые могут использоваться как опорные генераторы. В их число входит ХТ1, схожий с LFXT1 в М8Р430х4хх, который может работать от внешнего часового кристалла (32 768 Гц) в низкочастотном режиме или в высокочастотном режиме от кристалла, выдающего сигнал в диапазоне 4-32 МГц. Кроме того, ХТ1 может принимать цифровой сигнал в обходном режиме. Многие микроконтроллеры семейства содержат осциллятор ХТ2, идентичный по функциям и производительности ХТ2 в высокочастотном режиме. От семейства М8Р430х2хх микроконтроллеры М8Р430х5хх унаследовали низкочастотный (12 кГц) осциллятор VLO, отличающийся очень низким энергопотреблением. Если приложение не критично к точности временных интервалов, при использовании в качестве источника тактового сигнала осциллятора VLO можно обойтись без внешнего кварца.
Как в М8Р430х2хх и М8Р430х4хх, в новых микроконтроллерах используются три системных тактовых сигнала: А^К, М^К и 8М^К. Для М8Р430х5хх нет разницы, какой из осцилляторов будет источником для этих сигналов. Например, А^К может работать от ХТ1, ХТ2 или DCO.
ХТ1 и ХТ2 нового семейства тоже содержат логику обнаружения ошибок. Отличие — в обнаружении ошибок низкочастотного кристалла. В М8Р430х5хх, при нарушении работы 32-килогерцового кристалла, система синхронизации переключается на ИЕБО. Эта возможность позволяет системе продолжать работать практически в неизменном режиме. Флаг ошибки в системе ИС8 не стирается автоматически, как в М8Р430х2хх и М8Р430х4хх, а должен сбрасываться пользователем.
Очень важно отметить, что в М8Р430х5хх входы и выходы ХТ1 и ХТ2 мультиплексированы с портами ввода/вывода общего назначения. После сброса устройства эти выводы микроконтроллера настроены как порты ввода/вывода общего назначения. В микроконтроллерах М8Р430х4хх эти выводы не мультиплексированы с другими портами, в М8Р430х2хх — наоборот, но после сброса настроены как выводы кристалла.
Системный модуль (SYS)
Системный модуль 8У8 — новый модуль для М8Р430, он берет на себя часть системных функций, имеющихся в предыдущих се-
Flesh- ОЗУ
память
Единая система тактирования
Модуль
управления
питанием
Системы слежения за питанием
16-битный
RISC-
процессор
Контроллер
прямого
доступа
Эмулятор Сторожевой таймер
Модуль
JTAG
Вычислительный
блок
Аппаратный
умножитель
Блок подсчета циклических сумм CRC
Блок
шифрования
Таймеры
Таймеры общего назначения Захват/Сравнение, ШИМ-каналы
Основной таймер +
часы реального времени
Интерфейсы Входы/выходы и связи контроллеры ЖКИ
Операционные
усилители
Компараторы
Универсальные последовательные интерфейсы SPI, US ART, I2C
Контроллер USB2.0 с PHY-драйвером
Радио-
трансиверы
Входы/выходы
общего
назначения
Драйвер
сегментного
ЖКИ
Рис. 2. Внутренняя архитектура
мействах, а также решает несколько задач, присущих только MSP430x5xx. В состав модуля SYS входит сторожевой таймер, WDT_A.
Системный модуль обрабатывает все функции сброса и немаскируемых прерываний (NMI). В качестве источников сигнала сброса выступают BOR, POR и PUC, как и в предыдущих семействах. Отличием от предшественников является то, что в MSP430x5xx для функции сброса выделен отдельный вектор прерываний, что облегчает обработку этого события. Немаскируемые прерывания теперь разделены на пользовательские (User NMI) и системные (System NMI), чего нет в MSP430x2xx и MSP430x4xx.
Системные немаскируемые прерывания вызываются модулем PMM, при обращении к свободной области памяти, сообщениями JTAG. Для системных NMI выделен отдельный генератор прерываний, что облегчает их обработку.
Источниками пользовательских немаскируемых прерываний могут быть сигнал на выводе RST/NMI, выход из строя осциллятора, нарушение доступа к flash-памяти. Для пользовательских NMI также выделен отдельный генератор прерываний.
Модуль SYS также обрабатывает дескрипторы микроконтроллера. Они представляют собой таблицы с информацией о микроконтроллере (тип, ревизия, доступные периферийные устройства). Эта функция полезна при построении встраиваемых систем, когда система может подстраивать драйверы в зависимости от доступных ресурсов. Эти таблицы также могут быть использованы различными отладочными средствами для настройки подключения.
Увеличена разрядность сторожевого таймера до 32 бит. Также есть изменения в логике обработки ошибок тактирования сторожевого таймера. Теперь при отказе ACLK или
SMCLK (от которых тактируется сторожевой таймер) автоматически происходит переключение на VLO.
Все MSP430x5xx содержат загрузочный код, который выполняется после сигнала BOR. В ходе выполнения этого кода происходит калибровка осцилляторов, проверка на заданный пользователем режим загрузки. Загрузочный код защищен от непреднамеренного доступа.
Сообщения JTAG — новинка для MSP430. Микроконтроллер позволяет обмениваться сообщениями с ЦПУ через JTAG. Эта функция может использоваться для различных целей, но основная — ввод пароля при программировании flash и обмена данными в ходе выполнения приложения.
Улучшение модуля JTAG
Микроконтроллеры MSP430x5xx поддерживают 4-проводный и 2-проводный (Spy-Bi-Wire) интерфейсы JTAG. Как и в предыдущих микроконтроллерах с интерфейсом Spy-Bi-Wire, определенная последовательность на выводах TEST/SBWTCK и RST/NMI/SBWTDIO определяет режим 4-проводного JTAG, Spy-Bi-Wire или BSL.
MSP430x5xx поддерживают модуль Enhanced Emulation Module (EEM), аналогичный модулю в MSP430x2xx и MSP430x4xx. Но в него добавлены функции подсчета циклов, сохранения состояния в определенной области памяти, номер версии EEM и даже подача сигнала на выводе TDO.
Выводы JTAG мультиплексированы с портами ввода/вывода общего назначения. При включении питания эти выводы конфигурируются как высокоимпедансные порты ввода общего назначения. Если JTAG не используется в конечном устройстве, нужно обратить особое внимание на конфигурацию портов.
Периферийные устройства
Timer_A
Timer_A функционально совместим с таймерами микроконтроллеров MSP430x2xx и MSP430x4xx. Добавлен регистр TAEX0, содержащий три дополнительных бита управления, INDEX. Эти биты управляют делителем частоты синхронизации таймера (от /1 до /8). По умолчанию коэффициент деления настраивается на /1,
Timer_B
Timer_B функционально совместим с таймерами микроконтроллеров MSP430x2xx и MSP430x4xx. Добавлен регистр TBEX0, содержащий три дополнительных бита управления, INDEX. Эти биты управляют делителем частоты синхронизации таймера (от /1 до /8). По умолчанию коэффициент деления настраивается на /1,
Модуль RTC_A
Модуль RTC_A новых микроконтроллеров базируется на модуле RTC семейства MSP430x4xx. Модуль RTC_A комбинирует в себе основные составляющие модуля Timer_A и RTC. Основная функция RTC_A заключается в реализации часов реального времени, но он может использоваться и как таймер общего назначения. RTC_A может генерировать сигнал тревоги в зависимости от настроек пользователя, а также в модуль добавлена логика калибровки,
Контроллер DMA
Контроллер прямого доступа к памяти (DMA) функционально работает так же, как и в MSP430x4xx. Число каналов увеличено до восьми. Функция DMAONFETCH заменена функцией DMARMWDIS. Когда установлен
бит DMARMWDIS, прекращаются все операции DMA, происходящие во время операций ядра чтения/изменения/записи.
Умножитель MPY32 Умножитель МРУ32 представляет собой расширенную версию 16-битного умножителя МРУ, использующегося в микроконтроллерах М8Р430х2хх и М8Р430х4хх, он может осуществлять 32-битные умножения. МРУ32 выполняет такие же операции, что и МРУ. Но, в отличие от предшественника, МРУ32 может работать с дробными числами в форматах Q. Добавлен режим насыщения для предотвращения переполнения.
Универсальный
последовательный
коммуникационный интерфейс (^С1) Изменения затронули регистры ШС1: теперь к ним можно обращаться в формате байт и слов (16 бит). Улучшилась система прерываний коммуникационного интерфейса: теперь выделено два слова генератора векторных прерываний, один для И8С1_А, другой — для И8С1_Б. Последнее нововведение облегчает обработку прерываний от каждого из модулей. Кроме того, все флаги разрешения прерываний (и связанные с ними) логически объединены.
Цифровые порты ввода/вывода
Цифровые выводы содержат подтягивающие резисторы, как и в М8Р430х2хх. Каждый порт теперь имеет регистр включения подтягивающих резисторов (РхЯЕЭД.
Все порты сгруппированы в порядке два по восемь. К порту можно обращаться в формате байта и слова, что не представлялось возможным в МвР430х2хх и М8Р430х4хх.
Добавлены векторы прерываний для первого и второго портов: Р1ІУ и Р2ІУ. Генератор векторных прерываний функционирует так же, как и генератор прерываний различных модулей МвР430х2хх и МвР430х4хх (Тішег_Л, Тішег_Б).
Циклический контроль избыточностью (СЯС-ССІТТ)
Модуль СИС-ССІТТ является новым для МЭР430 и может генерировать сигнатуру для определенной последовательности значений на шине данных. Эта опция используется для проверки содержимого памяти или генерирования контрольных сумм для проверки корректности данных.
АБС12_А
АЦП ADC12_A представляет собой улучшенную версию ADC12, использующегося во многих устройствах М8Р430х2хх и МвР430х4хх. Улучшения затронули генератор опорного
напряжения. Увеличилось число форматов выходных данных. Уменьшилось энергопотребление, возросла линейность характеристик преобразования.
Заключение
Новая линейка является достойным продолжением и развитием всего семейства М8Р430 и, безусловно, рекомендуется к применению в новых приложениях, где требуется высокая производительность не в ущерб низкому энергопотреблению, которое стало визитной карточкой всего семейства с самого его рождения. ■