実験するつもりだったのに、ずっと忘れたままになっていた作業をようやく実施。それは、SWDを使ってみること。
これまではARM7/ARM9の延長でずっと普通のJTAGを使ってきましたが、Cortex-M3では信号数の少ないSWDを使うことができます。幸いにしてわたしが使っているSAM-ICEとCrossWorksは、ともにSWD対応となっています。
まずは、SAM-ICEとBlueSAMとの接続。SWDの信号は全てJTAG信号と兼用になっていますので、これまでのJTAGコネクタをそのまま流用できます。しかし、JTAGコネクタをそのままつないでしまったのでは、どの信号が実際に使われているのかはっきりとわからないので、ジャンプワイヤを使ってつないでみました。つないでいるのは、VCC, GND, SWCLK, SWDIO, NRSTの5本です。
CrossWorks側の設定は、次のようにSWDを選択するだけ。
フラッシュへの書き込みとブレークの設定動作を確認。問題なく動いているようです。SWDを使えば信号本数少なくてすみますから、今後はコネクタを小型化できます。20PinのJTAGコネクタについては標準的なコネクタ配列がありますが、SWDについては標準配列やコネクタの記述をみかけません。検索するとどうやら、1.27mmピッチで10ピンというのがあるようです。1.27はちょっと不便なので、2.54mmピッチ10ピンで使うことにしましょうか。でも、これではコネクタサイズが半分にしかならないので、自己流6ピンを決めて使えばいいかな。
これまではARM7/ARM9の延長でずっと普通のJTAGを使ってきましたが、Cortex-M3では信号数の少ないSWDを使うことができます。幸いにしてわたしが使っているSAM-ICEとCrossWorksは、ともにSWD対応となっています。
まずは、SAM-ICEとBlueSAMとの接続。SWDの信号は全てJTAG信号と兼用になっていますので、これまでのJTAGコネクタをそのまま流用できます。しかし、JTAGコネクタをそのままつないでしまったのでは、どの信号が実際に使われているのかはっきりとわからないので、ジャンプワイヤを使ってつないでみました。つないでいるのは、VCC, GND, SWCLK, SWDIO, NRSTの5本です。
CrossWorks側の設定は、次のようにSWDを選択するだけ。
フラッシュへの書き込みとブレークの設定動作を確認。問題なく動いているようです。SWDを使えば信号本数少なくてすみますから、今後はコネクタを小型化できます。20PinのJTAGコネクタについては標準的なコネクタ配列がありますが、SWDについては標準配列やコネクタの記述をみかけません。検索するとどうやら、1.27mmピッチで10ピンというのがあるようです。1.27はちょっと不便なので、2.54mmピッチ10ピンで使うことにしましょうか。でも、これではコネクタサイズが半分にしかならないので、自己流6ピンを決めて使えばいいかな。