そこにいるほとんどの人にとって、彼らが取り組んだであろう最初の組み込み開発ボードは、おそらくArduinoボードでしょう。しかし、すべての人が同意できるように、Arduinoはこれまでのところしか連れて行けず、いつかネイティブのマイクロコントローラープラットフォームに移行する必要があります。このSTM32開発ボードを使用すると、ハードウェア側で役立つすべてのArduinoシールドをサポートでき、ソフトウェア側で役立つ多くのライブラリと関数が組み込まれているため、このプロセスをはるかに簡単にすることができます。また、STM32マイクロコントローラーに精通すると、以前に確認したSensorTile.BoxなどのSTの他の開発モジュールを簡単に探索するのに役立ちます。したがって、この記事では、このSTM32 Nucleo-64開発ボードを完全に見て、それらの使用方法を学びましょう。
現在、利用可能なSTM32ボードには多くのバージョンがあり、私の手にあるこの特定のボードはSTM32F401Nucleo-64と呼ばれています。STM32という名前は、開発ボードに32ビットマイクロコントローラーがあることを表し、Nucleo-64という名前は、マイクロコントローラーに64ピンがあることを表します。同様に、STM32F103、STM32F303などのNucleo 64ボードには他にも多くのバージョンがありますが、1つのボードについて学習すると、他のすべてのボードは非常によく似ています。
STM32 Nucleo64開発ボードハードウェアの説明
開発委員会の開封から始めましょう。ご覧のとおり、完全なパッケージは、開発ボードと指示カードのみで構成されています。インストラクションカードには、コントローラーの仕様とそのピン配置が記載されており、裏面には、開始方法と利用可能なツールチェーンオプションに関する情報があります。
ボードを詳しく見ると、ボードが2つの領域に分割されていることがわかります。上のセクションはST-Link / V2デバッガーとプログラマーで、下のセクションは実際の開発ボードです。このようにして、ボードのUSBミニポートに接続できる追加のUSBケーブルを使用するだけで、ボードを箱から出して簡単にプログラムおよびデバッグできます。
一見すると、ボードにはジャンパーとコンポーネントがたくさんあるように見えるかもしれませんが、それらはすべて私たちにとって物事を簡単にするためにあります。ボードCN11とCN12のいずれかの側にある2つのジャンパーは、実際にはダミージャンパーです。これらのジャンパーは、将来必要になった場合に他の目的に使用できます。 CN2の2つのジャンパーは、プログラマーとデバッガーのセクションを開発ボードに接続するために使用されます。将来的には、これらのジャンパーを取り外して、これらのピンを介して他のSTマイクロコントローラー用のプログラマーを使用することができます。また、このコネクタピンJP1を閉じると、USB電流を100mAに制限できます。開いたままにすると、最大電流は300mAになります。ここにはトリコロールLED(LD1)があり、ボードの電源が入ると赤になり、ボードが正常にプログラムされると緑に変わり、通信障害が発生するとオレンジに変わります。
開発セクションに移ると、ここに最も重要なコンポーネントであるSTM32F401RET6マイクロコントローラーがあります。これは、84MHzで動作するARM CortexM4プロセッサを搭載した64ピン32ビットマイクロコントローラです。また、512Kbフラッシュと96KBSRAMを備えています。マイクロコントローラーには、16ビットと32ビットのタイマーが10個と、12ビットADCが1個あります。また、外部通信用に3つのUSART、3つのI2C、4つのSPI、および1つのUSB2.0があります。 STM32F401データシートを確認して、より多くの技術情報を入手できます。
先ほどお話ししたように、ボードはすべてのArduinoシールドをサポートしています。ボードには2セットのコネクタがあります。下の画像に示すように、メスのピンはESP8266Wi-FiシールドとSemtechArduinoLoRaシールドに完全に適合するArduinoシールド用です。
他のオスはSTモルフォピンと呼ばれ、64ピンマイクロコントローラーのリーミングピンを利用するために使用できます。次に、ここにリセットボタンと、ピンPC13に接続されているユーザー設定可能なボタンと、Arduinoと同じようにピンD13に接続されているLEDがあります。ボードに電力を供給するために、USBポートを使用するか、安定化された5VをE5Vまたはここの5Vピンに直接供給することができます。このジャンパーを変更して、ボードにどのように電力を供給しているかを示すことを忘れないでください。U5Vは、ボードがUSBから給電されていることを示します。また、IDDと呼ばれるもう1つの興味深いジャンパーピンがあります。これを使用して、電流計をこれらのピンに接続することにより、マイクロコントローラーが消費している電流を測定できます。
STM32 Nucleo64開発ボードのプログラミング
ソフトウェアのセクションでは、ボードには膨大なライブラリとプログラミングサポートがあり、Keil、IARワークベンチおよび他の多くのIDEを使用してプログラミングできます。しかし、興味深いのは、それがサポートしていることであるARM MBEDとSTM32Cube開発環境を。この記事のために、オンラインツールであるARM Mbedプラットフォームを使用することにしました。また、STボードだけでなく、ARMマイクロコントローラーを使用する他の多くの開発ボードも使用できるため、非常に興味深いと思いました。
初めての方のために、ARM MBEDはARM自体が提供するオンライン開発プラットフォームであり、組み込みオペレーティングシステム、クラウドサービス、およびセキュリティ機能を提供して、IoTベースの組み込みソリューションを簡単に作成します。これは巨大なオープンソースコミュニティであり、詳細を知るには別の記事が必要になります。
STM32F401入門
ただし、開始するには、USBミニケーブルを使用してSTM32開発ボードをコンピューターに接続します。電源を入れると、LD1とLD3のLEDが赤く点灯し、プログラム可能なLEDLD2がこのように緑色に点滅します。
また、「NODE_F401RE」と呼ばれる新しいフラッシュドライブがコンピュータに表示されます。それを開くと、以下に示すように、details.txtとmbed.htmの2つのファイルがあります。
Mbed.htmファイルを起動して、armMbedを使用してボードのオンラインプログラミングを直接開始できます。しかし、そこに着く前に、必要なドライバーをインストールし、Mbedにサインアップしました。STSW-link009ドライバーソフトウェアを検索し、ST Webサイトから直接ダウンロードし、ドライバーをインストールして、ここに示すように、デバイスマネージャーでデバイスが正しく検出されることを確認します。
mbedプラットフォームに戻り、資格情報を使用してMBED.comにサインアップします。次に、MBED.HTMファイルをクリックすると、次のページが表示されます。
下にスクロールして、「OpenMbedcompiler」をクリックします。ご覧のとおり、コンパイラはすでにプラットフォームをNucleo-F401REとして認識しており、多くの基本的なサンプルプログラムを提供しています。とりあえず、「LED点滅コード」を選択して、押しボタンを押すたびにLEDが消灯するように変更します。
以下に示すようにコードの準備ができたら、コンパイルボタンをクリックしてbinファイルを提供します。binファイルをコピーしてフラッシュドライブに貼り付けるだけで、ボードをプログラムできます。プログラミングが完了すると、LD1LEDが緑色に変わります。青いボタンを押すと、緑色のLEDがオフになります。そのように、ボードのさまざまな機能を学ぶために、サンプルプログラムのいずれかを試すことができます。メインページに戻って、他の技術文書やコミュニティサポートを入手することもできます。
このページの下部にリンクされているビデオを見て、このボードのレビュー全体を表示することもできます。
結論
全体として、これらのボードは、スキルをレベルアップして高度なアプリケーションを開発しようとしている場合に最適な選択肢だと思います。実用的なハードウェアサポートとオンラインコミュニティにより、これらのボードの学習曲線も非常に単純なので、試してみることをお勧めします。この記事を楽しんで、そこから何か役立つことを学んだことを願っています。ご不明な点がございましたら、下のコメントセクションに残すか、フォーラムを使用してその他の技術的な質問をお寄せください。