エビデイエビナイ電子工作

やったことの記録

LPCマイコンでARM開発 #2 ~書き込み編~

今回は書き込み編です。

前回の記事では書き込み用のhexファイルを生成するところまでやりました。今回は、実際に生成したhexファイルをマイコンに書き込んでいくのですが、まずは簡単なプログラムを書いてみます。


簡単なプログラムを書いてみる

MCUXpresso IDE でメインのcソースを開くと、iをインクリメントするだけのダミーコードが記述されています。

このダミーコードを削除し、main関数内に次のプログラムを書いていきます。

int main(void) {

    int8_t sw;

    /*ポートの初期化*/
    LPC_IOCON->PIO0_7 = 0xd0;
    LPC_IOCON->PIO0_1 = 0xd0;

    /*ポートの方向を設定*/
    LPC_GPIO0->DIR |=  (1<<7);
    LPC_GPIO0->DIR &= ~(1<<1);

    while(1){
        sw = !LPC_GPIO0->MASKED_ACCESS[(1<<1)]; //マスク処理

        if(sw){
            LPC_GPIO0->DATA |=  (1<<7); //LED点灯
        }
        else{
            LPC_GPIO0->DATA &= ~(1<<7); //LED消灯
        }
    }

    return 0 ;
}

スイッチを押している間LEDが点灯するだけのプログラムです。 これをビルドし、hexが生成されていることを確認します。


PCとマイコンを接続する

書き込み時には PCとマイコン間での通信を行うため、それぞれを接続する必要があります。

LPC1114FN28/102は、UART経由でプログラムが書き込めるよう出荷時にブートローダが書き込まれています。 そのため、特別なライタなどを用意しなくても USB/シリアル変換器があればプログラムを書き込むことができます。


akizukidenshi.com

今回は秋月のUSB/シリアル変換器を使用します。 接続は以下の通りです。


USB/シリアル変換器 LPC1114FN28/102
19番ピン(3V3) 21番ピン(3.3v IN), 7番ピン(Analog 3.3v In)
24番ピン(GND) 22番ピン(0V), 8番ピン(Analog 0V)
1番ピン(TXD) 15番ピン(rx)
5番ピン(RXD) 16番ピン(tx)
2番ピン(DTR#) 23番ピン(nR)
3番ピン(RTS#) 24番ピン(dp24)

外付け部品としてLEDとスイッチもつけておきます。 次の回路図の通り配線します。


f:id:Rappy:20190127180855p:plain
回路図1

あとはUSB/シリアル変換器とPCのUSBポートをつなげば、ハード側の準備は完了です。 次はソフト側の準備をしていきます。


Flash Magic をインストールする

プログラムをマイコンへ書き込むには専用のソフトウェアが必要です。 書き込みにはフリーのソフトウェア Flash Magic を使うことにします。

まずは公式のダウンロードページから最新版の Flash Magic をダウンロードします。


f:id:Rappy:20190127150104p:plain
ウィザードに従ってインストールを進める

ダウンロードが完了したら実行ファイルを開き、ウィザードに従ってインストールを進めます。


f:id:Rappy:20190127150553p:plain
書き込みの設定をする

インストールが完了しました。Flash Magicを開き、書き込みの設定をしていきます。


Communicationsの設定

  • Select... をクリックし、ターゲットとなるマイコンである LPC1114/102 を選択します。

  • COM Port ではUSB/シリアル変換器が接続されているCOMポート番号を選択します。

  • Baud Rate を 115200 , Interface を None(ISP) , Oscillator を 12.0 に設定します。


Eraseの設定

  • Erase blocks used by Hex File にチェックを入れます。


Hex Fileの選択

  • Browse... からビルドしたプログラムのhexファイルを選択します。


Optionsの設定

  • Verify after programmingFill unused Flash にチェックを入れます。


さて、これでソフト側も準備が整いました。 Start を押して書き込みを開始します。


動作の確認

書き込みが完了したら、マイコンに接続されたスイッチを押してみましょう。


f:id:Rappy:20190127184551j:plain
スイッチを押すと...


f:id:Rappy:20190127184755j:plain
点灯!

LEDが点灯しました! うまくいったようです。


おわりに

実は、32bitのマイコンでの開発はこれが初めてです。 今回はLEDを点灯させただけですが、やはり初めての環境での最初の一歩はワクワクしますね。 面倒な環境構築が終わったので、これからは32bitマイコンのスペックをフル活用できるまで使い倒してみたいです。

今後もどんどん新しいことをして、どんどんブログを更新していくのでよろしくお願いします!


twitter.com