トラ技ARMライタを mbed interface にする

CQ出版のトランジスタ技術2014年3月号には、付録としてNXP LPC11U35/501が実装された「トラ技ARMライタ」が付属します。
LPC11U35/501 は、mbed HDK で使用される OnBoard Interface のリファレンスチップとなっており、「トラ技ARMライタ」にはそれに必要なピンが出力されているので、LPC1114FN28 をターゲットとしたファームウェアを作成しました。

mbed HDK https://mbed.org/handbook/mbed-HDK

ソースコード https://github.com/mbedmicro/CMSIS-DAP

ビルド済みバイナリ /media/uploads/MACRUM/lpc11u35_lpc1114_if_mbed_checksum.bin

ファームウェアの書き込み方法

  • 「トラ技ARMライタ」をUSBケーブルでPCと接続する
  • ISPモードで起動する(ISPボタンを押しながらリセット)
  • マスストレージドライブがマウントされるので、firmware.binを消去する
  • ファームウェア(lpc11u35_lpc1114_if_mbed_checksum.bin)をコピーする
  • 書き込みが終わったらリセットボタンを押し、再起動させる
  • 再マウントされたドライブに、mbed.htm があれば成功

LPC1114FN28 ターゲットとの接続

Pinトラ技ARMライタLPC1114FN28
SWCLKCN1-83
SWDIOCN1-612
nRESETCN2-1123
TXDCN1-915
RXDCN1-1016
GNDCN1-122 (8)
VDDCN2-121 (7)


/media/uploads/MACRUM/toragi-writer.jpg

使い方

PCとUSB接続するとマスストレージドライブとしてマウントされるので、通常の mbed LPC1768 と同じように、オンラインコンパイラでビルドされたバイナリ(.bin ファイル)をドラッグアンドドロップするだけです。 その後リセットボタンを押すと、ターゲットデバイス上でプログラムが起動します。

注意点

mbed HDK の仕様上、以下の注意点があります。

  • LocalFileSystem は使用できません
  • ファイル名の先頭文字は、英数字である必要があります

追記

ファームウェアの書き込みにMacを使用する場合に、書き込みに失敗するケースがあるようです。 その場合はWindows環境で書き込んで頂くか、下記の Lynx-EyED さんのブログの最後の部分で説明されているターミナル.appからコピーする方法で書き込んでください。

http://lynxeyed.hatenablog.com/entry/20100702/1278087213


Report

9 comments on トラ技ARMライタを mbed interface にする:

09 2月 2014

Watarai 様、

ちょっと質問がありますが。 トラ技の二月号に付録としてのNXP LPC810をこのARMライタでmbedのコンパイラ環境には 適用しますか?

With kind regards,

jppang

09 2月 2014

こんにちは。

ターゲット書き込み用のアルゴリズムは、チップごとに変更する必要があるので、今のバイナリをそのまま使用することは出来ません。

Norimasa Okamotoさん(va009039)が作られたファームウェアは、LPC1114とLPC810を自動判別して書き込みアルゴリズムを変更するので、こちらの方が使いやすいかも知れませんね。

https://mbed.org/users/va009039/notebook/lpc1114fn28lpc800max/

こちらも mbedmicro/CMSIS-DAP 由来のコードなので、トラ技ARMライタに焼いて動くはずです。

09 2月 2014

ファームウェアの公開,ありがとうございます.これを使うととても便利ですね!

ところでLPC11U35へのbinファイルの書き込みは,Mac上でドラッグ・アンド・ドロップで行なうと失敗してしまいます.このような場合,ターミナル.appを使ってコピーすれば上手くいきます.

詳しくは以下のページを御覧ください.
「USB経由ISP書き込み」をMacで行う

10 2月 2014

Hi Watarai san,

Thanks for your information.

With kind regards,

jppang

10 2月 2014

写真の接続方法について疑問が2点あります。

1. LPC1114のVDDをCN1-2に繋いでいますが、 実機で試してみたら電圧降下してLPC1114がまともに動きませんでした。 CN1-2ではなくCN2-1に繋ぐべきではないでしょうか。(一応CN2-1なら問題なく動作しました)

2. 接続の表ではnRESETはCN2-11ということですが、写真だとCN2-19に繋がっています。 一応両方共正常に動作するようですが、C2-11とC2-19どちらにも同じ信号が出ているということでしょうか?

10 2月 2014
  1. 画面では分かりにくいのですが、VDDはCN2-1に接続しています(基板の下に斜めに配線して反対側で取り出しています)。
  2. 本誌p109の回路図に間違いがあるようです。回路図上のCN2-19は、PIO1-2となっていますが、正しくはPIO0-2です。この信号は、TARGET_RESETに接続されています。
11 2月 2014

回答有難うございます。

もう一つ質問です。 TxDとRxDを繋がなくても書き込めたのですが、この接続はなんのために有るのでしょう? ARMライタを経由してPCとLPC1114をシリアル接続するのかなと思いましたが、 PC(Win7)のほうにはARMライタのシリアルポートがありません。 そういう機能のためではなく、LPC1114への書き込みで使うのだとすると、 繋いでないのに問題なく書き込めているのが解せません。

11 2月 2014

プログラムの書き込み時にシリアルは使用しません。

TxD, RxDは、mbedのSerial APIで使用します。 Serial::printf を使った場合に、USB経由でPC側のターミナルソフトで表示されます。

http://mbed.org/handbook/Windows-serial-configuration

http://mbed.org/handbook/SerialPC

11 2月 2014

ありがとうございます。

Hello World!の動作が確認できました。

Windowsだと専用のドライバを入れてやらないと駄目だったんですね。

Please login to post comments.