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作ってみたいなんて方はねむいさんに連絡ください。

Comments

何時も閲覧させて頂いています
此処の以前の記事を見て何時かはと思い
でも力量が無く、指を咥えていました

今回の記事は未だ良く見ていませんがやっと自分も
Versaloonに改造出来るかと
凄くわくわくしています

明日良く見させて頂きます
目がショボショボで
明日になります

此からも活躍を

  • sec
  • 2010/09/15 11:59 PM

はじめまして。
いつも楽しみにアクセスしています。なんといってもタイトルの
後の数行が面白すぎます。

この記事を元に、死蔵しているブツの改造を行わせて頂きます。
しかし、概念がさっぱり判っていませんが、大丈夫かなあ。
ま、作るだけなら3つあるので、1つくらいは成功しそうです。

よろしくお願いしますm(_ _)m。

sec様、Shuji009様
はじめまして ねむいです。


一件複雑そうにみえますが私の説明がくどくなっているだけなので
先の細いコテを使用すれば特に難しい個所もなく作業は完了出来るでしょう。
頑張ってくださいね〜

本日、工作しました。
不器用なので苦労しました(;_;)。
なんといっても難しかったのが、11.の、ICの足を持ち上げるの・・・
ねむいさんは、どうやってやられたのでしょうか?

後、ソフトも全然入れてないので、検索で探したり、インストール
したりも意外に時間が掛かりました。

作って気がついたのですが、

>16.SWDで繋がる適当なマイコンでVersaloonが使用できるか確認します。

持っていないorz・・・・

  • Shuji009
  • 2010/09/21 6:05 PM

Shuji009様

ねむいです。こんにちは。


ピンの足上げは対象のピンをコテで温めつつ100均でも売ってるようなソーイング
セットの縫い針を使いピシッと引っかけ上げてます。一見難しいように感じますが、
コツをつかめば無鉛ハンダな環境でも簡単にできるようになりますよ〜
特に今回は隣り合う2つのピンを上げるので初めてでも難しくはないでしょう。


あとSWD接続ができるCortex-Mx系のARMマイコンについて、安価で手に入りやすい
ものを挙げるとLPCXpressoのLPC1114,LPC1343そしてLPC1768版が相当します。
JTAGのTMSに当たるのがSWDIO,TCKに当たるのがSWCLKです。Shujiさんの場合は
STM8S-Discoveryを複数持たれているので改造前の基板のSTM32部分を用いて試し
てみてください。

ねむいさん、お忙しいのにわざわざ済みませんm(_ _)m。
ダウンロードさせていただきました。

今のところはまっていましてうまく動作していません(汗;)。

デバイスマネージャでversaloonがでてこないので、困っています
(STMicroelectronica Virtual COM Port COM4と表示)。
13でTarget in fileが、ねむいさんの図とは異なり、"ST"と表示され
てしまいます。
改造に失敗しているのでしょうか?

燃えないゴミ系は3つあるので、別の物でも作って見ます。

  • Shuji009
  • 2010/09/22 6:11 PM

ねむいさん、度々済みません。
ドライバの入替を行いました。名前は前のまま(STM....COM Port)ですが、
ドライバファイルは、windows¥system32¥drivers¥libusb0.sysと
windows¥system32¥libusb0.dllになっております。またデバイスマネジャー
でもlibusb-win32 devicesの配下にきておりますので、パソコン側はokだと
解釈しています。
後は、私の工作のレベルの低さとvsprogの概念(使い方)の知識不足なので、
自己努力していきます。

今回は色々と有り難うございましたm(_ _)m。

  • Shuji009
  • 2010/09/23 12:06 AM

ねむいです。こんにちは。

そこまで行けたらあと少しだと思います。配線をよく見なおして頑張ってください!
私も今回のShujiさんとのやり取りで気が付いた部分を記事にフィードバックしておきました。
(バレたら多分アウチなんでしょうけどLibUSBのドライバとvsprog/vsgui
のバイナリも記事中にさりげなく公開しています。)

せっかくですのでこの機会にShujiさんもARM(Cortex-Mx)に乗り換えちゃいましょう!

ねむいさん、ごめんなさい。
先週の半ばに「はじめてのオシロ」を中古で入手したので、それのリファレンス
電圧試験器等を作っていたので、コメントまで見ていませんでしたm(__)m。

PDFですが、読めないです?なんで・・・Acrobat9.3とFoxitで見ましたが、
フォーマットエラーになってしまいます(涙;)。
と、思ってバイナリエディタでみたら・・・・判りました。
落とせました!!感謝多謝。

オシロ騒動?が落ち着いたら再度チャレンジしますので、しばし私の存在は
忘れて下さいm(__)m。


  • Shuji009
  • 2010/10/03 11:57 PM

ねむいです。こんにちは。

良い結果が得られるよう期待しております!

忘れて下さいと言いながら書きます(汗;)。

一応、燃えないゴミのついた基板を2枚とLPCXpresso NXP LPC1768評価キット
を1枚、秋月に注文しました。

ので、撤退の意思はありません!
でも、「良い結果」を出せる自信は正直ありませんorz。
今月中に再着手をする予定です(オシロの次)。

  • Shuji009
  • 2010/10/04 11:36 PM

Post a Comment








Go to top of page