Логический анализатор на msp430 launchpad

Уроки MSP430 LaunchPad. Урок 07: Жмем кнопки

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

Много разных кнопок и переключателей можно найти в продаже, и много способов как их присоединять к MSP430. Здесь рассмотрим те, что обычно называют «микрики». На плате LaunchPad есть две таких кнопки. Одна присоединена к выводу P1.3 (в левом нижнем углу платы) и другая к выводу RST/SBWTDIO (вывод 16 на корпусе DIP).

Подключение кнопок

Если посмотреть схему LaunchPad, то можно увидеть, что кнопки включены между соответствующим выводом микроконтроллера и землей. Заметьте, что одновременно эти выводы подключены к питанию (Vcc), через резисторы 47кОм. Для использования кнопок в цифровой логике, они должны обеспечивать два состояния: логической единицы и логического ноля. Когда кнопка поднята, резистор притягивает вывод к питанию, поднимая на нем напряжение, до того уровня, которым запитана плата (в случае LaunchPad это 3.6В). Когда вы нажимаете кнопку, вывод напрямую замыкается на землю. Таким образом, не нажатая кнопка, это логическая единица, нажатая, это логический ноль.

(В LaunchPad версии 1.5, не впаяны R34 и С24, есть только места для их самостоятельной распайки. – Прим. пер.).

Вы можете использовать и обратный способ подключения, поменяв резистор и кнопку местами. По очевидным причинам, первый способ конфигурации вывода микроконтроллера зовется «подтяжка вверх», а второй «подтяжка вниз». Без этих резисторов, вывод останется на весу, и будет вести себя непредсказуемо, принимая любое значение между землей и напряжением питания. Какой бы проект платы вы самостоятельно не разрабатывали, не забывайте про резисторы подтяжки. Высокое сопротивление резисторов подтяжки (такое как 47 кОм на LaunchPad) необходимо для того, что бы избежать утечки тока при нажатии кнопок. В идеале, нам необходимо просто изменить потенциал вывода, не тратя на это никакой энергии.

Вы должны знать, что у MSP430 существуют внутренние резисторы на каждом выводе портов GPIO, и любой из них, можно сконфигурировать для подтяжки вверх или вниз. Их сопротивление, как написано в документации, достаточно большое, что бы минимизировать утечку тока. Но, как замечено теми, кто разрабатывает реальные устройства, это плохая практика, использовать эти внутренние резисторы, для подключения кнопок.

Пример

С установленными резисторами, использовать кнопки на микроконтроллере чрезвычайно просто. Давайте продемонстрируем это, написав программу, которая несколько раз мигает красным светодиодом на выводе P1.0, а после нажатия кнопки, несколько раз мигает зеленым светодиодом на выводе P1.6 Нажатие кнопки еще раз возвращает мигание красного и так далее. Для этой программы нам нужно настроить выводы светодиодов P1.0 и P1.6 на выход, а вывод кнопки P1.3, на вход. Используем код конфигурирования выводов из программы-мигалки. Так же нам понадобится переменная счетчика циклов, и второй счетчик для контроля количества вспышек после нажатия кнопки.

Нам необходимо заставить MSP430 периодично проверять состояние кнопки, это называется «опрос». Когда программа достигает места, где необходимо дождаться нажатия кнопки пользователем, она проверяет и проверяет кнопку раз за разом, пока не заметит, что кнопка нажата. Мы сделаем это, используя логическую операцию для проверки значения в регистре P1IN. Т.к. кнопка подключена к выводу P1.3, третий бит регистра P1IN сообщит нам, что кнопка нажата (логический ноль) или не нажата (логическая единица). Остальные биты в P1IN могут иметь любое значение. Так как же нам извлечь только значение бита 3? Простейший способ, это использование оператор & (логическое И) который будет работать так: (x & 0 == 0), (x & 1 == x), т.е. P1IN & BIT3 (0b00001000) вернет 0b0000x000, где x, это значение бита 3 в регистре P1IN. Важно понимать, что результат не 0 или 1, а 0 или 0b00001000, что является значением BIT3. Т.к. 0 сигнализирует о нажатии кнопки, мы можем опрашивать регистр P1IN в цикле, который продолжается пока (P1IN & BIT3) == BIT3, или, что равнозначно, пока (P1IN & BIT3) != 0.

Я написал свою версию программы pushy_G2211.c (листинг приведен в конце статьи – Прим. пер.). А вам рекомендую, попробовать написать программу самостоятельно, а потом сравнить с моей. Пара нововведений, относительно мигалки, это использование команды #define в заголовке, и заключение повторяющегося участка кода в функцию. Если вы не понимаете, что это такое, то изучите основы языка Си, по любой хорошей методичке или книге. Например, этой. По сути, #define позволяет мне заменить имя BIT0, на что-то более конкретное, в данном случае на red_LED. Это не меняет значение BIT0, его все-еще можно использовать в коде. Вы даже можете присвоить BIT0 два разных имени, например если у вас есть по светодиоду на P1.0 и на P2.0, нулевых выводах двух разных шин одного микроконтроллера. Функция delay(), так же делает код более читабельным, и демонстрирует мощь инкапсуляции. Т.к. функция delay(), чрезвычайно распространенная, я могу поместить ее в библиотеку, и вызывать во всех своих программах, избегая необходимости набирать один и тот же код много раз. Я рекомендую вам использовать эти и другие методы программирования как можно больше, что бы писать легкие для понимания и легко модифицируемые программы.

Данная программа, не идеальна, и ее логика не подойдет для любых ситуаций. Что произойдет, если вы нажмете кнопку в момент, когда светодиод горит? Т.к. ввод проверяется только в цикле while(), ничего не произойдет. Если у вас рефлексы ниндзя, и вы будете жать кнопку точно в моменты до, и после ее опроса, программа никогда не узнает, что кнопка была нажата. А что случится, если нажать и не отпускать кнопку? Решением этих проблем, будут — прерывания. Это тема следующего урока. Пока вы изучили самый примитивный способ использования кнопок.

Упражнение 1: Скопируйте программу в новый проект CCS и попробуйте загрузить в G2211. Пройдитесь по коду отладчиком. (Не забудьте уменьшить задержки в циклах опроса кнопки и мигания). Учтите, что бы отладчик обработал нажатие кнопки, она должна быть нажата в момент перехода на соответствующую строчку кода. Понаблюдайте за значением регистра P1IN, посмотрите, как изменяется его значение.

Упражнение 2: Мы не обсудили работу второй кнопки (RST) на LaunchPad. Попробуйте нажать ее, пока мигает красный светодиод. Что она делает? Пока что, LaunchPad сконфигурирован на использование этой кнопки единственным способом, это полезный инструмент, особенно если вам необходимо перезапустить вашу программу.

Примечание переводчика: Я добавил пару закомментированных строк в пример, для тех, у кого LaunchPad версии 1.5. Дело в том, что в новом LaunchPad не впаян подтягивающий резистор к выводу P1.3, так что без этих строк, кнопка просто не заработает. В этих строках мы разрешаем использование подтяжки в регистре порта REN, а затем указываем в OUT какой тип подтяжки, вверх или вниз, мы используем.

Если у вас IAR, просто создайте новый проект на Си, настройте в нем тип микроконтроллера и отладчика, замените содержимое main.c на пример из урока. Не забудьте заменить #include на ваш микроконтроллер, например на #include . Всё должно заработать.

Интерфейс начального загрузчика для MSP430 на основе LaunchPad, использующего протокол UART

Texas Instruments MSP430

В статье описывается реализация недорогого интерфейса начального загрузчика (BSL) для микроконтроллера MSP430 на основе LaunchPad, использующего протокол UART. Целью этой разработки является внедрение устройств MSP430 Value Line, имеющих менее двух модулей последовательного интерфейса, в качестве моста между программным инструментом начальной загрузки BSL Scripter и устройством MSP430, куда осуществляется загрузка. Дополнительные материалы по проекту и исходный код программы, относящиеся к данной статье, можно загрузить с сайта.

Введение

Начальный загрузчик MSP430

Начальный загрузчик (BSL) микроконтроллера MSP430 — это программа, которая встроена в устройства MSP430 для считывания и изменения содержимого памяти MSP430, и которую можно использовать для изменения встроенного программного обеспечения. Большинство устройств MSP430 имеют возможность доступа к UART BSL через интерфейс UART. Исключение составляют устройства MSP430 с интерфейсом USB, которые имеют встроенную программу USB BSL [1].

UART BSL

Программу UART BSL можно вызвать, подав специальную входную последовательность сигналов BSL на контакты RST и TEST (в случае устройств, в которых контакты интерфейса JTAG объединены с другими контактами) или на контакт TCK (в случае устройств, имеющих отдельные контакты JTAG). Входная последовательность сигналов BSL будет разной для устройств MSP430, в которых контакты JTAG объединены с контактами другого назначения, и устройств, имеющих специально выделенные контакты JTAG. Отличие входных последовательностей сигналов BSL для этих двух типов устройств отражены на Рисунках 1 и 2.

Рисунок 1. Входная последовательность сигналов BSL для устройств с
контактами JTAG, объединёнными с другими контактами.

Кадры данных протокола UART BSL принципиально различны в случае BSL на основе ПЗУ и BSL на основе flash-памяти. Программа BSL на основе ПЗУ доступна в устройствах 1xx, 2xx, и 4xx, а BSL на основе flash-памяти имеется в устройствах 5xx и 6xx. Подробнее о протоколе BSL обоих типов программного обеспечения BSL в [2].

Рисунок 2. Входная последовательность сигналов BSL для устройств
со специально выделенными контактами JTAG
.

Универсальный асинхронный приёмопередатчик (UART)

Универсальный асинхронный приёмопередатчик (UART) — это стандарт последовательной связи, который широко используется во встроенных системах. Поскольку данные передаются последовательно и асинхронно (без всякого тактового сигнала), и приёмная, и передающая стороны вынуждены использовать одинаковые настройки скорости передачи данных (обычно она определяется как скорость передачи в бодах), количества битов данных и использования бита чётности. Стандартный кадр UART показан на Рисунке 3.

Рисунок 3. Кадр UART.

По умолчанию линия связи UART находится в состоянии отсутствия передачи, имея логический уровень «ВЫСОКИЙ». Обычно сигналом СТАРТОВОГО бита является первый переход из состояния «ВЫСОКОГО» логического уровня в состояние «НИЗКОГО» логического уровня. После передачи СТАРТОВОГО бита передаются биты данных. В большинстве систем данные отправляются в формате с прямым порядком байтов (первым следует младший байт), а битов данных может быть 7 или 8. Перед СТОПОВЫМ битом может, при необходимости, отправляться бит чётности для проверки кадра. Наконец, СТОПОВЫЙ бит обозначает конец кадра UART, представляя собой переход из состояния «НИЗКОГО» логического уровня в состояние «ВЫСОКОГО» логического уровня.

Комплект разработчика MSP-EXP430G2 Launchpad

Комплект разработчика MSPEXP430G2, известный под названием «Launchpad» — это недорогой комплект разработчика устройств MSP430G2xxx Value Line. Комплект разработчика имеет встроенный эмулятор интерфейса USB, который также можно использовать в качестве интерфейса UART (COM-ПОРТА) со скоростью передачи данных 9600 бод.

Реализация

В статье рассматривается микроконтроллер MSP430G2231 на плате MSP-EXP430G2 Launchpad и микроконтроллер MSP430F5438A, версии E, имеющий ошибку SYS10 (время между импульсами на контактах TEST и TCK должно быть менее 15 мкс), в качестве устройства MSP430 в комплекте разработчика MSP-TS430PZ5x100, куда осуществляется загрузка. На Рисунке 4 показана испытательная установка, представляющая собой соединение плат Launchpad и MSP-TS430PZ5x100.

Рисунок 4. Испытательная установка для интерфейса UART BSL
на основе Launchpad
.

Аппаратная реализация

Подключение аппаратного обеспечения

На Рис. 5 показано типовое аппаратное соединение между ПК, на котором работает программа BSL Scripter, платой MSP- EXP430G2 Launchpad и устройством MSP430, куда осуществляется начальная загрузка; в данном случае это MSP430F5438A на плате MSP- TS430PZ5x100.

Рисунок 5. Типовое аппаратное подключение интерфейса BSL на основе Launchpad.

Назначение контактов

Эта реализация системы требует использования всех контактов порта 1 (P1) микроконтроллера MSP430G2231. Помимо шести контактов, показанных на Рисунке 5, в Launchpad есть два других контакта, которые нужны для реализации интерфейса BSL. Один контакт используется для определения типа устройства MSP430, куда осуществляется загрузка, указывая, является ли оно устройством, в котором контакты JTAG объединены с другими контактами, или же устройством со специально выделенными контактами JTAG. Другой контакт, который подключается к кнопочному выключателю на плате, используется в качестве входа для формирования входной последовательности BSL. Изначально программа BSL Scripter использовала контакты DTR и RTS для формирования входной последовательности BSL в устройстве MSP430, куда осуществляется загрузка. Но эти контакты не доступны в UART- соединении комплекта разработчика MSP-EXP430G2 Launchpad, поэтому необходимо использовать другой вход, чтобы заставить MSP430G2231 на плате Launchpad формировать входную последовательность BSL для устройства MSP430, в которое осуществляется загрузка. В Таблице 1 указано назначение контактов ввода/ вывода общего назначения (GPIO) MSP430G2231.

Создайте свое первое приложение для TI LaunchPad

В данной статье мы познакомимся с TI LaunchPad, который делает разработку приложений для микроконтроллеров MSP430 простой и быстрой.

Семейство микроконтроллеров MSP430 Texas Instruments занимает важное место в мере электроники: с одной стороны, отличаются ультранизким энергопотреблением, а с другой стороны, они предоставляют очень мощные возможности в плане переферийных устройств, размера памяти, скорости и простоты использования.

В данной статье мы познакомимся с TI LaunchPad, который делает разработку приложений для микроконтроллеров MSP430 простой и быстрой. LaunchPad – это недорогой инструмент прототипирования устройств на MSP430, который обеспечивает эмуляцию на плате для программирования и отладки. Существует много продвинутых версий LaunchPad, отличающихся различными периферийными устройствами, но мы будем использовать базовую версию под названием «оригинальный LaunchPad».

Аппаратная часть LaunchPad

LaunchPad представляет собой набор (приобрести можно здесь), который включает в себя следующее:

  • 1 x отладочная плата LaunchPad
  • 1 x микроконтроллер MSP430G2553IN20
  • 1 x микроконтроллер MSP430G2452IN20
  • 1 x кварц 32.768 кГц
  • 2 x 2.54 мм 1×10 разъем (мама)
  • 1 x кабель USB-A на Mini-USB
  • 2 x наклейка LaunchPad

На плате LaunchPad присутствуют секция эмуляции для программирования и отладки через USB, одна кнопка общего назначения, два светодиода общего назначения, одна кнопка сброса, два порта расширения и 20-пиновая панель для микроконтроллера.

Плата питается через mini-USB напряжением 5 В и преобразует его в 3,6 В с помощью LDO-регулятора. Чтобы работать, секция эмуляции и микроконтроллер нуждаются в напряжении с таким уровнем. Сеть 3,6 В помеченная как VCC, и проводники GND присутствуют на разъемах J1, J2 и J.

Секция эмуляции создает интерфейс между микроконтроллером и средой программирования. Она позволяет пользователю запрограммировать память устройства и пошагово отлаживать встроенный код, чтобы проверить выполнение программы и внутренние регистры. Секции эмуляции также включают в себя преобразователь USB в UART, который может быть сконфигурирован для взаимодействия микроконтроллера с компьютером через последовательный канал связи.

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

LaunchPad поставляется с двумя 16-битными микроконтроллерами: MSP430G2452 и MSP430G2553. Они оба с 20 выводами. Основные свойства этих микроконтроллеров перечислены ниже, и выделены различия между ними.

Сравниваемый параметр MSP430G2452IN20 MSP430G2553IN20
CPU MSP430 MSP430
Частота (МГц) 16 16
Энергонезависимая память (KB) 8 16
RAM (KB) 0.25 0.5
GPIO (входы/выходы общего назначения) 16 16
I2C 1 1
SPI 1 1
UART 1
АЦП ADC10 — 8 каналов ADC10 — 8 каналов
Компараторы (входы) 8 8
Таймеры — 16 бит 1 2
Минимальное напряжение питания 1.8 1.8
Максимальное напряжение питания 3.6 3.6
Потребление в активном режиме (мкА/МГц) 320 330
Потребление в режиме ожидания (режим LPM3) (мкА) 0.7 0.7
Время включения (мкс) 1.5 1.5
Дополнительные особенности Сторожевой таймер
Датчик температуры
Перезапуск по броску питания
Сторожевой таймер
Датчик температуры
Перезапуск по броску питания
Инфракрасный порт
Специальные входы/выходы Емкостные сенсорные входы/выходы Емкостные сенсорные входы/выходы

Оба микроконтроллера имеют встроенные программируемые тактовые генераторы 16 МГц. Кроме того, LaunchPad позволяет пользователю подключать внешний тактовый генератор, такой как часовой кварц 32,768 кГц или любой другой стандартный кварц до 16 МГц. SMD площадки и площадки с отверстиями дают пользователю возможность использовать кварцы в разных корпусах. Если для кварца необходимы дополнительные конденсаторы, на плате для этих целей зарезервированы площадки C21 и C22.

Еще одной интересной особенностью микроконтроллеров является встроенный датчик температуры. Это линейный датчик, который выдает 3.55 мВ/C°. Выход датчика подключен внутри к одному из входов АЦП, и пользователь может выбрать, будет ли этот вход считывать температурные данные с датчика.

Все выводы микроконтроллера выведены на разъемы J1 и J2, чтобы при прототипировании можно было бы легко использовать выводы устройства. Площадки J1 и J2 поставляются в разобранном виде, поэтому вы можете подключить разъемы мама или папа в зависимости от того, что вам необходимо.

Инструменты программирования

Существует несколько вариантов выбора интегрированной среды разработки (IDE), доступных для LaunchPad для написания кода, прошивки устройства и для отладки.

Energia

Energia – это инструмент редактирования кода с открытым исходным кодом, разрабатываемый сообществом для LaunchPad. Она поддерживается на Mac OS, Windows и Linux. Energia использует Wiring и Arduino фреймворк, и поэтому ее пользовательский интерфейс почти такой же, как у Arduino IDE. Energia является полностью бесплатной и поддерживает все платы LaunchPad.

Code Composer Studio (CCS)

Code Composer Studio (CCS) – это профессиональный инструмент разработки, созданный TI, который так же поддерживает все платы LaunchPad. Она может быть загружена и установлена на компьютер, или может использоваться облачная версия в веб-браузере. CCS поставляется с ограничением размера кода в 16 KB при свободном использовании. Поскольку MSP430 на оригинальном LaunchPad максимум с 16 KB, это не является проблемой.

CCS Cloud позволяет разрабатывать, компилировать, прошивать и отлаживать код, всё в веб-браузере. В облачной среде есть и другие полезные функции, такие как просмотр и импортирование примеров из ресурсного центра MSP430, интеграция с GitHub, связь с LaunchPad через последовательный монитор и т.д.

Загружаемая и полнофункциональная версия CCS также доступна. Она основана на базе Eclipse и поддерживает все процессорные устройства TI, в том числе и LaunchPad. Перед загрузкой требуется регистрация на сайте TI.

Сторонние IDE

Существует много других сторонних инструментов разработки для LaunchPad. Keil и IAR Embedded Workbench являются полными наборами из компилятора и отладчика. GCC – компилятор с открытым исходным кодом, поддерживающий TI LaunchPad. Temboo – онлайн платформа для разработки, которая также поддерживает LaunchPad.

Простое приложение для LaunchPad

После краткого введения в аппаратную часть LaunchPad и инструменты разработки, мы можем создать наше первое приложение с помощью периферийных устройств на плате и Energia IDE. Мы будем использовать светодиоды и кнопки, чтобы продемонстрировать, как настроить направления портов, как прочитать состояние входа и как установить состояние выхода.

Запустите Energia и создайте новый скетч, используя меню Файл (File) → Новый (New) . Появится новый файл скетча, содержащий пустые функции setup() и loop() . В функции setup() мы должны установить направления портов с помощью функции pinMode() . Выводы GREEN_LED и RED_LED должны быть выходами, а вывод PUSH2 для кнопки должен быть входом. Чтобы не использовать внешний подтягивающий резистор, необходимо включить внутренний подтягивающий резистор для вывода PUSH2 с помощью дополнительного параметра INPUT_PULLUP .

В основном цикле состояние входа кнопки будем читать с помощью функции digitalRead() . Мы проверяем состояние кнопки, используя оператор if . Когда кнопка не нажата, функция digitalRead() возвращает 1 , так как вывод PUSH2 подтянут внутренним резистором к высокому уровню. В этом состоянии зеленый светодиод мигает. Мигание осуществляется периодическим включением и выключением светодиода с помощью функции digitalWrite() с интервалом в 100 мс. Функция delay() помогает нам задать нужный интервал времени ожидания. Когда кнопка нажата, она притягивает вывод PUSH2 к корпусу, и функция digitalRead() возвращает 0 . Теперь зеленый светодиод выключается, а красный светодиод начинает мигать.

Полный скетч приведен ниже.

Когда скетч готов, просто нажмите кнопку Проверить (Verify) для запуска компиляции. Если ошибок нет, Energia выдаст сообщение » Done compiling «. В противном случае ошибки будут перечислены на вкладке сообщений. После успешного завершения компиляции вы можете прошить свое устройство, нажав кнопку Загрузить (Upload) . Убедитесь, что вы уже выбрали правильный последовательный порт, к которому подключен ваш LaunchPad, с помощью меню Инструменты (Tools) → Последовательный порт (Serial Port) и правильную модель LaunchPad, которую вы используете (например, LaunchPad w/ MSP430G2353 (16MHZ) ), с помощью меню Инструменты (Tools) → Плата (Board) . Код в действии вы можете увидеть на видео ниже.

Ссылки:

  • LaunchPad на сайте Texas Instruments
  • Документация на микроконтроллеры MSP430G2452 и MSP430G2553
  • IDE Energia
  • LaunchPad на в магазинах AliExpress и пр.

  • Все
  • Тематические

    Популярность контроллера Arduino не даёт покоя многим компаниям и поэтому различные Arduino-киллеры продолжают появляться. А чтобы попытаться занять популярную нишу хоббийной электроники, производители будут добавлять своим платам разные плюшки и максимально занижать цену на свои контроллеры.
    Для нас, как пользователей — это более чем выгодно; такая конкуренция среди производителей позволит получить разные микроконтроллеры и платы разработки по низкой цене и разным расширенным функционалом.
    Сегодня рассмотрим отладочную плату LaunchPad MSP-EXP430G2 от компании Texas Instruments, которая продвигает в массы микроконтроллеры серии MSP430.
    Плата контроллера LaunchPad MSP-EXP430G2 предлагается по совершенно смешной цене в $4.30 (и бесплатная доставка курьерской службой FedEx).
    Плата прибывает с симпатичной цёрно-бело-красной коробке,

    в которой находится куча интересного (все электронные компоненты запаяны в антистатические пакетики):

    * собственно LaunchPad MSP-EXP430G2 с микроконтроллером MSP430G2553
    * дополнительный микроконтроллер MSP430G2452
    * коротенький и удобный шнурок mini-USB
    * кварц на 32768Гц (для пайки)
    * два 10-контактных разъема (мама)
    * краткая инструкция
    * две наклейки «LaunchPad» (наверное, нужно клеить на готовые девайсы)

    Совершенно верно — мы получаем сразу два МК в корпусах DIP-20:
    MSP430G2553IN20 — MSP430G2452IN20 — Maple , для большего удобства Arduino-фанов, TI сделал форк Arduino IDE 1.0 специально для MSP430 и назвала его Energia .

    Среда выглядит вполне привычно:

    главное отличие, которое сразу бросается в глаза — это отказ от оригинального цвета Arduino IDE в пользу корпоративного красного Texas Instruments.

    Выбор типа используемого контроллера, совместимого с LaunchPad (только три — msp430g2231, msp430g2452 и msp430g2553)

    в качестве программатора — указан единственный rf2500.

    В работе с Energia пока не всё гладко и существуют проблемы (особенно под Linux-ом), а вот дистрибутив под ОС Windows вполне работоспособен.

    Все примеры от Arduino остались (правда не все настроены и работают), но пока из библиотек, под LaunchPad адаптировано всего три:
    * SPI,
    * Wire,
    * TimerSerial.

    Скетчи, так же, пишутся на Wiring .
    Так что, пользователям освоившим Processing /Wiring для Arduino, не составит труда написать скетч и для LaunchPad.
    В качестве компилятора (energiahardwaretoolsmsp430) используется msp430-gcc 4.6.3

    LaunchPad pin mapping

    Карту распределения пинов можно найти в в заголовочном файле:
    Energia/hardware/msp430/variants/launchpad/pins_energia.h:

    Т. о., чтобы установить высокий уровень на пине P1.0 (к нему подключен красный светодиод), можно написать digitalWrite(P1_0, HIGH). Так же, можно обращаться к пинам по соответствующим номерам:

    Идущий в комплекте пример стандартного Blink-а (зелёным светодиодом) выглядит так:

    Подключение LaunchPad

    Для 64-битной системы, соответственно, нужно скачать архив с драйвером и запустить DPInst64.exe

    После чего в системе появится новый COM-порт.

    Под ОС Linux (Ubuntu 11.04) определяется как:

    Вместо аппаратного преобразователя USB2UART (FT232 от FTDI на Arduino), на LaunchPad установлен чип TUSB, реализующий отладчик и USB-UART (ACM). И в линуксе возможно возникновение проблем.
    Кроме того — из предложенных МК — только MSP430G2553 имеет аппаратный UART, а в MSP430G2452 UART реализуется программно и при тех кварцах, что установлены на плате, не сможет достичь скорости выше, чем 9600 (не хватит точности таймингов).
    Зато, в MSP430G2553 отдельным каналом АЦП встроен температурный сенсор.

    Программируем LaunchPad

    Чуть изменим стандартный Blink, добавив мигание вторым светодиодом и запись текущего состояния в последовательный порт:

    В случае использования MSP430G2553, переключаем джамперы на аппаратный UART:

    Укажем последовательный порт и тип микроконтроллера, а затем нажимаем кнопки компиляции и прошивки (Update).

    Всё прошло успешно. Запускаем монитор последовательного порта из Energia или стороннюю терминальную программу (например, ttermpro) и любуемся на строчки L и H.

    Плюсы и минусы LaunchPad

    Кажется, что по сравнению с Arduino, эта плата подкупает только одним — своей ценой, но всё же это не совсем так.
    Вот субъективный список плюсов и минусов LaunchPad:

    минусы:
    — отсутствие крепёжных отверстий
    — проблемы подключения под ОС Linux
    — более слабый функционал МК по сравнению с ATMega AVR
    — скорость последовательного порта ограничена 9600 бод О_о

    плюсы:
    + цена
    + комплектация (коробочка, шнурок и второй микроконтроллер)
    + два светодиода (красный и зелёный)
    + пользовательская кнопка
    + низкое энергопотребление МК

    Заключение

    При такой ценовой политике и активной поддержке от Texas Instruments, думается, эта плата всё же займёт свою нишу, где не требуется большого функционала и желательно минимальное энергопотребление. Различные датчики, простые автоматы и лампы настроения и тому подобное.
    А какое применение/плюсы и минусы у этой платы/МК нашли вы?

    Быстрый старт с микроконтроллерами MSP430.

    Немного отвлечемся от STM32 и сегодня займемся устройствами от Texas Instruments – микроконтроллерами MSP430. И эта статья будет посвящена так называемому быстрому старту с этими девайсами. Все опыты и эксперименты будут ставиться на недорогой отладочной платке – MSP430 LaunchPad.

    Итак, открываем коробку с платой и достаем все, что нам понадобится. На данном этапе нам нужна лишь сама плата и USB-кабель для подключения ее к компьютеру. Смело втыкаем шнур в USB-разъем и ждем пока заботливый Windows установит нам необходимые драйвера. Но тут есть одна неприятность – драйвер MSP430 Application UART надо найти и установить самим. Не вопрос!

    Идем на официальный сайт Texas Instruments и качаем IDE (я остановил свой выбор на IAR Embedded Workbench for MSP430). Архив скачан, распаковываем и идем в диспетчер устройств. Там находим наш девайс и указываем вручную пути к файлам драйвера, которые находятся в скачанном архиве в папке Drivers. В случае успеха отладочная плата будет определяться в диспетчере устройств следующим образом:

    Первый этап позади, теперь необходимо установить IAR Embedded Workbench. Запускаем IAR и создаем новый проект. Для этого идем в Project->Create New Project. В появившемся окне выбираем следующее:

    В результате получаем пустой проект, в который уже включен файл main.c. Теперь мы можем переходить к написанию собственного кода. Давайте по традиции начнем с портов ввода-вывода. На отладочной плате есть пользовательская кнопка и парочка светодиодов – а точнее два, красный и зеленый. Давайте так – если кнопка нажата горит зеленый, иначе красный Но перед тем как писать программу, посмотрим, какие же регистры отвечают в MSP430 за порты ввода-вывода. Итак, начинаем!

    Регистр PxDIR.

    Каждый бит этого регистра отвечает за режим работы соответствующего вывода микроконтроллера. Если в регистре бит равен 0, то ножка контроллера является входом, если бит равен 1 – выходом. Пусть, например, второй бит регистра P1DIR равен 1. Что это значит? А то, что вывод P1.1 работает в режиме выхода.

    Регистр PxREN.

    А этот регистр отвечает за включение/отключение подтяжки вверх/вниз. Тут больше и сказать то нечего.

    Регистр PxOUT.

    А вот здесь поинтереснее Если вывод у нас работает в режиме выхода, то биты этого регистра отвечают за уровень сигнала на ножке контроллера. Пусть у нас P1.3 работает как выход. Если мы выставим четвертый бит регистра P1OUT в 1, то на выводе P1.3 появится сигнал высокого уровня (логическая единица), если 4-ый бит P1OUT равен 0, то и сигнал на ножке контроллера низкого уровня.

    Другое дело, если пин работает как вход. В этом случае биты этого регистра отвечают за подтяжку вывода. Вот небольшой примерчик, чтобы сразу все стало понятно. Пусть P1.0 – вход. Если нулевой бит P1OUT = 1, то подтяжка вверх, если нулевой бит равен 0, подтяжка вниз. Все очень логично!

    Регистр PxIN.

    Тут все просто – биты этого регистра соответствуют уровню сигнала на соответствующих пинах микроконтроллера. На входе – 1, в регистре – 1, на входе 0, и в регистре – 0. Каждому выводу, например, порта 1 (P1.0, P1.1…) соответствует свой бит регистра P1IN.

    Регистры PxSEL и PxSEL2 отвечают за альтернативные функции выводов при использовании какой-либо периферии микроконтроллера.

    Кроме всего вышеперечисленного, каждый пин портов 1 и 2 может работать в режиме внешнего прерывания. То есть при изменении сигнала на каком-либо выводе программа ускачет на обработку прерывания. Но мы пока не будем на этом останавливаться, а перейдем уже наконец-то к написанию кода программы. Осталось лишь разобраться, что и как подключено на нашей отладочной плате:

    Видим, что кнопка висит на ножке P1.3, а светодиоды на P1.0 и P1.6.

    Осталось совсем немного – а именно настроить наш проект и отладчик. Идем в настройки проекта и выбираем наш контроллер:

    В этом же окне идем во вкладку Debugger и выбираем FET Debugger вместо Simulator. Теперь мы готовы прошивать контроллер!

    В итоге при нажатии на кнопку мы должны увидеть горящий зеленый светодиод, а если кнопка не нажата, то горит красный. На этом, собственно, и все, с нашим первый проектом для MSP430 мы разобрались!

    Логический анализатор на msp430 launchpad

    Если Вы хотите разобраться как работает MSP430Gxxx,
    и у Вас есть время и желание, то это нужно деалать.
    Если времени нет, то нужно выбрать другой путь.
    На данный момент, есть оболочка програмир. Energia,
    которая позволяет программировать быстро, используя
    готовый код. Запрограммировать LCD display — 10 минут .
    Сделать многоканальный вольтметр — еще 10 минут .
    Вывести данные и сохранить на компьютере — еще 10 .
    Готовый вольтметр, который уже работает — здесь . .

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

    Для разработки таких вещей требуется:

    -микроконтроллер,
    -программатор,
    -компилятор,
    -эмулятор микроконтроллера,
    -знание языка Си или Ассемблера.

    Микроконтроллер и знание языка программирования — не проблема. Но программатор, эмулятор и компилятор – это за деньги и не малые. Можно, конечно, скачать промышленный компилятор и немного его «подлечить», а программатор сделать самому. Но тогда очень тяжело разбираться с проблемами. То ли программа написана с ошибкой, то ли программатор «глючит», то ли компилятор с эмулятором не «вылечен» до конца. А о ситуации, когда все по отдельности работает, а вместе они не «дружат», так и вообще говорить не хочется.

    Таким образом, если Вы хотите попробовать программировать микроконтроллеры, то вам понадобится комплект оборудования которое на 100% совместимое и которое на 100% нормально работает.

    Такой комплект есть. Он выпускается фирмой Texas Instruments под названием « MSP430 Launchpad development kit ». Этот комплект продается, исключительно, в учебных целях для популяризации микроконтроллеров TI ( T exas I nstruments).

    Упаковка и содержимое “ MSP430 Launchpad development kit ” на фотографии. Здесь есть ВСЕ (. ) для того, что бы начать программировать, плюс кварцевый резонатор и два микроконтроллера (MSP430G2553 и MSP430G2452). Программу, «Code Composer Studio V.5», можно скачать c http://processors.wiki.ti.com/index.php/Download_CCS. От Вас потребуется, только, начальные знания языка Си, и компьютер с USB портом.

    Ограничения:
    — Для бесплатной версии ограничен размер скомпилированного кода до 16 кб.
    — Вы не можете использовать этот комплект в коммерческих устройствах.

    Преимущества:
    — Цена комплекта (включая 2 микроконтроллера) – вне конкуренции.
    — Все начинает работать прямо из коробки.
    — Напряжение питания – от 2,2 до 3,6 Вольт, с низким энергопотреблением.

    Недостаток:
    — Сложное внутреннее устройство микроконтроллера.

    Недостаток этот, весьма условный. Если Вы только начинаете изучать микроконтроллеры, то для Вас это не имеет НИКАКОГО значения.

    Все, что Вам необходимо или может понадобиться, находится на странице «Getting Started with the MSP430 LaunchPad Workshop». Видеоролики (en) объясняют как все работает. Видео о «Code Composer Studio V.5» — ti.com/tool/ccstudio Сборник рускоязычных материалов в архиве for_MSP.rar ( narod.ru)

    Программируем и экспериментируем с “MSP430 Launchpad development kit”.

    Что бы «слить» первую программу в микроконтроллер, сделаем следующее.
    1. Заменим предварительно запрограммированный микроконтроллер MSP430G2553 на «чистый» MSP430G2452 и подключим «Launchpad» к компьютеру, через USB кабель.
    2.1 Запускаем программу «Code Composer Studio V.5». Дальше, все в точности повторяет «видео урок 2» начиная с 06:47 мин.
    2.2 CCS спросит о директории – создадим новую.
    2.3 CCS даст окно с настройкой проекта. Необходимо вписать название проекта (любое), выбрать тип микроконтроллера (MSP430G2452) и указать, что это пустой проект. Остальное «по умолчанию». Жмем «Finish»
    2.4 Закрываем «TI Resource Explorer», дважды щелкаем на main.c в правой колонке «Project Explorer» и можно начинать программировать.
    3.1 Не думая о программировании, заменяем текст программы main.c на текст ниже (написано на Си).
    3.2 Компилируем (жмем кнопку с «жуком») и программа «сливается» в микроконтроллер.
    3.3 Жмем кнопку «Resume» или F8 и наблюдаем за миганием светодиода.

    #include
    int main(void) <
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= 0x01;
    for(;;) <
    volatile unsigned int i;
    P1OUT ^= 0x01;
    i = 10000;
    do i—;
    while(i != 0); > >