A Day in the Life

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

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

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

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 が認識されればすぐに表示されて解りやすいので、最初はこちらを使うのが良いかも知れない。

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

撮影機材E-620

関連するかもエントリー

nRF5x-DK のファームウェアを更新する
nRFのDKのJLinkを使ってのファームウェア書き込み、windows 環境のnRFgo からだと5%ぐらいの確率で、Linux環境だとJLinkExeで書き込むとほぼ二回目で失敗する。調べたらファームウェアアップデートしとけ情報があった。https://www.nordics...
nRFのDKのJLinkを使ってのファームウェア書き込み、windows 環境のnRFgo からだと5%ぐらいの確率で、Linux環境だとJ...
nrf51 で SWDIO がピンリセットとして認識される
SWD経由で書き込んでちゃんと動いて、電源入れ直すと動かなくなってハマった…。VINとGNDのみの配線なら動いてるので、一つ一つ確認するとSWDIOのピンがGND(かLOW)の時に起動せず、HIGHかオープンな時に起動することが解った。nrf はSWD書き込み直後の起動はdebu...
SWD経由で書き込んでちゃんと動いて、電源入れ直すと動かなくなってハマった…。VINとGNDのみの配線なら動いてるので、一つ一つ確認するとS...
nrf51 のファームウェアから SoftDevice を切り離す
mbed 環境でコンパイルすると、現在S130のSoftDeviceが結合されて作成される。SoftDevice は一度書き込めば再度書き込む必要が無く、分離することでSoftDevice書き込みを省略し、高速に書き込める。nRF51_OTA_strip.py を使うhttps:...
mbed 環境でコンパイルすると、現在S130のSoftDeviceが結合されて作成される。SoftDevice は一度書き込めば再度書き込...