nRF51/nRF52 DK を J-Link のライタとして使う

nRF51-DK や nRF52-DK (Preview含む) から J-Link を使って SWD で書き込む。具体的な方法は

のページに書かれているとおり。P20の八本のインターフェイスから書き込める。

f:id:secondlife:20140929140538j:plain

MicroUSB に近い方から

  • http://doc.lijun.li/misc-use-nrf51-dk-debug-out.html

  • VDD_nRF(電源を nRF5x からとる場合は 3 と一緒に)

  • VIO
  • SH_VTG (必須、ターゲットの電源電圧)
  • SH_SWDIO (必須、データ入出力)
  • SH_SWDCLK (必須、クロック)
  • SH_SWO
  • SH_RESET
  • SH_GND_DETECT (必須、ターゲットの GND )

となっている。書き込みに必要なのは最低4本でOK。なお開発時 nRF5n-DK から電源を取る場合は1も3と同じ場所に繋ぎ、かつnRF5n-DK側のGNDも8(というかターゲットのGND)に繋ぐ必要がある。最初繋がず、プログラム書き込みは出来るけど書き込み先の nRF がうまく動かずハマった…。

JLinkExe から書き込む

から JLinkExe のバイナリを落とし書き込む。JLinkExe が対話型インターフェイスかつ複雑なので、ラッパの AdaLink を使うと何も考えずに JLinkExe のパスさえ通ってれば使える。

$ adalink -v nrf51822 --programmer jlink --wipe --program-hex  firmware.hex

nRFgo Studio から書き込む

noridc が提供してるツール、nRFgo Studio は GUI から書き込むことが出来る。かつ、書き込み先の nrf が認識されればすぐに表示されて解りやすいので、最初はこちらを使うのが良いかも知れない。

f:id:secondlife:20160920173829p:plain

というわけで無事ターゲットの nRF51 に書き込むことが出来た。(写真は RedBear Nano)