STM32のロゴ

STM32F103C8T6 最小システム開発ボード

STM32F103C8T6-最小システム開発ボード製品

製品情報

STM32F103C8T6 ARM STM32 最小システム開発ボード モジュールは、STM32F103C8T6 マイクロコントローラをベースとした開発ボードです。 Arduino IDE を使用してプログラムできるように設計されており、さまざまな Arduino クローン、バリエーション、ESP32 や ESP8266 などのサードパーティ ボードと互換性があります。

Blue Pill Boardとしても知られるこのボードは、Arduino UNOよりも約4.5倍高い周波数で動作します。 さまざまなプロジェクトに使用でき、TFT ディスプレイなどの周辺機器と接続できます。

このボードでプロジェクトを構築するために必要なコンポーネントには、STM32 ボード、FTDI プログラマ、カラー TFT ディスプレイ、プッシュ ボタン、小型ブレッドボード、ワイヤ、パワー バンク (スタンドアロン モードの場合はオプション)、および USB - シリアル コンバータが含まれます。

回路図

STM32F1 ボードを 1.8 ST7735 ベースのカラー TFT ディスプレイおよびプッシュ ボタンに接続するには、提供されている回路図に記載されているピン間の接続に従ってください。

STM32 用の Arduino IDE のセットアップ

  1. ArduinoIDEを開きます。
  2. [ツール] -> [ボード] -> [ボード マネージャー] に移動します。
  3. 検索バーのあるダイアログボックスで「STM32F1」を検索し、対応するパッケージをインストールします。
  4. インストール手順が完了するまで待ちます。
  5. インストール後、Arduino IDE ボード リストで STM32 ボードを選択できるようになります。

Arduino IDEを使用したSTM32ボードのプログラミング

Arduino IDE は、その誕生以来、Arduino クローンやさまざまなメーカーのバリエーションから ESP32 や ESp8266 などのサードパーティ ボードに至るまで、あらゆる種類のプラットフォームをサポートしたいという願望を示してきました。 より多くの人が IDE に慣れるにつれて、ATMEL チップに基づいていないボードをサポートし始めています。今日のチュートリアルでは、そのようなボードの 32 つを見ていきます。 Arduino IDE を使用して STM32 ベースの STM103F8C6TXNUMX 開発ボードをプログラムする方法を検討します。

STM32F103C8T6-Minimum-System-Development-Board-fig-1

このチュートリアルで使用する STM32 ボードは、PCB の青色に合わせて一般に「Blue Pill」と呼ばれる STM32F103C8T6 チップベースの STM32F1 開発ボードです。 Blue Pill は、32MHz で動作する強力な 32 ビット STM103F8C6T72 ARM プロセッサを搭載しています。 ボードは 3.3V ロジック レベルで動作しますが、GPIO ピンは 5V 耐性であることがテストされています。 ESP32 や Arduino のような WiFi や Bluetooth は搭載されていませんが、20KB の RAM と 64KB のフラッシュ メモリを備えているため、大規模なプロジェクトには十分です。 また、37 個の GPIO ピンも備えており、そのうち 10 個は ADC が有効になっているためアナログ センサーに使用でき、その他のピンは SPI、I2C、CAN、UART、DMA に有効になっています。 約 3 ドルのボードとしては、これが素晴らしいスペックであることに同意していただけるでしょう。 これらの仕様を Arduino Uno と比較した要約版を下の画像に示します。

STM32F103C8T6-Minimum-System-Development-Board-fig-2

上記の仕様に基づくと、今日のチュートリアルでは、Blue Pill の動作周波数は Arduino UNO の約 4.5 倍です。ampSTM32F1 ボードの使用方法については、1.44 インチ TFT ディスプレイに接続し、「Pi」定数を計算するようにプログラムします。 ボードが値を取得するまでにかかった時間を記録し、Arduino Uno が同じタスクを実行するのにかかる時間と比較します。

必要なコンポーネント

このプロジェクトをビルドするには次のコンポーネントが必要です。

  • STM32ボード
  • FTDIプログラマー
  • カラーTFT
  • プッシュボタン
  • 小さなブレッドボード
  • ワイヤー
  • パワーバンク
  • USB シリアルコンバータ

いつものように、このチュートリアルで使用されるすべてのコンポーネントは、添付のリンクから購入できます。 ただし、パワーバンクが必要になるのは、プロジェクトをスタンドアロン モードで展開する場合のみです。

回路図

  • 前述したように、STM32F1 ボードをプッシュ ボタンとともに 1.8 インチ ST7735 ベースのカラー TFT ディスプレイに接続します。
  • 押しボタンは、ボードに計算の開始を指示するために使用されます。
  • 以下の回路図に示すようにコンポーネントを接続します。

STM32F103C8T6-Minimum-System-Development-Board-fig-3

接続を簡単に再現できるように、STM32 とディスプレイ間のピン間の接続について以下に説明します。

STM32 – ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

少し難しくなりがちなので、接続をもう一度確認して、すべてが適切であることを確認します。 これが完了したら、Arduino IDE でプログラムできるように STM32 ボードのセットアップに進みました。

STM32 用の Arduino IDE のセットアップ

  • Arduino 製ではないほとんどのボードと同様に、ボードを Arduino IDE で使用するには、事前に少しのセットアップを行う必要があります。
  • これにはボードの取り付けが含まれます file Arduino Board Manager を経由するか、インターネットからダウンロードしてコピーします。 files をハードウェアフォルダーに入れます。
  • ボード マネージャーのルートはそれほど面倒ではありません。STM32F1 がリストされているボードの 32 つであるため、このルートを選択します。 まず、STMXNUMX ボードのリンクを Arduino 設定リストに追加します。
  • へ移動 File -> 「設定」にこれを入力します URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json 以下に示すようにボックスに「」を入力し、「OK」をクリックします。

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • 次に、「ツール」->「ボード」->「ボード マネージャー」に移動すると、検索バーのあるダイアログ ボックスが開きます。 検索する STM32F1 および対応するパッケージをインストールします。

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • インストール手順には数秒かかります。 その後、Arduino IDE ボード リストでボードを選択できるようになります。

コード

  • コードは、Arduino プロジェクトの他のスケッチを書くのと同じ方法で書かれますが、唯一の違いはピンの参照方法です。
  • このプロジェクトのコードを簡単に開発できるようにするために、標準の Arduino ライブラリを STM32 と互換性を持たせるために変更した XNUMX つのライブラリを使用します。
  • Adafruit GFX ライブラリと Adafruit ST7735 ライブラリの修正バージョンを使用します。
  • どちらのライブラリも、それらに添付されたリンクを介してダウンロードできます。 いつものように、コードを簡単に説明します。
  • コードを開始するには、使用する XNUMX つのライブラリをインポートします。

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • 次に、LCD の CS、RST、DC ピンが接続される STM32 のピンを定義します。

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • 次に、後でコード内で XNUMX 進値ではなく名前で色を簡単に使用できるように、いくつかの色の定義を作成します。

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • 次に、ボードに実行させる反復回数と、使用するプログレス バーの更新期間を設定します。

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • これが完了すると、プロジェクト全体を通じて表示を参照するために使用される ST7735 ライブラリのオブジェクトが作成されます。
  • また、プッシュボタンが接続されている STM32 のピンを示し、その状態を保持する変数を作成します。

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • これが完了したら、 void setup() 関数に進みます。
  • まず、プッシュボタンが接続されているピンの pinMode() を設定し、プッシュボタンが押されるとグランドに接続されるため、ピンの内部プルアップ抵抗をアクティブにします。

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • 次に、シリアル通信と画面を初期化し、ディスプレイの背景を黒に設定し、print() 関数を呼び出してインターフェイスを表示します。

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • 次は void loop() 関数です。 void ループ関数は、ライブラリ/関数を使用することで非常にシンプルで短くなります。
  • まず、押しボタンの状態を読み取ることから始めます。 ボタンが押された場合は、removePressKeyText() を使用して画面上の現在のメッセージを削除し、drawBar() 関数を使用して変化するプログレス バーを描画します。
  • 次に、計算開始関数を呼び出して、Pi の値と計算にかかった時間を取得して表示します。

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • プッシュボタンが押されていない場合、デバイスはアイドル モードのままで、操作するにはキーを押すよう要求する画面が表示されます。

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • 最後に、ループの最後にディレイを挿入して、「ループ」をスケッチする前に少し時間を与えます。

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • コードの残りの部分は、バーの描画から円周率の計算までのタスクを実行するために呼び出される関数です。
  • これらの機能のほとんどは、ST7735 ディスプレイの使用を含む他のいくつかのチュートリアルで説明されています。

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • プロジェクトの完全なコードは以下から入手でき、ダウンロード セクションの下に添付されています。

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

STM32 へのコードのアップロード

  • STM32f1 へのスケッチのアップロードは、標準の Arduino 互換ボードに比べて少し複雑です。 コードをボードにアップロードするには、FTDI ベースの USB-シリアル コンバータが必要です。
  • 以下の回路図に示すように、USB - シリアル コンバータを STM32 に接続します。

STM32F103C8T6-Minimum-System-Development-Board-fig-35

接続のピン間のマップは次のとおりです。

FTDI – STM32

  • これが完了したら、ボードの状態ジャンパの位置を XNUMX に変更し (下の gif を参照)、ボードをプログラミング モードにします。
  • この後、ボードのリセット ボタンを XNUMX 回押すと、コードをアップロードする準備が整います。

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • コンピュータ上で、必ず「汎用 STM32F103C ボード」を選択し、アップロード方法としてシリアルを選択してから、アップロード ボタンを押してください。

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • アップロードが完了したら、状態ジャンパを の位置に変更します。 「お」 これによりボードが「実行」モードになり、アップロードされたコードに基づいて実行が開始されるはずです。
  • この時点で、FTDI を切断し、USB 経由でボードに電力を供給できます。 電源投入後にコードが実行されない場合は、ジャンパが適切に復元されていることを確認し、ボードに電源を再投入してください。

デモ

  • コードが完成したら、上記のアップロード プロセスに従って、コードをセットアップにアップロードします。
  • 以下の画像に示すように、表示が表示されるはずです。

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • プッシュボタンを押すと計算が開始されます。 最後まで進行状況バーが徐々にスライドしていくのが見えるはずです。
  • プロセスの最後に、Pi の値と計算にかかった時間が表示されます。

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • 同じコードが Arduino Uno に実装されています。 結果は下の画像に示されています。

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • これら 7 つの値を比較すると、「Blue Pill」は Arduino Uno よりも XNUMX 倍以上高速であることがわかります。
  • これは、大量の処理と時間の制約を伴うプロジェクトに最適です。
  • ブルーピルの小さいサイズはアドバンとしても機能しますtagArduino Nanoよりも少しだけ大きいので、Nanoでは十分な速度が得られない場所でも使用できます。

ドキュメント / リソース

STM32 STM32F103C8T6 最小システム開発ボード [pdf] ユーザーマニュアル
STM32F103C8T6 最小システム開発ボード、STM32F103C8T6、最小システム開発ボード、システム開発ボード、開発ボード、ボード

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *