Создайте свое первое приложение для 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 мм 1x10 разъем (мама)
- 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 | 0 | 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
.
void setup()
{
// инициализация выводов, подключенных к светодиодам на плате, как выходы:
pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
// инициализация вывода, подключенного к кнопке на плате, как вход:
pinMode(PUSH2, INPUT_PULLUP);
}
В основном цикле состояние входа кнопки будем читать с помощью функции digitalRead()
. Мы проверяем состояние кнопки, используя оператор if
. Когда кнопка не нажата, функция digitalRead()
возвращает 1
, так как вывод PUSH2
подтянут внутренним резистором к высокому уровню. В этом состоянии зеленый светодиод мигает. Мигание осуществляется периодическим включением и выключением светодиода с помощью функции digitalWrite()
с интервалом в 100 мс. Функция delay()
помогает нам задать нужный интервал времени ожидания. Когда кнопка нажата, она притягивает вывод PUSH2
к корпусу, и функция digitalRead()
возвращает 0
. Теперь зеленый светодиод выключается, а красный светодиод начинает мигать.
void loop()
{
// проверяем, нажата ли кнопка.
if (digitalRead(PUSH2))
{
// мигаем зеленым светодиодом на выводе GREEN_LED:
digitalWrite(RED_LED, LOW);
digitalWrite(GREEN_LED, HIGH);
delay(100);
digitalWrite(GREEN_LED, LOW);
delay(100);
}
else
{
// мигаем красным светодиодом на выводе RED_LED:
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, HIGH);
delay(100);
digitalWrite(RED_LED, LOW);
delay(100);
}
}
Полный скетч приведен ниже.
Когда скетч готов, просто нажмите кнопку Проверить (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 и пр.