SNSへはこちら

CMSIS-DAPよりもDAPLink(LPC11U35編)

秋月 LPC11U35 ボードについて追記も兼ねて。
LPC11U35 ボードで CMSIS-DAP を作った話はこちら

ARM マイコンのデバッガには CMSIS-DAP があるよー的なことを言ってきましたが、なんとここでこれの上を行くDAPLink なるものの存在が確認されました。

(実は結構前から知ってたんだけど、よくわからなかっただけなんですよね...今もよくわかってませんが)
以前 Twitter のフォロワーさんからご提案いただいたのですが、「ほーん、すごそう。でもバイナリのビルドとか僕ワカラナイ」ってスルーしてしまっていたんですよ。

この DAPLink ですが、CMSIS-DAP の後継として、そして更にその上位互換のデバッグアタプタインターフェイスとして出来上がったプロジェクトなのだそうです。
GitHub の README.md によると以下の機能を実装していくことを目標としているらしいです。

  • MSC - drag-n-drop programming flash memory
  • CDC - virtual com port for log, trace and terminal emulation
  • HID - CMSIS-DAP compliant debug channel

つまり、Mbed 的で、USB シリアルに対応していて、CMSIS-DAP と同等のデバッガ機能を搭載していくのだ!というのが考えらしいですね。素晴らしい。
ということで今回はこれを LPC11U35 に入れてすっごーい!って感動する回にします。

これまでの CMSIS-DAP ファームウェアは?

はい、先の記事で LPC1114 対応の Mbed ファームウェアを入れていました。この時点で「すごーい!」なのですが、実際の所 USB シリアルを動かしてみるとちゃんと受信した値を読み取らないことがほとんど。ですから「USB シリアルは使えません」と間違えて記述してしまいました。

僕が最近愛している STM32 ですが、「SWD デバッグしたいよね、でも UART 通信もしなきゃ...」って絶望していたんです。そこでこの DAPLink がひらめき、挑戦した次第です。はーい、今回も前置き長い!!!

かんたんな いれかた

普通にやれば簡単に入ります。まずはこちらのサイトに行き、お好きな Prebuilt Images を落としてください。多分 Mbed 的なインターフェイスのターゲットが書いてあるんだと思います(LPC1114 がない...)。僕はフィーリングで NXP LPC1768 のものを落として書き込みました。

コメントより情報頂きました:
このGitHubのReleaseより 0244_release_package_392f85aa.zip と言うファイルをダウンロードすると、この中に 0244_lpc11u35_ssci1114_0x0000.bin と言うバイナリがあります。これを LPC11U35 ちゃんに焼けばナント LPC1114 をターゲットとした Mbed インターフェイスが出来上がります!もちろんそれ以外のSWDやUSBシリアル等もちゃんと動きます。

これで終わり。OpenOCD もこれまで通り cmsis-dap.cfg で動きますし、LPCXpresso でも CMSIS-DAP としてバッチリ認識されています。

ピン配置

SWD 関連に関してはこれまでと全く同じです。シリアルも全く同じですが、このブログでは対応ピン示していませんでしたね。
以下にその一覧を掲載します。

ピン名 基板上ピン名 ピン位置
3V3 +3.3V 左上から2番目
GND GND 左上から1番目
SWCLK PIO0_7 LED 右上から3番目
SWDIO PIO0_8 右上から4番目
RXD PIO0_18 右下から2番目
TXD PIO0_19 右下から3番目
nRESET/DTR PIO0_2 右上から8番目

UART は 115200pbs での安定動作を確認しました。
また、Mbed インターフェイスを使う場合は SWCLK、SWDIO、nRESETの3線を接続してください。

いや〜、またも LPC11U35 の可能性が広がってしまいました〜。これからはこちらを主にシリアルインターフェイス・デバッグアタプタとして使用していきたいと思います。
SWD デバッガとしても使え、LPCXpresso にも認識され、USB シリアルインターフェイスとしても使え、LPC1114 の Mbed インターフェイスとしても使える...こんないたれりつくせりなことってあるのでしょうか!

コメント

  1. setana.jp より:

    githubのreleasesにバイナリが有ります。
    最新verは 0244_release_package_392f85aa.zip です。
    この中の 0244_lpc11u35_ssci1114_0x0000.bin がLPC1114で使えます。
    ソースを見たところssciってスイッチサイエンスらしいです。
    (LPC810が無いのが残念)

    • shima-529 より:

      コメント&情報ありがとうございます!

      DAPLinkのReleaseは見落としていました。
      実際に落として秋月LPC11U35ボードに焼いてみたところ、すっごく良く動作してくれます!SWDも出来るしLPCXpressoも認識してくれるし、しっかりLPC1114でMbed使えました。
      おかげさまで僕の望むLPC11U35の動作が完璧に実現しました。ありがとうございました!!!

      810は、、、スペック的に見捨てられたのでしょうかね(笑)。残念です