VersaloonとOpenOCDでSWDデバッグ

vsprogでの書き込みに引き続いて、OpenOCDからの書き込みとデバッグを試してみました。

これまで0.3.1の仕様のコンフィギュレーションを使っていたんですが、0.5.0ベースなので、これに合わせて修正すると、問題なく書き込みできました。デバッグもできています。ただ割込があるプログラムのデバッグはどうもうまくいかないようです。

で、Versaloonは仮想COMポートとして使えるはずなので、ドライバを導入すると、デバッガが使えなくなってしまいました。デバッガを使えるようにすると、今度は仮想COMが使えなくなります

あれれと思い、Simonさんに聞いてみると、「同時には使えない」とのこと。STM32のエンドポイントの制限だそうです。ただ単一のドライバからアクセスできるようになれば、デバッグと仮想COMを同時に使えるようになるそうで、現在、そのドライバの開発を計画中とのことです。できれば同時に使いたいので、応援したいところですね。

Versaloon自体の感想ですが、現在おそらく唯一のオープンソースのSWDデバッグインターフェースですのでその意味で貴重です。STBee Miniでデバッガを使いたいときには、デバッガ用のピンを節約したいところだと思いますので、重宝するでしょうね。ただ個人的には、上記のドライバができるまでは、本格導入は「待ち」かなぁという気もしています。USBにいくつもインターフェースを付けるのはあまり好きではないので。

お疲れ様です。

いつも勉強させていただいています。

Versaloonという言葉を初めて聞いたので、調べてみました。

USB-JTAG変換をマイコンで行うんですね、以前FPGA書き込みをマイコンで行うように作りましたが、いまいちの所があるので、STBee-miniで出来るなら作り直したいと思います。

今の所、やっとカラーLCDに文字が出せるようになった所なので、まだまだ勉強しなければいけませんが、公開されましたら参考にさせて頂こうと思います。

今後とも頑張ってください。

今後の計画

コメントありがとうございます。

安価に開発環境を構築できる方法として、積極的に提案していければと思っています。

ただ今ちょうど過渡期というか、OpenOCDが0.5.0にアップデートされるところで、アップデートされると、Versaloonのファームウェアもアップデートされるそうなんです。そうなると、またやり直しになってしまうので、現時点で方法を紹介するかは迷うところです。ただ0.5.0へのアップデートがいつかというのも、これもまたわからないので、タイミングが難しいですね。

STBee Miniは最初からDFUが入っているので、比較的導入が簡単ですので、まずはこれからかと思っています。これでユーザー負担は2000円弱ですね。ただ現時点で2チャンネル同時に使えるFT2232が2000円から3000円で、動作も安定しているので、あえて提案するメリットというと、SWDが使えるということに尽きてしまいます。で、SWDを使いたい基板、つまりピン数の制限がある基板は、やっぱりSTBee Miniなので、STBee Miniでデバッガを使いたいというニーズがどれぐらいあるかということも気になります。あと、STBee MiniはSWDCLKのピンがUSB Disconnectと被っているので、そのままだと、SWDをつかってUSBデバイスを開発するというのが難しくなります。とりあえずUSBのプルアップをそのままVCCにつり上げたものを作って実験しているのですが、都度USBの抜き差しをしないとPC側から認識されないので、現実的な開発環境とはいえない感じです。今P-chのエンハンスMOS-FETを取り寄せ中なので、これが来たら、PC14/PC15あたりでスイッチングできるようにしてみます。これで純正ファームウェアも使えるはずなので。

STBee Miniで使えるようになったら、STM8S-DiscoveryのST-LINK部分か、単体で売っているST-LINKを、Versaloon化してみたいと思います。これは鶏卵問題があって、プログラマを作るためにプログラマが要るので、初心者向きでは無い部分があります。ただ開発対象であるSTBee MiniとかSTBeeがあるのであれば、まずはこれをVersaloon化し、これをつかってST-LINKのファームウェアを書き換えるという手が使えます。あと単体のST-LINKはコネクタのところにBOOT0のピンが出ているので、シリアル経由で書き換えるのも有りかなと思っています。単体のST-LINKを購入したんだけど、これをEclipseから使いたいというお問い合わせが多いので、このニーズに対応したいという思いもあります。二度とST-LINKに戻れないので、そこを理解してもらえるかという悩みもありますが。STM8S-Discoveryは秋月で750円という激安価格で売られているので、1000円を切るプログラマというのは結構インパクトがあるなかと思っています。

で、最後に、とあるところからプログラマ付きの格安ボードが出る予定があり、これも人気が出そうなので、本書の環境でも対応させるために、Versaloon化ができればと思っています。ただこのボードは鶏卵問題が回避できないので、別途FT2232やSTBee Miniを買ってもらわないといけないというデメリットがあります。

ちなみにこうやっていろいろと考えてはいるのですが、本家のMLを見ていると、FT2232でSWDを使えるようにする取り組みもあるようで、そうなるとあえてVersaloonを使うというのは、経済的・手間的なメリットはなくなってしまうかもしれません。

解説はまだ先送りになりますが、とりあえず次回の開発環境公開時には、STBee Mini用のVersaloonのプロジェクトと、これを使った書き込み、デバッグの設定を含めたEclipseを配布します。

開発環境が違うので参考になるかどうか分かりませんが、カラー

開発環境が違うので参考になるかどうか分かりませんが、カラーLCDを繋いだ状態で書き込みデバッグを行っている最中の電流を測定してみました。

最大で約100mAなので、FETで十分だと思いますが、3.3V駆動の低ON抵抗のトランジスタはあまりありませんね。

4V駆動の物でギリギリ行けそうな気がしますが、多少コストをかけてもいいならDC-DCコンバーターを制御するという手もありますね。

レポートありがとうございます

定電流モード以外の電流にはあまり着目したことが無かったんですが、結構食いますね。

昨日、秋月で、表面実装用ですが、ディスクリートの表面実装用N-ch/P-chFETを買いました。3.3Vで駆動できます。これでUSBのプルアップ制御をやってみようと思います。