// КОМПЭЛ / Микроконтроллеры / MSP430F5xx: отличия от предшественников

MSP430F5xx: отличия от предшественников

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

1 Немного истории

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

Наверное, будет грубо сравнивать MSP430x3xx с «первым блином», но большой популярностью пользуются в основном последующие семейства, а именно MSP430x1xx и MSP43x4xx. Эти микроконтроллеры работают в диапазоне напряжение от 1.8 В до 3.6 В, производительность их увеличилась до 8 MIPS, появилась встроенная flash  память и множество периферийных устройств и коммуникационных интерфейсов. Микроконтроллеры MSP43x4xx отличаются наличием контроллера ЖКИ.

Микроконтроллеры MSP430F2xx являются усовершенствованной версией MSP430x1xx. Новое семейство имеет производительность до 16 MIPS, расширенное адресное пространство, меньшее энергопотребление, поддерживает большее количество коммуникационных интерфейсов и дешевле по цене. При этом старое и новое семейство совместимы по системе команд, средствам отладки.

Ничто не стоит на месте. В начале июня 2008 года TI официально объявила о новом семействе MSP430F5xx. Ниже мы рассмотрим отличия этого семейства в сравнении с MSP430F2xx и MSP430x4xx.

2 Система памяти

Система памяти MSP430F5xx значительно отличается от системы памяти MSP430F2xx и MSP430x4xx. Эти изменения необходимы для расширения адресного пространства, поддержки новых периферийных устройств и дальнейших усовершенствований. Область памяти для периферийных устройств расширилось до 4 КБ. Раньше эта область памяти имела побайтную организацию, что тоже изменилось. Доступ к большинству регистров периферийных устройств можно осуществлять в формате байт и слов (16-бит), однако есть исключения.

Область памяти ОЗУ MSP430F5xx начинается с адреса 01C00h. Размер этой области зависит от объема ОЗУ конкретного микроконтроллера.Таблица векторов прерываний находится там же, вверху адресного пространства, но число векторов прерываний увеличилось до 64. Область памяти для загрузчика увеличилась до 2 КБ, так как загрузчик поддерживает большее количество режимов загрузки, в том числе и режим, генерируемый пользователем.

3 Ядро

Ядро состоит из следующих модулей: CPUX, PMM, UCS, SYS и JTAG/EEM. Состав ядра нового семейства остался неизменным.

3.1 Центральный процессор (CPUX)

Микроконтроллеры MSP430F5xx построены на базе ядра CPUX, которое было впервые использовано в MSP430xG461x. Ядро CPUX поддерживает систему команд MSP430X с расширенным адресуемым пространством до 1 МБ. Аппаратное исполнение CPUX микроконтроллеров MSP430F5xx тоже имеет некоторые отличия по сравнению с MSP430x2xx/MSP430x4xx, выражающиеся в изменении числа циклов выполнения определенных операций. Подробную информацию можно найти в документе «MSP430x5xx Family User’s Guide».

3.2 Модуль управления напряжением питания (PMM)

Микроконтроллеры MSP430x5xx производятся по новой технологии, в связи с чем, снизилось напряжение питания ядра и множества периферийных модулей. Модуль управления напряжением питания (PMM) – это совершенно новый модуль в составе MSP430. К нему подключена большая часть логики  MSP430x5xx. Его задача, как уже понятно из названия и предыдущих двух предложений, заключается в регулировании напряжения питания MSP430x5xx.

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

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

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

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

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

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

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

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

Системный модуль SYS – новый модуль для MSP430, берет на себя часть системных функций, имеющихся в предыдущих семействах, а также решает несколько задач, присущих только 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 и обмена данными в ходе выполнения приложения.

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

Микроконтроллеры MSP430x5xx поддерживают 4-проводный и 2-проводный (Spy-Bi-Wire) интерфейсы JTAG. Как и в предыдущих микроконтроллерах с интерфейсом Spy-Bi-Wire, определенная последовательность на выводах TEST/SBWTCK и RST/NMI/SBWTDIO определяет режим четырехпроводного JTAG, Spy-Bi-Wire или BSL.

MSP430x5xx поддерживают модуль Enhanced Emulation Module (EEM), аналогичный модулю в MSP430x2xx и MSP430x4xx. Но в него добавлена функции подсчета циклов, сохранения состояния в определенной области памяти, номер версии EEM и даже подача сигнала на выводе TDO.

Выводы JTAG мультиплексированы с портами ввода/вывода общего назначения. При включении питания эти выводы конфигурируются как высокоимпедансные порты ввода общего назначения. Если JTAG не используется в конечном устройстве, нужно обратить особое внимание на конфигурацию портов.

4 Периферийные устройства

4.1 Timer_A

Timer_A функционально совместим с таймерами микроконтроллеров MSP430x2xx и MSP430x4xx. Добавлен регистр TAEX0, содержащий три дополнительных бита управления, INDEX. Эти биты управляют делителем частоты синхронизации таймера (от /1 до /8). По умолчанию коэффициент деления настраивается на /1.

4.2 Timer_B

Timer_B функционально совместим с таймерами микроконтроллеров MSP430x2xx и MSP430x4xx. Добавлен регистр TBEX0, содержащий три дополнительных бита управления, INDEX. Эти биты управляют делителем частоты синхронизации таймера (от /1 до /8). По умолчанию коэффициент деления настраивается на /1.

4.3 RTC_A

Модуль RTC_A новых микроконтроллеров базируется на модуле RTC семейства MSP430x4xx. Модуль RTC_A комбинирует в себе основные составляющие модуля Timer_A и RTC. Основная функция RTC_A заключается в реализации часов реального времени, но он может использоваться как таймер общего назначения. Модуль RTC_A может генерировать сигнал тревоги в зависимости от настроек пользователя, также в модуль добавлена логика калибровки.

4.4 DMA

Контроллер прямого доступа к памяти (DMA) функционально работает так же как и в MSP430x4xx. Число каналов увеличено до восьми. Функция DMAONFETCH заменена функцией DMARMWDIS. Когда установлен бит DMARMWDIS, прекращаются все операции DMA, происходящие во время операций ядра чтения-изменения-записи.

4.5 MPY32

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

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

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

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

Цифровые выводы содержат подтягивающие резисторы, как и в MSP430x2xx. Каждый порт теперь имеет регистр включения подтягивающих резисторов (PxREN).

Все порты сгруппированы в порядке два по восемь. К порту можно обращаться в формате байта и слова, что не представлялось возможным в  MSP430x2xx и MSP430x4xx.

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

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

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

4.9 ADC12_A

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

В статье упоминаются следующие микроконтроллеры


Сравнение последних
Последние просмотренные микроконтроллеры можно сравнить друг с другом.
Параметрический поиск
Техническая поддержка
Алексей Пантелейчук
+7 (495) 995-0901
доб. 2489
Написать письмо
Есть замечания?Выделите текст мышью
и нажмите Ctrl+Enter