Семенов Б.Ю. Микроконтроллеры MSP430. Первое знакомство. Книга msp430


Микроконтроллеры MSP430: первое знакомство. | Техника и Программы

УДК 621.31 ББК 32.96-04 С 30

Б. Ю. Семенов

— М.:

СОЛОН-ПРЕСС, 2006. — 128 е.: ил. — (Серия «Библиотека

инженера»)

ISBN 5-98003-265-7

Книга посвящена микроконтроллерам серии MSP430, которые произво­дятся фирмой Texas Instruments. Едва ли удастся найти конкурента этим мик­роконтроллерам по величине потребляемого тока и производительности, если речь идет о разработке автономных малогабаритных приборов с низ|Саволь- тным батарейным питанием. Книга в доступной форме поможет разобраться с архитектурой и системой команд MSP430, сориентирует читателя в м1^гооб- разии «софта» для разработки программного обеспечения, расскажет о спосо­бах «прошивки» памяти MSP430, о существующих программаторах. Прицр- денные схемы, печатные платы и сборочные рисунки позволят собрать’неско­лько несложных профамматоров flash-памяти MSP430 самостоятельно. \

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

Авторский сайт в Интернете находится по адресу http://www radioland.mrezha ru. После выхода этой книги из печати на нем по­явятся рисунки печатных плат в формате Spnnt Layout 3.0 и другие дополни­тельные материалы но MSP430

 

Скачать с depositfiles.com

 

Предисловие

Сегодня вести разговор об использовании современных микро­контроллеров очень просто — этому способствует их широкое рас­пространение на отечественном рынке электронных компонентов, обилие книг и тематических публикаций, невероятно большое ко­личество материалов в Интернете, общение с коллегами на элект­ронных форумах. Но, как это ни покажется странным, в то же время разговор о микроконтроллерах невероятно сложен. Причи­ны те же — чрезвычайная распространенность как самих микро­схем, так и тематических материалов о них. Парадоксально? Ни­чуть! Давайте разберемся, почему так происходит сегодня.

Еще недавно эта тема была уделом лишь узкого круга специали­стов, на которых с завистью поглядывали многие радиолюбители. Впрочем, и особого разнообразия типов микроконтроллеров тоже не наблюдалось: существовали громоздкие решения на базе микро­процессорных комплектов серий Z80, 580, 1810, 588… Из всего это­го набора «выкристаллизовалась» чрезвычайно популярная микро­контроллерная архитектура MCS-51, разработанная фирмой Intel, а также архитектура Z86, появившаяся благодаря работам фирмы Zilog. Сегодня архитектуру MCS-51 можно считать «живой класси­кой» — она во многом потеряла актуальность, но поскольку в целом является открытой, многие фирмы-производители продолжают ее поддерживать, выпуская модификации микросхем с разными встроенными устройствами. Не теряет она высокого положения и среди профессиональных разработчиков исключительно из-за вы­работанной привычки работать со знакомым «железом».

Тема практического использования микроконтроллеров 8-раз­рядной структуры MCS-51 освещена достаточно: имеется ряд пуб­ликаций в журнале «Схемотехника» под названием «Микроконт­роллер — это просто», вышел трехтомник [1] с одноименным на­званием, который сегодня можно без труда приобрести в книжных магазинах. На высоком профессиональном уровне выпущен спра­вочник [2] по типовой архитектуре, методам программирования. Поэтому в данной книге об этой серии микроконтроллеров мы го­ворить не будем. Не будем мы также рассматривать архитектуры, разработанные в развитие MCS-51, а именно 16-разрядную архи­тектуру MCS-96, в отношении которой имеется издание [3].

Альтернативная архитектура Z86 проектировалась на базе ядра всем известного процессора Z80, который использовался в персона­льных компьютерах ZX-Spectrum, а позже — в автоматических опре­делителях номера телефонных абонентов. Широкого распростране­ния эта архитектура пока не получила, хотя и заняла достойное место среди множества современных микроконтроллерных архитектур. Следует сказать, что литературы о применении Z86 на отечествен­ном рынке пока немного, хотя издание [4] достаточно неплохо разо­шлось среди отечественных читателей. Данная тема еще ждет своих авторов, и тому должно способствовать появление линейки микро­схем с flash-программируемой памятью, а также пакет бесплатных инструментальных средств программирования и отладки.

Реально воплотить в жизнь слова о том, что «микроконтрол­лер это просто», сделать его доступным широкой радиолюбите­льской аудитории впервые удалось фирме Microchip [5] в серии PIC. Фирма разработала чрезвычайно простое и понятное ядро, выпустила линейку микросхем с разными функциональными воз­можностями, снабдила разработчиков отличной документацией, бесплатными средствами разработки программ и «прошивки». О популярности PIC свидетельствует тот факт, что на протяжении ряда лет в журнале «Радио», практически в каждом номере, появ­ляются радиолюбительские конструкции на основе этого микро­контроллера. Вышла отличная книга [6], в которой также приведе­но множество самоделок, которые легко повторить в домашних условиях. Фирма-производитель активно переводит фирменную документацию на русский язык, и ее можно «скачать» с сервера (в домене www.microchip.ш) или получить вместе с фирменным ком- пакт-диском с того же сайта.

Мощным конкурентом архитектуры PIC, стремящимся занять лидирующие позиции, является фирма Atmel [7] с архитектурой типа AVR (АТ90, ATMEGA). Все те слова, которые были сказаны в отношении Р1С, можно с успехом сказать и в отношении AVR: широкий состав «линейки», наличие бесплатного отладочного программного обеспечения, простота программирования, множе­ство практических конструкций — это все слагаемые успеха AVR у отечественного (и не только) радиолюбителя. Из книг, которые стоит рекомендовать читателю, можно назвать издание [8], содер­жащее множество практических конструкций и компакт-диск с необходимой документацией. В пользу AVR можно также отнести и то, что они стремительно дешевеют, когда PIC продолжают оставаться на прежнем ценовом уровне.

Нельзя не сказать и о попытках отечественных производителей насытить рынок микроконтроллерами собственной архитектуры. Несколько лет назад на отечественном рынке появился микрокон­троллер КР1878ВЕ с оригинальной архитектурой ТЕСЕЙ, разра­ботанной специалистами ОАО «Ангстрем». Начало было положе­но неплохое: выпущена недорогая микросхема, предоставлена бес­платная документация, простые средства программирования и отладки. Автор этой книга приложил немало усилий к популяри­зации этого микроконтроллера, выпустив издания [9] и [10]. К со­жалению, ОАО «Ангстрем» ничего больше не сделало для продви­жения на рынок своего изделия: не была выпущена линейка, не исправлены ошибки в документации, средства программирования так и остались на начальном уровне, новых версий не вышло. Но, что самое главное, в какой-то момент этот микроконтроллер по цене сравнялся с AVR, продолжая неуклонно дорожать (конечно, сравнительно). Собственно, это обстоятельство стало «последней каплей» и оттолкнуло от него многих, кто готов был освоить архи­тектуру ТЕСЕЙ.

О чем еще мы не будем говорить в этой книге? Ни слова не будет сказано о 8-разрядных микроконтроллерах архитектур ST62 и ST7 (производитель — STMicroelectronics), о 16-разрядных микроконтроллерах архитектуры С167 (производитель — Infine­on), о 16-разрядном семействе М16С (производитель — Mitsubishi Electric). Эти семейства микроконтроллеров хотя и встречаются в прайс-листах отечественных дистрибьюторов электродных ком­понентов, но применяют их не столь часто. Причин тому неско­лько: высокая стоимость, отсутствие полного набора бесплатных инструментальных средств, аппаратная избыточность.

Наша книга познакомит читателя с интересным семейством микроконтроллеров MSP430, выпускаемых фирмой Texas Instru­ments. Эти микроконтроллеры, конечно, пока менее популярны, чем PIC и AVR, но могут быть использованы там, где очень важно обеспечить минимальное потребление тока, например, в аппарату­ре с низковольтным аккумуляторным или батарейным питанием. Читатели узнают о том, какие существуют инструментальные средства программирования и отладки, каковы характеристики се­мейства MSP430. Будет уделено внимание архитектуре и системе команд. Однако основная цель данной книги — познакомить чи-

тателя со средствами разработки, использующимися при работе с MSP430, так как именно с их освоения и нужно начинать работу. Для тех же читателей, кто хочет более подробно познакомиться именно с аппаратными возможностями самого MSP430, готовит­ся расширенное издание, в котором эти вопросы будут рассмотрены подробнее, с примерами и практическими конструкциями. Более того, расширенное издание книги предполагается снабдить ком­пакт-диском, на котором читатели найдут фирменную документа­цию, программное обеспечение, рисунки печатных плат в элект­ронном виде и много другой полезной информации. Компакт-диск поможет продолжить знакомство с микроконтроллерами MSP430.

Б. Ю.Семенов

С.-Петербург

Январь 2006 г.

 

nauchebe.net

MSP430 - Все для студента

Texas Instruments , Ver. 3, 1997 - 428 p. - The MSP430 is a 16-bit microcomputer having special features not commonly available with other microcomputers: · Complete system on-chip (LCD, ADC, I/Os, ROM, RAM, Watchdog, UART, Basic Timer) · Extremely low power consumption: only 4.2nWs/instruction max. · High speed (300ns/instruction @ 3.3MHz with register, register addressing...

  • №1
  • 1,45 МБ
  • добавлен 16.07.2014 19:44
  • изменен 20.07.2014 09:32

Texas Instruments Incorporated, 2000 - 1088 p. - This document contains the following chapters: * Chapter 1 – MSP430 Microcontroller Family: Introduction to the MSP430 family, advantages of the MSP430 concept, and operating modes * Chapter 2 – MSP430 14-Bit Analog-To-Digital Converter * Chapter 3 – MSP430 Hardware Applications * Chapter 4 – MSP430 Application Examples *...

  • №2
  • 4,62 МБ
  • добавлен 16.07.2014 19:38
  • изменен 20.07.2014 09:32

2011, 53 p. 1. Prepping for the MSP430 2. Out of the box 3. Blinking lights number 4. Pushbutton fun 5. More pretty lights 6. Community Coding Style 7. Button triggered interrupts 8. Hello World revisited 8.1. Internal watchdog timer 8.2. External timer crystals 9. Blinking lights revisited 9.1. Using internal timer 9.2. Using external crystal 10. Pulse Width...

  • №3
  • 340,33 КБ
  • добавлен 25.01.2015 18:58
  • изменен 27.01.2015 15:50

Elsevier, 2008. - 685 p. Chapter 1: Embedded Electronic Systems and Microcontrollers Chapter 2: The Texas Instruments MSP430 Chapter 3: Development Chapter 4: A Simple Tour of the MSP430 Chapter 5: Architecture of the MSP430 Processor Chapter 6: Functions, Interrupts, and Low-Power Modes Chapter 7: Digital Input, Output, and Displays Chapter 8: Timers Chapter 9:...

  • №4
  • 4,05 МБ
  • добавлен 25.01.2015 18:50
  • изменен 27.01.2015 15:50

Newnes, 2013. - 189 p., english, ISBN: 0124115888, 978-0-12-411588-0, This book explores the world of microcontroller development through friendly lessons and progressively challenging projects, which will have you blink LEDs, make music with buzzers & interact with different sensors like accelerometers and temperature sensors. This book is focused on the MSP-EXP430G2...

  • №5
  • 11,20 МБ
  • добавлен 11.03.2015 21:24
  • изменен 17.03.2015 15:58

www.twirpx.com

учебный курс. / MSP430 / Сообщество EasyElectronics.ru

Добрый день всем!

Позвольте представить вам учебный курс по микроконтроллерам MSP430.

Хочу сразу предупредить — данный тип МК несколько тяжеловат для рядового пользователя. Его используют в основном профессиональные разработчики, но… Я хочу сделать его доступным для всех. Так, что смотрим и не боимся. Да, и ещё — традиционно я тяготею к ассемблерным типам языков, так что начнём с них. Потом будет и С.

Как уже говорил глубокоуважаемый _YS_, данный тип контроллеров построен по Фон-Неймановской архитектуре, т.е. имеет одну адресную ось. Деления на память программ и данных нет, просто они располагаются по разным адресам. Чуть позже приведу разбивку. Мануалы пока читать не будем, просто покажу основное. Контроллер 16-ти разрядный, в составе ядра есть 16 регистров, четыре из которых специального назначения (R0 или PC — счетчик команд, R1 или SP — указатель стека, R2 или SR — регистр состояния, R3 или CG — генератор констант). Остальные (R4-R15) доступны как регистры общего назначения. Есть одна отличная вещь — любой регистр может быть указателем. Пока сведений достаточно.

С чего начать? Со среды программирования, ибо первые шаги можно делать не имея аппаратуры.

Внимание! Кто захочет начать с аппаратуры — запомните! Контроллер питается от напряжения 3,3 вольта, 5 вольт для него смертельны! Будьте осторожны.

Итак, среда разработки. Во всём мире профессионалы пользуются программами фирмы IAR Systems — www.iar.com. Не будем изобретать велосипед, последуем их рекомендациям. С официального сайта можно скачать 30-дневную бесплатную версию. Заморочка в том, что прийдётся заполнить длинную форму личных данных. Кто не боится — вперёд!

После установки и запуска мы видим (у меня 4-я версия, текущая на официальном сайте — 5-я, но отличий немного):Посмотреть на Яндекс.Фотках

Жмём кнопку «Создать новый проект в текущем рабочем пространстве» («Create new project in current workspace»). Смотрим на окошко и выбираем «asm/asm».Посмотреть на Яндекс.Фотках

Нажимаем «Ok» сохраняем файл проекта в нужное нам место. Рекомендую, каждый проект сохранять в отдельный каталог.

Получаем следующее:Посмотреть на Яндекс.Фотках

Комментирую полученный код.

#include "msp430.h" Ну тут всё ясно, подключаем заголовочный файл. NAME main ; module name PUBLIC main ; make the main label vissible ; outside this module Это стандартное объявление имени модуля и его видимости из других модулей. ORG 0FFFEh DC16 init ; set reset vector to 'init' label Тут мы объявляем вектор перехода по сигналу «Reset». Я делаю это несколько иначе, чуть ниже покажу как. У MSP430 вектора прерываний располагаются в конце памяти — от адреса FFFFh и вниз. Для серии F1xxx и F1xx их 16 штук. Да, и ещё существенное отличие — в вектор заносится адрес, а не команда перехода! Т.е., в данном случае, адрес метки «init». RSEG CSTACK ; pre-declaration of segment RSEG CODE ; place program in 'CODE' segment Тут объявляем сегмент стека и кода. Вот собственно с этого и начинается программа. init: MOV #SFE(CSTACK), SP ; set up stack Вот она метка «init», её адрес компилятор потом подставит в вектор сброса. Первая команда — инициализация стека. Директива SFE вычисляет конец сегмента. А # нужен, чтобы подставлять вычисленное значение, а не рассматривать его как адрес. К примеру: mov #1, R1 - поместить 1 в R1, а mov 1, R1 - поместить значение из ячейки памяти с адресом 1 в R1 Вот такие хитрости. Идём далее. Команда «nop» у нас просто для задержки. А вот это важная вещь: MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer Дело в том, что по умолчанию у MSP430 включен сторожевой таймер. Чтобы не было неожиданностей, выключаем его данной командой. Да, и обратите внимание: все команды пишутся немного не так как у AVR, x51 или x86 — источник сначала, затем приёмник. JMP $ ; jump to current location '$' ; (endless loop) Это прыжок «сам на себя». Просто, чтобы создать замкнутый цикл.

Ну и не забываем «END» в конце программы, также как и у PIC в MPLAB. После этого волшебного слова программа заканчивается.

Что сейчас делает наша программа? Почти ничего. Давайте наполним её смыслом. А в качестве примера сделаем сортировку случайных чисел. Задача следующая: 1. Имеем данные в ПЗУ (набор из 16 случайных чисел). 2. Переместим данные из ПЗУ в ОЗУ. 3. Отсортируем данные в ОЗУ.

Для начала настроим проект. Выберем тип контроллера. Открываем меню «Projects->Options»:Посмотреть на Яндекс.Фотках

Появится вот такое окошко, где мы и выберем тип контроллера.Посмотреть на Яндекс.Фотках

Далее выберем тип отладчика:Посмотреть на Яндекс.Фотках Счастливые владельцы аппаратного эмулятора могут выбрать «FET Debugger», ну а нам пока сойдет и «Simulator».

Для начала настроек достаточно. Жмём «Ok».

Далее, вставляем вместо всего в окошке текста следующий код (пока без самой сортировки):

#include "msp430.h" ; подключаем заголовочный файл NAME main ; имя модуля PUBLIC main ; установить видимость модуля из других ; Определение констант ArrLn EQU 16 ; длина массива ; Вектора прерываний RSEG INTVEC ORG RESET_VECTOR ; вектор сброса DC16 init RSEG CSTACK ; объявление сегмента стека RSEG CODE ; объявление сегмента кода init: MOV #SFE(CSTACK), SP ; инициализация регистра стека main: ; начало основной части MOV.W #WDTPW+WDTHOLD,&WDTCTL ; запрет сторожевого таймера SortMain: ; Переписать из ПЗУ в ОЗУ массив данных mov #ArrLn, R4 ; инициализируем счётчик количества данных mov #RamArr, R5 ; установим R5 как указатель на данные в ОЗУ mov #RomArr, R6 ; установим R6 как указатель на данные в ПЗУ MoveRomToRam: mov @R6+, 0(R5) ; копирование слова add #2, R5 ; продвинем указатель dec R4 ; уменьшим счётчик jnz MoveRomToRam ; если не ноль, то повторим BasicCycle: JMP $ ; jump to current location '$' ; определение данных в ОЗУ RSEG DATA16_N RamArr: DS16 ArrLn ; определение данных в ПЗУ RSEG DATA16_C RomArr: DC16 101, 11, 25, 657, 567, 217, 5732, 896, 123, 5467, 12, 65, 2345, 23, 98, 2398 END

Разберём по частям. Но для начала научимся запускать программу на выполнение. Скомпилируем проект — пункт меню «Project -> Make» или значок на панели инструментов: Появится окошко «Messages», в котором отражен процесс компиляции. В случае успеха (а данный текст должен нормально скомпилироваться) появится сообщение об этом.

Далее жмем «Project -> Debug» или кнопку: Должен запуститься собственно отладчик. IAR поддерживает два набора окон — раздельно для редактирования и отладки. Закроем лишнее. Структура проекта при отладке не нужна, окно «Disassembly» используется редко, да и «Messages» не нужно. А вот регистры и память хотелось бы видеть. Жмём «View -> Registers» и два раза «View -> Memory». Перетаскиваем окошки в нужные углы и получаем картинку (на мой вкус, можете сделать по своему):Посмотреть на Яндекс.Фотках В окошках «Memory» выбираем типы памяти «RAM» и «Flash», так будет удобнее просматривать. Также, в каждом окшке памяти щёлкаем правой кнопкой и выбираем из контекстного меню «2x Units» (для просмотра 16-ти разрядных данных) и «Data Coverage -> Enable» (будет показано обращение к текущим ячейкам — удобно). К отладке готовы!

С помошью кнопки F10 (не входить в подпрограммы) или F11 (входить в подпрограммы) проходим по шагам и любуемся результатом. Техника нам подвласна!

На сегодня всё, а завтра продолжим разбор программы.

Просьба — прокомментируйте. Понравилось, не понравилось, не слишком ли тяжело для понимания, что хотелось бы ещё в этом уроке, а также что хочется на будущие. Жду откликов. Спасибо за внимание.

we.easyelectronics.ru

Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений - 29 Апреля 2011

Настоящая книга посвящена однокристальным микроконтроллерам со сверхнизким потреблением семейства MSP430x2xx компании Texas Instruments. Данное руководство представляет собой перевод документа «MSP430x2xx Family Users Guide», выпущенного компанией в 2008 году. В руководстве подробно рассмотрена архитектура ЦПУ MSP430 и MSP430x, описаны система команд и поддерживаемые режимы адресации. Помимо этого, в книге детально описываются различные периферийные модули, реализованные в микроконтроллерах семейства: таймеры, порты ввода/вывода, модули АЦП и ЦАП, модули последовательных интерфейсов USI/USCI и прочие, а также аналоговые модули, такие как модуль операционного усилителя и модуль аналогового компаратора. Это руководство безо всякого преувеличения можно считать настольной книгой инженераразработчика, занимающегося проектированием устройств на микроконтроллерах семейства MSP430x2xx.

Название: Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений

Автор: Евстифеев А. В.

Издательство: Додэка XXI

Год издания: 2010

Страниц: 544

ISBN: 978-5-94120-221-8

Формат: PDF

Размер: 2,1 Мб

Язык: русский

Серия: Мировая электроника

Скачать книгу Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений

СОДЕРЖАНИЕПредисловиеГлава 1. Введение 1.1. Архитектура1.2. Гибкая система тактирования1.3. Внутрисхемная эмуляция1.4. Адресное пространство1.4.1. Флэш/ПЗУ1.4.2. ОЗУ1.4.3. Периферийные устройства1.4.4. Регистры специальных функций (SFR)1.4.5. Организация памяти1.5. Расширенные возможности семейства MSP430x2xxГлава 2. Сброс, прерывания и режимы работы2.1. Сброс и инициализация системы2.1.1. Сброс по снижению напряжения питания (BOR)2.1.2. Состояние устройства после сброса2.2. Прерывания2.2.1. Немаскируемые прерывания (NMI)2.2.2. Маскируемые прерывания2.2.3. Обработка прерывания2.2.4. Векторы прерываний2.3. Режимы работы2.3.1. Вход в режимы пониженного энергопотребления и выход из них2.4. Принципы программирования устройств с низким энергопотреблением2.5. Подключение неиспользуемых выводовГлава 3. 16битное RISC ЦПУ MSP4303.1. Введение в ЦПУ3.2. Регистры ЦПУ3.2.1. Счётчик команд (PC)3.2.2. Указатель стека (SP)3.2.3. Регистр состояния (SR)3.2.4. Регистры генератора констант CG1 и CG23.2.5. Регистры общего назначения R4…R153.3. Режимы адресации3.3.1. Регистровый режим адресации3.3.2. Индексный режим адресации3.3.3. Относительный режим адресации3.3.4. Абсолютный режим адресации3.3.5. Косвенный регистровый режим адресации3.3.6. Косвенный регистровый режим адресации с автоинкрементом3.3.7. Непосредственный режим адресации3.4. Система команд 3.4.1. Команды с двумя операндами (формат I)3.4.2. Команды с одним операндом (формат II)3.4.3. Команды перехода3.4.4. Время выполнения и размер команд3.4.5. Описание набора командГлава 4. 16-ти битное RISC ЦПУ MSP430X4.1. Введение в ЦПУ4.2. Прерывания4.3. Регистры ЦПУ4.3.1. Счётчик команд (PC)4.3.2. Указатель стека (SP)4.3.3. Регистр состояния (SR)4.3.4. Регистры генератора констант CG1 и CG24.3.5. Регистры общего назначения R4…R154.4. Режимы адресации4.4.1. Регистровый режим4.4.2. Индексный режим адресации4.4.3. Относительный режим адресации4.4.4. Абсолютный режим адресации4.4.5. Косвенный регистровый режим адресации4.4.6. Косвенный регистровый режим адресации с автоинкрементом4.4.7. Непосредственный режим адресации4.5. Команды MSP430 и MSP430X 4.5.1. Команды MSP4304.5.2. Команды MSP430X4.6. Описание набора команд4.6.1. Подробные описания расширенных команд4.6.2. Команды MSP4304.6.3. Расширенные команды4.6.4. Адресные командыГлава 5. Модуль синхронизации Basic Clock Module+5.1. Введение5.2. Функционирование модуля синхронизации5.2.1. Возможности модуля синхронизации и приложения с низким энергопотреблением5.2.2. Встроенный низкочастотный генератор со сверхнизким потреблением5.2.3. Генератор LFXT15.2.4. Генератор XT25.2.5. Генератор с цифровым управлением (DCO)5.2.6. Модулятор DCO5.2.7. Отказоустойчивая работа модуля синхронизации5.2.8. Синхронизация тактовых сигналов5.3. Регистры модуля синхронизацииГлава 6. Контроллер DMA6.1. Введение6.2. Функционирование контроллера DMA6.2.1. Режимы адресации контроллера DMA6.2.2. Режимы пересылки контроллера DMA6.2.3. Инициация передачи данных с использованием DMA6.2.4. Прерывание DMA-пересылок6.2.5. Приоритеты каналов DMA6.2.6. Длительность DMA-пересылки6.2.7. Функционирование DMA и прерывания6.2.8. Прерывания контроллера DMA6.2.9. Использование модуля USCI_B в режиме I2C с контроллером DMA6.2.10. Использование модуля ADC12 с контроллером DMA6.2.11. Использование модуля DAC12 с контроллером DMA6.2.12. Запись в флэш-память с использованием контроллера DMA6.3. Регистры контроллера DMAГлава 7. Контроллер флэш-памяти7.1. Введение7.2. Сегментная организация флэш-памяти7.2.1. Сегмент A7.3. Функционирование флэш-памяти7.3.1. Тактовый генератор контроллера флэш-памяти7.3.2. Стирание флэш-памяти7.3.3. Запись в флэш-память7.3.4. Обращение к флэш-памяти во время записи или стирания7.3.5. Останов циклов записи или стирания7.3.6. Режим чтения при граничных условиях7.3.7. Конфигурирование контроллера флэш-памятии организация доступа к нему7.3.8. Прерывания контроллера флэш-памяти7.3.9. Программирование флэш-памяти7.4. Регистры контроллера флэш-памятиГлава 8. Цифровые порты ввода/вывода8.1. Введение8.2. Функционирование цифровых портов ввода/вывода8.2.1. Регистр данных входа PxIN8.2.2. Регистр данных выхода PxOUT8.2.3. Регистр направления PxDIR8.2.4. Регистр включения подтягивающих резисторов PxREN8.2.5. Регистры выбора функции PxSEL и PxSEL28.2.6. Прерывания от портов P1 и P28.2.7. Конфигурация неиспользуемых выводов портов8.3. Регистры цифровых портов ввода/выводаГлава 9. Супервизор напряжения питания9.1. Введение9.2. Функционирование супервизора9.2.1. Конфигурирование супервизора9.2.2. Функционирование компаратора супервизора9.2.3. Изменение битов VLDx9.2.4. Рабочий диапазон супервизора9.3. Регистры супервизораГлава 10. Сторожевой таймер10.1. Введение10.2. Функционирование сторожевого таймера10.2.1. Счётчик сторожевого таймера10.2.2. Режим сторожевого таймера10.2.3. Режим интервального таймера10.2.4. Прерывания сторожевого таймера10.2.5. Отказоустойчивое тактирование сторожевого таймера10.2.6. Функционирование в режимах пониженного энергопотребления10.2.7. Примеры кода10.3. Регистры сторожевого таймераГлава 11. Аппаратный умножитель11.1. Введение11.2. Функционирование аппаратного умножителя11.2.1. Регистры операндов11.2.2. Регистры результата11.2.3. Примеры кода11.2.4. Косвенная адресация RESLO11.2.5. Использование прерываний11.3. Регистры аппаратного умножителяГлава 12. Таймер A12.1. Введение12.2. Функционирование Таймера А12.2.1. 16-ти битный таймер/счётчик12.2.2. Запуск таймера12.2.3. Управление режимом работы таймера12.2.4. Блоки захвата/сравнения12.2.5. Модуль вывода12.2.6. Прерывания Таймера А12.3. Регистры Таймера АГлава 13. Таймер B13.1. Введение13.1.1. Сходства и различия с Таймером А13.2. Функционирование Таймера B13.2.1. 16-ти битный таймер/счётчик13.2.2. Запуск таймера13.2.3. Управление режимом работы таймера13.2.4. Блоки захвата/сравнения13.2.5. Модуль вывода13.2.6. Прерывания Таймера B 13.3. Регистры Таймера BГлава 14. Универсальный последовательный интерфейс14.1. Введение14.2. Функционирование модуля USI14.2.1. Инициализация модуля USI14.2.2. Генерация тактового сигнала USI14.2.3. Режим SPI14.2.4. Режим I2C14.3. Регистры модуля USIГлава 15. Универсальный последовательный коммуникационный интерфейс: режим UART15.1. Введение15.2. Введение в модуль USCI: режим UART15.3. Функционирование модуля USСI: режим UART15.3.1. Инициализация и сброс модуля USCI15.3.2. Формат символа15.3.3. Форматы асинхронного обмена15.3.4. Автоматическое определение скорости передачи15.3.5. Кодирование и декодирование сигналов IrDA15.3.6. Автоматическое обнаружение ошибок15.3.7. Разрешение приёма USCI15.3.8. Разрешение передачи USCI15.3.9. Контроллер скорости передачи UART15.3.10. Установка скорости обмена15.3.11. Синхронизация при передаче15.3.12. Синхронизация при приёме15.3.13. Типовые скорости обмена и величины ошибок15.3.14. Использование модуля USCI в режиме UART совместно с режимами пониженного энергопотребления15.3.15. Прерывания модуля USCI15.4. Регистры модуля USCI: режим UARTГлава 16. Универсальный последовательный коммуникационный интерфейс: режим SPI16.1. Введение16.2. Введение в модуль USCI: режим SPI16.3. Функционирование модуля USСI: режим SPI16.3.1. Инициализация и сброс модуля USCI16.3.2. Формат символа16.3.3. Режим ведущего16.3.4. Режим ведомого16.3.5. Разрешение обмена по интерфейсу SPI16.3.6. Управление тактовым сигналом16.3.7. Использование режима SPI совместно с режимами пониженного энергопотребления16.3.8. Прерывания в режиме SPI16.4. Регистры модуля USCI: режим SPIГлава 17. Универсальный последовательный коммуникационный интерфейс: режим I2C17.1. Введение17.2. Введение в модуль USCI: режим I2C17.3. Функционирование модуля USСI: режим I2C17.3.1. Инициализация и сброс модуля USCI17.3.2. Передача данных по шине I2C17.3.3. Режимы адресации I2C17.3.4. Режимы работы модуля I2C17.3.5. Генерация и синхронизация тактового сигнала I2C17.3.6. Использование модуля USCI в режиме I2C совместно с режимами пониженного энергопотребления17.3.7. Прерывания в режиме I2C17.4. Регистры модуля USCI: режим I2CГлава 18. Модуль операционного усилителя OA18.1. Введение18.2. Функционирование модуля OA18.2.1. Операционный усилитель 18.2.2. Входы модуля OA18.2.3. Выход модуля OA и организация обратной связи18.2.4. Конфигурация модуля OA18.3. Регистры модулей OAГлава 19. Модуль аналогового компаратора Comparator_A+19.1. Введение19.2. Функционирование модуля Comparator_A+19.2.1. Компаратор19.2.2. Входные аналоговые ключи19.2.3. Ключ замыкания входов19.2.4. Выходной фильтр19.2.5. Генератор опорного напряжения19.2.6. Компаратор и регистр отключения порта CAPD19.2.7. Прерывания компаратора19.2.8. Использование компаратора для измерения сопротивления19.3. Регистры модуля Comparator_A+Глава 20. Модуль 10-ти битного АЦП ADC1020.1. Введение20.2. Функционирование модуля ADC1020.2.1. Ядро 10-ти битного АЦП20.2.2. Входы модуля ADC10 и мультиплексор20.2.3. Генератор опорного напряжения20.2.4. Автоматическое отключение20.2.5. Синхронизация выборки и преобразования20.2.6. Режимы преобразования20.2.7. Контроллер передачи данных модуля ADC1020.2.8. Использование встроенного датчика температуры20.2.9. Заземление и борьба с помехами при использовании модуля ADC1020.2.10. Прерывания модуля ADC1020.3. Регистры модуля ADC10Глава 21. Модуль 12-ти битного АЦП ADC1221.1. Введение21.2. Функционирование модуля ADC1221.2.1. Ядро 12-ти битного АЦП21.2.2. Входы модуля ADC12 и мультиплексор21.2.3. Генератор опорного напряжения21.2.4. Синхронизация выборки и преобразования21.2.5. Сохранение результатов преобразования21.2.6. Режимы преобразования21.2.7. Использование встроенного датчика температуры21.2.8. Заземление и борьба с помехами при использовании модуля ADC1221.2.9. Прерывания модуля ADC1221.3. Регистры модуля ADC12Глава 22. Структура TLV22.1. Введение22.2. Поддерживаемые теги22.2.1. Структура TLV калибровочных значений DCO22.3. Проверка целостности содержимого сегмента A22.4. Анализ содержимого сегмента AГлава 23. Модуль 12битного ЦАП DAC1223.1. Введение23.2. Функционирование модуля ADC1223.2.1. Ядро [email protected]битного ЦАП23.2.2. Опорное напряжение модуля DAC1223.2.3. Обновление состояния выхода модуля ADC1223.2.4. Формат содержимого DAC12_xDAT23.2.5. Калибровка смещения выходного усилителя модуля DAC1223.2.6. Группирование нескольких модулей DAC1223.2.7. Прерывания модуля DAC1223.3. Регистры модуля DAC12Глава 24. Модуль 16битного АЦП SD16_A24.1. Введение24.2. Функционирование модуля SD16_A24.2.1. Ядро АЦП24.2.2. Диапазон входного аналогового сигнала и усилитель с программируемым коэффициентом усиления (PGA)24.2.3. Генератор опорного напряжения24.2.4. Автоматическое отключение24.2.5. Выбор входного канала24.2.6. Параметры аналогового входа24.2.7. Цифровой фильтр24.2.8. Регистр данных SD16MEM024.2.9. Режимы преобразования24.2.10. Использование встроенного датчика температуры24.2.11. Обработка прерываний24.3. Регистры модуля SD16_AГлава 25. Встроенный модуль эмуляции EEM25.1. Введение25.2. Функциональные узлы модуля EEM25.2.1. Триггеры25.2.2. Секвенсор триггеров25.2.3. Внутренний буфер трассировки25.2.4. Управление тактовыми сигналами25.3. Конфигурации модуля EEM

www.radiofiles.ru

Семенов Б.Ю. Микроконтроллеры MSP430. Первое знакомство [DJVU]

123avr.com, 2015. – 65 с. Курс подробно рассказывает, как сделать самые первые шаги, с чего начать не вообще, а конкретно. Как сделать нужное вам электронное устройство, печатную плату Как написать первую, простейшую программу для МК Как запустить эту программу в программе-симуляторе МК и увидеть, как она работает, не покупая МК и радиодеталей, а значит, без риска спалить что-то...

  • 1,68 МБ
  • дата добавления неизвестна
  • изменен 05.03.2018 00:05

Пер. с англ. Евстифеева А.В. — М.: Додэка–XXI, 2010.— 544 с.: ил.— (Серия «Мировая электроника»). ISBN 978-5-94120-221-8 Настоящая книга посвящена однокристальным микроконтроллерам со сверхнизким потреблением семейства MSP430x2xx компании Texas Instruments. Данное руководство представляет собой перевод документа «MSP430x2xx Family User's Guide», выпущенного компанией в 2008...

  • 1,94 МБ
  • добавлен 01.11.2011 01:38
  • изменен 17.08.2016 23:40

СПб.: Наука и Техника, 2008. - 544с. Самоучитель раскрывает секреты микропроцессорной техники, затрагивает основы цифровой логики, принципы программирования. Написан простым, понятным языком, снабжен схемами, иллюстрациями и практическими примерами.

  • 10,32 МБ
  • дата добавления неизвестна
  • изменен 02.04.2009 17:25

Пер. с англ. Б. И. Копылова. – М.: Лаборатория базовых знаний, 2002. – 832 с. В книге излагаются методы анализа и синтеза современных систем автоматического управления (САУ). Показано, как с использованием принципа обратной связи могут быть созданы высокоэффективные системы управления различного назначения (аэрокосмическая техника, промышленные работы, автомобилестроение,...

  • 12,21 МБ
  • дата добавления неизвестна
  • изменен 19.02.2009 23:26

www.twirpx.com

Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004)

Содержание

MSP430x1xxFamily

12.2.3. Управление режимом таймера ...................................................................................

 

203

12.2.4. Блоки захвата/сравнения ............................................................................................

 

207

12.2.5. Модуль вывода ............................................................................................................

 

210

12.2.6. Прерывания Таймера В................................................................................................

 

213

12.3. Регистры таймера В.................................................................................................................

 

216

Раздел XIII. Периферийный интерфейс USART, режим UART...................................................

 

222

13.1. Введение в USART: режим UART............................................................................................

 

222

13.2. Работа USART: режим UART ...................................................................................................

 

222

13.2.1. Инициализация и сброс USART..................................................................................

 

222

13.2.2. Формат символа ..........................................................................................................

 

224

13.2.3. Асинхронные коммуникационные форматы.............................................................

 

224

13.2.4. Разрешение приема USART ........................................................................................

 

228

13.2.5. Разрешение передачи USART .....................................................................................

 

229

13.2.6. Контроллер скорости передачи UART........................................................................

 

230

13.2.7. Прерывания USART......................................................................................................

 

236

13.3. Регистры USART: режим USART.............................................................................................

 

240

Раздел XIV. Периферийный интерфейс USART, режим SPI ......................................................

 

250

14.1. Введение в USART: режим SPI................................................................................................

 

250

14.2. Функционирование USART: режим SPI..................................................................................

 

250

14.2.1. Инициализация USART и сброс..................................................................................

 

252

14.2.2. Режим ведущего ..........................................................................................................

 

252

14.2.3. Режим ведомого ..........................................................................................................

 

253

14.2.4. Включение SPI..............................................................................................................

 

254

14.2.5. Управление последовательным тактированием .......................................................

 

255

14.2.6. Прерывания SPI............................................................................................................

 

257

14.3. Регистры USART: режим SPI...................................................................................................

 

258

Раздел XV. Периферийный интерфейс USART, режим I2C ........................................................

 

268

15.1. Введение в модуль I2C .............................................................................................................

 

268

15.2. Функционирование модуля I2C ...............................................................................................

 

268

15.2.1. Инициализация модуля I2C..........................................................................................

 

270

15.5.2. Последовательные данные I2C....................................................................................

 

271

15.2.3. Режимы адресации I2C ................................................................................................

 

272

15.2.4. Режимы работы модуля I2C ........................................................................................

 

273

15.2.5. Регистр данных I2CDR модуля I2C ..............................................................................

 

280

15.2.6. Генерация тактовых сигналов I2C и синхронизация.................................................

 

281

15.2.7. Использование модуля I2C в режимах пониженного энергопотребления ............

282

15.2.8. Прерывания I2C.............................................................................................................

 

283

15.3. Регистры модуля I2C ................................................................................................................

 

285

Раздел XVI. Компаратор А............................................................................................................

 

296

16.1. Введение в компаратор А........................................................................................................

 

296

16.2. Функционирование компаратора А........................................................................................

 

297

16.2.1. Компаратор...................................................................................................................

 

297

16.2.2. Входные аналоговые переключатели ........................................................................

 

297

16.2.3. Выходной фильтр ........................................................................................................

 

298

16.2.4. Генератор опорного напряжения................................................................................

 

298

16.2.5. Компаратор А, регистр отключения порта CAPD......................................................

 

299

16.2.6. Прерывания компаратора А........................................................................................

 

299

16.2.7. Использование компаратора А для измерения сопротивления элементов...........

300

16.3. Регистры компаратора А.........................................................................................................

 

302

Библиотека Компэла

 

7

studfiles.net

Микроконтроллеры MSP430 для начинающих (статья 1) - Мои статьи - Каталог статей

В отличие от PIC и AVR, микроконтроллеры MSP430 имеют 16-битную архитектуру. Кроме того, диапазон питающего напряжения их варьируется от 1,8 до 3,6 В, что вместе с пониженным энергопотреблением позволяет создавать на их базе устройства с батарейным питанием. Контроллеры MSP430 изначально ориентированы на асинхронную работу процессора и периферийных модулей. Для нас, как разработчиков, это значит, что для тактирования процессора, таймеров, АЦП, интерфейсных модулей могут использоваться разные источники тактового сигнала, которых в одном микроконтроллере имеется до 4 штук. Таким образом можно добиться оптимального соотношения производительность/ энергопотребление. Что касается периферийных устройств, то тут однозначной характеристики дать нельзя, поскольку для разных подсемейств набор периферийных модулей может весьма существенно отличаться. В целом же, имеющиеся для продажи в наших магазинах контроллеры имеют сходный набор периферии с продуктами фирм Microchip и Atmel.

Касательно имеющейся в наличии литературы по контроллерам MSP430 можно с сожалением отметить, что тут они однозначно и явно поигрывают своим конкурентам. Автору удалось найти не более десятка русскоязычных книг, посвященных программированию данных контроллеров. Однако на сайте производителя имеется довольно обширный набор примеров исходных кодов с подробным описанием (естественно, на английском языке) [3].

Сложность программирования данных микроконтроллеров по большому счету такая же, как и для PIC или AVR. Конечно, имеются некоторые нюансы, связанные с переходом на 16-битную архитектуру, а также с другим способом организации памяти, но при программировании на Си эти отличия нивелируются.

С чего же начать знакомство с новыми контроллерами? Вам потребуются: собственно контроллеры, средство для прошивки контроллеров и программная среда для написания кода и создания исполняемого кода.

Тут фирма Texas Instruments сделала всем большой подарок, выпустив отладочную плату MSP-EXP430G2 LaunchPad [4], внешний вид которой представлен на рис. 1.

Рисунок 1 – Внешний вид отладочной платы MSP-EXP430G2 LaunchPad

Плата эта мгновенно завоевала огромную популярность среди зарубежных радиолюбителей, и постепенно набирает обороты и на постсоветском пространстве. Чем же она так привлекательна? На страницах журнала «Радио» уже публиковалась информация о ней в качестве альтернативы плате Arduino [5].

Что же получает покупатель, приобретя данный комплект?

Встроенный flash-эмулятор для программирования и отладки. Таким образом, производитель сразу избавляет разработчиков от необходимости самостоятельно собирать программатор для прошивки памяти контроллера. Кроме того, пользователь получаем сразу и отладчик, который позволяет не только прошивать контроллер, а и осуществлять отладку со всеми необходимыми функциями: точки останова, пошаговое выполнение программы, просмотр всех переменных и регистров контроллера в реальном времени.На плате распаяна цанговая панелька для подключения микроконтроллеров MSP430 в 14- и 20-выводных DIP-корпусах а также два однорядных штекерных разъема, на которые выведены все ножки микроконтроллера, что позволяет легко наращивать функциональность платы путем изготовления собственных модулей расширения.Для первичного тестирования программ на плате также распаяно две кнопки (одна из которых – RESET), а также два светодиода.И самое главное, в комплект входит два микроконтроллера подсемейства MSP430G2xx. Тут надо быть внимательным: с января 2012 года компания Texas Instruments выпустила новую ревизию отладочной платы. Старая ревизия (rev. 1.4) имела в своем составе следующие микросхемы:

MSP430G2211IN14 – 2 кбайт flash-памяти, 128 байт ОЗУ, 10 линий ввода-вывода, один 16-битный таймер, сторожевой таймер, детектор пониженного напряжения, аналоговый компараторMSP430G2231IN14 – 2 кбайт flash-памяти, 128 байт ОЗУ, 10 линий ввода-вывода, один 16-битный таймер, сторожевой таймер, детектор пониженного напряжения, модуль универсального интерфейса, 10-битный АЦП.

В новой ревизии (rev. 1.5) в комплект входят уже другие контроллеры:

MSP430G2553IN20: 16 кбайт flash-памяти, 512 байт ОЗУ, 16 линий ввода-вывода с поддержкой емкостного сенсорного интерфейса, два 16-битных таймера, сторожевой таймер, детектор пониженного напряжения, аналоговый компаратор, 10-битный АЦП, модуль универсального последовательного интерфейса. MSP430G2452IN20: 8 кбайт flash-памяти, 256 байт ОЗУ, 16 линий ввода-вывода с поддержкой емкостного сенсорного интерфейса, один 16-битный таймер, сторожевой таймер, детектор пониженного напряжения, аналоговый компаратор, 10-битный АЦП, модуль универсального последовательного интерфейса.

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

В качестве приятного дополнения в комплект входят разъемы BLS для подключения плат расширения, кварцевый резонатор на 32768 кГц, который можно впаять при необходимости, а также кабель mini-USB для подключения платы к компьютеру.

Но самое главное – это стоимость данного комплекта. В интернет-магазине Texas Instruments его можно заказать за 9,99 $. Можно сказать, что цена довольно приемлемая, учитывая, что доставка по всему миру осуществляется бесплатно. В местных магазинах стоимость приблизительно в два раза выше, что, однако, тоже является вполне доступным, принимая во внимание комплектацию.

К сожалению, не обходится без небольшой, но ложки дегтя. В комплект не входит диск с программным обеспечением, которое предлагается скачать из Интернета. Но в эпоху повсеместного широкополосного доступа к сети скачать 150 МБ не составляет особой сложности.

Итак, приобретая отладочную плату MSP-EXP430G2 LaunchPad, пользователь сразу получает программатор-отладчик и два микроконтроллера, которые в новой ревизии (rev. 1.5) имеют характеристики сравнимые с таковыми у распространенных ATMega8 или PIC16F876, а по некоторым показателям даже превосходящие их. В дальнейшем при написании данного цикла автор будет использовать именно эту плату.

Осталось разобраться только с программным обеспечением для написания и отладки собственных программ. Какие же программные продукты можно использовать для работы с MSP430?

Во-первых, это собственная разработка фирмы Texas Instruments – среда Code Composer Studio. На официальном сайте можно скачать бесплатную версию, имеющую ограничение на объем кода в 16 килобайт [6]. Учитывая тот факт, что максимальный объем flash-памяти у микроконтроллеров семейства MSP430 в DIP-корпусах на данный момент составляет как раз 16 килобайт, можно смело говорить о полной функциональности данного программного продукта. К недостаткам его можно отнести высокую требовательность к системе. На компьютере с объемом ОЗУ менее 1 ГБ ставить Code Composer Studio смысла не имеет, иначе процесс компиляции и прошивки занимает весьма много времени. В общем, рекомендовать данную среду можно только владельцам мощных компьютеров, собирающимся мириться с неудобствами ради возможности написания кода большего объема.

Во-вторых, это программный пакет известного создателя ПО для микроконтроллеров – фирмы IAR Systems, именуемый IAR Embedded Workbench. С сайта Texas Instruments можно скачать бесплатную версию этой среды, которая называется IAR Embedded Workbench Kickstart [7]. К сожалению, в бесплатной версии ограничение объема кода составляет всего 4 килобайта. Но, учитывая, что поначалу вряд ли написанные коды программ будут превышать данный объем, автор при написании данного цикла будет ориентироваться именно на эту среду разработки. В отличие от ПО Texas Instruments, она имеет более низкие системные требования, при этом выполняя все те же функции, что и Code Composer Studio, но несколько быстрее.

В-третьих, можно использовать бесплатное ПО MSPGCC [8], но в настоящее время это оно представляет собой набор исполняемых из командной строки файлов без графического интерфейса, поэтому рекомендовать ее для начинающих на взгляд автора не стоит.

Теперь можно считать, что имеется все необходимое для разработки устройств на микроконтроллерах MSP430. Пора перейти к практике и написать первую программу. В дальнейшем изложении будет описан порядок действий при работе со средой IAR Embedded Workbench Kickstart.

Для начала нужно перейти на страничку [7] и скачать оттуда бесплатную версию среды IAR Embedded Workbench Kickstart. Процесс установки стандартный, лучше выбрать способ «Complete», чтобы установить все модули программы.

После того, как программное обеспечение будет установлено, следует подключить к компьютеру отладочную плату через разъем mimi-USB. Операционная система сама найдет и установит необходимые драйверы. Если же на экране появится запрос на установку нового оборудования, нужно выбрать «Автоматическая установка», и нужный драйвер будет загружен.

После этого в системе появится новый виртуальный СОМ-порт (рис. 2).

Рисунок 2 – Новый виртуальный СОМ-порт

Поскольку в контроллер зашита демонстрационная программа, то при подаче питания сразу же начнут перемигиваться светодиоды LED1 и LED2 с частотой примерно 2 Гц.

Когда вы убедились, что драйвера на отладочную плату установлены, можно запускать программную среду IAR через меню «Пуск».

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

1. В меню «Project» нужно выбрать пункт «Create new project…» и в появившемся окне сразу нажать на экранную кнопку «ОК», ничего не меняя.

2. Далее следует сохранить вновь созданный проект под выбранным именем. Автор рекомендует для каждого проекта создавать отдельную папку. Для первого проекта можно дать имя папке «Lesson 1», и проект также назвать «Lesson1».

3. В меню «File» выбрать пункт «New», и в открывшемся списке снова «File». В результате в поле редактирования появляется файл «Untitled1».

4. В меню «File» выбрать теперь пункт «Save As…» и сохранить файл в ту же папку, где ранее был сохранен проект. Расширение для файла необходимо выбрать «*.с», если программа будет написана на языке Си, или «*.asm», если текст будет на Ассемблере. Автором рекомендуется называть файлы программ «main» для стандартизации. Поэтому назвать файл можно «main.c».

5. В меню «Project» выбрать пункт «Add Files…» и в открывшемся окне указать вновь созданный файл «main.c». Теперь файл с будущим текстом программы включен в проект.

6. В меню «Project» выбрать пункт «Options…». В появившемся окне сразу открывается категория «General Options», где во вкладке «Target» в поле «Device» необходимо указать тип установленного на плате контроллера. Поскольку изначально в плате находится контроллер MSP430G2553, то нужно выбрать его в выпадающем списке. Затем следует перейти в категорию «Debugger» и там во вкладке «Setup» в поле «Driver» вместо «Simulator» выбрать «FET Debugger». Это нужно для того, чтобы созданный файл прошивки загружался в подключенный контроллер, а не во встроенный в среду разработки симулятор контроллера. Более ничего менять не нужно, и можно нажимать экранную кнопку «ОК».

Теперь можно писать собственную программу, которая в дальнейшем будет загружена в контроллер. Вместо обычного мигания светодиодом предлагается написать программу, реализующую следующую задачу. При подаче питания включается светодиод LED1, а LED2 погашен. При нажатии и удержании кнопки S2 светодиод LED1 гаснет, а LED2 включается. При отпускании кнопки S2 все возвращается в исходное состояние.

 Текст программы, реализующий указанную задачу, приведен ниже.

#include <msp430.h>        //1.Подключение заголовочного файла микроконтроллеров MSP430

int main(void)             //2.Главная функция программы

{                          //3.

 WDTCTL = WDTPW|WDTHOLD;   //4.Остановка сторожевого таймера

 P1DIR = BIT0|BIT6;        //5.Перевод линий, на которых находятся LED1и LED2, на выход

 P1REN = BIT3;             //6.Включение подтягиваюющего резистора на линии кнопки S2

 P1OUT = BIT3;             //7.Подключение подтягивающего резистора к плюсу питания

 while (1)                 //8.Бесконечный цикл

 {                         //9.

  if (P1IN&BIT3)           //10.Если кнопка S2 не нажата,

  {                        //11.

    P1OUT |= BIT0;         //12.то включить светодиод LED1

    P1OUT &=~BIT6;         //13.и выключить LED2

  }                        //14.

  else                     //15.Иначе

  {                        //16.

    P1OUT |= BIT6;         //17.включить светодиод LED2

    P1OUT &=~BIT0;         //18.и выключить LED1

  }                        //19. 

 }                         //20.

}                          //21.

 

Перед описанием текста программы рассмотрим процесс создания исполняемого кода, загрузки его в контроллер и запуска на выполнение.

Для того чтобы перейти в режим отладки, нужно нажать экранную кнопку «Download and Debug», которая имеет вид зеленого треугольника над параллелограммом и расположена в верхней правой части панели инструментов. После ее нажатия при первом запуске процесса отладки программа выдаст окно с запросом сохранения файла рабочего пространства «Workspace». Можно сохранить его под именем «Workspace» в папке с проектом. После этого автоматически начнется процесс компиляции и компоновки исполняемого кода, и при отсутствии ошибок в коде программы созданный исполняемый код будет загружен в установленный на плате контроллер.

При наличии ошибок будет выдано соответствующее предупреждение с указанием вида ошибок и строк, в которых они были обнаружены.

Если же процесс прошел без ошибок, среда разработки перейдет в режим отладки, что будет видно по двум появившимся панелям инструментов (рис. 3). Для начала достаточно знать назначение всего нескольких экранных кнопок на них.

Рисунок 3 – Окно программы в режиме отладки

Экранная кнопка «Go», в виде трех синих стрелок над параллелограммом запускает процесс отладки программы в реальном времени. При ее нажатии загруженная в контроллер программа начинает свое исполнение. При ее нажатии можно видеть, что на отладочной плате загорелся красный светодиод LED1. При нажатии на кнопку S2, расположенную на плате, он гаснет, и зажигается зеленый светодиод LED2. При отпускании кнопки S2 снова загорается красный светодиод. Написанная программа работает.

Экранная кнопка «Stop Debugging» в виде красного крестика останавливает процесс отладки. При ее нажатии окно среды разработки возвращается в первоначальное состояние, но запущенная в контроллере прошивка продолжает выполняться, если включена экранная кнопка «Leave Target Running» в виде трех синих стрелок над красным крестиком.

Экранная кнопка «Break» в виде красной ладони приостанавливает выполнение программы, при этом можно посмотреть текущие значения всех переменных, регистров контроллера, осуществить пошаговое выполнение программы.

Прежде чем переходить к рассмотрению текста программы, следует сделать небольшое теоретическое введение, касающееся конфигурирования и использования портов ввода-вывода. В микроконтроллерах MSP430 порты имеют следующее обозначение: вначале идет буква «Р», а затем номер порта (Р1, Р2, Р3 и т.д.) Каждый порт может объединять до 8 линий ввода-вывода. Все порты являются двунаправленными.

В семействе MSP430 для работы с каждым из портов ввода-вывода связано от 6 до 9 регистров контроллера. Для понимания написанной в данной статье программы нужно знать назначение только четырех из них.

Для задания направления передачи данных используется регистр PxDIR (где х – номер порта). Если какой-то бит данного регистра равен 0, то соответствующий ему вывод работает как цифровой вход, а если 1, то как цифровой выход. В любом режиме работы вывода его текущее состояние отражается в соответствующем ему бите регистра PxIN. В некоторых микроконтроллерах MSP430 имеется возможность задействовать внутренние подтягивающие резисторы, подключенные к выводам контроллера. За эту функцию отвечает регистр PxREN. Если какой-либо бит этого регистра равен 0, то подтягивающий резистор, подключенный к соответствующему выводу, отключен, если же бит равен 1, то подтягивающий резистор включен. Ну и, наконец, регистр PxOUT. Он выполняет двоякую функцию. Если вывод функционирует как цифровой выход, то значение каждого бита регистра PxOUT определяет уровень выходного сигнала соответствующего вывода: 0 – низкий уровень, 1 – высокий уровень. Если же вывод функционирует как вход, то значение битов этого регистра определяет способ подключения подтягивающего резистора: 0 – вывод подтягивается к общему проводу, 1 – вывод подтягивается к проводу питания.

Рассмотрим теперь работу программы. Для удобства все строки в ней пронумерованы (рис. 3). При описании программы считается, что читатель знаком с синтаксисом языка Си. Для первого раза программа будет описана построчно, в дальнейшем ранее рассматривавшиеся конструкции будут опускаться.

Строка 1. К файлу текста программы директивой компилятора include подключается файл «msp430.h». В этом файле содержатся ссылки на заголовочные файлы всех известных среде IAR микроконтроллеров семейства MSP430. Имя нужного контроллера было указано ранее в меню «Options…». Теперь среда разработки загружает необходимый заголовочный файл автоматически. Данная строка должна присутствовать всегда.

Строка 2. Объявление главной функции программы main. Тип возвращаемого функцией значения может быть любым: int, void, char. Параметры в данную функцию не передаются.

Строки 3 и 21. Определяют границы функции main.

Строка 4. С нее начинается собственно текст основной программы. Как обычно принято при написании программ для микроконтроллеров сначала идет раздел инициализации. В этой строке производится отключение сторожевого таймера контроллера. В отличие от микроконтроллеров AVR и PIC, в MSP430 сторожевой таймер по умолчанию включен, и если в нем нет необходимости, то его приходится отключать. Поэтому в большинстве случаев раздел инициализации начинается именно с этой строки.

Строка 5. Перевод выводов Р1.0 и Р1.6 на выход. В заголовочных файлах контроллеров MSP430 описаны макроопределения BIT0, BIT1, …, BIT7, которые равны соответственно 0х01, 0х02,… 0х80. Таким образом, в макроопределении BIT0 записана логическая «1» только в нулевом бите, а все остальные равны «0», в BIT1 логическая «1» только в первом бите и т.д. Исходя из вышесказанного, запись P1DIR = BIT0|BIT6 можно трактовать следующим образом: вначале выполняется операция побитового «ИЛИ» между BIT0 и BIT6, в результате которой получается байт с логическими единицами в нулевом и шестом бите, а затем полученное значение сохраняется в регистре P1DIR.

Почему мы используем как выходы именно выводы P1.0 и Р1.6? Если скачать с сайта компании Texas Instruments руководство пользователя отладочной платы MSP-EXP430G2 LaunchPad [9] и найти в ней принципиальную электрическую схему платы, то можно увидеть, что аноды светодиодов LED1 и LED2 подключены к выводам Р1.0 и Р1.6 соответственно, а катоды – к общему проводу.

Строка 6. Включение подтягивающего резистора на входе Р1.3. Именно к этому входу подключена кнопка S2 [9], а поскольку внешний подтягивающий резистор на плате отсутствует, то приходится использовать внутренний.

Строка 7. Подключение вывода Р1.3 к выводу питания через подтягивающий резистор. Теперь, если кнопка не нажата, то на выводе Р1.3 будет присутствовать высокий уровень напряжения, а при нажатии – низкий, поскольку кнопка замыкает вывод на общий провод.

Строка 8. Объявление бесконечного цикла. Строки 4-7, которые были описаны до начала этого цикла, выполнятся один раз после запуска программы. А строки 10-19, входящие в цикл, будут выполняться постоянно, пока контроллер находится в режиме работы.

Строки 9 и 20. Определяют границы бесконечного цикла.

Строка 10. Проверка состояния кнопки S2. Для проверки используется стандартный прием – побитовое логическое «И» регистра P1IN и макроопределения BIT3. Условие будет истинным только в том случае, если третий бит регистра P1IN будет равен 1, то есть, если кнопка не нажата, поскольку, как было написано выше, регистр P1IN содержит текущее состояние выводов порта.

Строки 11 и 14. Определяют границы действий, выполняемых при отпущенной кнопке.

Строка 12. В нулевой бит регистра P1OUT записывается логическая единица. Здесь снова используется стандартный прием – побитовое логическое «ИЛИ» регистра P1OUT и макроопределения BIT0 с сохранением результата в P1OUT. При этом в регистре P1OUT устанавливается в «1» только нулевой бит. После выполнения этой строки светодиод LED1 включится, поскольку на выходе P1.0 окажется высокий логический уровень.

Строка 13. В шестой бит регистра P1OUT записывается логический ноль. Тут применяется еще один стандартный прием – побитовая инверсия значения BIT6 и побитовое логическое «И» полученного значения и регистра P1OUT с сохранением результата в P1OUT. При этом в регистре P1OUT сбрасывается в «0» только шестой бит. После выполнения этой строки светодиод LED2 выключится, поскольку на выходе P1.6 окажется низкий логический уровень.

Строка 15. Начало альтернативной ветви, которая выполняется, если условие в строке 10 ложно (то есть, если кнопка S2 нажата).

Строки 16 и 19. Определяют границы действий, выполняемых при нажатой кнопке S2.

Строка 17. По структуре аналогична строке 12, за исключением того, что при ее выполнении включается светодиод LED2.

Строка 18. По структуре аналогична строке 13, за исключением того, что при ее выполнении выключается светодиод LED1.

Вот в принципе и все, что касается описания работы программы. Человек, хотя бы поверхностно знакомый с языком Си, разберется в ней без особого труда.

Еще одно замечание относительно семейства MSP430. Все микроконтроллеры этого семейства в DIP-корпусах имеют полную совместимость выводов. Это значит, что написанная программа без всяких изменений будет работать на любом контроллере, входящем в комплект MSP430 LaunchPad (и новой ревизии, и старой), нужно только задать его название в опциях проекта. Такая совместимость является большим плюсом, поскольку позволяет легко производить обновление существующего проекта путем замены контроллера на более мощный без существенных изменений в написанной ранее программе.

 

Перечень ссылок

Страница микроконтроллеров семейства MSP430 на сайте производителя. – <http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/overview.page>Страница микроконтроллеров подсемейства Value Line на сайте производителя. – <http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x/overview.page>Страница для скачивания архива с примерами программ для микроконтроллеров семейства MSP430. –<http://www.ti.com/tool/msp430ware?DCMP=msp430ware&HQS=msp430ware-bhp>Страница отладочной платы MSP430 LaunchPad на сайте производителя. – <http://www.ti.com/tool/msp-exp430g2>Стародубцев М. Arduino или LaunchPad – что лучше? – Радио. 2011. №11. с. 29-31.Страница для скачивания программного пакета Code Composer Studio. – <http://processors.wiki.ti.com/index.php/Download_CCS>Страница для скачивания программного пакета IAR Embedded Workbench Kickstart. – <http://processors.wiki.ti.com/index.php/IAR_Embedded_Workbench_for_TI_MSP430>Страница для скачивания программного пакета MSPGCC. –  <http://sourceforge.net/projects/mspgcc/files/Windows/mingw32/>Руководство пользователя отладочной платы MSP430 LaunchPad. – <http://www.ti.com/lit/pdf/slau318>

sokolsp.at.ua