Возможно ли соединить Arduino IDE и платы TiTAN на основе MSP430?

Нам поступает множество вопросов по поводу возможности разработки программ в Arduino IDE для плат TiTAN и TiTAN-I. Давайте попробуем с этим разобраться вместе.

Изначально миссия TiTAN-project — это помощь разработчикам, которым стали малы 8-битные микроконтроллеры, а 32-битные микроконтроллеры для изучения еще сложны. Микроконтроллеры с ядром MSP430 являются 16-разрядными. Это облегчает переход к 32-битным микроконтроллерам.

Arduino IDE была нацелена на 8-битные микроконтроллеры с ядром AVR. В связи с высокой популярностью Arduino IDE стала обрастать огромным количеством библиотек и примеров. Многие тонкости работы с ядром и аппаратурой микроконтроллера стали скрыты от разработчиков. Это конечно ускорило процесс разработки любительских конструкций и прототипов, но сделало невозможным процесс пошаговой отладки программы. И поэтому конечные прошивки становятся немного больше и в некоторых случаях медленнее.

Мы согласны с разработчиками, которые говорят: «мне нужно просто проверить алгоритм.». Это очень существенный довод. Тем более, что Arduino IDE уже смогли подружить с некоторыми 32-битными микроконтроллерами. Так почему не попробовать программировать TiTAN в Arduino IDE? Давайте попробуем?

Поиск в интернет привел нас к очень интересному проекту, который когда-то был начат компанией panStamp. К сожалению их проект сейчас приостановлен, но они любезно сохранили для всех нас всю информацию по этой ссылке http://old.panstamp.com/ .

Итак, приступим.

Устанавливаем и запускаем Arduino IDE. Переходим в меню «Files»->«Preferences». Нас интересует поле «Additional Boards Manager URL’s». Вводим адрес «http://panstamp.org/arduino/package_panstamp_index.json». Закрываем меню «настройки».

Далее переходим в меню «Tools»->«Board:…»->«Boards Manager». В строке фильтра вводим «panStamp». Устанавливаем пакет «panStamp NRG w/ CC430F5137». После установки в списке плат мы увидим закладку «panStamp MSP430 boards» и внутри будут четыре платы. Но пока платы TiTAN запрограммировать мы не можем. Необходимо выполнить еще немного шагов.

Нужно установить консольную программу для работы со встроенным в TiTAN программатором-отладчиком ez-FET, скачав ее с сайта Texas Instruments по этой ссылке https://www.ti.com/tool/MSP430-FLASHER

Теперь добавим в Arduino IDE в пакет panStamp информацию о нашем программаторе. Для этого перейдем в каталог C:\Users\{ИМЯ_ПОЛЬЗОВАТЕЛЯ}\AppData\Local\Arduino15\packages\panstamp_nrg\hardware\msp430\1.1.0\

И в файле programmers.txt  добавим две строки:

eZ-FET.name=eZ-FET

eZ-FET.protocol=eZ-FET

В файле boards.txt добавим плату TiTAN после строки menu.rfloader=Wireless bootloader

##############################################################

nrg4.name=TiTAN 1.0 w/cc430f5137

nrg4.build.core=panstamp

nrg4.upload.tool=eZ-FET

nrg4.upload.protocol=eZ-FET

nrg4.upload.maximum_size=32640

nrg4.build.mcu=cc430f5137

nrg4.build.f_cpu=12000000L

nrg4.build.variant=titan_1.0

nrg4.build.board=TiTAN

nrg4.ldscript=ldscript

В файл «platform.txt» добавляем

# eZ-FET programmer

tools.eZ-FET.upload.params.verbose=

tools.eZ-FET.upload.params.quiet=

tools.eZ-FET.cmd.path=’C:\ti\MSPFlasher_1.3.20\MSP430Flasher.exe’

tools.eZ-FET.upload.pattern={cmd.path} -g -s -w {build.path}/{build.project_name}.hex -z [RESET,VCC]

Теперь в каталоге «variants» необходимо создать каталог «titan_1.0» и скопировать туда файл «pins.h» из каталога «panstamp_nrg_1.0». 

Заменить в нем строки 

#define ONBOARD_LED 19

#define LED      ONBOARD_LED

#define INIT_ONBOARD_LED()    PJDIR |= BIT1; PJOUT &= ~BIT1

На строки 

#define LED_BUILTIN 0

#define LED      LED_BUILTIN

#define INIT_ONBOARD_LED()    P1DIR |= BIT0; P1OUT &= ~BIT0

Это позволит нам привести в соответствие расположение светодиода.

Почти все готово! Попробуем?

Перезапустим Arduino IDE. Откроем пример «Blink» из раздела «01.Basics». В меню «Tools» выберем плату «TiTAN 1.0 w/CC430F5137» и программатор «eZ-FET». И пробуем собрать проект «Sketch»->«Verify/Compile». Получилось?

Осталось нажать кнопку «Upload». 

В консоли мы видим информацию, которую нам выдал MSPFlasher при загрузке нашей программы.

Ура! Arduino IDE и TiTAN подружены!

В следующей статье мы расскажем, как при помощи Arduino IDE загрузить прошивку в плату TiTAN-I не имея программатора-отладчика, рассмотрим примеры и библиотеки, которые нам любезно оставила в наследство panStamp.