ブートローダ付きファームウェアのインストール手順
1. はじめに
本ページでは通称 Blue Pillボード:ST社のARM Cortex-M3 STM32F103C8T6搭載ボードに「豊四季Tiny BASIC for Arduino STM32 V0.85 のブートローダ付ファームウェアをインストールする手順を解説します。
作業に必要なもの
☐ Blue Pillボード
☐ パソコン(ここではWindows 10を利用した方法を解説します)
☐ USB-シリアル変換モジュール(3.3V または5V):安価なCP2102搭載モジュールがおすすめです。 ☐ ジャンパーワイヤ(Blue Pill と シリアル - USBモジュール接続用)
☐ USBケーブル(micro USB接続用)
☐ ブレッド・ボード(必要に応じて)
2. 製品の動作確認
製品が安い分、検品に時間をかけていないようです。
ピンヘッダ、タクトスイッチ、8MHzクリスタル、BOOT選択ジャンパーヘッダ等の未実装の報告があります。
まずは、ボード上にちゃんとパーツが乗っているか確認しましょう。
付属品のピンヘッダ、ボード上にブート選択用のジャンパピンがあることも確認します。
https://gyazo.com/e0e30e87d28fb458aedaab17276fb986 https://gyazo.com/911339477b290858010cdc95ad617260
(注意) 写真の白角ボタンタイプの製品は、32.768kHzオシレータが逆向きについているものが流通しているようです。
32.768kHzの向きを示す黒丸の溝と文字の向きが次のものが正常です(下記は一旦取り外して付け直しています)。
https://gyazo.com/cf7bd4da75b62cde657de9143c40ee7f
パソコンにUSB接続します。
電源LED(PWR)が点灯し、PC13のLEDが点滅すればOKです。
https://gyazo.com/edc6c361907287b3ff9c00b68aa96b13
この時、パソコン上に「USBデバイスが認識されません」と表示される場合があります。
この段階では、これは正常です。
https://gyazo.com/878583ffc4c3f8bb9e602d1a3da53bae
3. TTBASIC STM32 V0.85 モジュールのダウンロード
下記のサイトを開きます。
https://gyazo.com/54cc973736b0d52885c10fb62b1e9057 https://gyazo.com/0387db3dd6b698497e25fe7f6c435f54
ページ右上の緑の①のボタン「Clone or download」をクリックし、②の「Download ZIP」をクリックします。
下記のリンクからもダウンロードできます。
保存先を指定して、ダウンロードします。
https://gyazo.com/7325b8c6546a72274201a0e1a941a4ca
エクスプローラでダウンロードしたttbasic_arduino-ttbasic_arduino_lcd_plus.zipのアイコンを選択し、
マウス右メニューの「プロパティ」でプロパティを開きます。
セキュリティの☑許可するにチェックを付けて、「適用」ボタンを押します。
この作業を行わないと、以降の作業でWindowsがセキュリティブロックしてコマンドを実行することができません。
https://gyazo.com/f0a500f48e71a7631e3ca0aa50d43a9b
保存したファイルttbasic_arduino-ttbasic_arduino_lcd_plus.zipを解凍します。
Windowsでは「すべて展開」で解凍できます。
https://gyazo.com/97fb625afcf7ebf0c159d85d1f3a371b
4. ファームウェアの書込み
(1) Blue Pillボードとシリアル - USBモジュールを接続します。
USB-シリアル変換モジュールはパソコンに接続して通信可能な状態にします。
USB-シリアル変換モジュールを初めて使用する場合は自動でドライバーがダウンロードされてインストールされます。
Blue Pillボードは、ピンヘッダを半田付し、ブレッドボードに乗せて接続します。
Blue Pillボードへの電源供給は、USB-シリアル変換モジュールからでも構いません。
https://gyazo.com/7e6fc1db5643b4c44f03245387694603
つぎのような感じで、ピンヘッダを取り付けずに仮接続するのも手軽かもしれません。
電源もUSB-シリアル変換モジュールから供給してます。
https://gyazo.com/a5435a36b84f21ac9ddc0198ec77e6b9 https://gyazo.com/ee07a6c8e4d02f5d49948c13d6740bee
Blue PillボードのBOOTヘッダは次のように設定します。
BOOT0:1
BOOT1:0
https://gyazo.com/fddcb3da2ac97b06e8995ddbd45ddb68
USB-シリアル変換モジュールとの結線
https://gyazo.com/55ba1518a1c4653ca26cdae8dddee2b2
Blue PillボードのA9、A10ピンは5Vトレラント(5V電圧利用可能)です。利用するUSB-シリアル変換の信号出力が3.3Vではなく、5Vでも利用可能です。
(2) USB-シリアル変換モジュールのシリアル・ポートを確認します。
パソコン上で、コマンドプロンプトを開き、modeコマンドにてシリアル - USBモジュールを抜いた状態と、接続した状態を比べて、追加されたシリアル・ポートを確認します。
コマンドプロンプトは、エクスプローラのパス入力フィールドにcmdと入力し、Enterキーを押すと開くことが出来ます。
https://gyazo.com/5efda42f27d6567e9580fb765d755c4f
modeコマンドを実行すると、COM9と確認できます(環境により数字が異なります)。
https://gyazo.com/183dea07ab01fb3e2cff448585a5a687
(3)バッチファイルコマンドの修正
解凍したフォルダの「ttbasic_arduino-ttbasic_arduino_lcd_plus\bin\PlusBootloader」を開きます。
https://gyazo.com/7c7c4e5750efb51b1f1c8d412790cbaa
ttwrite.batをメモ帳で開きます。
COM5を(2)で調べたシリアル・ポートに変更し、上書き保存します。
code:ttbtwrite.bat
set dev=COM9
stm32flash.exe -b 115200 -f -v -w %1 %dev%
(4)ファームウェアの書き込み
PlusBootloaderフォルダには7種類のファームウェアがあります。
boot_ttbasic_NTSC.bin NTSC版(NTSCビデオ出力利用環境用)
boot_ttbasic_OLED_SH1106_I2C.bin OLED I2C版(OLED SH1106 I2C接続モジュール利用環境用)
boot_ttbasic_OLED_SSD1306_I2C.bin OLED I2C版(OLED SSD1306/1309 I2C接続モジュール利用環境用)
boot_ttbasic_OLED_SH1106_SPI.bin OLED SPI版(OLED SH1106 SPI接続モジュール利用環境用)
boot_ttbasic_OLED_SSD1306_SPI.bin OLED SPI版(OLED SSD1306/1309 SPI接続モジュール利用環境用)
boot_ttbasic_TFT.bin TFT版(ILI9341 SPI接続モジュール利用環境)
boot_ttbasic_Serial.bin USBシリアル・コンソール版
ここでは、「USBシリアル・コンソール版(boot_ttbasic_Serial.bin)」を利用する場合について説明します。
他のファームウェアを使う場合も、書き込み方法は同じです。
書き込みたいファームウェア boot_ttbasic_Serial.binのアイコンを、ttwrite.batのアイコンの上にドラッグ&ドロップします。
これにより、ファームウェアの書き込みが行われます。
https://gyazo.com/4edf3bb5c65340bb374d29e951567662
書込み中は次のような画面が表示され、書き込み中の進捗が表示されます。
https://gyazo.com/1620dc25138273b5c98bccde3c529110
書込みが完了したら、BOOTジャンバの設定を戻して下さい。
(5)ドライバーソフトのインストール
Arduino STM32モジュールを下記のリンクからダウンロードします。
(最新版ではなく、安定版Arduino_STM32-R20170323.zip(R20170323)を使用します)
ダウンロードしたArduino_STM32-R20170323.zipのセキュリティを修正します。
マウス右メニューの「プロパティ」でプロパティを開きます。
セキュリティの☑許可するにチェックを付けて、「適用」ボタンを押します。
この作業を行わないと、以降の作業でWindowsがセキュリティブロックしてコマンドを実行することができません。
https://gyazo.com/46629cc4536cf15e5102098085c78ea5
Arduino_STM32-R20170323.zipを解凍します。
エクスプローラで解凍したフォルダのArduino_STM32-R20170323\Arduino_STM32-R20170323\drivers\winを開きます。
https://gyazo.com/38b4cd1adb02092d3f3af953c5b51bf0
フォルダ内のinstall_drivers.batをダブルクリックして実行します。
これにより、Blue PillボードをUSB接続で利用することが出来るようになります。
シリアル - USBモジュールはパソコンから抜いて下さい。
解凍したフォルダArduino_STM32-R20170323は、ArduinoにてSTM32のスケッチ開発を行いたい場合は、
Arduinoのhardwareフォルダに配置することで利用可能になります。
5. 動作確認
ここでは、ターミナルソフト TeraTermを使って簡単なプログラムを作成し実行してみます。
TeraTermは下記のリンク先から入手可能です。
7種類のファームウェアすべて、シリアル経由の利用をサポートしています。
(1)USB接続のシリアルポートを確認にます。
Blue Pill ボードをUSBケーブルにてパソコンと接続します。
この状態で、コマンドプロンプトで新たに追加されたシリアルポートを確認します。
https://gyazo.com/bc8a1b0ca5ff0cf9fae27abbf0722176
Blue PillボードはCOM4で接続していることが分かります。
(認識されるシリアルポートは環境によって異なります)
(2)TeraTermでBlue Pillボードにシリアル接続します。
次の設定を行います。
①通信条件の設定
TeraTerm の設定は、メニュー :[設定] - [シリアルポート]から[シリアルポート設定]画面を開いて行います。
https://gyazo.com/383c41107b6e6f54d2feba9b0d0bd7e7
ボート:(2)で確認したポートを指定
ボー・レート 115200(任意)
データ長 8 bit
パリティビット 無し
ストップビット 1bit
フロー制御 無し
②言語等に関する設定
メニュー :[設定] - [全般設定] - [全般設定] 画面 の設定
「豊四季Tiny BASIC for Arduino STM32」には1 バイトコードの半角カタカナの利用をサポートします。
半角カタカナ利用のためには、利用する文字列コードとしてシフトJIS を指定します。
https://gyazo.com/dfa3208e71054de30e043ebfac2ee31e
③端末の設定
メニュー :[設定] -[端末] - [端末の設定] 画面 の設定
https://gyazo.com/059f3a324f942e745912bcd823773967
漢字-受信 :SJIS
漢字-受信 :SJIS
改行コード 受信:AUTO、送信 CR
ウィンドウサイズ:☑チェックを入れる
(3)TeraTerm上での動作確認
Blue Pill ボードのリセットボタン押すと、次の画面表示になります。
https://gyazo.com/1165aaa8ee9c061a88a1aebbacc112f7
次のプログラムを入力すます。
ソースをコピー&ペーストしてもOKです。
code:hello.bas
10 for i=1 to 10
20 print "Hello,World"
30 next i
runと入力しEnterキーを押してプログラムを実行します。
https://gyazo.com/c00a98e120d48378cb9ce4fd8fc9f2bf
これでインストール終了です。
ボードは、こんな感じにすると使いやすいです。
底にはダイソーで買った家具の底に貼る床傷付け防止パッドを切って貼っています。
https://gyazo.com/304ca89e82a5e37af07b701727b63f52
関連情報