LPCXpresso

MBEDのプログラムを転送してLEDチカチカ
ブレッドボードに電源ラインを配線します

LPCXpressoを差し込みます。

MBEDと同じLED1,LED2,LED3,LED4となるようにLEDボードを製作し装着する。
LED0 = P0_22
LED1 = P1_18
LED2 = P1_20
LED3 = P1_21
LED4 = P1_23

次のプログラムはmbedの方でコンパイルするソースプログラムです。

LEDチカチカ
#include "mbed.h"

DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
DigitalOut led0(P0_22);

int main()
{
    while(1)
    {
      for(int value=0; value<2; value++)
      {
        led0=value;
        wait(0.2);
        led1=value;
        wait(0.2);
        led2=value;
        wait(0.2);
        led3=value;
        wait(0.2);
        led4=value;
        wait(0.2);
      }
    }
}
 1 
 2 
 3 
 4 
 5 
 6 
 7 LPCXpresso上の赤いLEDはP0.22に繋がっている。
 8 
 9 
10 
11 
12 
13 だんだん点灯していき、だんだん消灯させる。
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 


コンパイル結果をLPCXpressoに送る

送るには状況によりいくつかの選択肢があります。
  1. LPCXpresso IDEがあり、mbedでコンパイルしたbinファイルを送りたい場合で、プログラムサイズが128kB以下の場合。
  2. mbedでコンパイルしたHEXファイルがある場合。
  3. コマンドレベルで、binファイルでもHEXファイルでもどちらでも送りたい場合。

LPCXpresso IDEを用いる
http://lpcxpresso.code-red-tech.com/LPCXpresso/からIDEをダウンロードしてインストールしておきます。

binファイルをLPCXpressoに転送する
LPCXpresso IDEを走らせます。

binファイルを転送するにはこのアイコンをクリックします。

このようなウィンドウが出ますので、program flash memoryを選び、Browseで転送すべきbinファイルを指定します。指定が終わったらOKをクリックすると転送が終わります。
mbedのリセットボタンを押すと実行されます。

実行例


以上のようなfreeのバージョンのcode_redを用いた方法は手軽ですが、freeのバージョンでは最大128kBまでしか送れません。少し大きい実用的なプログラムになると送れなくなります。
Flash Magicを用いる
http://www.flashmagictool.com/からFlash Magicをダウンロード、インストールします。
LPCXpressoとはRS232Cで通信を行うので、ここでは、FT232RL USBシリアル変換モジュールを用います。

結線は
(FT232RL)     |     | (LPCXpresso1768)
TXD[1番ピン]  | →  |  RXD0[22番ピン]
RXD[5番ピン]  | ←  |  TXD0[21番ピン]
5V [15番ピン] |-----|  VIN [2番ピン]
GND[7番ピン]  |-----|  GND [1番ピン]
とします。

LPC1768はリセット時にP2.10ピン[31番ピン]がLowになっているとブートローダモードになるので、ジャンパー線でグラウンドに繋げてから電源を入れます。

接続例

緑の線をグラウンドに入れてから電源を入れるとブートモードになります。



5つのステップに沿って設定していきます。ここでは、Erase及びverifyをしていませんが、した方が良いと思います。


lpc21ispを用いる
lpc21isp というソフトを用いるとbin,hexファイルとも転送できます。
ダウンロード:
sourceforgeから

コンパイル方法
  1. visual studioがインストールされていてコマンドプロンプトから実行できるように設定してある場合
    nmake /f Makefile.vc clean all
  2. gccがインストールされている場合
    make -f Makefile.gnu clean all
    あるいは gmake -f Makefile.gnu clean all
  3. code::blocksがインストールされている場合
    lpc21isp.cbpをクリックしてビルド
何故かvisial studioでコンパイルすると倍以上の大きさになります。
接続はFlash Magicと同様にします。

適切なところにファイルを置き、test.binを送る場合で、com1で115200bpsを用い、100MHzのCPU(LPCXpressoの場合)の条件では以下のコマンドをコマンドプロンプトから投入します。

lpc21isp -bin test.bin com1 115200 100000

また、hexファイルがデフォールトなので、hexファイルがある場合は、次のように行います。

lpc21isp test.hex com1 115200 100000


実行例
lpc21isp -bin HelloWorld.bin com4 115200 100000
lpc21isp version 1.85
File HelloWorld.bin:
        loaded...
        image size : 24456
Image size : 24456
Synchronizing (ESC to abort). OK
Read bootcode version: 2
4
Read part ID: LPC1768, 512 kiB ROM / 64 kiB SRAM (0x26013F37)
Will start programming at Sector 1 if possible, and conclude with Sector 0 to en
sure that checksum is written last.
Erasing sector 0 first, to invalidate checksum. OK
Sector 1: ......................................................................
.........................
Sector 2: ......................................................................
.........................
Sector 3: ......................................................................
.........................
Sector 4: ......................................................................
.........................
Sector 5: ......................................................................
.........................
Sector 0: ......................................................................
........................
Download Finished... taking 19 seconds
Now launching the brand new code
以上でプログラムが書き込めました。