[Из песочницы] Используем MSP430-Launchpad в качестве программатора

Здравствуйте! Я хочу поделиться с хабрасообществом одним необычным применением отладочной платы MSP430-Launchpad.Руководство предназначено тем, кто уже имеет MSP430-Launchpad, освоил микроконтроллеры MSP430-ValueLine и задумывается о том, чтобы перейти на более продвинутые МК MSP430, но пока не решился на то, чтобы приобрести профессиональный программатор MSP430-JTAG или MSP430-UIF. Но это не страшно. В качестве программатора можно пока будет использовать Launchpad. Под катом я расскажу как это сделать.Оказывается, что программатор, входящий в состав платы Launchpad может прошить любой микроконтроллер (МК) MSP430, имеющий интерфейс SpyByWire (SBW). Каких-либо ограничений на модель МК по-видимому нет. Баг ли это Launchpad’а или так и задумала Texas Instrunmets неизвестно. По интерфейсу SBW программируется в том числе МК MSP430G2553 и MSP430G2452, которые идут в комплекте с платой. Убедиться, что в микроконтроллере есть интерфейс SBW можно посмотрев его даташит. Мы в качестве подопытной платы будем использовать самодельную отладочную плату с микроконтроллером MSP430F5438A. Интерфейс SBW в этом МК есть. Плата выглядит вот так:

87170731f2a14023bbd35c1f29bfeb4f.jpg

Теперь нужно снять перемычки, которые соединяют верхнюю часть платы Launchpad с нижней и вывести провода с контактов RST, TEST, VCC, VSS. Эти провода нужно связать самодельным кабелем с ножками МК в следующем порядке (в скобках дана нумерация выводов для МК MSP430F5438A):

Launchpad <---------> MSP430F5438A VCC<--------->VDD (87) RST<--------->SBWTDIO (96) TEST<--------->SBWTCK (91) GND<--------->VSS (88) На следующей картинке ножки MSP430F5438, к которым нужно подключится отмечены крестиком: 2770d3c648c94c3f909101793da1843f.png

Теперь делаем самодельный кабель, подключаем его к MSP430F5438 и к Launchpad. Должно получиться примерно так:

a345f8e2f3444c32a61995c8a2bab328.jpg

МК из розетки DIP-20 нужно извлечь. При этом МК на подопытной отладочной плате будет запитан от Launchpad, который в свою очередь питается от USB. Теперь можно подключить USB кабель в Launchad и подключить его к компьютеру. Если всё сделано правильно, то на Launchpad должен гореть зелёный светодиод PWR. Если перепутаны VSS и VDD, то светодиод не горит.

Теперь можно проверить опознаётся ли микроконтроллер. Далее я буду использовать ОС Linux и утилиту mspdebug. Если у вас другой toolchain для MSP430 то смотрите документацию к нему.Теперь проверим опознаётся ли наш МК. В консоли наберём:

mspdebug rf2500 Плата должна дать такой ответ: vvk@linux-bmx0:~> mspdebug rf2500 MSPDebug version 0.21 — debugging tool for MSP430 MCUs Copyright © 2009–2012 Daniel Beer This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Trying to open interface 1 on 004 Initializing FET… FET protocol version is 30394216 Set Vcc: 3000 mV Configured for Spy-Bi-Wire Device ID: 0×0580 Code start address: 0×5c00 Code size: 262144 byte = 256 kb RAM start address: 0×1c00 RAM end address: 0×5bff RAM size: 16384 byte = 16 kb Device: MSP430F5438A Number of breakpoints: 8 fet: FET returned NAK warning: device does not support power profiling Chip ID data: 05 80 17

Available commands: = erase isearch opt run setwatch_w alias exit load power save_raw simio break fill load_raw prog set step cgraph gdb locka read setbreak sym delbreak help md regs setwatch verify dis hexout mw reset setwatch_r verify_raw

Available options: color gdb_loop enable_bsl_access gdbc_xfer_size enable_locked_flash_access iradix fet_block_size quiet

Type «help » for more information. Press Ctrl+D to quit.

(mspdebug) exit В результате мы должны попасть в консоль mspdebug. Чтобы выйти оттуда, введите exit. Если МК не ответил, то проверяйте кабель.Если получили такой ответ, то МК распознался и можно его программировать командой: mspdebug rf2500 «prog имя_файла_с_прошивкой.elf» Через Launchpad программирование идёт очень медленно. 8кБ прошивается несколько минут. В остальном каких-либо ограничений нет.Ещё следует отметить, что после того, как мы отключили нижнюю часть платы Launchpad, кнопка RESET более не функциональна. Если на плате такой кнопки нет, то отправить МК в ресет можно с командной строки:

mspdebug rf2500 reset В общем, приведённый способ профессиональный программатор не заменит, но со «взрослыми» МК серии MSP430 тем не менее можно не только ознакомиться, но и полноценно работать, если не обращать внимание на низкую скорость прошивки.

© Habrahabr.ru