STM32搭載の中華マイコンボードにブートローダーを焼いてLチカ
2017/05/14
前回の記事に続き、今回はブートローダーを書き込んでみようと思います。
このブートローダーを焼き込むことによってArduino IDEで開発することができます。
用意したもの
マイコンボード本体以外に用意したものです。
USB-シリアル変換ボード
簡単にいうと信号を変換するボードです。
FT231やFT232などを搭載した様々なボードが売られていますが、私はスイッチサイエンスの商品を使いました。
この商品はピンヘッダが実装されていない状態なので、はんだ付けがあまり得意じゃなかったり面倒な人はピンヘッダが実装された商品のほうがいいとおもいます。
また、ドライバーは商品ページにリンクがあります。
FLASHER-STM32
ST micro社謹製のツールで、こちらからダウンロードできます。
メールアドレスを入力するとダウンロード用のURLが送られてきます。
BootLoaderファイル
今回の工程で最も重要なファイルです。このブートローダーを書き込むことで、マイコンボードをArduinoのように扱うことができます。
こちらのプロジェクトの、generic_boot20_pa1.binを使用しました。
その他
これらのファイルの他に、ブレッドボードや接続用のジャンパ線、microB-USBとminiB-USBのケーブルを用意しました。
シリアル変換ボードとマイコンボードの接続
ブートローダーを書き込むためには、まずシリアル変換ボードとマイコンボードを以下のようなアサインで接続します。
シリアル変換ボード | マイコンボード |
5Vo | 5V |
3.3Vo | 3V3 |
RX | TX |
TX | RX |
GND | GND |
結線後、シリアル変換ボードとPCとをmicroUSBケーブルで接続すれば、ブートローダーを書き込む準備が整います。
ブートローダーの書き込み
FLASHER-STM32を起動し、PortNameをシリアル変換ボードのポートにセットしNextを押して次の画面へ進むと青信号のようなマークが現れます。これは書き込みができるということのようで、プロテクトがかかっていると赤信号のマークが表示されるようです。
次の画面で、書き込みたいブートローダーのファイルを選択します。ラジオボタンをDownload to deviceにセットしファイルを指定します。
ファイルを指定してNextを押すと書き込みが始まります。
書き込み中は、シリアル変換ボードのLEDが点灯し、シリアル信号が送受信されていることがわかります。
書き込みは数秒で、ステータスバーに「Download operation finished successfully」と表示されれば完了です。
ブートローダーを書き込んだ後のマイコンボード
ブートローダーを書き込んだ後のマイコンボードはArduinoのように扱うことができますがArduinoのドライバーでこのボードを認識できません。
PCにドライバーのインストールが必要で、ArduinoIDEも設定が必要です。
ArduinoIDEの設定
こちらの手順通りに設定しました。
ソースコード・LEDとの接続・書き込み
Lチカのソースコードは、ArduinoIDE備え付けてあるスケッチブックの例をすこし書き換えます。
ArduinoIDEのファイル>スケッチブックの例>01.Basics>Blinkを開き、コード上の13をすべてPA1に書き換えます。
マイコンボードからブレッドボードにジャンパ線を引き出し、PA1から1kΩ抵抗を介しLEDと接続してLEDのカソード側をマイコンボードのGNDと接続します。
ソースコードは通常のArduinoに書き込む手順と同様で、通常のArduinoへの書き込みよしすこし時間がかかります。
書き込みが終了すると、画像のようにLEDが点灯します。
点灯しない場合、開発環境によってはマイコンボードの再起動が必要なこともあるようです。
純正Arduinoとの互換性について
このようにLチカはできましたが、PWMやタイマーについては検証していません。
これらについては、検証後記事を書こうとおもいます。