Ик пульт на msp430 lanchpad

Новогодняя лампа-ночник из RGB-светодиодов на плате LaunchPad MSP-EXP430, управляемая ИК-пультом

Давно хотелось сделать что-нибудь для дома на RGB-светодиодах. И решил к празднику сделать «новогодний ночник» под елку, как дополнение к приевшимся гирляндам, тем более, что все необходимое имелось в наличии.

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

В качестве контроллера выбор пал на плату контроллера LaunchPad MSP-EXP430G2. Во-первых цена — плату можно заказать по цене 4.30$ (и бесплатная доставка курьерской службой FedEx) на сайте компании Texas Instruments. Вот ссылка на страницу заказа — купить.

Во-вторых — среда программирования Energia, очень похожая на IDE Arduino. Для облегчения программирования, также как и в Arduino IDE, среда программирование поставляется с библиотеками, некоторые из которых правда неработоспособны, с чем мне и пришлось столкнуться при написании программы. Тем не менее проект развивается, для поддержки пользователей есть отдельная ветка на форуме TI, посвященная библиотекам для Energia.

Для управления ночником решил использовать ИК-пульт.

Полный список деталей:

  1. Плата контроллера LaunchPad MSP-EXP430G2 — 1 шт.
  2. RGB — светодиод — 6 шт.
  3. Резистор 220 Ом — 6 шт
  4. Микросхема 74HC595 — 3 шт

Для схемы ИК приемника

  1. ИК-приемник TSOP31238 — 1 шт
  2. Резистор 100 Ом — 1 шт
  3. Конденсатор 10 мкФ 25В — 2 шт.
  4. Конденсатор 0.1 мкФ — 2 шт.

Для платы LaunchPad MSP-EXP430G2 необходимо питание 1.8 — 3.6 В, в наличии имелись блоки питания на 5В, поэтому еще детали для стабилизатора питания на 3.3 В

  1. Микросхема APU1206H-33
  2. Конденсатор 10 мкФ 25В — 2 шт.

А также плафон для лампы, клей, новогодние украшения.

Если кто будет использовать библиотеку IRremote, учтите, что не работает функция отправки ir-кода, мне был нужен только прием. Схема подключения ИК-приемника представлена на рисунке. Выход данных TSOP подсоединен ко входу P1_3 платы LaunchPad.

Я делал 2 устройства, для одного использовал пульт для контроллера RGB-лент ,

Для другого — пульт Marmitek X10 (рис)

Сначала определимся с назначением клавиш пультов для выбора режимов ночника. Для пульта контроллера RGB-лент достаточно понятно:

(R — R, G — G, B — B, RG — RG, GB — GB, RB — RB, W — WHITE, off — BLACK, крайние правые 4 (черного цвета) — режимы мигания )

для пульта Marmitek:

(1 — R, 2 — G, 3 — B, 4 — RG, 5 — GB, 6 — RB, 0 — WHITE, 6,7,8 — режимы мигания )

Напишем скетч для «отлова» кодов нажимаемых клавиш пультов (коды выводим в монитор последовательного порта)

С кодами клавиш определились, заносим их в массив

Теперь программа управления свечением RGB-светодиодов.

Экономить выводы LaunchPad для управления 6 RGB-светодиодами будем использовать микросхемы 74HC595 (преобразователь последовательного интерфейса в параллельный), при этом мы можем обойтись 3 выводами контроллера. Используем библиотеку SPI.

Выводы соединяем следующим образом

LaunchPad 74HC595
P2_0 — RCK 12
P1_7 — MOSI 14
P1_5 — SCK 11

Т.к. все сделано на макетной плате и соединения проводами, используются выводы Q1-Q6 микросхемы 74HC595.

Создадим в программе двумерный массив, с данными для разных режимов (16 — с запасом, может пригодиться под какой-нибудь пульт).

Индекс массива — программа свечения, нечетные байты одномерных массивов — последовательные данные(цвет) отправляемые SPI, четные — длительность в сек. свечения. По прерыванию получаем код с пульта, ищем наличие кода в массиве IR_CODES (процедура ir_code_control()), при наличии выставляем значения переменных

offset1 — номер режима,

offset2=1, offset3=1 — индекс первых фрагменты последовательностей.

Каждую секунду в цикле loop() вызывается программа process_step(), которая отправляет данные(цвет) по SPI данные в микросхемы 74HC595.

Уроки 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 . Всё должно заработать.

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

    Популярность контроллера 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, думается, эта плата всё же займёт свою нишу, где не требуется большого функционала и желательно минимальное энергопотребление. Различные датчики, простые автоматы и лампы настроения и тому подобное.
    А какое применение/плюсы и минусы у этой платы/МК нашли вы?

    MSP-EXP430G2, Отладочный комплект на базе МК MSP430G2xx (LaunchPad)

    Описание

    MSP-EXP430G2 – отладочное средство для программирования и отладки, в которое входит все необходимое для начала разработки – сокет для микросхем в 14/20-выводном DIP-корпусе и интегрированный отладчик/программатор, позволяющий работать с МК через интерфейс Spy Bi-Wire (2-wire JTAG).
    В комплект входит 2 запрограммированных МК MSP430G2553IN20 и MSP430G2452IN20. Flash-память микроконтроллера может быть запрограммирована в течении нескольких секунд, при этом не требуется подключения внешнего питания.

    Отличительные особенности:
    • 2 микроконтроллера в комплекте:
    — MSP430G2553IN20,
    — MSP430G2452IN20;
    • интегрированный на плату эмулятор/программатор;
    • пользовательская кнопка;
    • кнопка сброса;
    • пользовательские светодиоды;
    • IDE разработчика IAR Kickstart и Code Composer Studio Ver 4.

    MSP-EXP430G2 позволяет новичкам и опытным разработчикам осуществлять быстрое создание макетов, отладку и программирование измерительных, охранных, промышленных систем и других чувствительных к затратам приложений.
    Для преодоления недостатков 8-разрядных микроконтроллеров компания Texas Instruments Incorporated (TI) стремится к объединению в своих микросхемах производительности 16-разрядного микроконтроллера, сверхмалого энергопотребления и сверхнизкой стоимости.
    Именно для этого компания TI выпускает новый комплект разработчика MSP-EXP430G2 (LaunchPad) на базе микроконтроллеров MSP430™ Value Line. При недорогой стоимости, новый комплект включает в себя всё необходимое аппаратное и программное обеспечение для того, чтобы легко запускать проекты на базе микроконтроллеров MSP430G2xx Value Line компании TI.
    Данные микроконтроллеры обеспечивают 10-кратный рост производительности и 10-кратное увеличение времени автономной работы по сравнению с 8-разрядными микроконтроллерами. Поскольку все микроконтроллеры MSP430 совместимы по программным кодам, то разработанные с применением комплекта MSP-EXP430G2 (LaunchPad) решения могут быть органично перенесены на любые другие микроконтроллеры MSP430, обеспечивая дополнительную масштабируемость.

    Основные особенности и преимущества комплекта разработчика MSP-EXP430G2
    • Разъем DIP для отладки и программирования поддерживает устройства, имеющие до 20 выводов, и позволяет осуществлять быстрое макетирование с использованием микроконтроллеров MSP430 Value Line; разработчики могут оперативно менять микроконтроллеры один за другим для оценки, программирования или отладки устройств.
    • Запрограммированные микроконтроллеры можно легко извлечь и установить на заказные печатные платы или макетные платы.
    • Разработчики могут пользоваться кнопками, светодиодными индикаторами и выводами для подключения внешних компонентов, позволяющими комплекту LaunchPad функционировать в качестве автономной системы.
    • Встроенный эмулятор с питанием через USB позволяет программировать флэш-память, отлаживать микропрограммное обеспечение и поддерживать последовательный коммуникационный интерфейс, делая ненужным внешний эмулятор.
    • Комплект MSP-EXP430G2 (LaunchPad) совместим с любым микроконтроллером MSP430 Value Line, существующими отладочными платами eZ430 и устройствами MSP430, способными поддерживать интерфейс Spy-Bi-Wire.
    • Бесплатно предоставляются компиляторы и отладчики без ограничения функциональности, в том числе Code Composer Studio и IAR Embedded Workbench, поддерживающие комплексную среду разработки программного обеспечения.
    • Кварцевый резонатор 32 кГц повышает точность встроенного в микроконтроллеры MSP430 генератора частоты с цифровым управлением, обеспечивая необходимую для различных периферийных устройств и таймеров точность режима реального времени.
    • В комплект включены два устройства MSP430 Value Line; одно из них предварительно запрограммировано с использованием демонстрационного микропрограммного обеспечения, чтобы продемонстрировать использование встроенных периферийных устройств, в том числе 10-разрядного АЦП, компараторов и внутреннего датчика температуры.
    • Дизайн с открытым исходным кодом позволяет разработчикам создавать собственные аппаратные средства на базе комплекта MSP-EXP430G2 (LaunchPad).

    Комплектация: отладочная плата MSP-EXP430G2, 2 микроконтроллера (1 установлен на плату), кабель USB, 2 PBS гнезда 1х10, кварцевый резонатор.

    Создайте свое первое приложение для 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 и пр.

    Интерфейс начального загрузчика для 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.