Семейство измерительных микроконтроллеров MSP430, компании Texas Instruments, наконец-то пополнилось микроконтроллерами с Flash-памятью программ. И здесь компания Texas Instruments оказалась впереди других компаний. Микроконтроллеры с Flash-памятью программ, компании Texas Instruments, имеют самое низкое энергопотребление в сравнении с микроконтроллерами других компаний. Благодаря применению Flash-памяти, появилась возможность модифицировать память программ, не снимая микроконтроллер с рабочей платы. Кроме того, микроконтроллеры с Flash-памятью значительно дешевле микроконтроллеров с EPROM-памятью программ. В таблице 1 представлена таблица с основными характеристиками семейства микроконтроллеров MSP430F11xx. Как видно из таблицы микроконтроллеры семейства отличаются между собой объемом памяти данных и памяти программ. Есть некоторые различия в характеристиках таймера.
Таблица 1. Основные характеристики семейства MSP430F11xx
Микроконтроллер | Память программ Flash(байт) |
Память данных (байт) |
АЦП | Аналоговый компаратор | UART | Таймер |
MSP430F1121 | 4096 | 256 | токовый | + | программный | 1 |
MSP430F112 | 4096 | 256 | токовый | - | программный | 1 |
MSP430F1101 | 1024 | 128 | токовый | + | программный | 1 |
MSP430F110 | 1024 | 128 | токовый | - | программный | 1 |
Мощный 16-разрядный RISC-архитектуры процессор (CPU) выполняет инструкции за 1-2 машинных цикла. Шестнадцать 16-разрядных регистров располагаются в CPU, обеспечивая сокращенное время выполнения инструкций. Это уменьшает время выполнения операции регистр-регистр в одном цикле процессора. Четыре регистра (R0…R3) резервируются для использования в качестве счетчика команд, указателя вершины стека, регистра статуса и генератора констант. Остальные двенадцать регистров (R4…R15 ) - регистры общего назначения. Периферийные устройства подключаются к CPU, использующему шины адресов, данных и шины управления, и могут работать со всеми инструкциями для обработки памяти.
![](http://kazus.ru/nuke/objects/articles/193/image/pic2_5.gif)
Рис.2 Архитектура MSP430F11xx
Система команд обеспечивается мощным и легким в использования ассемблером. Система команд состоит из 51 инструкции с тремя форматами и семью адресными режимами. Рассмотрим назначение отдельных модулей, входящих в микроконтроллер MSP430F11xx.Модуль System Clock & Oscillator . Модуль SCO генерирует три частоты, используемые в микроконтроллере:
- базовая частота MCLK, необходимая для работы CPU
- вспомогательная базовая частота SMCLK для периферийных модулей
- вспомогательная частота ACLK
Память данных (RAM) имеет объем 128-256 байт. Используется для хранения переменных и для организации стека. Программная память (FLASH) организована в виде сегментов объемом 512 байт. Число сегментов, 2 или 8, зависит от типа микроконтроллера. Сегменты могут модифицироваться индивидуально или всем блоком. В состав памяти входят два сегмента, называемых информационными. Модификация информационных сегментов аналогична основным. Модификация Flash-памяти осуществляется по протоколу JTAG. JTAG - это комплекс аппаратных и программных средств, благодаря которому осуществляется чтение, стирание и запись информации в программную Flash-память микроконтроллера. Для этого процесса используются выводы TDO(P1.7), TDI(P1.6), TMS(P1.5) и TCK(P1.4).
Первичная функция модуля сторожевого таймера Watchdog (WDT) - выполнить управляемый системный перезапуск после того, как возник программный сбой. Если выбранный интервал времени истекает, WDT генерирует системный сброс. Если функция сторожевого таймера не нужна в приложении, модуль может работать как таймер интервала, который генерирует прерывание после истечении выбранного интервала времени. Счетчик сторожевого таймера (WDTCNT) 16-битовый, непосредственно не доступен из программы. WDTCNT управляется через управляющий регистр сторожевого таймера (WDTCTL), который является 16-битовым регистром. Запись в WDTCNT-регистр возможна при использовании правильного пароля в старшем байте. Младший байт загружает данные записанные в WDTCTL-регистре. Старший байт должен быть паролем - 05Ah. Если в старший байт WDTCTL-регистра будет записан байт отличный от 05Ah , то система сгенерирует программный перезапуск.
Модуль Timer_A представляет собой 16-разрядный таймер/счетчик с тремя регистрами слежения/сравнения.
В режиме счетчика Timer_A подсчитывает импульсы, поступающие от внешнего источника через вывод P1.0 или P2.1. В режиме таймера Timer_A подсчитывает импульсы, поступающие от одного из двух внутренних источников: ACLK или SMCLK. Входные импульсы можно делить на один, два, четыре, или восемь. Таймер полностью управляется программно, его можно останавливать, запускать, читать, и модифицировать.
Три регистра слежения/сравнение конфигурируются программно, чтобы выполнять функции слежения за состоянием входа или сравнить значение счетчика с заданным значением в регистре. Режим слежения используется для контроля за изменением состоянием сигнала на внешнем входе, т. е. реализуется режим GATE. Эта функция применима к выводам P1.1-P1.3 и P2.3-P2.3, причем, работать в этом режиме могут одновременно три входа. Режим слежения может запускаться и останавливаться программно.
Режим сравнения используется, чтобы сгенерировать синхронизацию для программных или прикладных аппаратных средств, или сгенерировать импульсный модулирующий сигнал для различных целей. Модулем Timer_A используются два вектора прерывания. Один вектор присваивается первому блоку слежения/сравнения, и один общий вектор прерывания используется для таймера и двух оставшихся блоков слежения/сравнения. Три события прерывания, использующие один и тот же вектор, идентифицируются по содержимому регистра прерывания.
Модуль UART - программный. Последовательная связь осуществляется использованием программного обеспечения и одного блока слежения/сравнения. Аппаратные средства поддерживает выход потока последовательных данных, с синхронизацией, определяемой таймером. Регистр слежения/сравнения генерирует прерывание, определив начало стартового импульса входной последовательности (старт-бит). Затем, по прерыванию генерируемому таймером, происходит выборка сигнала в середине каждого бита последовательности. Благодаря использованию системы прерываний, работа программы приема последовательности проходит в фоновом режиме.
Модуль I/O Port P1 - 8 линий вход/выход и модуль I/O Port P2 - 6 линий вход/выход, т. е. в распоряжении пользователя имеется 14 линий ввод/вывод для работы с внешними устройствами. Все линии программно перестраиваются в режим вход или выход. Каждый порт имеет свой вектор прерывания. Режимы работы всех линий I/O программируются независимо друг от друга. Установку режимов работы цифровых линий портов I/O осуществляют, используя семь служебных регистров:
- Входной регистр порта - содержит входную информацию.
- Выходной регистр порта - содержит выходную информацию.
- Регистр направления порта - изменяет направление линии (вход/выход).
- Регистр типа входного сигнала порта - задает фронт, спад или уровень сигнала на линии, необходимый для возникновения события прерывания.
- Регистр флагов порта - контролирует наступление события прерывания.
- Регистр прерываний порта - разрешает/запрещает прерывание.
- Регистр маски порта - позволяет установить маску для запрета прерывания.
Идентификация сработавшего вектора прерывания осуществляется программно, чтением данных соответствующего регистра флагов порта.
Модуль Comparator_A (только в микроконтроллерах MSP430F1101, MSP430F1121) значительно расширяет возможности микроконтроллера. Теперь модуль имеет два источника опорного напряжения - внутренний и внешний. При использовании внутреннего источника опорного напряжения, Uref выбирается из ряда 0 Vcc, 0.25 Vcc, 0.5 Vcc и Vcc, где Vcc - напряжение питания микроконтроллера. При использовании внешнего Uref , значение опорного напряжения определяет пользователь в диапазоне 0...Vcc. Появилась возможность работать практически со всеми типами датчиков. Напряжение, ток, резистивные или емкостные датчики - основная сфера применения модуля Comparator_A.
Средства отладки программ для микроконтроллеров MSP430F11xx
Для отладки программного обеспечения микроконтроллеров семейства MSP430F11xx компания Texas Instruments выпускает комплект MSP-FET430x11x. В комплект MSP-FET430x110 входят :
- Документация ( 1 книга )
- CD-ROM с программным обеспечением и полным описанием микроконтроллеров семейства MSP430F11xx
- Два микроконтроллера MSP430F1121
- Макетная плата комплекта MSP-FET430X110, размер платы -70 х 50 мм
На рисунке 5 - расположение элементов на плате.
![](http://kazus.ru/nuke/objects/articles/193/image/pic3_5.gif)
Рис.3 Макетная плата MSP-FET430X110
![](http://kazus.ru/nuke/objects/articles/193/image/pic4_4.gif)
Рис.4 Расположение компонентов на плате
На макетной плате MSP-FET430x110 установлены следующие компоненты :
- Разъем для подключения платы к LPT-порту компьютера
- Разъем ZIF для микроконтроллера MSP430F11xx
- Компоненты, необходимые для работы макетной платы
- Светодиод, индицирующий работу макетной платы
- Компоненты, необходимые для реализации протокола JTAG
- Контактные площадки, на которые выведены все активные линии микроконтроллера
![](http://kazus.ru/nuke/objects/articles/193/image/pic5_2.gif)
Рис.5 Окно симулятора-отладчика из программного пакета KickStart
Эффективное использование описанного набора для макетирования устройств на микроконтроллерах семейства MSP430F11xx предполагает:- Знание языков программирования ассемблер и/или Си
- Архитектуры и системы команд семейства MSP430
Краткие технические характеристики микроконтроллера MSP430F11xx:
- Напряжение питания от 1.8 до 3.6 V
- Низкое потребление - 1.2 мкА на частоте 32kHz и 160мкА на частоте 1MHz при Vcc=2.2 V
- Потребление в "спящем" режиме до 0.8мкА (0.1мкА в режиме отключения ОЗУ)
- Пять режимов пониженного потребления
- Выход из "спящего" режима за 6мкс
- 16-разрядная RISC архитектура, время выполнения инструкции - 125 nS
- Программируемый блок генератора тактовой частоты с возможностью установки частоты генерации при помощи:
-переменного внутреннего резистора
-внешнего резистора
-32 kHz кварцевого или керамического резонатора
-высокочастотного резонатора, до 8 MHz
-внешнего тактового сигнала - 16-разрядный таймер с тремя регистрами слежения/сравнения
- Возможность построения токового АЦП с внешними RC цепями
- Компаратор аналоговых сигналов (только для MSP430F1101 и MSP430F1121)
- Программирование в устройстве через JTAG порт
Семейство состоит из следующих микроконтроллеров:
- MSP430F110: 1KB + 128B Flash-память программ, 128B память данных
- MSP430F112: 4KB + 256B Flash-память программ, 256B память данных
- MSP430F1101: 1KB + 128B Flash-память программ, 128B память данных
- MSP430F1121: 4KB + 256B Flash-память программ, 256B память данных
![](http://kazus.ru/nuke/objects/articles/193/image/pic6_1.gif)
Рис.6 Микроконтроллер MSP430F11x
![](http://kazus.ru/nuke/objects/articles/193/image/pic7_1.gif)
Рис.7 Микроконтроллер MSP430F11xx
Пример использования микроконтроллера MSP430F11xx.
На рисунке 8 показана схема регулятора оборотов электрической дрели, в которой использован микроконтроллер MSP430x111x. Вполне возможно применение микроконтроллера MSP430F1121, необходимо только снизить напряжение питания микроконтроллера до 3,6 вольт.![](http://kazus.ru/nuke/objects/articles/193/image/pic8_1.gif)
Рис.8 Регулятор оборотов однофазной дрели
Алгоритм работы программы прост. По входу P1.3 микроконтроллер определяет момент перехода синусоиды через "0", используя регистр слежения/сравнения. Компоненты R8, R9 и C5 используются для реализации токового АЦП. Программа, манипулируя зарядом и разрядом конденсатора C5 при помощи выводов микроконтроллера P2.0, P2.1, P1.0 и резисторов R8 и R9, определяет положение движка резистора R8. Это и есть информация о необходимой частоте вращения двигателя дрели в данный момент. Имея информацию о переходе переменного напряжения через "0", а также информацию о позиции движка потенциометра R8, совсем просто рассчитать момент включения тиристора Т1 (вывод микроконтроллера P2.4) при частоте сети 50 Hz. Для генерации задержки на включения тиристора используется Timer_A.