FRDM-K64FはOpen-SDAと呼ばれているシステムを実装していて、その子を使って、デバッグしたり、プログラムの書き込みをしています。開発ボードだけ使っている分ならそれでいいですが、一からカスタムボードを作る場合は、デバッグ用の回路は場所をとるので、せっかくなら、小さくしたいので、いれたくなかったりします。
下みてもOpenSDAは結構場所とってるぜ!とわかります。
そんなわけで、OpenSDA経由ではなく、PEmico製のデバッガ&プログラマ MULTILINK UNIVERSAL FXを購入して、SWD経由で、プログラムを実際に書き込む方法を調べてみました。
下のシステム図の緑の箇所は使わないで、10pin Debug(SWD)から直接メインのマイコンにアクセスして、プログラムを書き込みます。これができれば、OpenSDAの箇所がごっそり不要になる訳です。
で何処に差す?
FRDMは、J9コネクタに差します。K64 SWDと書いてあるとこですね。
ボードのほうは、向きがどちらでも差さってしまうので、注意してください。写真の向きが正解です。
MULTILINK側は、PORT Gに差します。
それぞれのピン配をのせておきます。左がMULTILINK、右がFRDM K64のJ9コネクタになります。
ジャンパ設定
SWDからデバッグするときは、これまで、使って\いたOpenSDAの回路と切り離す必要があります。ジャンパ設定をするんですが、罠があります。
上が実際のFRDM-K64の回路図です。灰色の字で、J11のパターンをカットすれば、OpenSDAのシステムと切り離せるよと書いてますが、実際にこのとおりにすると、MULTILINKとつながりません。
なぜかというと、回路図は下のような感じだからです。J11をオープンにするとSWD_CLK_TGTMCUの信号がMULTILINKとつながらなくなってしまいます。
なので、正しくは、J11ではなくて、J12とJ8をパターンカットします。リセットボタンも機能するように、J25のジャンパ位置も1-2から2-3に設定変更しときます。
OpenSDAの機能と併用できるように、ヘッダーピンを立てて、ジャンパで設定できるようにすると便利ですね。
というか、まぎらわしいわ。
PEmicroの設定
PEmicroのサイトにいって、ソフトをダウンロードしときます。
http://www.pemicro.com/products/product_viewDetails.cfm?product_id=15320143&productTab=3#downloads
firmware update utilityというソフトです。これで、multilinkのファームウェアをアップデートできます。ソフトを起動します。
MULTILINKとボードのJ9コネクタにつなぎ、PCに接続します。青色LEDが本体電源で、オレンジは、ボードに電源が供給されると点灯します。
ソフトウェア上で、ボードが認識されると下のようになります。
Update Firmwareボタンを押します。
正しくアップデートされると、緑の帯がでて、Successと表示されます。
MCUXpressoでプログラムを書きこむ
MCUXpresso側で設定する箇所は特にありません。
MCUXpressoを立ち上げると、Debug your projectのアイコンにPEmicroのアイコンが自動で追加されてます。
アイコンをクリックして実行すると特に何事もなく正常にプログラムを書き込めました。
簡単ですが、以上です。特に引っかかるところもないですね。ただ、ジャンパ設定だけは気を付けましょうね。
追記として、下にmultilink universal FXを使うメリットをちょっと挙げておきます。
PEmicroのプラグイン機能がつかえる
multilinkを使うとPEmicroのプラグイン機能が簡単に使えます。
下は、その機能のひとつである消費電流のモニタ機能になります。Lチカしている時のデータです。省電力モード時の消費電流のチェックなどに便利です。
Brickedされたマイコンを救える
マイコンが文鎮化して、OpenSDA経由では、どうにもマイコンと通信ができなくなった場合、multilinkで、SWDから直接アクセスすることで、マイコンを救いだすチャンスが高まります。
PEmicroのサイトからkinetis recovery utilityというソフトをダウンロードして、ソフトから、MCUをHaltした後に、プログラムを通常どおり、書き込むだけで、うまくいくと元に戻すことができます。
これらはまたの機会に書きたいと思います。
ばんざい Pe micro