Зеркало сайта: vivacious-stockings-frog.cyclic.app

MSP-EXP430G2 Launchpad: быстрый старт в Linux

разделы: MSP430, дата: 17 августа 2017г.

Я все-таки не удержался, и приобрел MSP430 LaunchPad. Это может показаться довольно странным решением, учитывая, что для прошивки чипов я активно использовал BSL, и вроде как LaunchPad был не очень-то необходим.

Кроме того, LaunchPad уже лет пять стоит в несколько раз больше чем 4.3USD да и цена за доставку может неприятно удивить.

Ok, мои аргументы:

  • SBW(spy-bi-wire). На плате распаян программатор MSP430UIF использующий протокол SBW. В первую очередь, я брал LaunchPad ради него. Прошивка через SBW - поддерживается всеми чипами серии MSP430x2xxx, чего не скажешь о BSL.
  • Работать с программатором MSP430UIF можно из Linux(ну наконец-то!).
  • Через SBW можно, не только прошивать, но и отлаживать прошивку. Как можно было убедиться, в Proteus почти ничего не работает, здесь же можно разобраться в работе того или иного алгоритма на конкретном чипе, а не на абстрактной симуляции. Да, и естественно, что отладка работает в том числе и в Linux.

Несмотря на то, что далее речь пойдет преимущественно о работе в среде Linux, к Windows все описанное тоже будет применимо, при условии использования Energia в версии для Windows и чего-то вроде CYGWIN. Для программирования MSP430 в Windows имеются следующие IDE: 1) Code Composer Studio aka CCStudio; 2) IAR Workbench for MSP430. На первый я даже смотреть не стал, т.к. это Eclipse который все ненавидят, а второй отказался работать с LaunchPad'ом. Нет там поддержки MSP430UIF оказывается.

    Так же в двух словах хочется пробежаться по преимуществам платформы MSP430 перед AVR:
  • Единая карта регистров. Не нужно каждый раз лезть в datasheet переписывая программу c ATtiny13 на ATtiny45 к примеру. Адреса и наименования для регистров всех моделей одной линейки одинаковы.
  • Цена. Обычно в розницу "младший" MSP430F2001, в корпусе DIP-14, стоит раза в два дешевле ATtiny13.
  • 3.3-вольтовая логика. Разрабатываемую схему легко можно будет адаптировать для stm32 при необходимости, если схема "разрастётся".
  • Простота. Для написания программы под MSP430 не требуется SPL, написанный на Си алгоритм легко перенести как на AVR, так и на STM8/STM32.
  • 16-битность. Арифметические операции с двухбайтовыми целыми числами выполняются одной инструкцией, что экономит место на flash-памяти и делает алгоритм быстрее.
  • Отсутствие фьюзов.
    Что касается самого LaunchPad, здесь нужно отметить:
  • Т.к. на плате распаян программатор MSP430UIF, то для прошивки чипам не нужен загрузчик Arduino. Можно купить чип в магазине, вставить его в панельку, запустить Energia(версия Arduino для MSP430) и сразу начать программировать. Это как если бы USBASP был распаян на плате Arduino.
  • На плате два светодиода: зеленый и красный, вместо одного красного в Arduino.
  • Светодиоды можно отключить от микроконтроллера сняв расположенные рядом джампики.
  • Кроме кнопки RESET, имеется еще одна кнопка на P1.3.
  • На плате имеется датчик температуры.
  • Кроме программатора, на плате распаян чип USB-TTL конвертера.
  • Часть программатора соединяется с частью чипа через джампики. Их можно вообще снять, и подключить шлейф для прошивки или отладки микроконтроллера распаяного на другой плате. Вообще же, это называется eZ430 разъем.
  • На оборотной стороне платы имеются резиночки, предотвращающие соприкосновение контактов платы с поверхностью стола.

Часто можно встретить комментарии, что MSP430 чипы бедны на периферию. Мощные чипы конечно у TI конечно же есть, но здесь в цене начинает сильно выигрывать продукция фирмы STM. Однако STM не делает чипы в DIP корпусе, и STM8 не имеет поддержки в Linux, поэтому "младшие" MPS430 для замены ATtiny13/ATtiny2313 мне кажутся наиболее интересными. Кроме того они более "прокачены" чем ATtiny. Например MSP430F2002 имеет на борту аппаратный SPI и I2C, а MSP430F2003 имеет 16-битный сигма-дельта АЦП(!). Такого вообще нет ни у AVR ни у STM.

Ок, пора за дело.

Содержание:

  1. Energia (Arduino для MSP430)
  2. MSP430F2001
  3. MSPDEBUG
  4. Отладка с помощью GDB

Читать дальше