SWD専用Versaloonクックブック

20120210追:
OpenOCDが0.6.0の2月以降のコミットでSTlink&STLink/v2の素のハードウエアに
対応しました!!もはやVersaloon化すら必要ありません!!



20110829追:
Versaloon本家の対応により、STM8S/STM32Discoveryに組み込まれたSTLink
のハードウエアにもめでたく対応となりました!!以下に長々と書いているかなり
無理やりなハードウエアの改造は、現在行わなくても済むようになっています!
それでもねむいさん(の方法)がだいすきなんだーい!って言う人だけ読んでください!





デバッガを備えた扱いやすい32ビットのプロトタイプボードたちが群雄割拠する現在、
彗星のごとく電子工作シーンに現れそのまま大気圏に突入して消滅した
STM8S-Discoveryには32bitMCUを使用した2線式デバッガハードウエアSTLink
搭載されています。

このSTLinkの本体はSTM32F103C8T6というSTM32のARMマイコンで、これは
Versaloonというリソースが公開された汎用のデバッガハードウエアにも使用されて
いるものです。
今回は、そのままでは糞の役にも立たないSTM8S-DiscoveryのSTLink部分に
物理的改造を施し、SWD接続専用の簡易Versaloonとして再生する手順を
紹介します。

注:制限事項
 ・この改造はVersaloon-miniのハードウエア互換にする改造です。
 ・VersaloonはARMの他に多数のマイコンをサポートしているが
  この改造はARMの、それもCortex-Mx専用になります!
 ・てわけでSWD接続以外の接続はできない(ていうかできねぇ!)
 ・頑張ってTDIとかTDOとか引き出せばJTAG接続も使えるけど
  すごいめどいからやらないよ!
 ・3.3V以外の信号レベルでは接続できない(一応5Vトレラント)
 ・作業工程はWindowsXP以降の環境を使用。Windows7x64環境でも動作します!
 ・真似して改造して基板がゴミになっても泣かない
 ・ていうかJTAGKey/JTAGKey2Cloneをすでに持ってる方の補助的な位置づけです。
 ・ハードの改造がめどいですという方はiruka氏のオレオレblaster化をお勧めします。
 ・SWD専用ですが、本家の対応でめでたくSTM8S/STM32DiscoveryのSTLink
  のハードウエアにも対応となりました!!↓に長々と書いているハードの改造を
  無理にしなくても済むようになっています!大事なことなので2度言います!



●必要なもの
 1.STM8S-Discovery
  これが無いと話になりませんね。750円でSTM32単体買うより安いです。
  必要部品はすでに乗っていて一から回路起こすより断然楽です!

 2.12MHzのクリスタル
  Versaloonの標準的なハードウエアは12MHzの外部クロックが必要です。
  STM32の103系って標準が8MHzなはずだが…
  ソフトが苦手なねむいさんとしてはハードウエアの方をカチ合わせる方
  針で改造を進めます!いちいち修正してビルドするのめんどいし!

 3.チップ抵抗
  1608~2012メトリックの100ohmを2つ・10kohmを3つ。これはポート保護&
  フローティング時の信号レベル固定用です。

 4.1列ピンヘッダ
  SWDやUARTの信号を外部に引き出す用途に使用します。

 5.0.26mm位のUEW・AWG26位のジャンパ線
  UEWは48PinTQFPから足を引き出したりジャンパしたりに使用します。
  ジャンパ線は3.3Vの電源ラインをバイパスするのに使用します。

 6.USB-シリアル変換若しくはパソコンとUARTで通信できる何らかの装備
  改造工程でUARTによるブートローダを立ち上げてDFUを書き込む必要があります。
  もちろん信号レベルはTTLレベルに各自で合わせておいてください。
  (JTAGでも書き換えられますがここでは触れません)

  また、DFUを書き込むためにPC側のプログラムはFlashLoaderDemonstratorを使用
  しますので各自インストールしておいてください。
  DFUを書き込んだ後はDfuSeを使いVersaloon本体を書き込みます。同じくインス
  トールしておいてください。

 7.2.54mmピッチのショートピン
  パソコンでも使用する標準的なショートピンを。STM8S基板にひっついている奴を
  流用しましょう。

 8.TQFP(0.5mmピッチ)の足を上げたりはんだつけしたりが余裕で出来る技能
  まぁこのブログを普段から見られている方はデフォで出来るでしょうからからあ
  えて言わずもがなですね…(カメラ目線)



●改造手順
 ※一気に改造するとなにが悪かったのか切り分けできなくなるので
  逐次動作確認を行い、改造していきます。

 1.先ずSTM8S-Discoveryのミシン目をカットしSTLinkと燃えないゴミにわけます。
  


 2.次にUART用のPinをUEW線にハンダ付けで繋げ、外部に引き出します。
  


 3."2."で引き出したUARTのピンはピンヘッダを使って外部に出しましょう。
  UART-TX(TxD)は10kohmで必ずプルアップしてください。
  

 4.丸内の部分をジャンパします。ここから+3.3Vを外部に出したいなんて人は
  AWG24位の太い線でジャンパしましょう
  

 5.次に丸内のBOOT0のPinに当たる部分を丸内の+3.3Vラインに
  ジャンパで飛ばします。
  

 6.USBシリアル変換と"3."で付けたピンをTxDとRxDに注意して接続します。
  そしてSTLink側のUSBコネクタをPCに挿しこみます。
  USBデバイスが認識されないエラーがでますが無視で。

 7.FlashLoaderDemonstratorを起動します。STM32のUARTブートローダーが正しく
  起動していればこの画面が見えるはずです。操作法などの細かい説明はこちら
  にうっちゃりますが、先ずここでDFUのプログラム
  (Versaloon_DFU_Bootloader.zip)
を書き込みます。
  STLinkのファームウエアははこの時点で消去されてしまいます。
  
  
  

 8.元STLinkをPCから外し、"5."で行ったジャンパはもう必要ないので外します。
  てか外さないと何やってもSTM32のUARTブートローダーが立ちあがっています。
  

 9.次に書きこんだDFUの起動確認を行います。クリスタルを8MHzのものから12MHzの
  ものに差し替えます。丸内の箇所にショートピンを挿し替えます。
  

 10.再び元STLinkとPCをUSBケーブルで接続します。USBデバイスとしてDFUが認識
  されたらOKです。まだVersaloon本体は書きません!
  

 11.DFUが起動するのを確認したら一旦PCから抜きます。Versaloon本体を書く前に、
  SWDを外部に引き出すための改造をします。四角内の部分の足を丁寧に上げます。
  

 12.足を持ち上げたらまとめてUEW線をハンダ付けして引き出します。
  

 13.ターゲットにSWD接続を行うためのピンを引き出します。JTAG用のポートが
  余っているのでこれを利用しましょう。
  VersaloonはPB6,PB7をSWDIO用,PB13をSWCLK用のポートとして
  使用します。図中の表記はこれに倣っていますので間違えないように
  してください。

  
  
  
  
  


 14.SWDに使うポートを引き出す改造が終わったら"10.の操作を再び行いDFUを
  認識させます。そして"DfuSe Demonstrationを立ち上げ、
  Versaloon本体のDFUファイルを書き込みます。
  


 15.書き終わったらUSBケーブルを外し、"14."で行ったショートピンを
   丸内の位置にします。以後Versaloonのプログラム本体の書き換えは
   DFU経由で行います。

 16.再度元STLinkとPCをUSBケーブルで接続します。USBデバイスとして、今度は
  Versaloonが認識されたらOKです。LibUSBのドライバを読み込ませてください。
  非常に操作が簡単なzadigを使ってLibUSBのドライバをインストールしてください。
  
  

 17.vsprog等を使用しSWDで繋がるCortex-Mx系のマイコン
  (LPC1xxx,STM32,ATSAM3x,etc)でVersaloonが使用できるか確認します。
  結線さえあっていればこの時点でSWD接続で操作できます。
  JTAGのTMS = SWDのSWDIO
  JTAGのTCK = SWDのSWCLK
  
  Simonquian氏のページで配布しているvsprog/vsgui等のソースをビルドして
  利用するかSWDのパッチを当てたOpenOCDをビルドし使用しましょう。
  おや…これは…




…というわけで余り物の材料かき集めたら1000円以内でCortex-Mx系の
ライタ/デバッガが手に入ってしまいます。STM8S-Discoveryを買って
しまった人は玉砕覚悟でVersaloonへの改造を試してみてはいかがでしょうか?

20230819追:
上記で紹介したDFUファイルやVersaloonプロジェクトは公開終了しました。
もし今の世でVersaloon作ってみたいなんて方はねむいさんに連絡ください。

Go to top of page