読者です 読者をやめる 読者になる 読者になる

LPC11U35を汎用ARMデバッガとして使う

秋月で売っているLPC11U35を汎用ARMデバッガとして使いたいと思います。



index


ここでは Ubuntu 14.04 の使用を前提としています。

使用する部品と回路

デバッガを普通に買うと¥2,000はするので,非常に経済的です。

LPC11U35にCMSIS-DAPファームウェアを入れる

ファームウェアをダウンロード

LPC11U35をCMSIS-DAP準拠のデバッガとして機能させるために,ファームウェアを入れます。

2014年2月号3月号連続企画 | トランジスタ技術

の中段に『●トラ技ARMライタのファーム・ウェア』という項目があるので,そこのリンクからダウンロードして解凍して下さい。

ファームウェアを焼く
  1. LPC11U35のUSBをPCに接続します。

  2. LPC11U35をブートモードにします。PIO0_1に接続したボタンとRESETボタンを両方押して,RESETボタン→PIO0_1に接続したボタンの順に離して下さい。

  3. Nautilusには『CRP DISABLE』という名前で表示されます。取り敢えずマウントして下さい。

  4. 本来なら,USBメモリのようにファイルをドラッグ&ドロップしただけで書き込まれますが,Ubuntuだと上手く書き込まれないようなので,先ほどダウンロードして解凍したファイルのあるディレクトリで,

$ dd bs=1024 conv=nocreat,notrunc if=firmware.bin of=/media/ユーザー名/CRP\ DISABLD/firmware.bin

を実行して下さい。マウントすることを忘れずに。

書き込みを終えたら,必ずRESETボタンを押してBOOTモードを抜けて下さい。

Open OCDをインストールする

Open OCDのビルド

Gitをインストールしていないなら,する。

$ sudo apt-get install git

以下を実行。

$ sudo apt-get install libtool autoconf texinfo libusb-1.0-0-dev
$ sudo apt-get install libhidapi-dev
$ git clone http://repo.or.cz/r/openocd.git openocd
$ cd openocd
$ ./bootstrap
$ ./configure --enable-stlink --enable-cmsis-dap
$ make
udevルールの追加

例の如く,udevルールを追加します。

/etc/udev/rules.d/に,99-CMSIS.rulesというファイルを作ります。中身は以下の通りです。

ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"

以下を実行して,変更を適用します。

$ udevadm control --reload-rules

試しに書き込んでみよう

DIPのLPC1114が手元にあったので,これで実験してみます。

ターゲットとの接続

TARGET_RESETをターゲットのRESETピンに,TARGET_SWCLKをターゲットのSWCLKピンに,TARGET_SWDIOをターゲットのSWDIOピンにつなぐだけです。

Open OCDでの操作

取り敢えず,ディレクトリを移動します。

$ cd tcl

LPC1114の場合,以下のコマンドで書き込みが行なえます。

$ ../src/openocd -f interface/cmsis-dap.cfg -f target/lpc11xx.cfg -c "adapter_khz 5000; program ファイル名.bin verify"

転送速度はadapter_khz 5000で上限いっぱいに上げています。問題が生じたら引き下げて下さい。このコマンドを入力しないと10kHzで転送されるので書き込みに160秒ほどかかります。

なお,ATSAMD21の場合は,以下のコマンドです。

$ ../src/openocd -f interface/cmsis-dap.cfg -f target/at91samdXX.cfg -c "program ファイル名.bin verify"
広告を非表示にする