Лабораторная работа № 1. Изучение микроконтроллера MSP430. Цифровой ввод-вывод 1. Цель работы Изучение основных характеристик и архитектуры микроконтроллера MSP430. Изучение интерфейса отладочного модуля MSP430 LaunchPad. Изучение основных приемов программирования микроконтроллера MSP430. 2. Задачи Создание простых программ управления цифровыми линиями порта вводавывода для отладочного модуля MSP430 LaunchPad с помощью среды программирования Energia. Прошивка микроконтроллера и проверка работы программ. 3. Теоретическая часть 3.1. Микроконтроллеры MSP430 MSP430 - семейство микроконтроллеров фирмы «Texas Instruments» с низким энергопотреблением [1 - 3]. Первый контроллер с аббревиатурой MSP430 появился в 1999 году. Отличительными характеристиками микроконтроллеров семейства MSP430 являются следующие. Архитектура со сверхнизким потреблением, позволяющая увеличить время работы при питании от батарей: ток сохранения содержимого ОЗУ — не более 0.1 мкА; ток потребления в режиме часов реального времени — не более 0.8 мкА; ток потребления в активном режиме — 250 мкА/MIPS. Высокоэффективная аналоговая подсистема, позволяющая выполнять точные измерения: таймеры, управляемые компаратором; многоканальный АЦП. 16-битное RISC ЦПУ: большой регистровый файл устраняет ограничения рабочего регистра; произведённое по меньшему техпроцессу ядро позволяет снизить потребление и уменьшает стоимость кристалла; оптимизировано для современных языков программирования высокого уровня; набор команд состоит всего из 27 инструкций; поддерживается 7 режимов адресации; векторная система прерываний с расширенными возможностями. Флэш-память с возможностью внутрисхемного программирования позволяет гибко изменять программный код (в том числе, во время эксплуатации), а также производить сохранение данных. 16-разрядный RISC-контроллер MSP430 имеет ортогональную систему команд. Ортогональность системы команд означает, что в качестве операндов в любой команде можно использовать не только регистры общего назначения, но и ячейки основного ОЗУ и константы. MSP430 имеет фоннеймановскую архитектуру, с единым адресным пространством для команд и данных. Память может адресоваться как побайтово, так и пословно. Порядок хранения 16-разрядных слов — от младшего к старшему (англ. little-endian), при котором младший байт слова хранится по младшему адресу памяти, старший байт слова – по старшему адресу. Процессор содержит 16 16-разрядных ортогональных регистров. Регистр R0 используется как программный указатель – счетчик команд (англ. Program Counter - PC), регистр R1 как указатель стека (англ. Stack Pointer - SP), регистр R2 как регистр статуса (англ. Status Register - SR), а R3 как специальный регистр, именуемый генератор констант (англ. Constant Generator - CG). R2 также может использоваться в качестве генератора констант. Генератор констант используется для сокращения общей длины команды вследствие неявного представления константы в коде операции. Регистры с R4 по R15 используются как регистры общего назначения. Архитектура MSP430 представлена на рис. 1.1. RISC ЦПУ, система тактирования, периферийные модули объединены общими шинами адреса (MAB) и данных (MDB). Рис. 1.1. Архитектура MSP430 Система тактирования разработана специально для применения в устройствах с батарейным питанием. С ее помощью реализуется режим ожидания со сверхнизким потреблением. Низкочастотный вспомогательный тактовый сигнал ACLK формируется обычным «часовым» кварцем частотой 32768 Гц. Сигнал ACLK может использоваться для периодического «пробуждения» часов реального времени, работающих в фоновом режиме. Встроенный высокочастотный генератор с цифровым управлением может формировать основной тактовый сигнал (MCLK), используемый ЦПУ и быстродействующими периферийными модулями. Высокочастотный основной тактовый сигнал используется для эффективной обработки сигналов. Адресное пространство. Семейство MSP430 имеет фоннеймановскую архитектуру с единым адресным пространством, которое разделено между регистрами специальных функций (SFR), периферийными устройствами, ОЗУ и флэш-памятью в соответствии с рис. 1.2. Обращение к исполняемому коду всегда выполняется по чётным адресам. Доступ к данным может осуществляться как побайтно, так и пословно. В настоящее время общий объём адресуемой памяти составляет 128 КБ. Рис. 1.2. Карта памяти Начальный адрес области флэш/ПЗУ зависит от объёма этой памяти и отличается для разных устройств. Конечный адрес области флэш/ПЗУ всегда равен 0x1FFFF. Флэш-память может использоваться как для хранения кода, так и для хранения данных. Двухбайтные и однобайтные данные (или таблицы данных) могут располагаться во флэш-памяти и использоваться непосредственно оттуда, без предварительного копирования в ОЗУ. Таблица векторов прерываний занимает верхние 16 слов нижней области памяти размером 64 КБ. При этом вектор прерывания с наивысшим приоритетом располагается в последнем слове области по адресу 0x1FFFF. Область ОЗУ начинается с адреса 0200h. Конечный адрес области зависит от объёма ОЗУ и меняется от модели к модели. ОЗУ может использоваться как для хранения данных, так и для хранения программного кода. Регистры периферийных модулей (устройств) располагаются в общем адресном пространстве. Область адресов от 0100h до 01FFh зарезервирована для 16-битных периферийных модулей. Для обращения к таким устройствам необходимо использовать команды, оперирующие двухбайтными значениями. При использовании команд, работающих с однобайтными значениями, допускаются обращения только к чётным адресам памяти, при этом старший байт результата всегда будет равен нулю. Область адресов от 010h до 0FFh зарезервирована для 8-битных периферийных модулей. Для обращения к этим устройствам необходимо использовать команды, оперирующие байтами. Если для чтения из такого модуля использовать команду, оперирующую словами, то содержимое старшего байта результата будет неопределённым. При записи в 8-битный модуль двухбайтного значения в регистр устройства будет записан только младший байт. Некоторые функции периферийных устройств конфигурируются посредством регистров специальных функций. Эти 8-битные регистры располагаются в младших 16 байт адресного пространства. Для обращения к указанным регистрам можно использовать только команды, оперирующие байтами. Назначение отдельных битов регистров специальных функций описано в документации на конкретные модели. Однобайтные значения располагаются по чётным или нечётным адресам. Двухбайтные значения располагаются только по чётным адресам, как показано на рис. 1.3. При использовании команд, оперирующих словами, обращаться можно только к чётным адресам памяти. Младший байт двухбайтного значения всегда располагается по чётному адресу, а старший байт — по следующему нечётному адресу. Например, если слово данных расположено по адресу xxx4h, то младший байт значения находится по адресу xxx4h, а старший байт значения — по адресу xxx5h. Рис. 1.3. Биты, байты и слова в памяти с побайтовой организацией Цифровые порты ввода-вывода. Микроконтроллеры семейства MSP430 могут иметь до восьми портов ввода/вывода P1…P8. Все порты содержат по восемь выводов (линий). Каждый из выводов порта индивидуально конфигурируется в качестве входа или выхода. Запись и чтение линий ввода/вывода также может осуществляться в индивидуальном порядке. Порты P1 и P2 поддерживают внешние прерывания. Для каждого из выводов портов P1 и P2 можно индивидуально разрешить прерывание и сконфигурировать его так, чтобы оно генерировалось по нарастающему или спадающему фронту входного сигнала. Все линии ввода/вывода порта P1 назначены одному вектору прерываний, а все линии порта P2 — другому вектору. Цифровые порты ввода/вывода обладают следующими возможностями: независимые индивидуально программируемые линии ввода/вывода; любые комбинации входов или выходов; индивидуально конфигурируемые прерывания от выводов портов P1 и P2; раздельные регистры данных для входов и выходов; индивидуально конфигурируемые внутренние подтягивающие резисторы. Конфигурирование цифровых портов ввода/вывода осуществляется пользовательской программой. Настройка функционирования цифровых портов осуществляется с помощью нескольких специализированных регистров. Регистр данных входа PxIN. Каждый бит регистра PxIN отражает уровень входного сигнала на соответствующем выводе порта, если этот вывод используется в качестве цифрового входа/выхода: Бит = 0: Входной сигнал имеет НИЗКИЙ уровень. Бит = 1: Входной сигнал имеет ВЫСОКИЙ уровень. Регистр данных выхода PxOUT. Значение каждого бита регистра PxOUT определяет состояние соответствующего вывода порта, если этот вывод сконфигурирован как цифровой выход, и внутренний подтягивающий резистор не используется. Бит = 0: Выходной сигнал имеет НИЗКИЙ уровень. Бит = 1: Выходной сигнал имеет ВЫСОКИЙ уровень. Если используется внутренний подтягивающий резистор, то значение бита регистра PxOUT определяет тип «подтяжки» на соответствующем выводе порта: Бит = 0: Вывод подтягивается к общему проводу. Бит = 1: Вывод подтягивается к питанию. Регистр направления PxDIR. Значение каждого бита регистра PxDIR определяет направление передачи данных соответствующего вывода порта, независимо от выбранной для этого вывода функции. Если вывод используется каким-либо периферийным модулем, то бит регистра PxDIR должен быть установлен в соответствии с требованиями данного модуля. Бит = 0: Вывод порта переключается на вход. Бит = 1: Вывод порта переключается на выход. Регистр включения подтягивающих резисторов PxREN. Каждый бит регистра PxREN подключает или отключает внутренний подтягивающий резистор соответствующего вывода порта. Тип «подтяжки» определяется соответствующим битом регистра PxOUT. Бит = 0: Подтягивающий резистор отключен. Бит = 1: Подтягивающий резистор подключен. Неиспользуемые выводы микроконтроллера необходимо сконфигурировать как выходы портов ввода/вывода и оставить неподключенными, чтобы избежать появления «плавающих» входов и снизить ток потребления устройства. Значение бита PxOUT для такого вывода может быть любым, поскольку вывод никуда не подключен. В качестве альтернативы, чтобы избежать появления «плавающего» входа, можно к неиспользуемому выводу подключить внутренний подтягивающий резистор, установив соответствующий бит регистра PxREN. 3.2. Отладочный модуль MSP430 LaunchPad (MSP-EXP430G2) Отладочный модуль MSP430 LaunchPad (MSP-EXP430G2) [2, 4] является простым в использовании средством разработки, предназначенным для начинающих и опытных пользователей, создающих приложения на основе микроконтроллеров фирмы «Texas Instruments». Комплект разработчика LaunchPad является частью серии MSP430 Value Line. LaunchPad снабжен встроенным DIP-гнездом с поддержкой до 20 выводов, что позволяет устанавливать устройства серии MSP430 Value Line на макетной плате LaunchPad. Кроме того, встроенное средство эмуляции флэш-памяти позволяет, напрямую подключаясь к ПК, без труда программировать, отлаживать и анализировать код. В комплект поставки включены бесплатные среды разработки ПО, предназначенные для написания и отладки программ. Благодаря клавиатуре, светодиодам и дополнительным выводам входов/выходов, предназначенным для простой интеграции с внешними устройствами, LaunchPad может быть использован для создания интерактивных решений. Характеристики макетной платы LaunchPad: DIP-гнездо с поддержкой до 20 выводов позволяет выполнять разработки на любых устройствах серии MSP430 Value Line в корпусе DIP (N). Встроенный эмулятор флэш-памяти соединяет основанные на флэшпамяти устройства серии MSP430 Value Line с персональным компьютером при помощи кабеля мини-USB в режиме реального времени для осуществления внутрисистемного программирования и отладки. Эмулятор флэш-памяти может программировать все устройства серии Value Line MSP430, а также любое устройство MSP430 с интерфейсом Spy Bi-Wire (2-проводной JTAG), что обеспечивает полную масштабируемость для старших моделей устройств MSP430. 2 программируемых светодиодных индикатора. 1 светодиод индикации питания. 2 программируемых кнопки (1 кнопка сброса). DIP-гнездо LaunchPad дает пользователям возможность быстро установить любое устройство серии MSP430 Value Line, заключенное в DIP-корпус с количеством выводов до 20. Характеристики входящих в комплект LaunchPad устройств MSP430G2xx: MSP430G2211 – 2 КБ флэш-память, 128 Б ОЗУ, 1 порт ввода-вывода, 1 16разрядный таймер, компаратор, корпус 14PDIP; MSP430G2231 – 2 КБ флэш-память, 128 Б ОЗУ, 1 порт ввода-вывода, 1 16разрядный таймер, 8-канальный 10-разрядный АЦП, температурный датчик, корпус 14PDIP; MSP430G2452 – 8 КБ флэш-память, 256 Б ОЗУ, 2 порта ввода-вывода, 1 16разрядный таймер, компаратор, 8-канальный 10-разрядный АЦП, температурный датчик, корпус 20PDIP; MSP430G2553 – 16 КБ флэш-память, 512 Б ОЗУ, 2 порта ввода-вывода, 2 16-разрядных таймера, компаратор, 8-канальный 10-разрядный АЦП, температурный датчик, корпус 20PDIP; во входящие в комплект устройства MSP430G2xx загружены образцы программ. Диапазон питающих напряжений – от 1,8 В до 3,6 В, тактовая частота 16 МГц, производительность до 16 MIPS. Питание может подаваться либо автономно, либо через интерфейс USB. Энергопотребление MSP430 Value Line (при 2,2 В): 0,1 мкА сохранение ОЗУ, 0,4 мкА в режиме ожидания, 0,7 мкА в режиме генератора импульсов времени, 220 мкА / MIPS активно, сверхбыстрый выход из режима ожидания в течение 1 мкс. В состав LaunchPad входит запрограммированное устройство MSP430G2231 (MSP430G2553). Как только LaunchPad подключается через разъем USB, демонстрационная программа запускает последовательность включения светодиодов. Нажатием кнопки P1.3 активируется режим измерения температуры. Исходная температура замеряется при активации режима и может быть измерена заново еще одним нажатием кнопки P1.3. LaunchPad сигнализирует о повышении или понижении температуры изменением яркости красного или зеленого светодиодов соответственно. Данные о температуре также передаются на компьютер через интерфейс USB при помощи обратного универсального асинхронного интерфейса и могут быть отображены на экране. Данное демонстрационное приложение использует интегрированную в микроконтроллер периферию. Так, 10-разрядный АЦП используется для опроса внутреннего термодатчика, а 16-разрядные таймеры для – управления яркостью встроенных светодиодов и обеспечения взаимодействия программного асинхронного интерфейса с компьютером. Плата LaunchPad позволяет устанавливать в DIP-гнездо микроконтроллеры MSP430G2xx либо с 14, либо с 20 выводами. В первом случае используется один порт P1 (выводы P1.0 – P1.7), во втором – два порта P1 (выводы P1.0 – P1.7) и P2 (выводы P2.0 – P2.5). 3.3. Средства программирования микроконтроллеров MSP430 Для программирования микроконтроллеров MSP430 существует несколько компиляторов и встроенных программных сред разработки (IDE). Основными программными пакетами, предназначенными для разработки приложений с использованием MSP430, являются начальная (стартовая) версия пакета IAR Embedded Workbench KickStart и Code Composer Studio (CCS). Как IAR, так и CCS имеют бесплатно загружаемые версии с ограничением кода. Эти среды полностью функциональны на устройствах серии MSP430 Value Line, поскольку данные устройства не будут превышать предельный размер кода 4 КБ для IAR или 16 КБ для CCS. Альтернативой этим средствам разработки является среда разработки Energia – модифицированная версия среды Arduino IDE, разработанная специально для программирования LaunchPad MSP430 и распространяемая бесплатно. Интерфейс IDE полностью совпадает с прародителем, за исключением цвета. Таким образом, с помощью Energia можно легко использовать тексты Arduino-программ для LaunchPad. Описание среды Energia можно получить на сайте [5]. Оттуда же можно произвести и загрузку драйверов и программного обеспечения. Язык программирования в среде Energia – язык Arduino, достаточно понятный и простой в освоении. Язык Arduino основан на C/C++ и поддерживает все стандартные конструкции языка C и некоторые из функций языка C++. Он также ссылается на библиотеку AVR libc и может использовать любые из ее возможностей. Существует полный русский перевод языка Arduino, предназначенный для преодоления языкового барьера при распространении платформы по России [6]. Перед использованием Energia потребуется установить драйверы для LaunchPad. Драйверы можно скачать со странички Energia на git-hub [7]. Если уже установлен пакет Texas Instruments CCS, то установку драйверов можно опустить. Затем необходимо с той же странички скачать загрузочный файл Energia IDE, который, как и Arduino IDE, поставляется в виде zip-архива. В распакованном архиве имеется исполняемый файл energia.exe, который и запускает среду Energia с пустым полем для текста программы. 4. Описание лабораторной установки Лабораторная установка представляет собой плату отладочного модуля MSP430 LaunchPad (MSP-EXP430G2). Плата LaunchPad подключается к порту USB компьютера с помощью прилагаемого кабеля. В состав лабораторной установки входит также пьезокерамический излучатель, предназначенный для получения звуковых эффектов. Внешний вид платы LaunchPad приведен на рис. 1.4. Рис. 1.4. Внешний вид платы LaunchPad 5. Описание используемых программных комплексов Для программирования отладочного модуля MSP430 LaunchPad (MSPEXP430G2) в лабораторной работе используется среда разработки Energia. В директории, в которую распакован установочный архив программного обеспечения, имеется исполняемый файл energia.exe, который и запускает среду Energia с пустым полем для текста программы (рис. 1.5). Рис. 1.5. Окно среды разработки программ Energia Настройка связи среды Energia с отладочным модулем MSP430 LaunchPad производится в следующем порядке: 1. Отладочный модуль MSP430 LaunchPad подключить к компьютеру с помощью прилагаемого USB-кабеля. 2. В меню Tools выбрать пункт Serial Port для настройки последовательного порта. Список доступных последовательных портов выдается в формате COMXXX. Обычно COM-порт с максимальным номером – это порт, к которому подключен LaunchPad. Его и следует выбрать (рис. 1.6). Рис. 1.6. Настройка последовательного порта 3. В меню Tools выбрать пункт Board для настройки типа микроконтроллера. В открывшемся списке допустимых контроллеров выбрать микроконтроллер, установленных в DIP-гнезде отладочного модуля LaunchPad (рис. 1.7). Рис. 1.7. Настройка типа микроконтроллера Среда Energia имеет в своем составе достаточно обширную библиотеку примеров программирования модуля LaunchPad. Запуск примера производится из меню File/Examples, или с помощью кнопки Open на панели инструментов. Познакомиться с приемами работы со средой Energia можно на простейшем примере программирования – мигании светодиода. Для запуска примера необходимо выбрать Open -> 1.Basics/Blink. В окно Energia с загружается текст программы управления миганием красного светодиода (рис. 1.8). Рис. 1.8. Программа управления миганием светодиода Структура программы: любая программа для LaunchPad состоит из двух функций. Функция setup() вызывается при старте программы. Ее можно использовать для инициализации переменных, назначения выводов микроконтроллера, вызова стартовых функций библиотек и т.д. Функция вызывается лишь однажды, после каждой подачи питания или перезагрузки платформы. В примере: в теле функции setup() вызывается функция pinMode(RED_LED, OUTPUT). Она устанавливает статус вывода микроконтроллера, к которому подключен красный светодиод, на выход сигнала. Функция loop() - это основной цикл программы. Данная функция выполняется бесконечное число раз. Платформа управляется через эту функцию. В примере: в теле функции loop() вызов функции digitalWrite(RED_LED, HIGH) устанавливает выходной сигнал для красного светодиода в высокий уровень; вызов функции delay(1000) выполняет задержкe длительностью 1000 мс; вызов функции digitalWrite(RED_LED, LOW) устанавливает выходной сигнал для красного светодиода в низкий уровень; вызов функции delay(1000) выполняет задержку длительностью 1000 мс; цикл повторяется. Прошивка программы во флэш-память микроконтроллера осуществляется кнопкой Upload, или через пункт меню File/Upload. Пустую заготовку программы, состоящую только из вызова двух функций setup() и loop(), можно получить из библиотеки примеров Open -> 1.Basics/BareMinimum. В программах выводы микроконтроллера могут именоваться несколькими способами: по символическим именам светодиодов (RED_LED, GREEN_LED), кнопок (PUSH2) и сигналов (XIN, XOUT, TEST, RESET, TXD, RXD). Пример использования таких имен приведен выше; по натуральным номерам выводов микроконтроллера. Например, для обращения к красному светодиоду можно использовать номер вывода 2, к которому он подключен: pinMode(2, OUTPUT); digitalWrite(2, HIGH); по символическим именам линий портов микроконтроллера. Например, для обращения к красному светодиоду можно использовать номер линии P1_0 порта P1, к которой он подключен: pinMode(P1_0, OUTPUT); digitalWrite(P1_0, HIGH). Соответствия номеров выводов и их возможных символических имен, используемых в различных режимах, показаны на рис. 1.9, 1.10 [8]. Рис. 1.9. Нумерация, назначение и именование выводов микроконтроллера MSP430G2452 Рис. 1.10. Нумерация, назначение и именование выводов микроконтроллера MSP430G2553 Приемы обработки нажатия кнопки иллюстрирует пример программы Button. Вызов: Open -> 2.Digital/Button. Загружается следующая программа: const int buttonPin = PUSH2; // номер вывода для кнопки const int ledPin = GREEN_LED; // номер вывода для светодиода int buttonState = 0; // переменная для чтения статуса кнопки void setup() { pinMode(ledPin, OUTPUT); // вывод светодиода – выходной сигнал // инициализация вывода кнопки на входной сигнал // с подключением внутреннего подтягивающего резистора // к линии источника питания pinMode(buttonPin, INPUT_PULLUP); } void loop(){ buttonState = digitalRead(buttonPin); // чтение статуса кнопки в переменную // проверка нажатия кнопки // если нажата if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); // включение светодиода } else { digitalWrite(ledPin, LOW); // выключение светодиода } } В этой программе есть секция описаний. В ней декларируются две константы (номера выводов микроконтроллера, к которым подключены зеленый светодиод и пользовательская кнопка), и одна переменная целого типа, в которую читается текущее состояние кнопки. В теле функции setup() инициализируются выводы микроконтроллера на выход (для светодиода) и на вход (для кнопки). В теле функции loop() читается состояние кнопки. Если кнопка нажата, включается светодиод, иначе он выключается. Таким образом, результатом работы программы будет включение зеленого светодиода при нажатой пользовательской кнопке и выключение его при отпущенной. При обработке нажатия кнопки возможны ложные срабатывания программы из-за дребезга контактов. Для устранения этого эффекта новое состояние кнопки считывают не сразу после его изменения, а через некоторый промежуток времени. Пример программы устранения дребезга контактов можно загрузить: Open -> 2.Digital/Debonce. Кроме того, часто требуется реализовать реакцию программы не на статическое текущее состояние кнопки, а на изменение этого состояния. Например, реакция программы должна следовать только на нажатие кнопки, но не на отпускание. Пример, в котором действие активизируется изменением состояния кнопки, можно загрузить: Open -> 2.Digital/StateChangeDetection. На цифровой выход может быть выдан прямоугольный сигнал определенной частоты с заполнением 50%. Для генерации таких сигналов используются функции tone() и noTone(). Продолжительность генерации сигнала может быть указана в аргументах функции tone(). Если длительность не указана, то сигнал будет длиться до вызова функции noTone(). Вывод может быть подключен к пьезоизлучателю либо другому излучателю для проигрывания звука. В определенный момент времени может генерироваться только один сигнал. Если на любом выводе уже есть сигнал, то вызов функции tone() не даст эффекта. Вызов функции tone() применительно к выводу, на котором уже есть сигнал, изменяет частоту сигнала на этом выводе. Синтаксис функции tone(): tone(pin, frequency); tone(pin, frequency, duration). Параметры: pin: вывод, на котором должен генерироваться сигнал; frequency: частота сигнала [Гц]; duration: длительность сигнала [мс] (опционально). Синтаксис функции noTone(): noTone(pin). Параметры: pin: вывод, на котором необходимо прекратить генерацию сигнала. 6. Меры безопасности Во время выполнения лабораторной работы необходимо: соблюдать правила включения и выключения вычислительной техники; не подключать кабели, разъемы и другую аппаратуру к компьютеру, не относящиеся к лабораторной установке; при включенном напряжении сети не отключать, не подключать и не трогать кабели, соединяющие различные устройства компьютера; в случае обнаруженной неисправности в работе оборудования или нарушения правил техники безопасности сообщить руководителю лабораторной работы; не пытаться самостоятельно устранить неисправности в работе аппаратуры; по окончании работы привести в порядок рабочее место. ВНИМАНИЕ! При работе за компьютером необходимо помнить: к каждому рабочему месту подведено опасное для жизни напряжение. Поэтому во время работы надо быть предельно внимательным и соблюдать все требования техники безопасности! 7. Задание 7.1. Подключить отладочный модуль MSP430 LaunchPad с установленным в DIP-гнездо микроконтроллером MSP430G2452 при помощи кабеля к разъему порта USB компьютера. Запустить среду разработки Energia. Произвести настройку связи среды разработки Energia с отладочным модулем LaunchPad. 7.2. Загрузить примеры программ Blink, Button, Debonce, StateChangeDetection в среде разработки Energia. Изучить программные коды и произвести прошивку микроконтроллера для всех этих программ. Проверить экспериментально правильность работы программ на отладочном модуле LaunchPad. 7.3. Подключить пьезокерамический излучатель между выводами 20 (GND) и 15 (цифровой выход P1.7) микроконтроллера. Написать и отладить программу генерации последовательности звуковых сигналов (не менее трех), сопровождающихся миганием светодиодов. Произвести прошивку программы в микроконтроллер и проверить ее работу. 7.4. Написать и отладить программу имитации работы счетчика нажатий кнопки. Варианты заданий: коэффициент счета счетчика должен быть равен номеру рабочего места плюс 2; переход счетчика в новое состояние должен происходить: при нажатии кнопки для нечетных рабочих мест и при отпускании кнопки – для четных. Произвести прошивку программы в микроконтроллер и проверить ее работу. 8. Методика выполнения задания 8.1. Настройку программной среды Energia производить в соответствии с указаниями раздела 5. 8.2. При изучении примеров программ использовать сведения из раздела 5 и описание языка Arduino из [6]. 8.3. При выполнении пункта 7.3 использовать пример программы toneMultiple. Запуск последовательности звуковых сигналов осуществлять по нажатию кнопки. Каждый звук сопроводить миганием светодиодов – индивидуальным для каждого звука. Текст программы должен содержать подробные комментарии. 8.4. Составить таблицу состояний и переходов счетчика. Каждому состоянию счетчика поставить в соответствие индивидуальную комбинацию мигания светодиодов. Изменение состояния кнопки должно обрабатываться программно для устранения дребезга контактов. Переход счетчика в новое состояние должен сопровождаться звуковым сигналом. Текст программы должен содержать подробные комментарии. 9. Требования к содержанию и оформлению отчета Отчет по лабораторной работе должен содержать: краткие теоретические сведения; формулировку задания на лабораторную работу; описание последовательности выполнения работы; изображения рабочих окон с текстами программ; тексты программ, не помещающихся в рабочем окне; выводы по лабораторной работе. 10. Контрольные вопросы 10.1. Каково назначение и основные характеристики микроконтроллеров MSP430? 10.2. По какой архитектуре построены микроконтроллеры MSP430? 10.3. Какое назначение имеют основные модули микроконтроллеров MSP430? 10.4. Как распределяется память микроконтроллеров MSP430 и как организовано хранение информации в ней? 10.5. Как организуется работы цифровых портов ввода-вывода в микроконтроллерах MSP430? 10.6. Каковы назначение, основные параметры и состав отладочного модуля MSP430 LaunchPad? 10.7. Каким образом отладочный модуль MSP430 LaunchPad связывается с компьютером и с устройствами ввода-вывода? 10.8. Какие программные средства используются для программирования работы микроконтроллеров MSP430? 10.9. Какими основными возможностями располагает среда разработки Energia? 10.10. Какие основные конструкции реализованы в языке программирования Arduino? 10.10. Как производится программирование цифрового ввода и вывода в среде разработки Energia? 11. Критерии оценки выполнения лабораторной работы Лабораторная работа считается выполненной в том случае, если: студент выполнил все задания в соответствии с представленной методикой; результаты выполнения работы, представленные в виде отчета, соответствуют предъявленным к ним требованиям; студент правильно ответил на все контрольные вопросы и может интерпретировать полученные результаты. 12. Литература 1. MSP430 //WIKIPEDIA.ORG: Википедия – свободная энциклопедия. URL: http://ru.wikipedia.org/wiki/MSP430 (дата обращения: 10.09.2013). 2. Официальный сайт компании Texas Instruments //TI.COM. URL: http://www.ti.com/ (дата обращения: 10.09.2013). 3. Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений / пер. с англ. Евстифеева А. В. — М. : Додэка_XXI, 2010. — 544 с.: ил. — (Серия «Мировая электроника»). 4. MSP430 LaunchPad (MSP-EXP430G2) - Russian E2E (сообщество E2E) // URL: http://e2e.ti.com/group/ru/w/wiki/2256.msp430-launchpad-mspexp430g2.aspx (дата обращения: 10.09.2013). 5. Energia Reference – Introduction // URL: http://www.energia.nu (дата обращения: 10.09.2013). 6. Arduino Russian //РадиоЛокН Hi-Tech. URL: http://rln.nnov.ru/index.php?pid=13/ (дата обращения: 10.09.2013). 7. Installing the LaunchPad drivers //GitHub Energia Wiki. URL: http://github.com/energia/Energia/wiki/Getting-Started (дата обращения: 10.09.2013). 8. Guide to the MSP430 LaunchPad (MSP-EXP430G2) // URL: http://energia.nu/Guide_MSP430LaunchPad.html (дата обращения: 10.09.2013). 9. SPI //WIKIPEDIA.ORG: Википедия – свободная энциклопедия. URL: http://ru.wikipedia.org/wiki/Serial_Peripheral_Interface (дата обращения: 26.09.2013). 10. I2C //WIKIPEDIA.ORG: Википедия – свободная энциклопедия. URL: http://ru.wikipedia.org/wiki/I2C (дата обращения: 26.09.2013). 11. Infrared Data Association //WIKIPEDIA.ORG: Википедия – свободная энциклопедия. URL: http://ru.wikipedia.org/wiki/IrDA (дата обращения: 26.09.2013). 12. Харазов В.Г. Интегрированные системы управления технологическими процессами – СПб.: Профессия, 2009. – 592 с. ил., табл., сх. 13. Денисенко В.В. Компьютерное управление технологическим процессом, экспериментом, оборудованием. – М.: Горячая линия – Телеком, 2009. – 608 с., ил. 14. FATEK FBs. Руководство пользователя – I. Аппаратура и инструкции. 04/2007.