簡単版:DFU(新版)

以下の方法は、ダウンロードコーナーで配布している最新版の開発環境に対応したものです。「STM32マイコン徹底入門」の「第2章Appendix」で紹介している方法とは異なります。書籍通りの方法でインストールしたい方は、同書か、旧版を参照してください。

この簡単版導入編では、書込方法にDFUを使用することを前提にしています。STBeeやSTBee Miniでも利用できますし、「DFUの復元」で紹介した方法で、DFUファームウェアを書き込んだマイコンボードにも適用できます。

「マイコン徹底入門」の導入編では、開発環境の構築方法を詳細に紹介しています。導入編をお読みいただければ設定の順序や各設定の意味もご理解いただけるはずです。ただ、なにぶん作業量が多く、途中で設定を失敗してしまう可能性がありますし、何より手間です。そこで開発環境を簡単に構築していただける設定済みのファイルを用意しました。以下の手順を実行すれば、それだけで開発環境の構築が完了します。

1 ソフトウェア・ドライバをインストールする

Java/ツールチェイン(Codesourcery G++ Lite)/DfuSe(DFUドライバを同梱したDFU書込ツール)/DFUツール/Eclipseの設定済みファイルのインストールを行います。Java、ツールチェイン(Codesourcery G++ Lite)、DFU ドライバ、DFUツールは、インストーラーの指示通りインストールしてください。設定内容を変更する必要はありません。詳細や手順や作業の意味については詳細手順を記載したリンク先を参照して下さい。

Javaはこのリンク先(http://www.java.com/ja/download/index.jsp)のページの「無料Javaのダウンロード」から「Version 6 Update 23」又はそれ以降のバージョンをダウンロードします。

DfuSeはこのリンク先(http://www.st.com/stonline/products/support/micro/files/um0412.zip 又は http://miqn.net/files/um0412.zip)からダウンロードします。

DFUツールこのリンク先(http://miqn.net/files/dfu_command_line_tools_from_ksk.zip)からダウンロードします。ダウンロードできる開発環境にも同梱しています。インストールできたら、
C:¥Program Files¥KSK¥DFU_Command_Line_Tools_from_KSK
にパスを通しておきます。Google先生にパスの通し方を聞く
Eclipseの設定済みファイルはダウンロードページにある最新版開発環境をして、お使いのPCのルートディレクトリ直下(C:\miqnnet)に解凍してください。この圧縮ファイルにはEclipseと使用するプラグインが設定済みで収録されています。解凍して配置するだけで、導入編の「4.1.2. Eclipse」「5. ワークスペースの構築」の作業を行ったのと同様の状態になります。 ダウンロードにあたっては、GPL/Eclipse等のライセンスを確認してください。
2 動作イメージの確認
 まず導入編:demo_flash_dfuを見て、書込から動作までのイメージをつかんで下さい。
 注:この動画にはバグがあります。プログラムのコピー元がtest_obled_toggleなのに、実行結果はtest_obled_dimmingのものになっています。導入編:test_obled_toggleを見て、test_obled_toggleの動作を把握して下さい。
3 マイコンボードを接続する
 USBケーブルを使用して、PCとマイコンボードを接続します。買ったばかりのマイコンボードであればそのままつなげば構いません。一度でもプログラムを書き込んだことがあるボードの場合には、ユーザースイッチを押しながら接続するか、接続してからユーザースイッチを押しながらリセットボタンを押してください。
 接続すると、「新しいハードウェアが見つかりました」というポップアップメニューが現れ、「STM32 DFU」「STM Devide in DFU」が検出されます。DfuSeをインストールした際に、
C:¥Program Files¥STMicroelectronics¥Software¥DfuSe¥Driver
にドライバ(STtube.inf)がコピーされていますので、これを指定してインストールします。ウィザードから「一覧または特定の場所からインストールする」「検索しないで、インストールするドライバを選択する」「ディスク使用」を順に選択すると、ドライバを指定してインストールできます。
「検索しないで、インストールするドライバを選択する」
「ディスク使用」
4 設定変更
 C:¥miqnnet¥eclipseフォルダにあるeclipse.exeを実行すると、Eclipseが起動するので、開発を始めることができます。ここでEclipseパースペクティブの左側にある「Samples」プロジェクトをクリックしてからF5キーを、「STM32」プロジェクトをクリックしてからまたF5キーを押して下さい。これによりEclipseがフォルダの最新の内容を把握するようになります。
まずEclipseパースペクティブの左側にある「STM32」ツリーを展開して、makefileを開いて下さい。
以下の部分を変更します。
使用するマイコンボード名の前の部分のコメント(#記号)を削除し、他のマイコンボード名の前にはコメントを付けます。以下の例では、STBeeが選択されています。
# select board name
#STM32_P103 = 1
#STM32_H103 = 1
#CQ_STARM = 1
#CQ_ST103Z = 1
#STM3210E_EVAL = 1
STBee = 1
#STBee_Mini = 1
#STBee_Mini_SWD = 1
#STM32_VLD = 1
以下の部分で、DFUだけコメントを外し、他はコメントにするようにして下さい。
# 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
5 ビルドして書き込む

①画面左側のProject ExplorerビューにあるSamplesプロジェクト内のmiqnnet\test_obled_toggleフォルダを展開(+マークをクリックしてコードを表示される)し、3つのコード(main.c/stm32f10x_it.c/stm32f10x_it.h)をコピーします。

コピー後、STM32プロジェクトに上書きします。初期状態でSTM32プロジェクトに入っているコードは動作するものかどうかわかりませんので、上書きして消して下さい。

②画面右側のMake TargetsビューのSTM32を展開し、all_cleanターゲットをダブルクリックします。これでファイルツリー内に存在している、バイナリファイルが一旦削除されます。その後、allターゲットをダブルクリックすると、STM32のファームウェアとユーザプログラムがコンパイルされます。完了するまで少し時間がかかります。
③ユーザボタンを押しながらリセットボタンを押して、マイコンボードをDFUモードにします。
④Make Targetsビューのflashターゲットをダブルクリックします。これにより先ほどコンパイルされたプログラムがマイコンボードに書き込まれます。
⑤ユーザプログラムをスタートさせるため、リセットボタンを押して、マイコンボードをリセットします。
⑥動画通り動作していれば書込成功です。→詳細手順
6 シリアルポートを使う
STM32 Value line discovery以外のマイコンボードは、USBデバイスとしての開発ができます。ここではVCP(仮想COMポート)機能を使ってマイコンボードと通信します。
まず導入編:test_obled_toggleを見て、test_toggle_led_by_serialの動作を把握してください。
①VCPはドライバが必要です。ドライバは、このリンク先(http://www.st.com/stonline/products/support/micro/files/vcpdriver_v1.1_setup.zip又はhttp://miqn.net/files/vcpdriver_v1.1_setup.zip)からダウンロードします。解凍してインストールしてください。→詳細手順
②先ほどのtest_obled_toggleと同じ要領で、今度は、Sample-Projectプロジェクト内のtest_toggle_led_by_serialフォルダのコードをコピーします。
③VCPを有効にするため、makefileの以下の部分を以下の通り変更します。
# select serial port for debug
#USART1 = 1
#USART2 = 1
#USART3 = 1
#DCC = 1
VCP = 1# Uncomment below if you use USB
USE_USB = 1
③all_cleanを実行後、allを実行し、flashで書き込みます。

④test_obled_toggleが書き込んだマイコンボードをUSBでパソコンに接続すると、「新しいハードウェアの検出」ウィザードが始まりますので、「ソフトウェアを自動的にインストールする」を選択してインストールして下さい。

⑤Eclipseの画面下のTerminalビューを選択し、Settingボタンをクリックして、以下の情報を入力します。
Connection Type:Serial
Baud Rate:115200
Data Bits:8
Stop Bits:1
Parity:None
Flow Control:None
Timeout:5
PortはCOMポート番号をデバイスマネージャで確認して入力してください。
⑥OKをクリックすると、VCP経由で接続されます。ターミナル上で文字を入力して、エコーバックされてくるのを確認してください
VCPを使っている場合には、プログラムを開始した後に接続することになるので、プログラム開始時にマイコンボードがPCに送信している起動時メッセージ(動画でターミナルに表示されている「Hellow Cortex-M3/STM32 World!」の部分)は表示されません。これを表示させたい場合には、makefileの部分を以下のように修正して下さい。電源投入後、VCP経由で何らかのデータを送信した時点(ターミナル上でいずれかのキーを押した時点)で、プログラムがスタートするようになります。
# CPU can stop at start up until serial data send. This is for a wait until VCP connection.
STOP_AT_START_UP = -DSTOP_AT_STARTUP
7 その他のサンプルプログラム
以上の要領で、その他のサンプルプログラムも動作させることができます。試しにtest_obled_dimmingをコンパイルしてマイコンボードに書き込み、実行してみてください。動作は予め導入編:test_obled_toggleを見て把握しておいてください。ターミナルを接続しておくと、明滅のタイミングでメッセージを表示させられます。なおVCPを使用している場合には、USBを接続するまではプログラムがスタートしません。
環境の構築(+動作実験)はこれで完了です。
ステップで簡単環境構築
 「マイコン徹底入門」の導入編では、開発環境の構築方法を詳細に紹介しています。導入編をお読みいただければ設定の順序や各設定の意味もご理解いただけるはずです。ただ、なにぶん作業量が多く、途中で設定を失敗してしまう可能性がありますし、何より手間です。そこで開発環境を簡単に構築していただける設定済みファイルを用意しました。以下の手順を実行すれば、それだけで開発環境の構築が完了します。
 この設定済みファイルでは、マイコンボードとしてSTBee、書込方法としてDFUを使用することを前提にしています。他のボードや書込方法を使用する場合には、一旦このパッケージで環境を構築してから該当部分の設定を変更するか、導入編の手順に従って環境を構築してください。
2と3の手順については、この動画を参考にしてください。
1 ソフトウェアをインストールする
 Java/ツールチェイン(Codesourcery G++ Lite)/DfuSe(DFUドライバを同梱したDFU書込ツール)/DFUツール/Eclipseのインストールを行います。Java、ツールチェイン(Codesourcery G++ Lite)、DFU ドライバ、DFUツールは、インストーラーの指示通りインストールしてください。設定内容を変更する必要はありません。
・Javaはこのリンク先(http://www.java.com/ja/download/index.jsp)のページの「無料Javaのダウンロード」から「Version 6 Update 20」又はそれ以降のバージョンをダウンロードします。
・ツールチェインはこのリンク先(http://www.codesourcery.com/sgpp/lite/arm/portal/release1294)のページで「IA32 Windows Installer」を選択してダウンロードします。
・DfuSeはこのリンク先(http://www.st.com/stonline/products/support/micro/files/um0412.zip又はhttp://miqn.net/files/um0412.zip)からダウンロードします。
・DFUツールこのリンク先(http://miqn.net/files/dfutools.zip)からダウンロードします。
・Eclipseはここからダウンロードして、お使いのPCのルートディレクトリ直下(C:\miqnnet)に解凍してください。この圧縮ファイルにはEclipseと使用するプラグインが設定済みで収録されています。ダウンロードにあたっては、こちらの使用許諾条件を確認してください。
2 マイコンボードを接続する
 USBケーブルを使用して、PCとマイコンボードを接続します。買ったばかりのマイコンボードであればそのままつなげば構いません。一度でもプログラムを書き込んだことがあるボードの場合には、ユーザースイッチを押しながら接続するか、接続してからユーザースイッチを押しながらリセットボタンを押してください。
 接続すると、「新しいハードウェアが見つかりました」というポップアップメニューが現れ、「STM32 DFU」「STM Devide in DFU」が検出されます。DfuSeをインストールした際に、
にドライバがコピーされていますので、これを指定してインストールします。詳しい手順はこのページを参照してください。
3 ビルドして書き込む
 c:\miqnnet\eclipse\eclipse.exeを実行すると、Eclipseが起動するので、開発を始めることができます。
 この動画を参考にして、ビルドして書き込んでください。①使用するサンプルプログラムをSTM32プロジェクトに上書きコピー、②DEBUGターゲットをダブルクリックしてコンパイル、③ユーザースイッチを押しながらリセットスイッチを押してDFUモードにする、④FLASHターゲットをダブルクリックして書き込む、⑤マイコンボードをリセットするという順番です。
環境の構築(+動作実験)はこれで完了です。