茱萸note

電子工作の備忘録と旅行の記録

ARM マイコン 電子工作

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

投稿日:2017年3月28日 更新日:

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


目次


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

使用する部品と回路

  • LPC11U35 DIP化モジュール ¥450
  • 12MHz 水晶振動子
  • (Micro)USBコネクタ
  • 抵抗・コンデンサ(値は回路図参照)

デバッガを普通に買うと¥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"

-電子工作
-, ,

関連記事

【上級者向け】Ubuntuをデュアルブートする《その1:既にWindowsが入っているSSD・HDDにUbuntuを入れる》

既にWindowsがインストールされているSSD・HDDに追加でUbuntuをインストールする方法です。上級者向け。

C言語でのマイコンプログラミングのお作法

マイコンのプログラムをC言語で書く際に心がけるべきこと、知っておくべき知識について述べます。

Alexa で ESP8266 を操作する方法【Alexa×Arduino 検討】

Alexa を搭載した Amazon Echo 等を使って ESP8266(Arduino)を操作する方法を検討します。

Raspberry Pi で Windows PC をシャットダウン or スリープモードにする

Windows PC を Raspberry Pi から遠隔操作してシャットダウン or スリープモードにします。

Tp-Link のスマートプラグ『Tapo P105』を PC・Raspberry Pi から直接操作する

Tp-Link のスマートプラグ『Tapo P105』をアプリや IFTTT といった外部サービスを用いずに、PC・Raspberry Pi から直接操作してみます。