Versaloonの導入方法

以下の解説は、ダウンロードコーナーで配布している最新版の開発環境を前提にしたものです。旧版の環境を使用する場合には、導入編を参照して下さい。

VersaloonはSimon Qian氏がオープンソースで開発しているデバッグインターフェースです。STM32マイコンにこれを書き込むと、そのSTM32がUSB-SWD接続型のデバッガになります。開発環境からは、パッチを追加したOpenOCD経由で利用します。

http://www.versaloon.com/

Versaloonはソースコードで配布されているので、ビルドするまでの準備が大変ですが、筆者の方で、STBee Mini用のDFUファイルを用意しました。これを書き込むだけで、STBee Miniがデバッガになります。

価格だけでいけば、STM32 Value line discoveryのST-LINKの方が安いですが、Versaloon化STBee MiniはOpenOCDが使用できるので、テンポ良く開発できる(書き込みの度にデバッガを起動しなくていい)のがメリットです。Versaloonとして使わないのであれば、他の用途に使用すれば良いだけです。

1 STBee MiniにDFUファイルを書き込む

導入編のDfuSeの使用方法を参照して、DFUファイルをSTBee Miniに書き込んで下さい。書き込むファイルは、開発環境内のVersaloonフォルダにある「Versaloon_STBee_Mini.dfu」です。

2 Versaloon用ドライバをインストールする

Versaloonはドライバとしてlib-usbを使用します。以下の手順でインストールできます。

Versaloon化したSTBee MiniをUSBでパソコンに接続すると、新しいハードウェアとして検出されます。

VersaloonはVCPデバイスとしての機能も持っていますので、いったんは「STM Virtual COM Port」ととしても認識されます。

「新しいハードウェアの検索ウィザード」が開きます。Windows Updateがドライバーを提供してくれるなんてことはありませんので、「接続しません」を選択します。

「一覧又は特定の場所からインストールする」を選択します。

「検索しないで、インストールするドライバを選択する」を選択します。

「STM Virtual COM Port」が表示される場合がありますが、これは選択せずに「ディスク使用」をクリックします。

「参照」をクリックします。

配布している開発環境中の、Versaloon\libusbフォルダにあるVersaloon.infを選択します。

この内容で進めます。

「モデル」に「Versaloon」が表示されて選択されているはずですので、これで進めます。

ドライバのインストールが始まります。

すぐに完了します。

成功していると、バルーンヒントが表示されます。

デバイスマネージャで正常にインストールされているかを確認できます。

正常にインストールされていれば、「LibUSB-Win32 Devices」というツリーが追加されており、「Versaloon」というデバイスが追加されています。

3 ターゲットボードと接続

下図の通りにVersaloon化STBee Miniとターゲットボードを接続します。ターゲットボードの電源は別途供給して下さい。

抵抗は、接続しなくても正常に通信できるのであれば、接続する必要はありません。ノイズの影響を抑えるダンピング抵抗です。

ツェナーダイオードとポリスイッチはデバッガ・ターゲットの保護用です。付けなくても概ね問題は無いと思いますが、念を入れて保護したいという方は、取り付けて下さい。

 

4 makefileの設定変更

makefileでの書き込み方法の選択部分を変更します。

# select way to write flash
# ST-LINK via SWD but not with STVP is done by Debug button
# but not by make target
#FT2232_JTAG = 1
#STLINK_JTAG_GDB = 1
#STLINK_SWD_STVP = 1
VERSALOON_SWD = 1
#DFU = 1
#UART = 1

VERSALOON_SWDを選択します。

5 書き込みの実行

flashターゲットをダブルクリックして、書き込みを実行します。書き込み中はVersaloon化STBee MiniのLEDが高速で点滅します。

コンソール画面に以下の様に表示されれば、書き込みは成功しています。

**** Build of configuration Default for project STM32 ****

..\..\toolchain\yagarto\bin\make flash
Open On-Chip Debugger 0.5.0-dev-00494-g5c98e06-dirty (2010-08-21-11:38)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
Info : OpenOCD runs in SWD mode
force hard breakpoints
1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
Info : Versaloon(0x31)by Simon(compiled on Sep 13 2010)
Info : clock speed 1000 kHz
Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08001b4c msp: 0x20005000
background polling: on
TAP: stm32.cpu (enabled)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08001b4c msp: 0x20005000
Info : device id = 0x20036410
Info : flash size = 128kbytes
stm32x mass erase complete
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
wrote 7096 bytes from file flash.elf in 0.500000s (13.859 KiB/s)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08001b4c msp: 0x20005000
shutdown command invoked