MSP430 LaunchPad

すでにStellaris LaunchPadが500円以下で出ているが、在庫なしのためカッとなってこれを書いた(嘘
一年以上前に出てWindowsでしか使えないので放置していたが、
いつの間にかArduinoのlDEが移植されていた。Energiaという名前である。

バイナリ http://energia.nu/download/
ソース https://github.com/energia/Energia/

Macで動かしてみた。
バイナリ https://github.com/downloads/energia/Energia/energia-0101E0008-macosx.dmg をダウンロードすると、
MSP430LPCDC 1.0.3b.pkgというCDC/ACM driverがある。USBシリアルで接続するために必要なのでまずこれをインストールする。
MSP430ボードを接続してみると、/dev/cu.uart-* のように認識された。Energia.appをApplicationsに入れると、あとはもうArduinoと同じ。

ツール→マイコンボードでLaunchPad w/ msp430g2553 (16MHz)を選択し、シリアルポートで/dev/cu.uart-*を選択する。

その後はもうふつうにArduinoのコードを書くだけで簡単すぎる。
ハードウェアピンの対応は
https://github.com/energia/Energia/wiki/Hardware
にある。シリアルに関してはJ3ジャンパーで切り替えとなっているが、下の図のようにRXD/TXDを切り替えないとハードウェアシリアルとしては使えないようだ。
シリアルを使うコードを動かした後、プログラムの書き換えで失敗することがあるが、一旦ケーブルを抜いて繋ぎ直すと回復した。この辺は少し改善が必要。

LEDが2つあるので交互に点滅するだけのLチカ。ピン番号として、P1_0など基板に書いてある表記も使えるようだ。

int state = 1;

void setup()
{
  //Serial.begin(9600);
  pinMode(P1_6, OUTPUT);
  pinMode(P1_0, OUTPUT);
}

void loop()
{
  digitalWrite(P1_6, state);
  digitalWrite(P1_0, 1-state);
  state = 1 - state;
  //Serial.println("Hello MSP430 ");
  delay(500);
}

プログラムのアップロードは何をやっているかverbose outputで見てみると、

mspdebug rf2500 --force-reset prog *.hex

なので、コマンドラインから叩いてみると、

% mspdebug rf2500
MSPDebug version 0.17 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2011 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
Configured for Spy-Bi-Wire
Set Vcc: 3000 mV
fet: FET returned error code 4 (Could not find device (or device not supported))
fet: command C_IDENT1 failed
fet: identify failed
Trying again...
Initializing FET...
FET protocol version is 30394216
Configured for Spy-Bi-Wire
Sending reset...
Set Vcc: 3000 mV
Device ID: 0x2553
Device: MSP430G2553
Code memory starts at 0xc000
Number of breakpoints: 1

Available commands:
    =         delbreak  gdb       load      opt       reset     simio     
    alias     dis       help      locka     prog      run       step      
    break     erase     hexout    md        read      set       sym       
    cgraph    exit      isearch   mw        regs      setbreak  

Available options:
    color           gdb_loop        iradix          
    fet_block_size  gdbc_xfer_size  quiet           

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

(mspdebug) 

使えるコマンド一覧があるが、runとかstepとかあるのでデバッガーにもなるようだ。
prog *.hexでuploadできるようだ。

main.c

#include <msp430.h>

int main()
{
  unsigned int i = 0;
  WDTCTL = WDTPW + WDTHOLD;
  // port setting
  P1DIR |= (BIT0+BIT6);
  P1OUT |= (BIT0+BIT6);
  while(1) {
    i++;
    if (i < 10000) {
      P1OUT |= BIT0;
      P1OUT &= ~BIT6;
    }
    if (i > 10000) {
      P1OUT |= BIT6;
      P1OUT &= ~BIT0;
    }
    if (i == 20000) {
      i = 0;
    }
  }
  return 0;
}

Makefile

CC=msp430-gcc
CFLAGS=-Os -Wall -g -mmcu=msp430g2553
OBJCOPY=msp430-objcopy
OBJS=main.o
all: main.elf main.hex
upload: main.hex
        mspdebug rf2500 'prog main.hex'

%.elf: $(OBJS)
        $(CC) $(CFLAGS) -o main.elf $(OBJS)

%.o: %.c
        $(CC) $(CFLAGS) -c $<

%.hex:  %.elf
        $(OBJCOPY) -O ihex $< $@

を使って、main.hexを作り、

mspdebug rf2500 'prog main.hex'

でいけることがわかったので、
make; make upload
とすることでIDEなしでもいけることがわかった。
toolchainはhttp://code.google.com/p/osx-launchpad/
からもダウンロードできるが、Energiaと同じものと思われる。

データシート http://www.tij.co.jp/jp/lit/ug/slau144i/slau144i.pdf

広告
カテゴリー: MSP430

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー
2012年10月
« 7月   11月 »
1234567
891011121314
15161718192021
22232425262728
293031  
%d人のブロガーが「いいね」をつけました。