- 必要な材料
- 回路図
- MapleブートローダーをSTM32開発ボードにアップロードする
- ArduinoIDEの準備とドライバーのインストール
- USBポートを介して直接STM32(ブルーピル)をプログラミング
STM32開発ボードの住宅 STM32F103C8マイクロコントローラは、そのARMのCortex M3アーキテクチャにますます人気のおかげを取得しているが、それは高い動作速度とより多くのペリフェラル・オプションを持っています。また、このボードはArduino IDEを使用して簡単にプログラミングできるため、多くの愛好家やエンジニアにとって、迅速なプロトタイピングに適した選択肢となっています。
前のチュートリアルでは、STM32開発ボードの基本を学び、LEDを点滅させるようにプログラムしました。しかし、それには1つの大きな欠点がありました。ボードをプログラムするために、FTDIプログラマーモジュールを利用し、コードのアップロードとテスト中にブート0ジャンパーと1の位置を切り替える必要がありましたが、これは確かに困難な作業です。また、開発ボードのミニUSBポートは完全に未使用のままでした。その理由は、STM32開発ボードを購入した 場合、Arduino対応のブートローダーが付属していない ため、USB経由で接続したときにボードがコンピューターによって検出されないためです。
うまくいけば、 Mapleミニボード用に LeafLabs によって開発された実験的なブートローダーが存在します 。このブートローダーは一度STM32にフラッシュすることができ、その後はSTM32ボードのUSBポートを直接使用して、他のArduinoボードと同じようにプログラムをアップロードできます。ただし、このブートローダーは、このチュートリアルの文書化の時点ではまだ開発段階にあり、重要なアプリケーションにはお勧めできません。このチュートリアルに進む前に、前のチュートリアルを読んで、仕様やピン配置の詳細など、このボードの基本を理解していることを確認してください。
必要な材料
- STM32 –(BluePill)開発ボード(STM32F103C8)
- FTDIプログラマー
- ブレッドボード
- 接続線
- インターネット付きノートパソコン
回路図
USBポート を介してSTM32Blue Pillボードを直接プログラムするには、最初にMapleブートローダーをMCUにフラッシュする必要があります。これを行うには、シリアルFTDIボードを使用する必要があります。このボードは、以下に示すようにSTM32のRxピンとTxピンに接続されています。
FTDIボードのVccピンは、ボードの電源のSTM325Vピンに接続されています。アースはSTM32のアースに接続されています。FTDIボードのRxピンとTxピンは、それぞれSTM32のA9ピンとA10ピンに接続されています。ここで、A9はSTM32 MCUのTxピンであり、A10はRxピンです。
ブートローダーをアップロードするときは、ボードのブート0ジャンパーピンが1(プログラミングモード)に設定されていることを確認してください。ブートローダーがフラッシュされると、このピンを初期位置に戻すことができます(動作モード)。
MapleブートローダーをSTM32開発ボードにアップロードする
上記の接続が完了したら、FTDIボードをコンピューターに接続し、手順に従ってブートローダーをSTM32にフラッシュします。
ステップ1: githubページからブートローダープログラムファイルのバイナリ(binファイル)をダウンロードする必要があります。binファイルには多くのバージョンがあります。BluePillボードの場合、このgithubリンクを使用し、ダウンロードボタンをクリックしてbinファイルをダウンロードします。
ステップ2: 次に、ダウンロードしたbinファイルをSTM32にフラッシュするために、STMフラッシュローダーソフトウェアをダウンロードしてインストールする必要があります。このリンクをクリックしてSTWebサイトにアクセスし、一番下までスクロールして[ソフトウェアの入手]をクリックします。
ステップ3:ソフトウェアをダウンロードするには、電子メールアドレスを入力する必要があり、ダウンロードリンクが電子メールに送信されます。次に、リンクをたどってWebサイトに戻り、[ソフトウェアの入手]をもう一度クリックすると、ダウンロードが開始されます。はい、それは少しイライラしますが、これはそれが行われるべき方法です。スパムフォルダで電子メールを確認することを忘れないでください。電子メールが届くまでに数分かかる場合があります。
ステップ4:ソフトウェアをダウンロードしてインストールしたら、STM32ボードがFTDIボードを介してコンピューターに接続されていることを確認してから、ソフトウェアを起動します。デバイスマネージャを使用しない場合、ソフトウェアはCOMポートを自動的に検出し、正しいCOMポート番号を選択していることを確認します。私の場合はCOM4です。残りの設定は以下のようにしておきます。
ステップ5: [次へ]ボタンを2回クリックすると、ソフトウェアがボードの詳細を自動的に検出し、次のように表示されます。使用しているボードは、128Kフラッシュメモリを搭載したSTM32F1です。
ステップ6: 次のステップで、[デバイスにダウンロード]を選択し、ステップ1でbinファイルをダウンロードした場所を参照して選択します。次をクリックします。
ステップ7: ソフトウェアは、以下に示すようにいくつかの必要なファイルをダウンロードしてから、フラッシュのプロセスを開始します。
ステップ8: フラッシュが正常に完了すると、以下の画面が表示されます。[閉じる]をクリックして、アプリケーションを終了します。ArduinoブートローダーでSTM32ボードを正常にフラッシュしました。次に、STM32ボードをプログラムする前に、Arduino IDEを準備し、ドライバーをインストールする必要があります。
ArduinoIDEの準備とドライバーのインストール
以下の手順に従って、STM32開発ボードで使用するArduinoIDEをダウンロードして準備します。
ステップ1: -Arduino IDEをまだインストールしていない場合は、このリンクからダウンロードしてインストールします。正しいオペレーティングシステムを選択していることを確認してください。
ステップ2: -Arduino IDEをインストールした後、STM32ボードに必要なパッケージを開いてダウンロードします。これは、 [ファイル]-> [設定]を 選択することで実行できます 。
ステップ3: -[設定]をクリックすると、以下に示すダイアログボックスが開きます。追加のBoardsManager URLテキストボックスに、以下のリンクを貼り付けます
dan.drown.org/stm32duino/package_STM32duino_index.json
OKを押します。
ステップ4: - [ツール]-> [ボード]-> [ボードマネージャー]に移動し ます。これにより、[ボードマネージャー]ダイアログボックスが開き、「STM32F1」を検索して、表示されるパッケージをインストールします。
ステップ5: パッケージがインストールされたら、C:\ Program Files(x86)\ Arduino \ hardware \ Arduino_STM32-master \ drivers \ winに移動します。ここには、 install_drivers.bat と install_STM_COM_drivers.batがあり ます。
ステップ6: 両方のbatファイルをクリックして、ドライバーをインストールします。以下に示すようなDOS画面が表示されます。
これで、Arduino IDEがSTM32(Blue Pill)開発ボードをプログラミングする準備が整い、ドライバーもインストールされました。
USBポートを介して直接STM32(ブルーピル)をプログラミング
STM32からFTDIボードと既存のすべての接続を削除します。以下に示すように、STM32ボードのマイクロUSBポートを使用して、コンピューターに接続するだけです。ジャンパー0ピンが0 (動作モード)に戻っていることを確認してください 。今後、プログラムをアップロードして実行するためにジャンパーを切り替える必要はありません。
これで、コンピュータがボードを検出できるようになります。追加のドライバーがインストールされている場合は、しばらく待ちます。次に、 デバイスマネージャに移動し 、以下に示すように、STM32ボードがCOMおよびポートセクションで検出されているかどうかを確認します。鉱山はMapleMiniという名前でCOM8に接続されています。
以下に示すように、[ツール]に 移動し 、下にスクロールしてGenericSTM32F103Cシリーズを見つけます。次に、バリアントが 64kフラッシュタイプ 、CPU速度が 72MHz であることを確認し、アップロード方法を STM32duinoブートローダーに 変更し ます。また、デバイスマネージャーのポートに応じて正しいCOMポートを選択します。
すべての変更が行われた後、Arduino IDEの右下隅を確認すると、次の設定が設定されていることがわかります。私のSTM32ボードはCOM8に接続されていますが、あなたのボードは異なる場合があります
これで、ArduinoIDEはSTM32ブルーピル開発ボードをプログラムする準備が整いました。サンプル点滅プログラムをArduinoIDEからSTM32Blue Pillボードにアップロードして、すべてが正しく機能していることを確認しましょう。サンプルプログラムは次の場所にあります。
開いたサンプルプログラムでは、 小さな変更を加える必要があります。デフォルトでは、プログラムはPB1用に作成されますが、ボード上ではオンボードLEDがPC13に接続されている ため、すべてのPB1をPC13に置き換えれ ば、続行できます。 完全なプログラム例 修正さも、このページの下部に見つけることができます。
ループ 関数内のコード のみを以下に示します。ここでは、PC13ピンが1000ミリ秒の間HIGH(オン)に保たれ、さらに1000ミリ秒の間LOW(オフ)になっていることがわかります。これは、 ループ 関数。したがって、LEDは1000ミリ秒の間隔で点滅しているように見えます。
digitalWrite(PC13、HIGH); // LEDをオンにします(HIGHは電圧レベルです) delay(1000); // 2番目の digitalWrite(PC13、LOW);を 待ちます //電圧を低くしてLEDをオフにしますdelay(1000); // 1秒待ちます
Arduino IDEのアップロードボタンを押すと、プログラムがコンパイルされてアップロードされます。すべてが期待どおりに機能した場合は、ArduinoIDEコンソールに次のように表示されます。
プログラムが正常にアップロードされると、 下のビデオに示すように、緑色のLEDが1秒間隔で点滅するはず です。プログラムをいじって、遅延を増減することもできます。これで、他のArduinoボードと同じようにSTM32(Blue Pill)開発ボードの使用を開始できます。つまり、ジャンパーの位置を変更したり、プログラムのアップロードやテストに外部ハードウェアを使用したりする必要がなくなります。
チュートリアルを理解し、STM32ボードを使い始めるのに役立つことを願っています 。問題がある場合は、コメントセクションに残してください。また、このSTM32ボードで今後どのプロジェクトを試すべきかを教えてください。