Используем MSP430-Launchpad в качестве программатора

в 15:53, , рубрики: diy или сделай сам, 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 в этом МК есть. Плата выглядит вот так:

Используем MSP430-Launchpad в качестве программатора - 1

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

Launchpad <---------> MSP430F5438A 
           VCC<--------->VDD(87)
           RST<--------->SBWTDIO(96)
          TEST<--------->SBWTCK(91)
           GND<--------->VSS(88)

На следующей картинке ножки MSP430F5438, к которым нужно подключится отмечены крестиком:

Используем MSP430-Launchpad в качестве программатора - 2

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

Используем MSP430-Launchpad в качестве программатора - 3

МК из розетки 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 (C) 2009-2012 Daniel Beer <dlbeer@gmail.com>
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: 0x0580
  Code start address: 0x5c00
  Code size         : 262144 byte = 256 kb
  RAM  start address: 0x1c00
  RAM  end   address: 0x5bff
  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 <topic>" for more information.
Press Ctrl+D to quit.

(mspdebug) exit 

В результате мы должны попасть в консоль mspdebug. Чтобы выйти оттуда, введите exit. Если МК не ответил, то проверяйте кабель.
Если получили такой ответ, то МК распознался и можно его программировать командой:

mspdebug  rf2500 "prog имя_файла_с_прошивкой.elf"

Через Launchpad программирование идёт очень медленно. 8кБ прошивается несколько минут. В остальном каких-либо ограничений нет.

Ещё следует отметить, что после того, как мы отключили нижнюю часть платы Launchpad, кнопка RESET более не функциональна. Если на плате такой кнопки нет, то отправить МК в ресет можно с командной строки:

mspdebug rf2500 reset

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

Автор: vv_kuznetsov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js