LaunchPad MSP-EXP430G2 от Texas Instruments — альтернатива Arduino?



Популярность контроллера 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 — <=16 MHz, 16kB flash, 512b SRAM, 16 GPIO, 2 таймера 16-bit, UART, SPI, I2C, 8 каналов ADC 10-bit MSP430G2452IN20 — <=16 MHz, 8kB flash, 256b SRAM, 16 GPIO, 1 таймер 16-bit, SPI, I2C, 8 каналов ADC 10-bit, (софтварный UART)
Напряжение питания МК: 1.8 — 3.6 V

Сравнение LaunchPad и Arduino

Внешне, плата отдалённо напоминает Arduino, но, ничуть с ней не совместима.

По размеру, она чуть меньше Arduino, но на LaunchPad вообще нет крепёжных отверстий, зато есть четыре резиновых кружочка на тыльной стороне платы, которые позволяют плате вполне уверенно стоять на рабочем столе.
Для подключения с ПК, на LaunchPad стоит разъём mini-USB (вместо полноразмерного USB-разъёма типа B, как на Arduino).
Вместо разъёмов типа мама, как на Arduino, на LaunchPad (rev. 1.5) запаяны стандартные пины.
На LaunchPad есть три светодиода, один — показывает наличие питания, а два светодиода разных цветов доступны пользователю:
LED1 — красный подключен к пину 2 (P1.0),
LED2 — зеленый подключен к пину 14 (P1.6).
При желании, светодиоды можно отключить, сняв соответствующие джамперы.
Так же, на LaunchPad есть две кнопки — кнопка сброса S1 и пользовательская кнопка S2, которая подключена к пину 5 (P1.3).


Сравним TI LaunchPad и Arduino в виде таблички:

характеристика	TI LaunchPad 			Arduino Uno
МК 		MSP430G2553 (16-bit RISC) 	ATMega 328 (8-bit AVR)
Частота 	16 MHz 				16 MHz
Flash 		16 kB 				32 kB
RAM 		512 b 				2 kB
Цифровые I/O 	8 				14
Аналоговые I/O 	8 				6
Цена платы 	$4.30 				~$30

Микроконтроллеры от TI, в плане периферии более куцые, по сравнению с МК AVR используемыми Arduino, но, по энергосбережению MSP430 являются одними из лидеров среди МК, что может быть важным фактором при использовании именно данных МК для мобильных датчиков и тому подобных автономных девайсов (работающих, например, от солнечных батарей или химических источников).
Так, в спящем режиме с сохранением памяти (Off Mode (RAM Retention)), MSP430G2553 потребляет около 0.1 микроампера. В режиме готовности (Standby Mode) 0.5 микроампер. А в рабочем режиме (Active Mode) 230 микроампер, при работе на частоте 1 МГц и питанием 2.2 В.

Среда программирования LaunchPad — Energia

В качестве IDE, для разработки прошивок для своих контроллеров, TI предлагает Code Composer Studio (основана на Eclipse) и IAR Embedded Workbench KickStart (имеются бесплатные версии для загрузки).
Но, как и 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.
В качестве компилятора (energia\hardware\tools\msp430\) используется msp430-gcc 4.6.3

LaunchPad pin mapping

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

static const uint8_t A0 = 0;
static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;
static const uint8_t A6 = 6;
static const uint8_t A7 = 7;
static const uint8_t A10 = 10; // special. This is the internal temp sensor

//                      +-\/-+
//               VCC   1|    |20  GND
//         (A0)  P1.0  2|    |19  XIN
//         (A1)  P1.1  3|    |18  XOUT
//         (A2)  P1.2  4|    |17  TEST
//         (A3)  P1.3  5|    |16  RST#
//         (A4)  P1.4  6|    |15  P1.7  (A7) (SCL) (MISO) depends on chip
//         (A5)  P1.5  7|    |14  P1.6  (A6) (SDA) (MOSI)
//               P2.0  8|    |13  P2.5
//               P2.1  9|    |12  P2.4
//               P2.2 10|    |11  P2.3
//                      +----+
//

// Pin names based on the silkscreen
//
static const uint8_t P1_0 = 2;
static const uint8_t P1_1 = 3;
static const uint8_t P1_2 = 4;
static const uint8_t P1_3 = 5;
static const uint8_t P1_4 = 6;
static const uint8_t P1_5 = 7;
static const uint8_t P2_0 = 8;
static const uint8_t P2_1 = 9;
static const uint8_t P2_2 = 10;
static const uint8_t P2_3 = 11;
static const uint8_t P2_4 = 12;
static const uint8_t P2_5 = 13;
static const uint8_t P1_6 = 14;
static const uint8_t P1_7 = 15;

static const uint8_t RED_LED = 2;
static const uint8_t GREEN_LED = 14;
static const uint8_t PUSH2 = 5;
static const uint8_t TEMPSENSOR = 10; // depends on chip

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

P1_0	RED_LED		2
P1_1			3
P1_2			4
P1_3	PUSH2		5
P1_4			6
P1_5			7
P2_0			8
P2_1			9
P2_2	TEMPSENSOR	10
P2_3			11
P2_4			12
P2_5			13
P1_6	GREEN_LED	14
P1_5			15

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

void setup() {
  // initialize the digital pin as an output.
  // Pin 14 has an LED connected on most Arduino boards:
  pinMode(14, OUTPUT);
}

void loop() {
  digitalWrite(14, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(14, LOW);    // set the LED off
  delay(1000);              // wait for a second
}
Подключение LaunchPad

Пробуем подключить плату к ПК. Вот что показывает ОС Windows 7:

В energia\drivers\ уже есть директория EZ430-UART, в которой нужно запустить DPinst.exe

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

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

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

[  488.944029] usb 4-4: new full speed USB device using ohci_hcd and address 62
[  489.286947] cdc_acm 4-4:1.0: This device cannot do calls on its own. It is not a modem.
[  489.286962] cdc_acm 4-4:1.0: No union descriptor, testing for castrated device
[  489.287075] cdc_acm 4-4:1.0: ttyACM0: USB ACM device
[  489.292418] usbcore: registered new interface driver cdc_acm
[  489.292428] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
[  499.365054] generic-usb 0003:0451:F432.0001: usb_submit_urb(ctrl) failed
[  499.365075] generic-usb 0003:0451:F432.0001: timeout initializing reports
[  499.365572] generic-usb 0003:0451:F432.0001: hiddev0,hidraw0: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF] on usb-0000:00:06.0-4/input1
[  499.365646] usbcore: registered new interface driver usbhid
[  499.365654] usbhid: USB HID core driver

lsusb показывает:

Bus 004 Device 062: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool

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

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

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

void setup() {
  // P1_0 - red LED
  // P1_6 - green LED
  pinMode(P1_0, OUTPUT);
  pinMode(P1_6, OUTPUT);

  Serial.begin(9600);
}

void loop() {
  digitalWrite(P1_0, HIGH);   // set the LED on
  digitalWrite(P1_6, LOW);    // set the LED off
  Serial.println('H');
  delay(1000);              // wait for a second
  digitalWrite(P1_6, HIGH);   // set the LED on
  digitalWrite(P1_0, LOW);    // set the LED off
  Serial.println('L');
  delay(1000);              // wait for a second
}

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

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

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

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

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

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

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

Заключение

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

далее: Попытки запуска rosserial на LaunchPad MSP-EXP430G2
Stellaris Lm4F120 Launchpad — отладочная плата на ARM Cortex M4 от Texas Instruments

Ссылки
сайт LaunchPad MSP-EXP430G2
Texas Instruments LaunchPad MSP-EXP430G2 Wiki
Обзор LaunchPad на Хабре
Заказать LaunchPad
Загрузить Energia (версии для Windows, Linux, Mac OS X) ( http://energia.nu )
Energia Wiki
форум 43oh.com
http://www.msp430launchpad.com/2011/06/simple-launchpad-dac.html


0 комментариев на «“LaunchPad MSP-EXP430G2 от Texas Instruments — альтернатива Arduino?”»

  1. поигрался я с Энергией и ланчпадом. не впечатлило абсолютно. все описанные в статье минусы для меня критичны. аппаратный усарт есть только на одной микрухе, с линуксом проблемы, этот усарт просто так не заработал. камешек сильно слабже атмеги.
    насчёт цены: китайская ардуина стоит ~15 баксов и ими завален ebay и китайские магазинчики, а ланчпад за 4 бакса это только техасцы.
    и если взять во внимание какое комюнити стоит за ардуиной, сколько для нее есть шылдов и библиотек, то по моему становится очевидно что ланчпад с энергией и близко не конкурент ардуине. для каких мелких штук, возможно. но не более.

    • абсолютно согласен! конечно 4 бакса — сущая ерунда, но вот мыслей куда и как использовать LaunchPad нету 🙂

    • а вот новые ланчпады на арме выглядят очень вкусно. только предполагаемая дата отправки у меня стоит — конец ноября 🙁

    • А мне его уже выслали 🙂 Даже трек код послали…

    • Это я не обещаю… Мне ещё за ним надо будет к предкам ехать… Я моментально не живу дома 🙂

    • если взять тестер, то окажется, что они соединены между собой, так что — без разницы 🙂

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение