Возможно ли соединить 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.