//
表示中
モノづくり, Computer - コンピューター, Electronics - 電子工作

LPC1114FN28に直接プログラムを書き込む


一つ前の投稿ではmbed LPC1114FN28にプログラムをロードして実行してみました。今度はmbedとしてではなく、LPC1114FN28単体で前回と同じプログラムをロードして実行してみます。こちらの解説を参考にしました。

mbedの場合はUSBケーブルでコンピュータに接続するとドライブとしてマウントされ、そこにコンパイルしたプログラムをドラッグ&コピーすることでプログラムをロードできますが、今回の方法では別途プログラムをロードするためのツールが必要です。

幾つか方法があるようですが、簡単そうなlpc21ispというコマンドを使ってやりました。lpc21ispをダウンロードしたら、適当なディレクトリに展開してコンパイルします。僕の環境(OSX 10.11.4)では展開したディレクトリに移動してmake コマンドを実行するだけです。makeの実行が終わるとlpc21ispという実行形式のファイルができるので、それをシェルの実行パスが通ったディレクトリにコピーしておきます。

回路はこれです。

LPC1114FN28のTXにUSBシリアル変換モジュールのRXを、同じくRXにTXを、VINにVCC(3.3V)を、GNDにGNDを接続し、DP23(nR)は10KΩの抵抗を介してVCCとタクトスイッチの一方に、タクトスイッチのもう一方をGNDに、DP28(LED2)は220オームの抵抗を介してLEDのアノードに、LEDのカソードをGNDに、DP24を330オームの抵抗を介してGNDに接続します。タクトスイッチはリセットスイッチです。

2016-04-16 22.18.01

USBシリアル変換モジュールをUSBケーブルでコンピューターに接続し、前回の投稿と同様にmbedのオンラインコンパイラでプログラムをコンパイルして出来上がったバイナリファイルをダウンロードします。(前回はLED1を点滅させるプログラムですが今回はLED2を点滅させるので、プログラムを少し修正しました)

ここでlpc21ispコマンドの出番。

USBは /dev/cu.XXXXXX という名前でコンピューターから認識されています。

ターミナルアプリケーションで

$ ls /dev/cu.*

 

を実行してデバイスファイルのリストを表示すればすぐに見つかると思います。

プログラムをLPC1114FN28にロードするにはターミナルアプリケーションで次のようにコマンドを実行します。

$ lpc21isp -bin mbed_blinky_LPC1114.bin /dev/cu.XXXXXXXXXX 115200 48000

 

コマンドの実行結果はこんな感じです。

lpc21isp version 1.97
File mbed_blinky_LPC1114.bin:
loaded…
image size : 10392
Image size : 10392
Synchronizing (ESC to abort). OK
Read bootcode version: 1
7
Read part ID: LPC1114…/102, 32 kiB FLASH / 4 kiB SRAM (0x1A40902B)
Will start programming at Sector 1 if possible, and conclude with Sector 0 to ensure that checksum is written last.
Erasing sector 0 first, to invalidate checksum. OK
Sector 1: ………………………|…………………….|…………………….|…………………….
Sector 2: ………………………|…………………….|…..
Sector 0: ……………………..|…………………….|…………………….|…………………….
Download Finished… taking 6 seconds
Now launching the brand new code

 

エラーなくプログラムのロードが終了したら、リセットスイッチを押して、DB24とGNDの間にある330Ωの抵抗を外します。この抵抗があると、つまりDB24がGNDに接続されてLOWになるとLPC1114FN28がISPモードになり、外すと実行モード(通常モード?)ということでしょうか。

ロードしたプログラムを実行している様子。USBシリアル変換モジュールを外してコイン電池から3.3Vを供給して動かしています。

2016-04-16 22.46.57

回路の複雑さはATmega328Pの場合と変わりませんね。(ATmegaの時は水晶発信子を外付けしたのでその分部品が増えている)

面白いです。

kazz12211 について

Working as a OO programmer and enjoying music, bicycle and photography.

ディスカッション

コメントはまだありません。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

評価

ブログ統計

  • 535,416 ヒット

カテゴリー

アーカイブ

カレンダー

2016年4月
« 3月   5月 »
 12
3456789
10111213141516
17181920212223
24252627282930
%d人のブロガーが「いいね」をつけました。