Новое семейство малопотребляющих микроконтроллеров MSP430F5xx

№ 7’2009
PDF версия
Микроконтроллеры семейства MSP430F5xx представляют собой следующий шаг в развитии микроконтроллеров с ультранизким энергопотреблением MSP430. Новые микроконтроллеры имеют много общего с предшественниками, но в то же время и много отличий. В этой статье мы рассмотрим основные отличия.

Обзор

Микроконтроллеры MSP430 начали свое развитие с появлением семейства MSP430x3xx, они работали в диапазоне напряжений 2,5–5,5 В и имели производительность до 4 MIPS. Сейчас это семейство считается устаревшим, так как не имеет встроенной flash-памяти и не выдерживает конкуренции с новыми семействами с точки зрения производительности и энергопотребления.

На смену MSP430x3xx поступили следующие семейства, а именно MSP430x1xx и MSP43x4xx. Эти микроконтроллеры работают уже в диапазоне напряжений 1,8–3,6 В, производительность их увеличилась до 8 MIPS, появилась встроенная flash-память и множество периферийных устройств и коммуникационных интерфейсов. Микроконтроллеры MSP43x4xx отличаются наличием контроллера ЖКИ. Микроконтроллеры MSP430F2xx являются усовершенствованной версией MSP430x1xx. Новое семейство имеет производительность до 16 MIPS, расширенное адресное пространство, меньшее энергопотребление, поддерживает большее количество коммуникационных интерфейсов и при этом отличается меньшей ценой. Старое и новое семейство совместимы по системе команд и средствам отладки.

Не так давно анонсировано новое семейство MSP430F5xx, это вершина развития контроллеров с 430-м ядром. Новые представители данного семейства регулярно появляются в линейке TI и заметно выделяются своими характеристиками на фоне предыдущих семейств MSP430. Частота работы до 25 Мгц обеспечивает данные контроллеры большим запасом производительности, что позволяет применять их в приложениях, где важную роль играет время, потраченное на вычисления. Это также позволяет контроллеру больше времени проводить режимах пониженного потребления (сна).

Помимо исключительно полезных архитектурных изменений, в 5-е семейство включено беспрецедентное разнообразие периферийных блоков, таких как RF-модуль или USB-интерфейс (ожидаются в IV квартале 2009 года). Также в новой линейке нашла применение FRAM-память. Практически каждый периферийный модуль был заново переработан и значительно улучшен по отношению к предыдущим представителям линейки.

Рис 1. Линейка микроконтроллеров MSP430

На рис. 1 представлена карта микроконтроллеров MSP430, которые выпускаются или готовятся к производству. По горизонтальной оси обозначена степень интеграции, иначе говоря — условное количество периферийных блоков в микроконтроллерах. По вертикальной оси — производительность. Как видно на рис. 1, микроконтроллеры MSP430 развиваются по обеим ключевым характеристикам. Некоторые отличительные черты 5-го семейства приведены в таблице.

Параметр MSP403F2xx MSP403F5xx
Максимальный объем памяти программ (flash), кбайт 120 256
Максимальный объем оперативной памяти 512 байт 16 кбайт
Частота ядра, МГц до 16 до 25
Наличие USBBинтерфейс нет да
Энергопотребление в активном режиме, мкА/МГц ~220 ~160
Напряжение питания, В 1.8-3.6 1.8-3.6
Потребление тока 0.5 0.5

Таблица.Характеристики микроконтроллеров 5-го семейства

При этом немаловажным остается тот факт, что потребление энергии так же продолжает снижаться по мере совершенствования технологии. И по этому параметру 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 может использоваться для динамического переключения между четырьмя уровнями напряжения питания. Эта возможность позволяет снижать энергопотребление приложения в те моменты, когда не требуется максимальная производительность.

Объединенная система синхронизации (USC)

Система синхронизации USC имеет много общего с системой MSP430x4xx FLL+. В микроконтроллерах MSP430x5xx добавлен новый низкочастотный встроенный осциллятор — REFO. Этот осциллятор позволяет обойтись без 32-килогерцового часового кварца при построении приложения. REFO может использоваться как источник опорного сигнала системы синхронизации.

UCS содержит несколько осцилляторов, которые могут использоваться как опорные генераторы. В их число входит XT1, схожий с LFXT1 в MSP430x4xx, который может работать от внешнего часового кристалла (32 768 Гц) в низкочастотном режиме или в высокочастотном режиме от кристалла, выдающего сигнал в диапазоне 4–32 МГц. Кроме того, XT1 может принимать цифровой сигнал в обходном режиме. Многие микроконтроллеры семейства содержат осциллятор XT2, идентичный по функциям и производительности XT2 в высокочастотном режиме. От семейства MSP430x2xx микроконтроллеры MSP430x5xx унаследовали низкочастотный (12 кГц) осциллятор VLO, отличающийся очень низким энергопотреблением. Если приложение не критично к точности временных интервалов, при использовании в качестве источника тактового сигнала осциллятора VLO можно обойтись без внешнего кварца.

Как в MSP430x2xx и MSP430x4xx, в новых микроконтроллерах используются три системных тактовых сигнала: ACLK, MCLK и SMCLK. Для MSP430x5xx нет разницы, какой из осцилляторов будет источником для этих сигналов. Например, ACLK может работать от XT1, XT2 или DCO. XT1 и XT2 нового семейства тоже содержат логику обнаружения ошибок. Отличие — в обнаружении ошибок низкочастотного кристалла. В MSP430x5xx, при нарушении работы 32-килогерцового кристалла, система синхронизации переключается на REFO. Эта возможность позволяет системе продолжать работать практически в неизменном режиме. Флаг ошибки в системе UCS не стирается автоматически, как в MSP430x2xx и MSP430x4xx, а должен сбрасываться пользователем.

Очень важно отметить, что в MSP430x5xx входы и выходы XT1 и XT2 мультиплексированы с портами ввода/вывода общего назначения. После сброса устройства эти выводы микроконтроллера настроены как порты ввода/вывода общего назначения. В микроконтроллерах MSP430x4xx эти выводы не мультиплексированы с другими портами, в MSP430x2xx — наоборот, но после сброса настроены как выводы кристалла.

Системный модуль (SYS)

Системный модуль SYS — новый модуль для MSP430, он берет на себя часть системных функций, имеющихся в предыдущих семействах, а также решает несколько задач, присущих только MSP430x5xx. В состав модуля SYS входит сторожевой таймер, WDT_A. Системный модуль обрабатывает все функции сброса и немаскируемых прерываний (NMI). В качестве источников сигнала сброса выступают BOR, POR и PUC, как и в предыдущих семействах. Отличием от предшественников является то, что в MSP430x5xx для функции сброса выделен отдельный вектор прерываний, что облегчает обработку этого события. Немаскируемые прерывания теперь разделены на пользовательские (User NMI) и системные (System NMI), чего нет в MSP430x2xx и MSP430x4xx. Системные немаскируемые прерывания вызываются модулем PMM, при обращении к свободной области памяти, сообщениями JTAG. Для системных NMI выделен отдельный генератор прерываний, что облегчает их обработку.

Рис. 2. Внутренняя архитектура

Источниками пользовательских немаскируемых прерываний могут быть сигнал на выводе RST/NMI, выход из строя осциллятора, нарушение доступа к flash-памяти. Для

пользовательских NMI также выделен отдельный генератор прерываний. Модуль SYS также обрабатывает дескрипторы микроконтроллера. Они представляют собой таблицы с информацией о микроконтроллере (тип, ревизия, доступные периферийные устройства). Эта функция полезна при построении встраиваемых систем, когда система может подстраивать драйверы в зависимости от доступных ресурсов. Эти таблицы также могут быть использованы различными отладочными средствами для настройки подключения.

Увеличена разрядность сторожевого таймера до 32 бит. Также есть изменения в логике обработки ошибок тактирования сторожевого таймера. Теперь при отказе ACLK или SMCLK (от которых тактируется сторожевой таймер) автоматически происходит переключение на VLO. Все MSP430x5xx содержат загрузочный код, который выполняется после сигнала BOR. В ходе выполнения этого кода происходит калибровка осцилляторов, проверка на заданный пользователем режим загрузки. Загрузочный код защищен от непреднамеренного доступа. Сообщения JTAG — новинка для MSP430. Микроконтроллер позволяет обмениваться сообщениями с ЦПУ через JTAG. Эта функция может использоваться для различных целей, но основная — ввод пароля при программировании flash и обмена данными в ходе выполнения приложения

Улучшение модуля JTAG

Микроконтроллеры MSP430x5xx поддерживают 4-проводный и 2-проводный (SpyBi-Wire) интерфейсы JTAG. Как и в предыдущих микроконтроллерах с интерфейсом SpyBi-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

Умножитель MPY32 представляет собой расширенную версию 16-битного умножителя MPY, использующегося в микроконтроллерах MSP430x2xx и MSP430x4xx, он может осуществлять 32-битные умножения. MPY32 выполняет такие же операции, что и MPY. Но, в отличие от предшественника, MPY32 может работать с дробными числами в форматах Q. Добавлен режим насыщения для предотвращения переполнения.

Универсальный последовательный коммуникационный интерфейс (USCI)

Изменения затронули регистры USCI: теперь к ним можно обращаться в формате байт и слов (16 бит). Улучшилась система прерываний коммуникационного интерфейса: теперь выделено два слова генератора векторных прерываний, один для USCI_A, другой — для USCI_B. Последнее нововведение облегчает обработку прерываний от каждого из модулей. Кроме того, все флаги разрешения прерываний (и связанные с ними) логически объединены.

Цифровые порты ввода/вывода

Цифровые выводы содержат подтягивающие резисторы, как и в MSP430x2xx. Каждый порт теперь имеет регистр включения подтягивающих резисторов (PxREN). Все порты сгруппированы в порядке два по восемь. К порту можно обращаться в формате байта и слова, что не представлялось возможным в MSP430x2xx и MSP430x4xx. Добавлены векторы прерываний для первого и второго портов: P1IV и P2IV. Генератор векторных прерываний функционирует так же, как и генератор прерываний различных модулей MSP430x2xx и MSP430x4xx (Timer_A, Timer_B).

Циклический контроль избыточностью (CRC-CCITT)

Модуль CRC-CCITT является новым для MSP430 и может генерировать сигнатуру для определенной последовательности значений на шине данных. Эта опция используется для проверки содержимого памяти или генерирования контрольных сумм для проверки корректности данных.

ADC12_A

АЦП ADC12_A представляет собой улучшенную версию ADC12, использующегося во многих устройствах MSP430x2xx и MSP430x4xx. Улучшения затронули генератор опорного напряжения. Увеличилось число форматов выходных данных. Уменьшилось энергопотребление, возросла линейность характеристик преобразования.

Заключение

Новая линейка является достойным продолжением и развитием всего семейства MSP430 и, безусловно, рекомендуется к применению в новых приложениях, где требуется высокая производительность не в ущерб низкому энергопотреблению, которое стало визитной карточкой всего семейства с самого его рождения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *