Семейство измерительных микроконтроллеров 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, использующему шины адресов, данных и шины управления, и могут работать со всеми инструкциями для обработки памяти.
Рис.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 - расположение элементов на плате.
Рис.3 Макетная плата MSP-FET430X110
Рис.4 Расположение компонентов на плате
На макетной плате MSP-FET430x110 установлены следующие компоненты :
- Разъем для подключения платы к LPT-порту компьютера
- Разъем ZIF для микроконтроллера MSP430F11xx
- Компоненты, необходимые для работы макетной платы
- Светодиод, индицирующий работу макетной платы
- Компоненты, необходимые для реализации протокола JTAG
- Контактные площадки, на которые выведены все активные линии микроконтроллера
Рис.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 память данных
Рис.6 Микроконтроллер MSP430F11x
Рис.7 Микроконтроллер MSP430F11xx
Пример использования микроконтроллера MSP430F11xx.
На рисунке 8 показана схема регулятора оборотов электрической дрели, в которой использован микроконтроллер MSP430x111x. Вполне возможно применение микроконтроллера MSP430F1121, необходимо только снизить напряжение питания микроконтроллера до 3,6 вольт. Рис.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.