TI MSP430 - TI MSP430

TI MSP430
Дизайнер Инструменты Техаса
Биты 16 бит
Тип Память-Память
Порядок байтов с прямым порядком байтов
Расширения MSP430X
Регистры
16, R0 - Программный счетчик, R1 - Указатель стека, R2 - Регистр состояния, R2 / R3 - Генератор констант
MSP 430 FG438 с глюкометром
Фотография двух экспериментальных плат на чипсете MSP430 от Texas Instruments. Слева - версия большего чипа, справа - уменьшенная версия в формате USB.

MSP430 является смешанных сигналов микроконтроллер семья из Texas Instruments , впервые 14 февраля 1992 Построенный вокруг 16-разрядного процессора , то MSP430 предназначен для низкой стоимости и, в частности, низкое энергопотребление встроенных приложений.

Приложения

Глюкометр Aktivmed GlucoCheck Comfort - печатная плата под ЖК-дисплеем, на которой установлен процессор MSP 430

MSP430 может использоваться для встраиваемых устройств с низким энергопотреблением . Ток обращается в режиме ожидания может быть меньше , чем 1 мкА. Максимальная частота процессора - 25 МГц. Его можно уменьшить для снижения энергопотребления. MSP430 также использует шесть различных режимов низкого энергопотребления, которые могут отключить ненужные тактовые частоты и ЦП. Кроме того, MSP430 может просыпаться за время менее 1 микросекунды, позволяя контроллеру оставаться в спящем режиме дольше, сводя к минимуму среднее потребление тока. Устройство поставляется в различных конфигурациях , показывающих обычные периферийные устройства: внутреннего генератора , таймер включая широтно-импульсной модуляции (ШИМ), сторожевой таймер (сторожевой), УСАПП , последовательный периферийный интерфейс (SPI) , шину Inter-Integrated Circuit ( I²C ), 10/12/14/16/24-битные аналого-цифровые преобразователи (АЦП) и схема сброса при пониженном напряжении . Некоторые менее обычные периферийные опции включают компараторы (которые могут использоваться с таймерами для создания простого АЦП), встроенные операционные усилители (операционные усилители) для преобразования сигнала , 12-битный цифро-аналоговый преобразователь (ЦАП), жидкий кристалл. драйвер дисплея (LCD), аппаратный умножитель , USB и прямой доступ к памяти (DMA) для результатов АЦП. За исключением некоторых более старых версий стираемой программируемой постоянной памяти ( EPROM , например MSP430E3xx) и ПЗУ с маской большого объема (MSP430Cxxx), все устройства поддерживают внутрисистемное программирование через Joint Test Action Group ( JTAG ), полностью четырехпроводное соединение. или Spy-Bi-Wire ), встроенный загрузчик начальной загрузки (BSL), использующий UART, такой как RS232 , или USB на устройствах с поддержкой USB. BSL не входит в состав устройств семейства F20xx, G2xx0, G2xx1, G2xx2 или I20xx.

Однако существуют ограничения, которые не позволяют использовать его в более сложных встроенных системах . MSP430 не имеет внешней шины памяти , поэтому он ограничен встроенной памятью, до 512 КБ флэш-памяти и 66 КБ оперативной памяти (ОЗУ), что может быть слишком мало для приложений, которым требуются большие буферы или таблицы данных. . Кроме того, несмотря на наличие контроллера DMA, его очень сложно использовать для перемещения данных с чипа из-за отсутствия строба вывода DMA.

Поколения MSP430

Существует шесть общих поколений процессоров MSP430. В порядке развития это: поколение 3xx, поколение 1xx, поколение 4xx, поколение 2xx, поколение 5xx и поколение 6xx. Цифра после поколения идентифицирует модель (как правило, более высокие номера моделей больше и более эффективны), третья цифра определяет объем включенной памяти, а четвертая, если она есть, идентифицирует второстепенный вариант модели. Самый распространенный вариант - это другой аналого-цифровой преобразователь на кристалле .

Поколения 3xx и 1xx ограничены 16-битным адресным пространством. В более поздних поколениях это было расширено за счет включения инструкций «430X», которые допускают 20-битное адресное пространство. Как и в случае с другими архитектурами процессоров (например, с процессором PDP-11 ), расширение диапазона адресации за пределы 16-битного размера слова привело к некоторым особенностям и неэффективности для программ размером более 64 кбайт.

В следующем списке он помогает представить себе типичную емкость 200 мА · ч для литиевого плоского элемента CR2032 как 200 000 мкА · ч, или 22,8 мкА · год. Таким образом, с учетом потребления только ЦП, такая батарея могла обеспечивать потребление тока 0,7 мкА в течение 32 лет. (На самом деле саморазряд батареи уменьшил бы это число.)

Значение сохранения ОЗУ по сравнению с режимом часов реального времени заключается в том, что в режиме часов реального времени ЦП может перейти в спящий режим с работающими часами, которые разбудят его в определенное время в будущем. В режиме сохранения RAM требуется некоторый внешний сигнал, чтобы разбудить его, например, сигнал контакта ввода / вывода (I / O) или прерывание приема ведомого SPI.

Серия MSP430x1xx

Серия MSP430x1xx - это базовое поколение без встроенного ЖК- контроллера. Как правило, они меньше поколения 3xx. Эти микроконтроллеры со сверхнизким энергопотреблением на базе флэш-памяти или ПЗУ предлагают 8 операций в секунду, 1,8–3,6 В, флэш-память до 60 КБ и широкий спектр аналоговых и цифровых периферийных устройств.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 0,1 мкА
    • 0,7 мкА в режиме часов реального времени
    • 200 мкА / MIPS в активном состоянии
    • Быстрый выход из режима ожидания менее чем за 6 мкс.
  • Параметры устройства
    • Варианты Flash: 1–60 КБ
    • Варианты ПЗУ: 1–16 КБ
    • Оперативная память: 128–10 КБ
    • Варианты GPIO: 14, 22, 48 контактов
    • Варианты АЦП: наклон, 10 и 12 бит SAR
    • Другие встроенные периферийные устройства: 12-битный ЦАП, до 2 16-битных таймеров, сторожевой таймер, сброс после отключения питания, SVS, модуль USART (UART, SPI), DMA, множитель 16 × 16, Comparator_A, датчик температуры

Серия MSP430F2xx

Серия MSP430F2xx аналогична поколению 1xx, но работает с еще меньшей мощностью, поддерживает работу на частоте до 16 МГц и имеет более точные (± 2%) встроенные часы, что упрощает работу без внешнего кристалла. Эти устройства со сверхнизким энергопотреблением на основе флэш-памяти обеспечивают работу от 1,8 до 3,6 В. Включает в себя генератор с очень малой мощностью (VLO), внутренние подтягивающие / понижающие резисторы и варианты с малым числом выводов.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 0,1 мкА
    • 0,3 мкА в режиме ожидания (VLO)
    • 0,7 мкА в режиме часов реального времени
    • 220 мкА / MIPS в активном состоянии
    • Функция сверхбыстрого выхода из режима ожидания менее чем за 1 мкс
  • Параметры устройства
    • Варианты Flash: 1–120 КБ
    • Варианты ОЗУ: 128 Б - 8 КБ
    • Варианты GPIO: 10, 11, 16, 24, 32 и 48 контактов
    • Варианты АЦП: наклон, 10 и 12 бит SAR, 16 и 24 бит сигма-дельта
    • Другая интегрированная периферия: операционные усилители, 12-битный ЦАП, до 2 16-битных таймеров, сторожевой таймер, сброс при пониженном напряжении, SVS, модуль USI (I²C, SPI), модуль USCI, DMA, умножитель 16 × 16, Comparator_A +, Датчик температуры

Серия MSP430G2xx

Серия MSP430G2xx Value включает микроконтроллеры со сверхнизким энергопотреблением на базе флэш-памяти до 16 MIPS при напряжении 1,8–3,6 В. Включает в себя генератор очень низкой мощности (VLO), внутренние подтягивающие / понижающие резисторы и варианты с малым числом выводов по более низким ценам, чем серия MSP430F2xx.

  • Сверхнизкое энергопотребление, всего (при 2,2 В):
    • Сохранение ОЗУ 0,1 мкА
    • 0,4 мкА в режиме ожидания (VLO)
    • 0,7 мкА в режиме часов реального времени
    • 220 мкА / MIPS в активном состоянии
    • Сверхбыстрый выход из режима ожидания менее чем за 1 мкс
  • Параметры устройства
    • Варианты Flash: 0,5–56 КБ
    • Варианты ОЗУ: 128–4 КБ
    • Варианты GPIO: 10, 16, 24, 32 контакта
    • Варианты АЦП: наклон, 10-битный SAR
    • Другие встроенные периферийные устройства: емкостный сенсорный ввод / вывод, до 3-х 16-битных таймеров, сторожевой таймер, сброс при пониженном напряжении, модуль USI (I²C, SPI), модуль USCI, Comparator_A +, датчик температуры

Серия MSP430x3xx

Серия MSP430x3xx - это самое старое поколение, разработанное для портативных приборов со встроенным ЖК-контроллером. Он также включает в себя генератор с автоподстройкой частоты, который может автоматически синхронизироваться с низкоскоростным (32 кГц) кристаллом. Это поколение не поддерживает память EEPROM , только ПЗУ с маской и одноразовую программируемую EPROM с УФ-стиранием . Более поздние поколения предоставляют только варианты флэш-памяти и маскирующего ПЗУ . Эти устройства предлагают работу 2,5–5,5 В с объемом ПЗУ до 32 КБ.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 0,1 мкА
    • 0,9 мкА в режиме часов реального времени
    • 160 мкА / MIPS в активном состоянии
    • Быстрый выход из режима ожидания менее чем за 6 мкс.
  • Параметры устройства:
    • Варианты ПЗУ: 2–32 КБ
    • Варианты ОЗУ: 512 Б – 1 КБ
    • Варианты GPIO: 14, 40 контактов
    • Варианты АЦП: наклон, 14-битный SAR
    • Другая встроенная периферия: ЖК-контроллер, умножитель

Серия MSP430x4xx

Серия MSP430x4xx аналогична поколению 3xx, но включает в себя встроенный ЖК-контроллер, они больше и обладают большей функциональностью. Эти устройства на базе флэш-памяти или ПЗУ предлагают 8–16 MIPS при работе 1,8–3,6 В, с FLL и SVS. Идеально подходит для измерения малой мощности и медицинских приложений.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 0,1 мкА
    • 0,7 мкА в режиме часов реального времени
    • 200 мкА / MIPS в активном состоянии
    • Быстрый выход из режима ожидания менее чем за 6 мкс.
  • Параметры устройства:
    • Варианты Flash / ROM: 4 - 120 КБ
    • Варианты ОЗУ: 256 Б - 8 КБ
    • Варианты GPIO: 14, 32, 48, 56, 68, 72, 80 контактов
    • Варианты АЦП: наклон, 10 и 12-битное SAR, 16-битная сигма-дельта
    • Другие интегрированные периферийные устройства: SCAN_IF, ESP430, 12-битный ЦАП, операционные усилители, RTC, до 2 16-битных таймеров, сторожевой таймер, базовый таймер, сброс при пониженном напряжении, SVS, модуль USART (UART, SPI), модуль USCI, ЖК-контроллер, DMA, множитель 16x16 и 32x32, Comparator_A, датчик температуры, скорость процессора 8 MIPS

Серия MSP430x5xx

Серия MSP430x5xx может работать на частоте до 25 МГц, иметь до 512 КБ флэш-памяти и до 66 КБ ОЗУ. Это семейство на основе флеш-памяти отличается низким потреблением активной мощности - до 25 MIPS при работе 1,8–3,6 В (165 мкА / MIPS). Включает инновационный модуль управления питанием для оптимального энергопотребления и встроенный USB.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 0,1 мкА
    • 2,5 мкА в режиме реального времени
    • 165 мкА / MIPS в активном состоянии
    • Быстрый выход из режима ожидания менее чем за 5 мкс.
  • Параметры устройства:
    • Варианты Flash: до 512 КБ
    • Варианты оперативной памяти: до 66 КБ
    • Варианты АЦП: 10 и 12 бит SAR
    • Варианты GPIO: 29, 31, 47, 48, 63, 67, 74, 87 контактов
    • Другие дополнительные встроенные периферийные устройства: 12-битный ЦАП, ШИМ высокого разрешения, 5 входов / выходов, USB, переключатель резервного аккумулятора, до 4 16-битных таймеров, сторожевой таймер, часы реального времени, сброс после отключения питания, SVS, модуль USCI , DMA, множитель 32x32, Comp B, датчик температуры

Серия MSP430x6xx

Серия MSP430x6xx может работать на частоте до 25 МГц, иметь до 512 КБ флэш-памяти и до 66 КБ ОЗУ. Это семейство на основе флеш-памяти отличается низким потреблением активной мощности: до 25 MIPS при работе 1,8–3,6 В (165 мкА / MIPS). Включает инновационный модуль управления питанием для оптимального энергопотребления и встроенный USB.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 0,1 мкА
    • 2,5 мкА в режиме реального времени
    • 165 мкА / MIPS в активном состоянии
    • Быстрый выход из режима ожидания менее чем за 5 мкс.
  • Параметры устройства:
    • Варианты Flash: до 512 КБ
    • Варианты оперативной памяти: до 66 КБ
    • Варианты АЦП: 12-битный SAR
    • Опции GPIO: 74 контакта
    • Прочие интегрированные периферийные устройства: USB, ЖК-дисплей, ЦАП, Comparator_B, DMA, умножитель 32x32, модуль управления питанием (BOR, SVS, SVM, LDO), сторожевой таймер, RTC, датчик температуры

Серия RF SoC (CC430)

Серия RF SoC (CC430) обеспечивает тесную интеграцию между ядром микроконтроллера, периферийными устройствами, программным обеспечением и радиочастотным приемопередатчиком. Особенности приемопередатчика RF <1 ГГц, с рабочим напряжением 1,8–3,6 В. Программирование с использованием интегрированной среды разработки (IDE) Arduino возможно через panStamp API .

  • Обзор характеристик мощности, начиная с:
    • Сохранение 1 мкА ОЗУ
    • 1,7 мкА в режиме реального времени
    • 180 мкА / MIPS в активном состоянии
  • Параметры устройства:
    • Варианты скорости: до 20 МГц
    • Варианты Flash: до 32 КБ
    • Варианты оперативной памяти: до 4 КБ
    • Варианты АЦП: 12-битный SAR
    • Варианты GPIO: 30 и 44 контакта
    • Другие интегрированные периферийные устройства: ЖК-контроллер, до 2 16-битных таймеров, сторожевой таймер, RTC, модуль управления питанием (BOR, SVS, SVM, LDO), модуль USCI, DMA, множитель 32x32, Comp B, датчик температуры

Серия FRAM

Серия FRAM от Texas Instruments обеспечивает унифицированную память с динамическим разделением и скоростью доступа к памяти в 100 раз быстрее, чем у флеш-памяти. FRAM также может сохранять состояние нулевого энергопотребления во всех режимах энергопотребления, что означает, что запись гарантируется даже в случае потери мощности. При длительности записи более 100 триллионов циклов EEPROM больше не требуется. Активная потребляемая мощность менее 100 мкА / МГц.

  • Обзор характеристик мощности, начиная с:
    • Сохранение ОЗУ 320 нА
    • 0,35 мкА в режиме часов реального времени
    • 82 мкА / MIPS в активном состоянии
  • Параметры устройства:
    • Варианты скорости: от 8 до 24 МГц
    • Параметры FRAM: от 4 до 256 КБ
    • Варианты RAM: от 0,5 до 8 КБ
    • Варианты АЦП: 10 или 12 бит SAR
    • Опции GPIO: от 17 до 83 контактов GPIO
    • Другие возможные интегрированные периферийные устройства: MPU, до 6 16-битных таймеров, сторожевой таймер, RTC, модуль управления питанием (BOR, SVS, SVM, LDO), модуль USCI, DMA, умножитель, Comp B, датчик температуры, драйвер ЖК-дисплея, I2C и UART BSL, расширенный интерфейс сканирования, 32-битный умножитель, AES, CRC, ускорение обработки сигнала, емкостное касание, ИК-модуляция

Серия низкого напряжения

Серия Low Voltage включает детали MSP430C09x и MSP430L092. Эти 2 серии низковольтных 16-битных микроконтроллеров имеют конфигурации с двумя 16-битными таймерами, 8-битным аналого-цифровым (A / D) преобразователем, 8-битным цифро-аналоговым (D / A) преобразователем, и до 11 контактов ввода / вывода.

  • Обзор характеристик мощности, начиная с:
    • Сохранение 1 мкА ОЗУ
    • 1,7 мкА в режиме реального времени
    • 180 мкА / MIPS в активном состоянии
  • Параметры устройства:
    • Варианты скорости: 4 МГц
    • Варианты ПЗУ: 1–2 кБ
    • Параметры SRAM: 2 КБ
    • Варианты АЦП: 8-битный SAR
    • Варианты GPIO: 11 контактов
    • Прочие встроенные периферийные устройства: до 2 16-битных таймеров, сторожевой таймер, сброс при пониженном напряжении, SVS, компаратор, датчик температуры

Другие семейства MSP430

Другие семейства в MSP430 включают детали с фиксированными функциями , автомобильные детали и детали с увеличенным температурным режимом .

Фиксированная функция : 16-разрядный микроконтроллер MSP430BQ1010 - это усовершенствованное устройство с фиксированной функцией, которое образует блок управления и связи на стороне приемника для беспроводной передачи энергии в портативных приложениях. MSP430BQ1010 соответствует спецификации Wireless Power Consortium (WPC). Для получения дополнительной информации см. Бесконтактное питание .

Автомобилестроение : Автомобильные микроконтроллеры (MCU) MSP430 от Texas Instruments (TI) - это 16-битные процессоры смешанных сигналов на основе RISC, сертифицированные по стандарту AEC-Q100 и подходящие для автомобильных приложений при температуре окружающей среды до 105 ° C. LIN-совместимые драйверы для MCU MSP430, предоставленные IHR GmbH.

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

  • Определения устройств:
    • HT: от -55 ° C до 150 ° C
    • EP: Улучшенные продукты от -55 ° C до 125 ° C
    • Q1: автомобильный Q100 соответствует требованиям от -40 ° C до 105 ° C
    • T: Расширенный диапазон температур от -40 ° C до 105 ° C

Обратите внимание, что когда размер флэш-памяти превышает 64 КБ слов (128 КБ), адреса инструкций больше не могут быть закодированы всего двумя байтами. Это изменение размера указателя вызывает некоторую несовместимость с предыдущими частями.

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

Периферийные устройства MSP430, как правило, просты в использовании, с (в основном) согласованными адресами между моделями и без регистров только для записи (за исключением аппаратного умножителя).

Порты ввода-вывода общего назначения 0–10

Если периферийное устройство не требуется, контакт можно использовать для ввода-вывода общего назначения. Контакты разделены на 8-битные группы, называемые «портами», каждая из которых управляется несколькими 8-битными регистрами. В некоторых случаях порты расположены парами, доступ к которым можно получить как 16-битные регистры.

Семейство MSP430 определяет 11 портов ввода-вывода, с P0 по P10, хотя ни один из чипов не реализует более 10 из них. P0 реализован только в семействе 3xx. P7 - P10 реализованы только на самых больших элементах (и версиях с наибольшим количеством выводов) семейств «4xx и» 2xx. Новейшие семейства «5xx» и «6xx» имеют от P1 до P11, а регистры управления переназначены для обеспечения большего количества пар портов. Каждый порт контролируется следующими регистрами. Порты, которые не реализуют определенные функции (такие как прерывание при изменении состояния), не реализуют соответствующие регистры.

P x IN
Порт x вход. Это регистр только для чтения, он отражает текущее состояние контактов порта.
P x OUT
Выход порта x . Значения, записанные в этот регистр чтения / записи, выводятся на соответствующие выводы, когда они настроены на вывод.
P x DIR
Порт x направление данных. Биты, записанные как 1, настраивают соответствующий вывод для вывода. Биты, записанные как 0, настраивают контакт для ввода.
P x SEL
Выбор функции порта x . Биты, записанные как 1, настраивают соответствующий вывод для использования специализированным периферийным устройством. Биты, записанные как 0, настраивают вывод для ввода-вывода общего назначения. Порт 0 (только части 3xx) не мультиплексирован с другими периферийными устройствами и не имеет регистра P0SEL.
P x REN
Включение резистора порта x (только '2xx и' 5xx). Биты, установленные в этом регистре, включают слабые подтягивающие или понижающие резисторы на соответствующих выводах ввода / вывода, даже если они сконфигурированы как входы. Направление вытягивания устанавливается битом, записанным в регистр P x OUT.
P x DS
Мощность привода порта x (только '5xx). Биты, установленные в этом регистре, разрешают сильноточные выходы. Это увеличивает выходную мощность, но может вызвать электромагнитные помехи (EMI).

Порты 0–2 могут создавать прерывания при изменении входов. Дальнейшие регистры настраивают эту возможность:

P x IES
Выбор фронта прерывания порта x . Выбирает фронт, при котором будет установлен бит P x IFG. Когда входной бит изменяется с совпадающего с состоянием P x IES на несоответствие (т. Е. Всякий раз, когда бит в P x IES XOR P x IN изменяется с сброса на установленный), устанавливается соответствующий бит P x IFG.
P x IE
Разрешение прерывания порта x . Когда этот бит и соответствующий бит P x IFG установлены, генерируется прерывание.
P x IFG
Флаг прерывания порта x . Устанавливается всякий раз, когда соответствующий вывод выполняет изменение состояния, запрошенное P x IES. Можно очистить только программно. (Также можно установить с помощью программного обеспечения.)
P x IV
Вектор прерывания порта x (только '5xx). Этот 16-битный регистр является кодировщиком приоритета, который может использоваться для обработки прерываний при смене вывода. Если n - это бит прерывания с наименьшим номером, ожидающий обработки в P x IFG и разрешенный в P x IE, этот регистр читается как 2 n +2. Если такого бита нет, он читается как 0. Масштабный коэффициент 2 позволяет напрямую использовать в качестве смещения в таблице переходов . Чтение этого регистра также очищает сообщенный флаг P x IFG.

Некоторые выводы имеют специальное назначение либо как входы, либо как выходы. (Например, выводы таймера могут быть сконфигурированы как входы захвата или выходы ШИМ.) В этом случае бит P x DIR контролирует, какую из двух функций выполняет вывод, когда установлен бит P x SEL. Если есть только одна специальная функция, то P x DIR обычно игнорируется. Регистр P x IN по-прежнему доступен для чтения, если установлен бит P x SEL, но генерация прерывания отключена. Если P x SEL сброшен, вход специальной функции замораживается и отключается от внешнего контакта. Кроме того, настройка вывода для вывода общего назначения не отключает генерацию прерывания.

Карта адресов регистров ввода / вывода общего назначения
Семейства '1xx – '4xx
P x IN  P x OUT P x DIR P x SEL P x IES P x IE  P x IFG P x REN
P0 0x10 0x11 0x12 0x13 0x14 0x15
P1 0x20 0x21 0x22 0x26 0x24 0x25 0x23 0x27
P2 0x28 0x29 0x2a 0x2e 0x2c 0x2d 0x2b 0x2f
P3 0x18 0x19 0x1a 0x1b 0x10
P4 0x1c 0x1d 0x1e 0x1f 0x11
P5 0x30 0x31 0x32 0x33 0x12
P6 0x34 0x35 0x36 0x37 0x13
PA P7 0x38 0x3a 0x3c 0x3e 0x14
P8 0x39 0x3b 0x3d 0x3f 0x15
PB P9 0x08 0x0a 0x0c 0x0e 0x16
P10 0x09 0x0b 0x0d 0x0f 0x17
Семейства '5xx – '6xx и' 0xx
P x IN  P x OUT P x DIR P x REN P x DS  P x SEL P x IV  P x IES P x IE  P x IFG
PA P1 0x200 0x202 0x204 0x206 0x208 0x20A 0x20E 0x218 0x21A 0x21C
P2 0x201 0x203 0x205 0x207 0x209 0x20B 0x21E 0x219 0x21B 0x21D
PB P3 0x220 0x222 0x224 0x226 0x228 0x22A
P4 0x221 0x223 0x225 0x227 0x229 0x22B
ПК P5 0x240 0x242 0x244 0x246 0x248 0x24A
P6 0x241 0x243 0x245 0x247 0x249 0x24B
PD P7 0x260 0x262 0x264 0x266 0x268 0x26A
P8 0x261 0x263 0x265 0x267 0x269 0x26B
PE P9 0x280 0x282 0x284 0x286 0x288 0x28A
P10 0x281 0x283 0x285 0x287 0x289 0x28B
P11 0x2A0 0x2A2 0x2A4 0x2A6 0x2A8 0x2AA
Пижама 0x320 0x322 0x324 0x326 0x328 Только 4 бита; совместно с контактами JTAG .

Интегрированная периферия

Аналоговый
  • Аналого-цифровой преобразователь
Линия MSP430 предлагает два типа аналого-цифрового преобразования (АЦП). 10- и 12-битные преобразователи последовательного приближения , а также 16-битный сигма-дельта преобразователь. Контроллеры передачи данных и буфер преобразования и управления на 16 слов позволяют MSP430 преобразовывать и сохранять образцы без вмешательства процессора, сводя к минимуму энергопотребление.
  • Аналоговый пул
Модуль аналогового пула (A-POOL) можно настроить как АЦП, ЦАП, компаратор, SVS или датчик температуры. Это позволяет пользователю гибко программировать серию аналоговых функций с помощью только одной настройки.
  • Компаратор A, A +
Модуль компаратора MSP430 обеспечивает точное аналого-цифровое преобразование крутизны. Контролирует внешние аналоговые сигналы и обеспечивает измерение напряжения и сопротивления резистора. Возможность выбора режимов мощности.
  • DAC12
Модуль DAC12 - это 12-разрядный ЦАП с выходом напряжения, с возможностью выбора внутреннего / внешнего опорного сигнала и программируемым временем установления для оптимального энергопотребления. Его можно настроить в 8- или 12-битном режиме. Когда присутствует несколько модулей DAC12, они могут быть сгруппированы вместе для операции синхронного обновления.
  • Операционные усилители
Однополярное питание, слаботочная работа с выходами Rail-to-Rail и программируемым временем установления. Программно выбираемые параметры конфигурации: режим единичного усиления, режим компаратора, инвертирующий PGA, неинвертирующий PGA, дифференциальный и инструментальный усилитель.
  • Сигма-дельта (SD)
Каждый модуль SD16 / SD16_A / SD24_A оснащен 16- / 24-битными сигма-дельта-аналого-цифровыми преобразователями с внутренним опорным напряжением 1,2 В. Каждый преобразователь имеет до восьми полностью дифференциальных мультиплексированных входов, включая встроенный датчик температуры. Преобразователи представляют собой сигма-дельта модуляторы второго порядка с передискретизацией с возможностью выбора коэффициентов передискретизации до 1024 (SD16_A / SD24_A) или 256 (SD16).
Таймеры
  • Базовый таймер (BT)
BT имеет два независимых 8-битных таймера, которые можно каскадировать, чтобы сформировать 16-битный таймер / счетчик. Оба таймера могут быть прочитаны и записаны программным обеспечением. BT расширен, чтобы обеспечить интегрированный RTC. Внутренний календарь компенсирует месяцы с менее чем 31 днем ​​и включает поправку на високосный год.
  • Часы реального времени
RTC_A / B - это 32-битные модули аппаратных счетчиков, которые предоставляют счетчики часов с календарем, гибким программируемым сигналом тревоги и калибровкой. RTC_B включает в себя переключаемую систему резервного питания от батарей, которая обеспечивает возможность работы RTC при отказе основного источника питания.
  • 16-битные таймеры
Timer_A, Timer_B и Timer_D - это асинхронные 16-разрядные таймеры / счетчики с семью регистрами захвата / сравнения и различными режимами работы. Таймеры поддерживают множественный захват / сравнение, выходы ШИМ и интервальную синхронизацию. У них также есть широкие возможности прерывания. Timer_B представляет дополнительные функции, такие как программируемая длина таймера (8, 10, 12 или 16 бит) и обновления регистров сравнения с двойной буферизацией, а Timer_D представляет режим высокого разрешения (4 нс).
  • Сторожевой таймер (WDT +)
WDT + выполняет управляемый перезапуск системы после возникновения программной проблемы. По истечении выбранного временного интервала производится сброс системы. Если функция сторожевого таймера в приложении не требуется, модуль можно настроить как интервальный таймер и генерировать прерывания через выбранные интервалы времени.
Система
  • Расширенный стандарт шифрования (AES)
Модуль ускорителя AES выполняет шифрование и дешифрование 128-битных данных с помощью 128-битных ключей в соответствии с передовым стандартом шифрования в оборудовании и может быть настроен с помощью программного обеспечения пользователя.
  • Сброс при отключении питания (BOR)
Схема BOR обнаруживает низкие напряжения питания и сбрасывает устройство, инициируя сигнал сброса при включении питания (POR) при подаче или отключении питания. Цепь нулевого энергопотребления микроконтроллера MSP430 BOR постоянно включена, в том числе во всех режимах с низким энергопотреблением.
  • Контроллер прямого доступа к памяти (DMA)
Контроллер DMA передает данные с одного адреса на другой по всему диапазону адресов без вмешательства процессора. DMA увеличивает пропускную способность периферийных модулей и снижает энергопотребление системы. Модуль имеет до трех независимых каналов передачи.
Хотя подсистема DMA MSP430 очень способна, у нее есть несколько недостатков, наиболее значительный из которых - отсутствие внешнего строба передачи. Хотя передача DMA может быть запущена извне, нет никакой внешней индикации завершения передачи. Следовательно, прямой доступ к памяти к внешним источникам и от них ограничен внешним запуском на побайтовые передачи, а не полными блоками автоматически через DMA. Это может привести к значительной сложности (например, к необходимости обширной ручной настройки кода) при реализации связи от процессора к процессору или от процессора к USB. В цитируемой ссылке используется режим скрытого таймера для генерации высокоскоростных стробов для передач DMA. Таймеры недостаточно гибкие, чтобы легко компенсировать отсутствие внешнего строба передачи DMA.
Операции DMA, которые включают передачу слов в байтовые ячейки, вызывают усечение до 8 бит, а не преобразование в двухбайтовые передачи. Это делает DMA с 16-битными значениями A / D или D / A менее полезным, чем могло бы быть (хотя можно передавать эти значения DMA через порт A или B в некоторых версиях MSP 430, используя внешне видимый триггер для каждой передачи, например выход таймера).
  • Расширенный модуль эмуляции (EEM)
EEM предоставляет различные уровни функций отладки, такие как 2-8 аппаратных точек останова, сложные точки останова, прерывание при чтении / записи по указанному адресу и многое другое. Встраивается во все устройства MSP430 на базе флеш-памяти.
  • Аппаратный множитель
Некоторые модели MSP430 включают периферийное устройство аппаратного умножителя с отображением в память, которое выполняет различные операции умножения-накопления 16 × 16 + 32 → 33-разрядные. В отличие от MSP430, это периферийное устройство включает неявный 2-битный регистр только для записи, что делает практически невозможным переключение контекста . Это периферийное устройство не мешает работе ЦП и может быть доступно через DMA. MPY на всех устройствах MSP430F5xx и некоторых MSP430F4xx поддерживает до 32-битных x 32-битных.
Используемые 8 регистров:
Адрес Имя Функция
0x130 MPY Operand1 для беззнакового умножения
0x132 MPYS Operand1 для знакового умножения
0x134 MAC Operand1 для беззнакового умножения-накопления
0x136 MACS Operand1 для знакового умножения с накоплением
0x138 OP2 Второй операнд для операции умножения
0x13A ResLo Младшее слово результата умножения
0x13C ResHi Старшее слово результата умножения
0x13E SumExt Осуществлять умножать-накапливать
Первый операнд записывается в один из четырех 16-битных регистров. Записанный адрес определяет выполняемую операцию. Хотя записанное значение может быть считано из любого из регистров, записанный номер регистра не может быть восстановлен.
Если требуется операция умножения с накоплением, регистры ResLoи ResHiтакже должны быть инициализированы.
Затем каждый раз, когда выполняется запись в OP2регистр, выполняется умножение, и результат сохраняется или добавляется в регистры результатов. SumExtРегистр является только для чтения , который содержит перенос из добавления (0 или 1) в случае без знака умножения), или расширение знака 32-битовой суммы (0 или -1) в случае подписанного умножить. В случае знакового умножения с накоплением SumExtзначение должно быть объединено со старшим битом предыдущего SumHiсодержимого, чтобы определить истинный результат выполнения (-1, 0 или +1).
Результат доступен после трех тактовых циклов задержки, которая представляет собой время, необходимое для выборки следующей инструкции и следующего индексного слова. Таким образом, задержка обычно незаметна. Явная задержка требуется только при использовании режима косвенной адресации для получения результата.
  • Блок защиты памяти (MPU)
FRAM MPU защищает от случайной записи в указанные сегменты памяти только для чтения или выполнения кода из постоянной памяти. MPU может устанавливать любое разделение памяти с адресацией на уровне битов, делая всю память доступной для операций чтения, записи и выполнения в устройствах FRAM.
  • Модуль управления питанием (PMM)
PMM генерирует напряжение питания для логики ядра и предоставляет несколько механизмов для наблюдения и мониторинга как напряжения, приложенного к устройству, так и напряжения, генерируемого для ядра. Он интегрирован с регулятором напряжения с малым падением напряжения (LDO), сбросом при пониженном напряжении (BOR), а также контроллером и монитором напряжения питания.
  • Диспетчер напряжения питания (SVS)
SVS - это настраиваемый модуль, используемый для контроля напряжения питания AVCC или внешнего напряжения. SVS может быть сконфигурирован для установки флага или генерации сброса при включении питания (POR), когда напряжение питания или внешнее напряжение падает ниже порогового значения, выбранного пользователем.
Связь и интерфейс
  • Емкостные входы / выходы Touch Sense
Встроенный емкостный модуль ввода-вывода с сенсорным управлением предлагает несколько преимуществ для приложений с сенсорными кнопками и сенсорных ползунков. Система не требует внешних компонентов для создания автоколебаний (уменьшение количества материалов), а конденсатор (который определяет частоту автоколебаний) может быть подключен напрямую. Кроме того, нет необходимости во внешних мультиплексорах, позволяющих использовать несколько пэдов, и каждая пэд ввода-вывода может непосредственно служить входом для определения ограничения. Гистерезис ~ 0,7 В обеспечивает надежную работу. Контроль и секвенирование полностью выполняются программно.
  • Входы / выходы общего назначения
В устройствах MSP430 реализовано до 12 цифровых портов ввода / вывода. Каждый порт имеет восемь контактов ввода / вывода. Каждый вывод ввода / вывода может быть сконфигурирован как вход или выход и может быть индивидуально прочитан или записан. Порты P1 и P2 имеют возможность прерывания. MSP430F2xx, F5xx и некоторые устройства F4xx имеют встроенные, индивидуально настраиваемые подтягивающие или понижающие резисторы.
  • Передняя часть RF суб-ГГц
Гибкий приемопередатчик CC1101 с частотой менее 1 ГГц обеспечивает чувствительность и характеристики блокировки, необходимые для обеспечения успешных каналов связи в любой радиочастотной среде. Он также отличается низким потреблением тока и поддерживает гибкие скорости передачи данных и форматы модуляции.
  • USART (UART, SPI, I²C)
Универсальный периферийный интерфейс синхронного / асинхронного приема / передачи (USART) поддерживает асинхронную связь RS-232 и синхронный SPI с одним аппаратным модулем. Модули USART MSP430F15x / 16x также поддерживают I²C, программируемую скорость передачи и возможность независимого прерывания для приема и передачи.
  • USB
Модуль USB полностью соответствует спецификации USB 2.0 и поддерживает управление, прерывание и массовую передачу данных со скоростью 12 Мбит / с (полная скорость). Модуль поддерживает операции приостановки, возобновления и удаленного пробуждения по USB и может быть настроен для работы с восемью входными и восемью выходными конечными точками. Модуль включает в себя интегрированный физический интерфейс (PHY); контур фазовой автоподстройки частоты (PLL) для генерации тактовых импульсов USB; а также гибкая система электропитания, позволяющая использовать устройства с питанием от шины и с автономным питанием.
  • USCI (UART, SPI, I²C, LIN, IrDA)
Модуль универсального интерфейса последовательной связи (USCI) имеет два независимых канала, которые можно использовать одновременно. Асинхронный канал (USCI_A) поддерживает режим UART; Режим SPI; формирование импульсов для ИК-порта; и автоматическое определение скорости передачи для связи LIN. Синхронный канал (USCI_B) поддерживает режимы I²C и SPI.
  • USI (SPI, I²C)
Модуль универсального последовательного интерфейса (USI) представляет собой интерфейс синхронной последовательной связи с длиной данных до 16 бит и может поддерживать связь SPI и I²C с минимальным программным обеспечением.
  • Инфракрасная модуляция
Эта функция, доступная в микросхемах серий MSP430FR4xxx и MSP430FR2xxx, настраивается с помощью набора регистров SYSCFG. Это периферийное устройство подключается к другим периферийным устройствам (таймерам, eUSCI_A) для генерации модулированного ИК-сигнала на выходном контакте. (стр.43)
Измерение
  • ESP430 (встроен в устройства FE42xx)
Модуль ESP430CE выполняет расчетные измерения независимо от ЦП. Модуль имеет отдельный SD16, аппаратный умножитель и встроенный процессор ESP430 для однофазных приложений измерения энергии.
  • Интерфейс сканирования (SIF)
Модуль SIF, программируемый конечный автомат с аналоговым интерфейсом, используется для автоматического измерения линейного или вращательного движения с минимально возможным энергопотреблением. Модуль поддерживает различные типы ЖК-датчиков и резистивных датчиков, а также квадратурное кодирование.
Отображать
  • LCD / LCD_A / LCD_B
Контроллер LCD / LCD_A напрямую управляет ЖК-дисплеями до 196 сегментов. Поддерживает статические, 2-мультиплексные, 3-мультиплексные и 4-мультиплексные ЖК-дисплеи. Модуль LCD_A имеет встроенный нагнетательный насос для контроля контрастности. LCD_B включает мигание отдельных сегментов с отдельной мигающей памятью.
  • LCD_E
Контроллер LCD_E поставляется с новыми микроконтроллерами серии MSP430FR4xxx и напрямую управляет ЖК-дисплеями с количеством сегментов до 448. Поддержка статических, 2-мультиплексных, 3-мультиплексных, 4-мультиплексных, 5-мультиплексных, 6-мультиплексных, 7-мультиплексных, 8-мультиплексных (смещение 1/3) ЖК-дисплеев. Сегментные и общие выводы можно перепрограммировать на доступные выводы привода ЖК-дисплея. Это периферийное устройство может работать в режиме LPM3.5 (работает RTC + режим пониженного энергопотребления при выключении ядра ЦП).

Среда разработки программного обеспечения

Texas Instruments предлагает различные платы для экспериментаторов , поддерживающие большие (примерно два сантиметра в квадрате) и маленькие (примерно один квадратный миллиметр) микросхемы MSP430. TI также предоставляет инструменты разработки программного обеспечения, как напрямую, так и совместно с партнерами (см. Полный список компиляторов, ассемблеров и IDE ). Одним из таких инструментов является компилятор IAR C / C ++ и интегрированная среда разработки , или IDE. Редакцию Kickstart можно бесплатно загрузить с сайтов TI или IAR; он ограничен 8 КБ кода C / C ++ в компиляторе и отладчике ( программы на языке ассемблера любого размера можно разрабатывать и отлаживать с помощью этого бесплатного набора инструментов).

TI также сочетает в себе версию собственного компилятора и инструменты со своей IDE Code Composer Studio (CCS) на основе Eclipse . Он продает полнофункциональные версии и предлагает бесплатную версию для загрузки с ограничением размера кода 16 КБ. CCS поддерживает внутрисхемные эмуляторы и включает симулятор и другие инструменты; он также может работать с другими процессорами, продаваемыми TI.

Для тех, кому удобнее работать с Arduino , есть еще одно программное обеспечение Energia Energia , платформа для создания прототипов электроники с открытым исходным кодом, цель которой - перенести структуру Wiring и Arduino на LaunchPad Texas Instruments на базе MSP430, где можно экспортировать код Arduino для программирования MSP430. чипсы. Последняя версия Energia поддерживает MSP-EXP430G2xxx, MSP-EXP430FR5739, MSP-EXP430FR5969, MSP-EXP430FR5994, MSP-EXP430F5529LP, Stellaris EK-LM4F120XL, Tiva-C123G-EK-TM4C-WiFi CC-C123C-EK-TM4.

Открытый источник сообщество производит свободно доступный набор инструментов для разработки программного обеспечения на основе набора инструментов GNU . Компилятор GNU в настоящее время отклонен в трех версиях:

( MSPGCC )

( MSPGCC Uniarch )

TI проконсультировалась с RedHat относительно предоставления официальной поддержки архитектуры MSP430 для компилятора GNU Compiler Collection C / C ++. Этот компилятор msp430-elf-gcc поддерживается TI Code Composer Studio версии 6.0 и выше.

Существует очень ранний проект llvm-msp430 , который в конечном итоге может обеспечить лучшую поддержку MSP430 в LLVM .

Доступны другие наборы коммерческих инструментов разработки, которые включают редактор, компилятор, компоновщик, ассемблер, отладчик и в некоторых случаях мастера кода. VisSim , язык блок-схем для разработки на основе моделей, генерирует эффективный C-код с фиксированной запятой непосредственно из диаграммы. VisSim генерируется код для замкнутого контура на основе АЦП + ШИМ управления PID на F2013 компилируется до менее чем 1 Кбайт флэш - памяти и 100 байт RAM. VisSim имеет встроенные периферийные блоки для всего семейства MSP430: I²C, ADC, SD16, PWM.

Недорогие платформы разработки

MSP430F2013 и его собратья отличаются тем, что (за исключением MSP430G2 Value Line ) это единственная часть MSP430, доступная в двухрядном корпусе (DIP). Другие варианты этого семейства доступны только в различных корпусах для поверхностного монтажа. Компания TI приложила некоторые усилия, чтобы поддержать платформу разработки eZ430, сделав необработанные чипы простыми для использования любителями в прототипах.

eZ430-F2013

TI решила проблему низкого бюджета, предложив очень маленькую плату для экспериментаторов eZ430-F2013 на USB-накопителе. Это упрощает разработчикам выбор микросхемы MSP430 для недорогих платформ разработки, которые можно использовать с компьютером. EZ430-F2013 содержит микроконтроллер MSP430F2013 на съемной макетной плате и прилагаемый компакт-диск с программным обеспечением для разработки. Это полезно для школ, любителей и изобретателей гаража. Это также приветствуется инженерами крупных компаний, создающих прототипы проектов с проблемами капитального бюджета.

Панель запуска MSP430

Texas Instruments выпустила MSP430 LaunchPad в июле 2010 года. MSP430 LaunchPad имеет встроенный эмулятор вспышки , USB , 2 программируемых светодиода и 1 программируемую кнопку. В дополнение к экспериментам с LaunchPad доступна плата для щита .

С тех пор TI представила несколько новых LaunchPads на базе платформы MSP430:

Все три из этих LaunchPads включают отладчик eZ-FET JTAG с обратным каналом UART, способный работать со скоростью 1 Мбит / с. Панели запуска FRAM (например, MSP-EXP430FR5969, MSP-EXP430FR4133) включают EnergyTrace, функцию, поддерживаемую TI Code Composer Studio IDE для мониторинга и анализа энергопотребления.

Интерфейс отладки

Как и другие производители микроконтроллеров, TI разработала двухпроводной интерфейс отладки, который можно найти на некоторых из их компонентов MSP430, который может заменить более крупный интерфейс JTAG. Средство разработки eZ430 содержит полноценный инструмент эмуляции флэш - памяти (FET) с USB-подключением для этого нового двухпроводного протокола, названного TI Spy-Bi-Wire . Первоначально Spy-Bi-Wire был представлен только на самых маленьких устройствах семейства F2xx с ограниченным количеством контактов ввода-вывода, таких как MSP430F20xx, MSP430F21x2 и MSP430F22x2. Поддержка Spy-Bi-Wire была расширена с появлением последнего семейства 5xx, в котором все устройства поддерживают интерфейс Spy-Bi-Wire в дополнение к JTAG.

Преимущество протокола Spy-Bi-Wire заключается в том, что он использует только две линии связи, одна из которых является выделенной линией _RESET. Интерфейс JTAG на частях MSP430 с меньшим количеством выводов мультиплексирован с линиями ввода / вывода общего назначения. Это делает относительно трудным отладку схем, построенных на небольших микросхемах с низким бюджетом ввода-вывода, поскольку полное 4-контактное оборудование JTAG будет конфликтовать с чем-либо еще, подключенным к этим линиям ввода-вывода. Эта проблема решается с помощью микросхем с поддержкой Spy-Bi-Wire, которые по-прежнему совместимы с обычным интерфейсом JTAG для обратной совместимости со старыми инструментами разработки.

Инструменты отладки JTAG и flash-программирования, основанные на OpenOCD и широко используемые в сообществе архитектуры ARM , недоступны для MSP430. Инструменты программирования, специально разработанные для MSP430, немного дешевле, чем интерфейсы JTAG, использующие OpenOCD. Однако, если в середине проекта обнаружится, что требуется больше MIPS, больше памяти и больше периферийных устройств ввода-вывода, эти инструменты не будут передаваться на процессор от другого поставщика.

Процессор MSP430

ЦП MSP430 использует архитектуру фон Неймана с единым адресным пространством для инструкций и данных. Память байт -addressed, а пары байт объединяются мало-младшему , чтобы сделать 16-битовые слова .

Процессор содержит 16 16-битных регистров, четыре из которых предназначены для специальных целей: R0 - счетчик программ , R1 - указатель стека , R2 - регистр состояния и R3 - «генератор констант», который считывается как ноль и игнорирует пишет. Добавленное кодирование режима адреса с использованием R3 и R2 позволяет в общей сложности шесть обычно используемых постоянных значений (0, 1, 2, 4, 8 и -1) без необходимости немедленного слова операнда. R4 - R15 доступны для общего использования.

Набор инструкций очень прост: 27 инструкций существуют в трех семействах. Большинство инструкций встречается в версиях с суффиксом .B (8-битный байт) и .W (16-битное слово), в зависимости от значения бита Ч / Б: бит установлен в 1 для 8-битных и 0 для 16-битных. немного. Отсутствующий суффикс эквивалентен .W. Байтовые операции с памятью влияют только на адресный байт, в то время как байтовые операции с регистрами очищают самый значимый байт.

Набор инструкций MSP430
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Инструкция
0 0 0 1 0 0 код операции Ч / Б В качестве регистр Арифметика с одним операндом
0 0 0 1 0 0 0 0 0 Ч / Б В качестве регистр RRC Повернуть вправо (1 бит) через перенос
0 0 0 1 0 0 0 0 1 0 В качестве регистр SWPB байт подкачки
0 0 0 1 0 0 0 1 0 Ч / Б В качестве регистр RRA Повернуть вправо (1 бит) арифметика
0 0 0 1 0 0 0 1 1 0 В качестве регистр Знак SXT расширить от байта до слова
0 0 0 1 0 0 1 0 0 Ч / Б В качестве регистр PUSH Помещать значение в стек
0 0 0 1 0 0 1 0 1 0 В качестве регистр CALL Вызов подпрограммы; нажмите ПК и переместите исходный код на ПК
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 RETI Возврат из прерывания; поп-э-э, затем поп-ПК
0 0 1 состояние 10-битное смещение со знаком Условный прыжок; ПК = ПК + 2 × смещение
0 0 1 0 0 0 10-битное смещение со знаком JNE / JNZ Перейти, если не равно / ноль
0 0 1 0 0 1 10-битное смещение со знаком JEQ / JZ Перейти, если равно / ноль
0 0 1 0 1 0 10-битное смещение со знаком JNC / JLO Перейти, если нет переноски / опускания
0 0 1 0 1 1 10-битное смещение со знаком JC / JHS Прыжок, если несут / выше или то же самое
0 0 1 1 0 0 10-битное смещение со знаком JN Перейти, если отрицательный
0 0 1 1 0 1 10-битное смещение со знаком JGE Перейти, если больше или равно
0 0 1 1 1 0 10-битное смещение со знаком JL Перейти если меньше
0 0 1 1 1 1 10-битное смещение со знаком JMP Jump (безоговорочно)
код операции источник Объявление Ч / Б В качестве место назначения Арифметика с двумя операндами
0 1 0 0 источник Объявление Ч / Б В качестве место назначения MOV Переместить источник в пункт назначения
0 1 0 1 источник Объявление Ч / Б В качестве место назначения ДОБАВИТЬ Добавить источник в место назначения
0 1 1 0 источник Объявление Ч / Б В качестве место назначения ADDC Добавить источник и перенести в пункт назначения
0 1 1 1 источник Объявление Ч / Б В качестве место назначения SUBC Вычесть источник из назначения (с переносом)
1 0 0 0 источник Объявление Ч / Б В качестве место назначения SUB Вычесть источник из назначения
1 0 0 1 источник Объявление Ч / Б В качестве место назначения CMP Сравнить (сделать вид, что вычесть) источник из места назначения
1 0 1 0 источник Объявление Ч / Б В качестве место назначения DADD Decimal добавить источник к месту назначения (с переносом)
1 0 1 1 источник Объявление Ч / Б В качестве место назначения BIT Тестовые биты источника И пункта назначения
1 1 0 0 источник Объявление Ч / Б В качестве место назначения BIC Бит очищен (dest & = ~ src)
1 1 0 1 источник Объявление Ч / Б В качестве место назначения Набор битов BIS (логическое ИЛИ)
1 1 1 0 источник Объявление Ч / Б В качестве место назначения Исключающее ИЛИ или источник с местом назначения
1 1 1 1 источник Объявление Ч / Б В качестве место назначения И логическое И источник с местом назначения (dest & = src)

Инструкции состоят из 16 бит, за которыми следуют до двух 16-битных слов расширения. Режимы адресации задаются 2-битным полем As и 1-битным полем Ad. Некоторые специальные версии могут быть созданы с использованием R0, а режимы, отличные от прямого использования регистра с использованием R2 (регистр состояния) и R3 (генератор констант), интерпретируются особым образом. Объявление может использовать только подмножество режимов адресации для As.

В режимах индексированной адресации к инструкции добавляется 16-разрядное слово расширения. Если индексируются и источник, и место назначения, первым идет слово расширения источника. x относится к следующему слову расширения в потоке инструкций в таблице ниже.

Режимы адресации MSP430
В качестве Объявление регистр Синтаксис Описание
00 0 п R n Зарегистрируйтесь напрямую. Операнд - это содержимое R n .
01 1 п х (R n ) Проиндексировано. Операнд находится в памяти по адресу R n + x .
10 - п @R n Зарегистрируйте косвенный. Операнд находится в памяти по адресу, хранящемуся в R n .
11 - п @R n + Косвенный автоинкремент. Как и выше, регистр увеличивается на 1 или 2.
Режимы адресации с использованием R0 (ПК)
01 1 0 (ПК) ADDR Символический. Эквивалентно x (ПК). Операнд находится в памяти по адресу PC + x .
11 - 0 (ПК) # х Немедленный. Эквивалент @ PC +. Операнд - это следующее слово в потоке инструкций.
Режимы адресации с использованием R2 (SR) и R3 (CG), декодирование в частном случае
01 1 2 (SR) & ADDR Абсолютно. Операнд находится в памяти по адресу x .
10 - 2 (SR) # 4 Постоянный. Операнд - константа 4.
11 - 2 (SR) # 8 Постоянный. Операнд - константа 8.
00 - 3 (CG) # 0 Постоянный. Операнд - константа 0.
01 - 3 (CG) # 1 Постоянный. Операндом является константа 1. Индексного слова нет.
10 - 3 (CG) # 2 Постоянный. Операнд - константа 2.
11 - 3 (CG) # -1 Постоянный. Операнд - константа -1.

Команды обычно занимают 1 цикл на каждое извлеченное или сохраненное слово, поэтому время выполнения команд варьируется от 1 цикла для простой инструкции регистр-регистр до 6 циклов для инструкции с индексированными как источником, так и получателем.

Расширение MSP430X с 20-разрядной адресацией добавляет дополнительные инструкции, для которых может потребоваться до 10 тактов. Установка или сброс периферийного бита занимает два такта. Прыжок, сделанный или нет, требует двух часов. Для двух MCLK серии 2xx это 125 нс на частоте 16 МГц.

Допускаются ходы к счетчику программы и выполнение прыжков. Возврат из подпрограммы, например, реализован как MOV @ SP +, PC .

Когда R0 (PC) или R1 (SP) используются в режиме адресации с автоинкрементом, они всегда увеличиваются на два. Другие регистры (с R4 по R15) увеличиваются на размер операнда, либо на 1, либо на 2 байта.

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

Псевдооперации

Многие добавленные инструкции реализованы как псевдонимы для вышеуказанных форм. Например, нет специальной инструкции «возврат из подпрограммы», но она реализована как «MOV @ SP +, PC». Эмулируемые инструкции:

MSP430 Эмулированные инструкции
Эмулированный Действительный Описание
АЦП . x dst ADDC. x # 0, dst Добавить в пункт назначения
BR dst MOV dst , ПК Ветвь к месту назначения
CLR . x dst MOV. x # 0, dst Очистить пункт назначения
CLRC БИК №1, СР Очистить бит переноса
CLRN БИК №4, SR Очистить отрицательный бит
CLRZ БИК №2, SR Очистить нулевой бит
DADC . x dst ПАПА. x # 0, dst Десятичный добавить перенос в пункт назначения
Дек . x dst ПОД. х # 1, dst Декремент
DECD . x dst ПОД. x # 2, dst Двойной декремент
ВМЯТИНА БИК № 8, SR Отключить прерывания
EINT BIS №8, SR Разрешить прерывания
INC . x dst ДОБАВИТЬ. x # 1, dst Инкремент
INCD . x dst ДОБАВИТЬ. x # 2, dst Двойное приращение
ИНВ . x dst XOR. x # −1, dst Инвертировать
NOP MOV # 0, R3 Нет операции
POP dst MOV @ SP +, dst Вытащить из стопки
RET MOV @ SP +, ПК Возврат из подпрограммы
RLA . x dst ДОБАВИТЬ. x dst , dst Повернуть арифметику влево (сдвинуть влево на 1 бит)
RLC . x dst ADDC. x dst , dst Повернуть влево через перенос
SBC . x dst SUBC. x # 0, dst Вычтите заимствование (1 - перенос) из пункта назначения
SETC BIS №1, SR Установить бит переноса
SETN BIS №4, SR Установить отрицательный бит
SETZ BIS №2, SR Установить нулевой бит
TST . x dst CMP. x # 0, dst Пункт назначения

Обратите внимание, что непосредственные константы -1 (0xffff), 0, 1, 2, 4 и 8 могут быть указаны в однословной инструкции без необходимости в отдельном непосредственном операнде.

20-битное расширение MSP430X

Базовый MSP430 не может поддерживать больше памяти (ПЗУ + ОЗУ + периферийные устройства), чем его адресное пространство 64 КБ. Для поддержки этого расширенная форма MSP430 использует 20-разрядные регистры и 20-разрядное адресное пространство, что позволяет использовать до 1 МБ памяти. Здесь используется тот же набор инструкций, что и в базовой форме, но с двумя расширениями:

  1. Ограниченное количество 20-битных инструкций для общих операций и
  2. Общий механизм префиксного слова, который может расширить любую инструкцию до 20 бит.

Расширенные инструкции включают в себя некоторые дополнительные возможности, в частности, многобитные сдвиги и операции загрузки / сохранения нескольких регистров.

20-битные операции используют суффикс длины «A» (для адреса) вместо .B или .W. .W по-прежнему используется по умолчанию. Как правило, более короткие операции очищают старшие биты регистра назначения.

Новые инструкции заключаются в следующем:

Расширенные инструкции MSP430X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Второе слово Инструкция
0 0 0 0 источник 0 0 код операции место назначения Расширенные перемещения регистра памяти
0 0 0 0 src 0 0 0 0 dst - MOVA @R src , R dst
0 0 0 0 src 0 0 0 1 dst - MOVA @R src +, R dst
0 0 0 0 адрес [19:16] 0 0 1 0 dst адрес [15: 0] MOVA & abs20, R dst
0 0 0 0 src 0 0 1 1 dst х [15: 0] MOVA x (R src ), R dst
0 0 0 0 п-1 op. 0 1 0 W / A место назначения Битовые сдвиги (1–4 битовые позиции)
0 0 0 0 п-1 0 0 0 1 0 W / A dst - RRCM . x # n , R dst (вращать вправо через перенос.)
0 0 0 0 п-1 0 1 0 1 0 W / A dst - RRAM . x # n , R dst (арифметический поворот вправо, он же сдвиг вправо со знаком.)
0 0 0 0 п-1 1 0 0 1 0 W / A dst - РЛАМ . x # n , R dst (Повернуть арифметику влево, также можно сдвинуть влево.)
0 0 0 0 п-1 1 1 0 1 0 W / A dst - РРУМ . x # n , R dst (Повернуть вправо без знака, иначе логический сдвиг вправо.)
0 0 0 0 источник 0 1 1 op. место назначения Расширенные ходы регистров-памяти
0 0 0 0 src 0 1 1 0 адрес [19:16] адрес [15: 0] MOVA R src и abs20
0 0 0 0 src 0 1 1 1 dst х [15: 0] MOVA R src , x (R dst )
0 0 0 0 источник 1 код операции место назначения Расширенные операции ALU
0 0 0 0 imm [19:16] 1 0 0 0 dst imm [15: 0] MOVA # imm20, R dst
0 0 0 0 imm [19:16] 1 0 0 1 dst imm [15: 0] CMPA # imm20, R dst
0 0 0 0 imm [19:16] 1 0 1 0 dst imm [15: 0] ADDA # imm20, R ДСТ
0 0 0 0 imm [19:16] 1 0 1 1 dst imm [15: 0] SUBA # imm20, R dst
0 0 0 0 src 1 1 0 0 dst - MOVA R src , R dst
0 0 0 0 src 1 1 0 1 dst - CMPA R src , R dst
0 0 0 0 src 1 1 1 0 dst - ADDA R src , R dst
0 0 0 0 src 1 1 1 1 dst - SUBA R src , R dst
0 0 0 1 0 0 1 1 op. Режим варьируется КАЛЛА
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 - RETI (такой же, как MSP430)
0 0 0 1 0 0 1 1 0 1 В качестве регистр Источник CALLA
0 0 0 1 0 0 1 1 1 0 0 0 абс [19:16] абс [15: 0] КАЛЛА и абс20
0 0 0 1 0 0 1 1 1 0 0 1 x [19:16] х [15: 0] CALLA x (ПК)
0 0 0 1 0 0 1 1 1 0 1 0 - - (зарезервированный)
0 0 0 1 0 0 1 1 1 0 1 1 imm [19:16] imm [15: 0] CALLA # imm20
0 0 0 1 0 0 1 1 1 1 - - (зарезервированный)
0 0 0 1 0 1 реж W / A п-1 регистр Push / pop n регистров, заканчивающихся указанными
0 0 0 1 0 1 0 W / A п-1 src - ПУШМ . x # n , R src  Нажмите R src , R ( src −1), ... R ( src - n +1)
0 0 0 1 0 1 1 W / A п-1 dst − n + 1 - POPM . x # n , R dst  Pop R ( dst - n +1), R ( dst - n +2), ... R dst

Ко всем другим инструкциям можно добавить префиксное слово, которое расширяет их до 20 бит. Слово префикса содержит добавленный бит размера операнда, который комбинируется с существующим битом Ч / Б для определения размера операнда. Существует одна неиспользованная комбинация размеров; признаки предполагают, что он может быть использован в будущем для 32-битного размера операнда.

Префиксное слово бывает двух форматов, и выбор между ними зависит от следующей инструкции. Если инструкция имеет какие-либо не регистровые операнды, то используется простая форма, которая предоставляет 2 4-битных поля для расширения любого смещения или непосредственной константы в потоке инструкций до 20 бит.

Если инструкция записывается регистр-регистр, используется другое слово расширения. Это включает флаг «ZC», который подавляет перенос (полезно для таких инструкций, как DADD, которые всегда используют бит переноса), и счетчик повторов. 4-битное поле в слове расширения кодирует либо счетчик повторов (0–15 повторов в дополнение к начальному выполнению), либо номер регистра, который содержит 4-битный счетчик повторов.

Префиксные слова MSP430X
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Инструкция
0 0 0 1 1 - A / L 0 0 - Дополнительное слово
0 0 0 1 1 src [19:16] A / L 0 0 dst [19:16] Расширение операнда памяти
0 0 0 1 1 0 0 ZC 0 A / L 0 0 п-1 Зарегистрируйте расширение операнда (немедленное количество повторов)
0 0 0 1 1 0 0 ZC 1 A / L 0 0 Rn Зарегистрируйте расширение операнда (регистр счетчика повторов)

Адресное пространство MSP430

Общая структура адресного пространства MSP430:

0x0000–0x0007
Регистры специальных функций процессора (регистры управления прерываниями)
0x0008–0x00FF
8-битная периферия. Доступ к ним должен осуществляться с использованием 8-битных загрузок и запоминаний.
0x0100–0x01FF
16-битная периферия. Доступ к ним должен осуществляться с использованием 16-битных загрузок и запоминаний.
0x0200–0x09FF
До 2048 байт ОЗУ .
0x0C00–0x0FFF
1024 байта ПЗУ загрузчика начальной загрузки (только для флеш-памяти).
0x1000–0x10FF
256 байт флэш-ПЗУ с данными (только флэш-память).
0x1800-0x19FF
512 байт данных FRAM (большинство микроконтроллеров FRAM с возможностью записи пользователем и не содержат данных калибровки)
0x1100–0x38FF
Расширенная оперативная память на моделях с более чем 2048 байтами ОЗУ. (0x1100–0x18FF является копией 0x0200–0x09FF)
0x1100–0xFFFF
ПЗУ программы до 60 килобайт . ПЗУ меньшего размера начинаются с более высоких адресов. Последние 16 или 32 байта являются векторами прерывания .

Некоторые модели включают более 2048 байт ОЗУ; в этом случае RAM начинается с 0x1100. Первые 2048 байтов (0x1100–0x18FF) зеркалируются по адресу 0x0200–0x09FF для совместимости. Кроме того, некоторые последние модели изменяют правила для 8-битных и 16-битных периферийных устройств, обеспечивая 16-битный доступ к периферийным устройствам в 8-битном диапазоне периферийных адресов.

Существует новая расширенная версия архитектуры (названная MSP430X), которая допускает 20-битное адресное пространство . Это позволяет добавлять ПЗУ программы, начиная с 0x10000.

Серия 5xx имеет значительно переработанное адресное пространство: первые 4 КБ отведены под периферийные устройства и до 16 КБ ОЗУ.

использованная литература

  1. ^ Evanczuk, Стивен (20 августа 2013). «Слайд-шоу: самые популярные MCU когда-либо» . edn.com . Сеть дизайна электроники . Дата обращения 3 сентября 2020 .
  2. ^ MSP430 будет работать на винограде - видео на YouTube
  3. ^ a b Д. Петерс, Д. Раскович и Д. Торсен, "Энергосберегающая параллельная встроенная система для малых спутниковых приложений" , ISAST Transactions on Computers and Intelligent Systems , vol. 1 (2), 2009 г.
  4. ^ Микроконтроллеры MSP430 с самым низким энергопотреблением от Texas Instruments
  5. ^ а б http://www.ti.com/lit/slau445
  6. ^ [1] , сайт Энергии
  7. ^ Статья о MSP430, опубликованная вжурнале IEEE .
  8. ^ Визуальные решения
  9. ^ MSP430 LaunchPad (MSP-EXP430G2) , Вики-сайт по встроенным процессорам Texas Instruments
  10. ^ "Микроконтроллер со сверхнизким энергопотреблением MSP430" (PDF) . Техасские инструменты . Проверено 9 июля 2008 года .
  11. ^ Бит размера названA/L, гдеL(long) используется другими процессорами для обозначения 32-битных операндов. Также описание инструкции SXTX (Руководство пользователя семейства MSP430F5xx, alau208f, стр. 237) описывает действие инструкции в битах 20–31 регистров.

внешние ссылки

Сообщество и информационные сайты

Генераторы кода C для визуального программирования

Компиляторы, ассемблеры и IDE

  Бесплатный компилятор и IDE

  Самые популярные неограниченные среды разработки и компиляторы

  Разные IDE

Список средств отладки (не полный)

Имя Производитель Интерфейс Протокол (ы) Положение дел
MSP-FET430PIF TI Параллельный порт JTAG
MSP-FET430UIF TI USB-интерфейс JTAG, Spy-Bi-Wire
MSP-FET TI USB-интерфейс JTAG, Spy-Bi-Wire
Панель запуска MSP-430 TI USB-интерфейс Spy-Bi-Wire
MSP-430 LaunchPad eZ-FET TI USB-интерфейс Spy-Bi-Wire
eZ430-F2013 TI USB-интерфейс Spy-Bi-Wire
eZ430-RF2500 TI USB-интерфейс Spy-Bi-Wire
FETP SoftBaugh Параллельный порт JTAG
USBP SoftBaugh USB-интерфейс JTAG, Spy-Bi-Wire снято с производства
MSP430-JTAG Олимекс Параллельный порт JTAG
MSP430-JTAG-ISO Олимекс USB-интерфейс JTAG, Spy-Bi-Wire устаревший
MSP430-JTAG-ISO-MK2 Олимекс USB-интерфейс JTAG, Spy-Bi-Wire
MSP430-JTAG-Tiny Олимекс USB-интерфейс JTAG, Spy-Bi-Wire не найден
MSP430-JTAG-TINY-V2 Олимекс USB-интерфейс JTAG ?, Spy-Bi-Wire
MSP430-JTAG-RF Олимекс USB-интерфейс JTAG, Spy-Bi-Wire
FlashPro-CC Элпротроник USB-интерфейс JTAG, Spy-Bi-Wire, BSL
VisSim / ECD Визуальные решения USB-интерфейс JTAG, Spy-Bi-Wire
LA-3713 Лаутербах USB-интерфейс / Ethernet JTAG, шпион-би-провод

Прочие инструменты