Выбор микроконтроллера: MSP430 с флэш-памятью
16-разрядные микроконтроллеры активно вторгаются на рынок, традиционно принадлежащий 8-разрядным. Растут требования к производительности и времени автономной работы. Технология флэш-памяти позволяет сократить цикл разработки и внедрения нового изделия. В связи с этим несомненный интерес вызывает активно развивающееся семейство микроконтроллеров MSP430 с флэш-памятью и сверх-малым потреблением, производимое корпорацией Texas Instruments.
Введение
В многочисленных и продолжительных путешествиях по интернету у автора этих строк сложилось впечатление, что после операционных усилителей микроконтроллеры — самая многочисленная группа микросхем. От 4- до 32-разрядных, с максимальной тактовой частотой от сотен килогерц до многих десятков мегагерц, рассчитанные на самые разнообразные области применения. И все-таки среди всего этого многообразия выделяются несколько лидеров, одним из которых, несомненно, является семейство 16-разрядных микроконтроллеров MSP430 с крайне низким энергопотреблением, производимое корпорацией Texas Instruments (TI).
В последние годы наметилась тенденция к использованию в микроконтроллерах вместо традиционных ПЗУ (масочных, однократно программируемых или перепрограммируемых) устройств флэш-памяти. Достоинства этой технологии очевидны — возможность многократного перепрограммирования в целевой системе, накопления и обновления данных непосредственно из прикладной программы. В случае Texas Instruments данная тенденция проявилась в расширении популярного семейства микроконтроллеров MSP430 рядом устройств с флэш-памятью (MSP430F), которым и посвящена настоящая статья.
Приведем краткий перечень основных характеристик микроконтроллеров MSP430F:
- 16-разрядная RISC-архитектура, выполнение регистровых инструкций за один машинный цикл;
- рабочая частота от 0 до 8 МГц;
- напряжение питания от 1,8 до 3,6 В;
- крайне низкое потребление: от 1,3 до 2,5 мкА при частоте 4 кГц и напряжении питания 2,2 В; от 160 до 280 мкА при частоте 1 МГц и напряжении питания 2,2 В;
- пять режимов экономии энергии;
- потребление в дежурном режиме (standby mode) от 0,7 до 1,6 мкА;
- потребление в режиме отключения с сохранением содержимого ОЗУ (режим сна) — 0,1 мкА;
- пробуждение из дежурного режима за 6 мкс;
- возможность программирования в целевой системе через последовательный интерфейс;
- весьма широкий набор интегрированной периферии;
- диапазон рабочих температур от –40 до +85 °С.
Что же получит разработчик, положив в основу своего проекта микроконтроллер MSP430F?
Сверхмалая потребляемая мощность. Даже при максимальной тактовой частоте 8 МГц и напряжении питания 3,3 В ток потребления не превышает 4,5 мА для самых архитектурно сложных устройств, для остальных же членов семейства этот ток не превышает 2,8 мА. Для задач с повышенными требованиями к времени автономной работы и некритичных к производительности потребляемый ток может быть снижен вплоть до 1 мкА и ниже, использование же режимов экономии энергии позволяет достичь еще более впечатляющих результатов.
Применение флэш-памяти с очень малым потреблением наряду с развитой системой синхронизации и RISC-подобным центральным процессором позволяют строить автономные устройства, способные работать без замены батареи до 10–15 лет.
Высокая производительность. Конечно, многие современные 8-разрядные микроконтроллеры способны работать на частотах в десятки мегагерц. Однако на выполнение одной инструкции, как правило, требуется несколько (два и более) машинных циклов. В то же время в устройствах MSP430 применяется RISC-ядро с шестнадцатью интегрированными регистрами, выполняющее любую регистровую инструкцию за один такт синхронизации, что, наряду с более высокой разрядностью, обеспечивает производительность, оставляющую далеко позади многие 8-разрядные (и не только) микроконтроллеры со значительно более высокими рабочими частотами. Кроме того, в некоторые модели MSP430F встроен аппаратный у
множитель, позволяющий еще больше повысить производительность на задачах цифровой обработки сигналов.
Высокая пропускная способность ЦП и быстрый выход из дежурных режимов позволяют сильно снизить потребление за счет сокращения времени работы в активном состоянии и, соответственно, увеличения времени нахождения микроконтроллера в состояниях ожидания, когда периферия продолжает работать, а переход в активный режим осуществляется только по готовности данных для обработки результатов.
Широкий набор интегрированной периферии. На сегодня имеются устройства самого разного уровня сложности, от простейших, содержащих только таймер и пару портов, до весьма архитектурно развитых, имеющих в своем составе быстродействующий 10- или 12-разрядный АЦП, компаратор, до двух УСАПП, один или два таймера ШИМ, таймер-счетчик, контроллер ЖК-дисплея на 96 или 160 сегментов, супервизор питания и до 48 линий ввода—вывода общего назначения.
Здесь важно отметить, что даже простые представители рассматриваемого семейства микроконтроллеров обладают значительными аппаратными возможностями. Например, таймер, имеющийся во всех устройствах, обеспечивает аппаратную поддержку для построения последовательного асинхронного порта со скоростью до 115 200 бод, а встроенный компаратор позволяет реализовать токовый АЦП с двумя измерительными каналами довольно высокой точности — и все это практически без дополнительных внешних компонентов.
Удобство программирования и отладки. Микроконтроллеры MSP430 имеют очень простую в освоении систему команд с малым числом инструкций. Кроме ассемблера, писать программы можно также на языках Си, Паскаль и Форт. Texas Instruments для первоначального ознакомления и начала работы с MSP430 выпускает стартовые наборы FET (Flash Emulation Tools), укомплектованные необходимым программным обеспечением, которое к тому же свободно доступно для загрузки на сайте производителя. Средства программирования и отладки выпускаются и сторонними разработчиками. Доступны также полноценные бесплатные компиляторы Си.
Применение в микроконтроллерах флэш-памяти наряду с возможностью загрузки ПО через JTAG или последовательный интерфейс позволяют отлаживать прикладные программы непосредственно в целевой системе.
Архитектура микроконтроллеров
На рис. 1 приведена структурная схема простейших членов семейства MSP430 с флэш-памятью — микроконтроллеров MSP430F11х.
Остальные устройства подчиняются тем же архитектурным принципам и отличаются лишь составом встроенной периферии.
Центральный процессор (ЦП)
В основу микроконтроллеров положена архитектура RISC. Регистровая организация и система команд очень близки к широко известной и в прошлом весьма популярной архитектуре PDP11 (СМ ЭВМ, ДВК, «Электроника-60», БК-0010, микропроцессор К1801ВМ2 и т. п.). ЦП имеет 16 встроенных регистров, четыре из которых зарезервированы под счетчик команд (PC), указатель стека (SP), регистр состояния (SR) и генератор констант (CG).
Генератор констант служит для получения наиболее часто используемых констант (–1, 0, 1, 2, 4, 8) и позволяет, в дополнение к 27 основным командам, эмулировать еще 24 дополнительных инструкции. То, что инструкции эмулируются, не означает снижения производительности. Эмулируемые инструкции столь же эффективны, как и встроенные, и представляют собой лишь более наглядную нотацию частных случаев использования встроенных команд. Например, типичная однооперандная инструкция (CLR dst) эмулируется двухоперандной инструкцией той же длины (MOV R3,dst) или, что то же самое, (MOV #0,dst), где 0 заменяется ассемблером.
В результате имеем однословную инструкцию, отсутствие дополнительных управляющих операций или оборудования в ЦП, а также регистровый режим адресации для операнда-источника без дополнительного цикла для выборки константы.
Для доступа к данным применяются семь способов адресации для операнда-источника, и четыре — для операнда-приемника. Большинство инструкций может работать как с байтами, так и с двухбайтовыми словами. Команды условных переходов и вызовы подпрограмм используют те же самые способы адресации, что и другие инструкции. Скорость работы ЦП зависит от используемых форматов команд и режимов адресации и может составлять от 1 до 6 периодов MCLK на инструкцию.
Микроконтроллеры MSP430 организованы в соответствии с фон-неймановской архитектурой. Память программ, данных и периферия расположены в едином адресном пространстве. В результате для доступа к коду, данным и периферии могут использоваться одни и те же инструкции. Еще одним эффектом применения этой архитектуры является возможность выполнения кода из оперативной памяти.
Система синхронизации
Система синхронизации микроконтроллеров MSP430 в значительной степени определяет их возможности по достижению предельно малого энергопотребления. На рис. 2 представлена упрощенная структурная схема модуля синхронизации, общая для всех устройств MSP430F1xx (генератор XT2 присутствует не во всех устройствах).
Модуль системной синхронизации вырабатывает три тактовых сигнала — базовую частоту MCLK, вспомогательную базовую частоту SMCLK и вспомогательную частоту ACLK. Сигнал MCLK используется для тактирования ЦП, в то время как SMCLK и ACLK в различных комбинациях используются для тактирования периферийных устройств. Применение трех сигналов синхронизации позволяет разработчику прикладной системы достичь наилучшего баланса между производительностью и потребляемой мощностью.
Как видно из рисунка, первичными источниками сигналов синхронизации служат один, два или три генератора. Генераторы LFXT1 и XT2 могут работать с керамическим резонатором с частотой от 450 кГц до 8 МГц, кварцевым резонатором с частотой от 1 до 8 МГц или с внешним генератором частоты. Помимо этого, генератор LFXT1 может работать от часового кристалла на 32 768 Гц. Все аналоговые компоненты для 32 кГц кварца интегрированы в LFXT1 — из внешних компонентов требуется только кристалл. Если же используются высокочастотные резонаторы, необходимость использования нагрузочных конденсаторов сохраняется.
DCO представляет собой RC-генератор, фундаментальная частота которого задается внутренним или внешним резистором. Частота DCOCLK может программно изменяться в широких пределах. Используя DCO с внутренним задающим резистором, можно построить систему, не использующую никаких внешних частотозадающих компонентов.
При этом не следует забывать, что, как и в случае любого другого RC-генератора, частота DCO подвержена влиянию температуры, напряжения питания и меняется от устройства к устройству, однако имеется возможность ее цифровой подстройки.
Разработчик имеет возможность использовать любые комбинации генераторов и синхросигналов, исходя из критериев стоимости, потребляемой мощности и производительности разрабатываемого устройства.
Модуль синхронизации FLL+
В микроконтроллерах MSP430x4xx система синхронизации была усовершенствована введением фазовой автоподстройки частоты (ФАПЧ) генератора DCO относительно LFXT1 или XT2, что существенно повышает стабильность частоты DCO в системах с внешним резонатором, но не лишает возможности работать только от частотозадающего резистора (систему ФАПЧ можно программно отключить). Новый модуль синхронизации с ФАПЧ получил название FLL+.
Энергосберегающие режимы
Помимо активного режима (АМ), когда все внутренние синхросигналы активны, поддерживается также пять режимов, позволяющих в той или иной степени снизить потребляемую микроконтроллером мощность. Эти режимы обозначаются от LPM0 (Low Power Mode 0) до LPM4 и различаются комбинациями включения и отключения синхросигналов MCLK, SMCLK, ACLK и генератора DCO.
Во всех пяти режимах центральный процессор выключен. Режим LPM4 (режим сна) является самым радикальным — приостанавливается любая активность микроконтроллера, включая системный генератор, лишь сохраняется содержимое оперативной памяти, регистров и установки портов ввода—вывода. При этом типовая величина потребляемого тока снижается до 0,1 мкА.
Возврат к активному режиму после любого из этих состояний ожидания может быть осуществлен по прерываниям от работающей периферии или от RST/NMI. Выход из режима LPM4 возможен только по разрешенным внешним прерываниям.
В дополнение к энергосберегающим режимам, отключением тех или иных периферийных устройств можно достичь еще большего снижения тока потребления.
Память
Рассматриваемые микроконтроллеры содержат различные объемы оперативной и флэш-памяти, причем оба типа памяти могут использоваться для хранения как кода, так и данных.
Флэш-память предоставляет дополнительную гибкость внутрисистемного программирования и хранения данных без значительного увеличения потребляемого устройством тока. Напряжение программирования генерируется на кристалле микроконтроллера, таким образом снимая потребность в дополнительном питании и даже допуская перепрограммирование в системах с батарейным питанием. Модуль флэш-памяти состоит из нескольких сегментов. Каждый сегмент может стираться и программироваться независимо от других сегментов. Различают области основной и информационной памяти. Основная память содержит сегменты по 512 байт, а информационная — один или два сегмента размером 128 байт. При выполнении операций очистки и программирования весь модуль недоступен, а соответствующий программный код должен выполняться из ОЗУ.
В принципе документация предполагает возможность существования более одного модуля флэш-памяти, однако таких устройств еще не производится. Под модулем подразумевается физическая единица памяти, которая работает независимо от других модулей. Независимость позволила бы выполнять операции программирования или стирания одного модуля одновременно с выполнением кода из другого модуля. Вероятно, стоит ожидать появления таких устройств в будущем.
Помимо названных типов памяти, микроконтроллеры имеют в своем составе загрузочное ПЗУ, содержащее код начальной загрузки флэш-памяти, который позволяет программировать и перепрограммировать микроконтроллеры в системе с помощью программно эмулируемого последовательного интерфейса.
Супервизор питания
Микроконтроллеры MSP430x4xx содержат цепь супервизора питания, генерирующую сигнал системного сброса при снижении напряжения питания ниже некоторого порогового значения. Причем если MSP430x41x имеют одно фиксированное пороговое значение срабатывания, то MSP430x43x и MSP430x44x могут быть запрограммированы на один из 14 допустимых уровней. Встроенный супервизор позволяет еще более уменьшить число внешних компонентов.
Периферийные устройства
Порты ввода—вывода
Порты ввода—вывода общего назначения микроконтроллеров MSP430 обеспечивают максимальную гибкость их использования. Каждая линия ввода—вывода конфигурируется независимо. Линии ввода—вывода портов P1 и Р2 (присутствуют во всех устройствах) могут служить для передачи микроконтроллеру внешних прерываний, причем с каждым портом ассоциирован свой вектор прерывания, а для идентификации возбужденного прерывания служит регистр флагов порта. Ряд устройств содержит дополнительные порты Р3…Р6. Это порты общего назначения, не предназначенные для обработки прерываний. Многие линии ввода—вывода мультиплексированы с внешними выводами периферийных устройств.
Устройства MSP430F11xx имеют порты P1 и P2; MSP430F12xx — P1…P3; MSP430F13x, F14x и F4xx — P1…P6. В наиболее простых устройствах порт Р2 имеет всего шесть линий ввода—вывода.
Сторожевой таймер
Первичная функция модуля сторожевого таймера (WDT) — выполнение контролируемого системой рестарта при зависании программы. Если программа не производит обращение к сторожевому таймеру в течение заданного интервала времени, производится системный сброс. Если данная функция не требуется, этот модуль может работать в качестве интервального таймера для генерации прерываний с заданным временным интервалом. В обоих режимах можно установить один из восьми интервалов, привязанных либо к ACLK, либо к SMCLK. В случае ACLK = SMCLK = 1 МГц, для WDT можно установить интервал от 4 мкс до 32 с.
Аппаратный умножитель
Аппаратный умножитель, встроенный в MSP430F14x/F44x, это 16-разрядное периферийное устройство. Он не интегрирован в ЦП.
Таким образом, он не требует использования специальных инструкций и работает независимо от ЦП. Умножитель имеет два 16-разрядных регистра для операндов и три регистра для сохранения результата умножения. Для использования аппаратного умножителя операнды загружаются в регистры, а уже следующая инструкция может использовать результат операции — никаких дополнительных циклов не требуется.
Модуль аппаратного умножителя расширяет возможности микроконтроллеров семейства MSP430 без изменения их базовой архитектуры. Операции осуществляются над любыми комбинациями 8- и 16-разрядных операндов. Поддерживаются четыре типа операций: знаковое и беззнаковое умножение (MPYS и MPY), знаковое и беззнаковое умножение с накоплением (MACS и MAC).
Таймеры
Микроконтроллеры MSP430F содержат один или два универсальных таймера (Timer_A и Timer_B) и таймер-счетчик общего назначения, называемый в документации базовым таймером.
Timer_A — универсальный таймер, состоящий из 16-разрядного счетчика с четырьмя рабочими режимами и трех регистров захвата и сравнения. Timer_A может осуществлять множественный одновременный счет, множественные операции захваты и сравнения, формирование выходных сигналов специальной формы, в частности ШИМ-сигналы, а также любые комбинации названных операций.
Кроме того, каждый регистр захвата и сравнения имеет аппаратную поддержку для осуществления последовательных коммуникаций, например полнодуплексного УАПП со скоростью от 75 до 115 200 бод. Прерывания от таймера А могут генерироваться счетчиком по условиям переполнения, а также каждым из регистров захвата и сравнения по захвату или достижению условия сравнения. Каждый блок захвата и сравнения конфигурируется индивидуально и может производить прерывания по достижению условия сравнения, по положительному, отрицательному или обоим фронтам внешнего сигнала захвата.
В дополнение к таймеру А, микроконтроллеры F13x, F14x, F43x и F44x содержат еще один таймер аналогичного назначения, называемый Timer_B, содержащий три или семь модулей захвата и сравнения. В зависимости от числа этих модулей таймер обозначается Timer_B3 или Timer_B7. Таймер В в основном аналогичен таймеру А, однако по сравнению с последним имеет некоторые усовершенствования. В частности, разрядность таймера можно программно установить на 8, 10, 12 или 16 бит (таймер А всегда 16-разрядный), а использование двойной буферизации данных сравнения позволяет одновременно обновлять периоды ШИМ.
Микроконтроллеры серии F4xx имеют еще один таймер, называемый Basic Timer (базовый таймер). Основное назначение базового таймера заключается в предоставлении другим периферийным модулям или программному обеспечению низкочастотных управляющих сигналов. Его можно программно сконфигурировать как два независимых 8-разрядных или как один 16-разрядный таймер-счетчик. В частности, базовый таймер можно использовать в качестве часов реального времени, для устранения дребезга клавиатуры или формирования временных интервалов в прикладных программах.
УСАПП
MSP430F12xx, F13x, F14x, F43x и F44x содержат один или два универсальных синхронноасинхронных приемопередатчика (УСАПП), которые могут работать в асинхронном (УАПП или UART) или синхронном (SPI) режиме.
В асинхронном режиме УСАПП поддерживает два формата многопроцессорных коммуникаций, которые позволяют объединять одной последовательной линией связи более двух устройств (например, с помощью сетей на основе RS-485 или LVDS). Информация в таких сетях передается в виде блоков кадров от одного источника к одному или нескольким устройствам-приемникам. УСАПП подавляет прерывания и формирование слова состояния до тех пор, пока не идентифицирует начало блока.
В формате idle-line (неактивная линия) блоки данных разделяются периодом неактивности, который отмечается десятью или более единичными битами после первого стопового бита передаваемого символа. Первый символ в блоке данных содержит адрес устройства-приемника.
В формате с адресным битом передаваемые символы содержат дополнительный бит, используемый как признак адреса. Символ с установленным адресным битом содержит адрес устройства-приемника и отмечает начало блока.
Применение мультипроцессорных форматов облегчает построение локальных сетей микроконтроллерных устройств, а также позволяет минимизировать активность системы с целью снижения потребляемой мощности. В синхронном режиме УСАПП представляет собой стандартный последовательный интерфейс периферийных устройств (SPI) и обеспечивает работу микроконтроллера в качестве как ведущего, так и ведомого.
Компаратор
Модуль компаратора (Comparator_A) включает аналоговый компаратор без гистерезиса, встроенный программируемый делитель для получения опорного напряжения, входной мультиплексор для обмена входов компаратора и программно отключаемый RC-фильтр на выходе. С компаратором ассоциирован векторпрерываний. Компаратор может использоваться для построения токового АЦП, контроля напряжения батареи или для мониторинга внешних аналоговых сигналов.
12-разрядный АЦП (ADC12)
12-разрядный АЦП, входящий в состав устройств Fx3x и Fx4x, имеет 8 внешних входов, программируемый буфер на 16 слов с автосканированием, встроенный источник опорного напряжения (ИОН), интегрированный датчик температуры и цепь обнаружения разряда батареи. Скорость преобразования до 200 ksps. Свойство автосканирования позволяет АЦП работать независимо от ЦП, автоматически сохраняя данные преобразования в программируемый буфер. Непроизводительные издержки ЦП значительно сокращаются, так как не требуется осуществлять выборку каждого индивидуального результата преобразования. Кроме того, интегрированные ИОН и датчик температуры сокращают количество внешних компонентов и стоимость системы.
10-разрядный АЦП (ADC10) с контроллером прямого доступа (DTC)
10-разрядный АЦП — новинка 2002 года. Входит в состав микроконтроллеров MSP430F1xx2. Быстрый (свыше 200 ksps) 10-разрядный 8-канальный АЦП включает УВХ, генератор, датчик температуры, прецизионный ИОН и цепь обнаружения разряда батареи. Изюминкой данного устройства является инновационный модуль контроллера прямой передачи данных (DTC), который обеспечивает прямую передачу данных от АЦП непосредственно в оперативную память. DTC позволяет центральному процессору выполнять операции цифровой обработки сигналов в 50 раз быстрее, чем в обычных МК, не жертвуя при этом сверхмалым энергопотреблением. При помощи DTC процессор освобождается для выполнения задач реального времени одновременно с непрерывным осуществлением выборок АЦП для достижения более высокой суммарной производительности, кроме того, он может переводиться в малопотребляющие режимы для снижения потребляемой мощности в приложениях с батарейным питанием.
Модуль управления ЖК-дисплеем
Модуль ЖКИ, встроенный в MSP430F4xx, позволяет микроконтроллеру управлять ЖК-дисплеем. Модуль имеет собственную память, в которую программой помещается информация об отображаемой дисплеем информации, после чего контроллер автоматически без вмешательства ПО генерирует управляющие последовательности для управления дисплеем.
Модуль работает совместно с базовым таймером, который обеспечивает частоту ЖКИ. Устройства F41x позволяют управлять 96-сегментными ЖКИ. В F42x и F43x число обслуживаемых сегментов увеличено до 160.
Состав семейства
MSP430F11х, MSP430F11х1 и MSP430F11х1А
MSP430F110 и F112 — младшие представители семейства MSP430 с флэш-памятью, они имеют встроенный 16-разрядный универсальный таймер и 14 внешних линий ввода—вывода (порты Р1 и Р2). MSP430F110 содержит 1 Кб флэш-памяти и 128 байт ОЗУ, а MSP430F112 соответственно 4 Кб и 256 байт. Эти МК самые миниатюрные в семействе — они выпускаются в 20-выводных корпусах Wide SO (SOWB) и TSSOP.
MSP430F1101 и F1121 — полностью пин-совместимы с MSP430F11х. Добавлен компаратор. Доступны ПЗУ-версии этих устройств MSP430С1111 и MSP430С1121. Версии с суффиксом А, судя по всему, редизайн данных изделий. Имеются незначительные различия в технических характеристиках, в частности несколько снижен ток потребления в режиме ожидания — 0,7 мкА против 0,8 мкА. Добавлен промежуточный вариант MSP430F1111А, содержащий 2 Кб флэш-памяти и 128 байт ОЗУ.
MSP430F12х
Микроконтроллеры MSP430F122 и F123 имеют несколько больший объем флэш-памяти (4 и 8 Кб соответственно) и по 256 байт ОЗУ. Отличаются от предыдущих устройств наличием дополнительного порта ввода—вывода и модуля универсального синхронно-асинхронного приемопередатчика (УСАПП). Выпускаются в 28-выводных корпусах Wide SO (SOWB) и TSSOP.
MSP430F11х2 и MSP430F12х2
MSP430F1232, F1222, F1132 и F1122 имеют 4 или 8 Кбайт флэш-памяти и по 256 байт ОЗУ. Основная особенность — наличие встроенного 10-разрядного АЦП с контроллером прямого доступа к памяти (DTC), что на задачах цифровой обработки сигналов позволяет увеличить суммарную производительность системы в 50 раз, освобождая процессор от обслуживания АЦП. В остальном по составу оборудования и исполнению MSP430F11х2 эквивалентны MSP430F11х, а MSP430F12х2 — MSP430F12х (без компаратора).
MSP430F13х и MSP430F14х
MSP430F133, F135, F147, F148, F149 — это уже весьма сложные по составу устройства, содержащие от 8 до 60 Кбайт флэш-памяти и от 512 байт до 2 Кбайт ОЗУ. Имеют в своем составе быстродействующий 12-разрядный АЦП, шесть цифровых портов (48 линий ввода—вывода), два универсальных таймера Timer_A3 и Timer_B3 (Timer_B7 в MSP430F14х), компаратор и один или два УСАПП. Выпускаются в 64-выводных корпусах QFP.
MSP430F4xх
Эти устройства отличаются прежде всего наличием контроллера ЖК-дисплея, базового таймера и супервизора напряжения питания. MSP430F412 и MSP430F413 могут обслуживать 96-сегментный дисплей, а MSP430F43х и MSP430F44х — 160-сегментный. MSP430F412 и MSP430F413 содержат 4 и 8 Кбайт флэш-памяти соответсвенно, 256 байт ОЗУ, таймер А3, компаратор. Доступны их ПЗУ-версии MSP430С412 и MSP430С413. MSP430F43х и MSP430F44х содержат от 16 до 60 Кбайт флэш-памяти, от 512 байт до 2 Кбайт ОЗУ, таймеры А3 и В3 (В7), компаратор, 12-разрядный АЦП ADC12, а также один или два УСАПП. Все устройства имеют по шесть цифровых портов и выпускаются в 64-выводных корпусах QFP.
Средства разработки и отладки
На текущий момент создано большое количество средств разработки и отладки программ для MSP430. Среди них — как коммерческие продукты, так и бесплатные свободные для загрузки через Интернет программные средства.
Для того чтобы начать работать с микроконтроллерами MSP430F, достаточно приобрести стартовый набор FET (Flash Emulation Tools), выпускаемый для всех типов микроконтроллеров семейства. В состав набора, как правило, входит отладочная плата с панелькой для установки микроконтроллера, пара контроллеров соответствующего типа, комплект документации на CD и программное обеспечение. ПО содержит внутрисхемный JTAG-эмулятор, ассемблер, компоновщик, программный эмулятор и ограниченную версию Си-компилятора компании IAR. Доступна также библиотека программ для вычислений с плавающей точкой.
В то же время схема отладочной платы и программное обеспечение отладочного набора, а также схема и ПО последовательного загрузчика доступны для свободной загрузки на сайте Texas Instruments. Схемы очень простые и могут быть легко воспроизведены своими силами.
Средства разработки и отладки предлагаются также сторонними разработчиками, список которых можно найти на сайте Texas Instruments.
Особый интерес для российского инженера могут представлять бесплатные свободные для загрузки программные средства, а именно IDE430 (до апреля 2002 носил название MSP430 C Compiler) и MSPGCC.
IDE430
IDE430 — это интегрированная среда разработки программ для MSP430 на языке С. Скриншот программы представлен на рис. 3.
В состав IDE430 входят компилятор С, редактор с подсветкой синтаксиса, менеджер проектов и другие инструментальные средства. Компилятор, входящий в пакет, представляет собой узкоспециализированный компилятор С, который генерирует чрезвычайно быстрый и компактный код на ассемблере TI/IAR MSP430.
MSPGCC
Инструментарий GCC для MSP430 (
http://mspgcc.sourceforge.net) представляет собой набор программных модулей, позволяющий добавить MSP430 к списку целевых платформ пакета GCC (GNU Compiler Collection), при этом разработка может проводиться как в среде Unix (Linux, Free BSD, Open BSD и др.), так и под DOS/Windows. Набор утилит Binutils также был пополнен ассемблером, компоновщиком и конвертором объектных файлов для MSP430, при этом обеспечена полная совместимость ассемблерной мнемоники с форматом TI, а команды управления и имена сегментов сохранены в стиле GNU. Из GCC был портирован компилятор С и частично С++.
GNU C — это полнофункциональный компилятор, совместимый с ANSI C98, поддерживающий различные уровни оптимизации, встроенный ассемблер, операции с плавающей точкой и т. п. В рамках проекта MSPGCC были портированы также базовые библиотеки С, такие как libgcc и crts.
Недавно стал доступен двоичный инсталлятор для Windows, который можно загрузить по адресу
http://www.mikrocontroller.net/msp430.en.htm.
Литература
- MSP430x1xx Family User’s Guide (SLAU049B).
- MSP430x4xx Family User’s Guide (SLAU056B).
- MSP430 Family Mixed-Signal Microcontroller Application Reports (SLAA024).
- The MSP430 Hardware Multiplier (SLAA042).
- MSP430 Universal Synchronous Asynchronous Receive/Transmit Communication Interface (SLAA049).
- Implementing a UART Function With TimerA3 (SLAA078A).
- The MSP430x1xx Basic Clock System (SLAA081).