- ハードウェアおよびソフトウェア開発ツールの選択
- STM8S103F3P6開発
- STM8S103F3P6プログラマー
- STM8S103F3P6IDEおよびコンパイラ
- Sduinoを使用したArduinoを搭載したSTM8S
- 必要なソフトウェアのダウンロード
- STVDとCosmicCコンパイラのセットアップ
- STM8S103F3P6の標準ペリフェラルライブラリ
- 最初のプログラムのコンパイル
- ST-LinkV2を使用してSTVDからSTM8S開発ボードにコードをアップロードする
STM8は、一連のある 8ビットマイコン からの STマイクロエレクトロニクス 、コストに敏感な製品開発のためのマイクロコントローラの一般的な選択肢となっています。私は以前にAVR、PIC、および他のいくつかのARM Cortexマイクロコントローラーを使用しましたが、確かに一部のアプリケーションでは、それらが過剰になり、BOMコストが大幅に増加します。最近、いくつかの安価な中国製品を分解した後、それらのほとんどに STM8マイクロコントローラーが内蔵さ れていることがわかりました。このICは安価であるだけでなく、多くの機能とオプションが満載されているため、さまざまなアプリケーションでの使用に適しています。たとえば、 STM8S (私たちは、このチュートリアルシリーズで学ぶことができます)コントローラのシリーズは、汎用コントローラであるが、同様に他のシリーズがあります STM8A 車載用のデザインと STM8L これらのコントローラのアプリケーションを拡張する低消費電力のバッテリ駆動設計のために。
この一連のチュートリアルでは、STM8Sマイクロコントローラー、より具体的には STM8S103F3P6をプログラムする方法を学習します。 。この特定の部品番号を使い始める理由は、パフォーマンス要因に対する価格だけです。お気に入り!!0.25ドル(約20ルピー)でそれを見るだけで、16Mhz内部発振器、8kBフラッシュ、10ビットADC、UART、SPI、およびI2Cを備えた8ビットマイクロコントローラーが得られます。誰が興味をそそられないでしょうか?また、STM8S103F3P6は広く普及しているため、初心者の方は、チュートリアル以外でサポートが必要な場合に十分なサポートを見つけることができます。これから、PICプログラミングチュートリアルと同様の一連のチュートリアルがあり、基本的な点滅からさまざまなディスプレイやセンサーのインターフェイスまで、このコントローラーをプログラムする方法を学習します。32ビットSTMマイクロコントローラーに興味がある場合は、STM32F103C8チュートリアルとプロジェクトを確認することもできます。
ハードウェアおよびソフトウェア開発ツールの選択
マイクロコントローラーを削除したので、学習プロセスを開始するためにハードウェアとソフトウェアの開発ツールを選択する必要があります。多くのオプションがありますが、ここでは、無料で誰でも簡単に利用できるオプションを選択しました。
STM8S103F3P6開発
STの8ビットマイクロコントローラーの公式開発ボードはSTM8ディスカバリーキットと呼ばれますが、地元のサプライヤーやオンラインストアで簡単に見つけることができる別の低コストの開発ボードを使用します。 このチュートリアルで使用するSTM8S103F3P6開発ボードのイメージを 以下に示します。
ボードは、開発を開始するために必要な最小限のコンポーネントのみで構成されています。ブレッドボードにやさしく、コンパクトなアプリケーションに適しています。開発ボードの内部回路図を以下に示します。
よく見ると、STM8S103F3p6コントローラーとは別に、コントローラーをリセットするためのリセットボタンがあります。PB5(ポートBピン5)に接続された電源LEDとテストLED、および5VをUSBポートからコントローラー用の3.3Vに変換するAMS1117電圧レギュレーター。必要に応じて、コントローラーを5Vで動作させることもできます。コントローラのさまざまな部品を以下に示します。また、3.3V、GND、SWIM、およびNRSTの4つのプログラマーピンがあり、マイクロコントローラーのプログラミングとデバッグを簡単に行うことができます。
STM8S103F3P6プログラマー
コントローラのプログラミングに は、安価でオンラインで簡単に入手できるST-LINKv2を使用します。このST-LINKv2ボードには多くのバリエーション(金属、プラスチック、金、ピンク、裸のボード)があり、すべて同じ目的を果たします。鉱山を以下に示しますが、どのタイプのST-LINKプログラマーでも使用できます。 ピン配置は異なるため、ケーシングのピン配列を正しく読んでください。ST-Microelectronics自体のST-LINKV3もあり、本格的なデバッグに使用できます。少し高いので今は使用しませんが、将来のために保存しておきます。
STM8S103F3P6IDEおよびコンパイラ
STM8S103F3P6に適切なIDEとコンパイラを選択することは、選択するオプションがたくさんあるという理由だけで、当惑しています。STM8マイクロコントローラーで使用できる公式ツールを下の画像に示します。
構成側では、STM8CubeMxがあり ます。私はソフトウェアを試しましたが、それは私にとって完全に失望しました。STM32Cubeとは異なり、 STM8Cubeは コードを自動生成できません。視覚化の目的でのみピンマッピングを生成でき、あるコントローラーから別のコントローラーにコードを移植する場合に役立つことがあります。それ以外は使いません。したがって、このチュートリアルシリーズでは、これを使用しません。
IDEとコンパイラについては、選択できるオプションがたくさんあります。 IDEの上位2つのオプションは、 IARワークベンチ と ST Visual Develop(STVD)です。 どちらのソフトウェアも、90年代のもののように感じますが、しばらく遊んだ後、STVDは完全に無料であるという理由だけで良い選択であることがわかりました。同様に、コンパイラーについては、完全に無料であるという理由だけで、CosmicCコンパイラーを使用し ます。このIDEとコンパイラを選択するもう1つの理由は、環境に慣れれば、STの他の8ビットマイクロコントローラをそれほど手間をかけずに簡単に使用できるはずだからです。この記事の後半で、CosmicCコンパイラを使用してSTVDをインストールおよびセットアップする方法について説明します。
フラッシュには、 ST Visual Programmer(STVP)を使用します。このツールは、STVDをインストールすると自動的にインストールされます。 IDE自体に統合され、迅速なプログラミングとデバッグに役立ちます。最後のソフトウェアは次のようになります STMStudio STM8の監視ソフトウェアです。このソフトウェアは、STM8のリアルタイムデバッグに役立ち、変数値の監視、グラフのプロットなどのいくつかの優れた機能を備えています。私はこのソフトウェアで十分な実験をしていません。また、少なくとも最初のいくつかのチュートリアルでは、大きなデバッグ要件が必要ないため、このソフトウェアは使用しません。
STM8S標準ペリフェラルライブラリ: ST Microelectronicsは、STM8Sマイクロコントローラのコード開発を容易にする一連のライブラリを提供します。このライブラリは、略して「標準ペリフェラルライブラリ」またはSPLと呼ばれます。ライブラリは、使用するSTM8S103F3P6コントローラーだけでなく、STM8S / A8ビットファミリーで可能なすべてのコントローラーを念頭に置いて作成されていることを除けば、すばらしいものです。したがって、それを機能させるために、あちこちでいくつかの調整を行う必要があります(これについては後で共有します)。それでも、開発を非常に速くすることができるので、試してみる価値があると思います。したがって、チュートリアルで使用します。
ライブラリを使用したくない場合は、コントローラのレジスタに直接アクセスするか、ベアメタルアセンブリプログラミングを行う必要があります。あなたがそれを学びそして使う時間があれば、これらの両方は楽しいです。私の考えは、SPLライブラリを適切に機能する場所で使用し、必要に応じてレジスタおよびアセンブリレベルでも機能することです。車輪の再発明をしないようにしましょう!
Sduinoを使用したArduinoを搭載したSTM8S
Arduino IDE サポートSTM8Sについて言及しなければ、ソフトウェアオプションの議論は決して完全ではありません 。はい、Michael Mayerのおかげで、同じSTM8S103F3P6ボードをSduinoを使用してArduinoIDEから直接プログラムできます。ただし、プロジェクトはまだ開発段階にあり、Sduinoが完全なプラットフォームサポートを提供するには、ある程度の時間とコミュニティのサポートが必要になる可能性があります。しかし、Sduinoで遊んでからほんの数分以内に、私はそれが好きになり始めたので、ArduinoでSTM8Sマイクロコントローラーをプログラムする方法についての別の記事も行うことにしました。準備ができたら、ここに記事をリンクします。この記事では、STM8SマイクロコントローラーのプログラミングにArduinoIDEを使用する理由と理由について説明します。
それで、これらはソフトウェアとハードウェアのための私の選択です。他のソフトウェアがより良い選択だったと思うなら、コメントセクションで私に知らせてください。他のオプションも検討したいと思います。
必要なソフトウェアのダウンロード
このチュートリアルで使用するソフトウェアを決定したので、次のリンクを使用してダウンロードしてみましょう。すべてのソフトウェアは無料でダウンロードして使用できます。まだ登録していない場合は、STとCosmicに無料のアカウントを登録する必要があります。
- ST Visual Develop(STVD)
- CosmicCコンパイラ
- 標準周辺機器ライブラリ
- STM8Cube Mx(オプション)
- STM8用のSTMStudio(オプション)
STVDとCosmicCコンパイラのセットアップ
両方のソフトウェアをダウンロードしたら、画面の指示に従ってインストールします。後で混乱しないように、デフォルトのディレクトリのままにしておくことをお勧めします。 STVDIDEは何の努力もせずにインストールされます。 Cosmic Cコンパイラの場合、インストールプロセス中に無料のライセンスキーを取得する必要があります。学生の場合は、EメールIDで会社情報を提供する必要があります。ライセンスキーを取得するプロセスは瞬時に自動的に行われます。セットアップ手順には1〜2日かかると記載されていますが、送信するとすぐに電子メールIDでライセンスキーを自動的に受け取りました。 SPAMを確認してください。確認メールを以下に示します。
電子メールの指示に従って、license.licファイルをコピーし、インストールフォルダーの「license」サブフォルダーに貼り付けます。私の場合、パスは 「C:\ Program Files(x86)\ COSMIC \ FSE_Compilers \ CXSTM8 \ License」 でした。以下に示す場所にファイルを貼り付けるだけです。
STM8S103F3P6の標準ペリフェラルライブラリ
前述のように、ST Microelectronicsは、すべての8ビットSTM8S / Aマイクロコントローラーに使用できるSPLと呼ばれるライブラリを提供しています。ST Microelectronicsから元のSPLをダウンロードして必要な変更を加えるか、STM8S103F3P6SPLライブラリをダウンロードしてそのまま使用することができます。後でお勧めします。
STMicroelectronicsのオリジナルSPL
STM8S103F3P6 SPL
そこにいる間に、SPLユーザーマニュアルもダウンロードしてください。これは、コントローラーをプログラミングするときに非常に便利です。
最初のプログラムのコンパイル
すべての準備が整ったので、最初のプログラムをコンパイルして、IDE、コンパイラ、およびライブラリがすべて正常に機能しているかどうかを確認してみましょう。詳細な手順については、ページの下部にあるビデオを確認することもできます。
まずSTVDを開き、[ファイル]-> [ワークスペース]を選択し、ポップアップで[新しいワークスペース]を選択して、プログラムを保存するプロジェクト名とパスを入力します。プログラムにBareMinimumという名前を付けて、デスクトップ上のフォルダーに保存しています。[OK]をクリックすると、次のような[新しいプロジェクト]ダイアログボックスが表示されます。
プロジェクトに再びbareminimumという名前を付けています。ツールチェーンの下で、STM8Cosmicコンパイラがインストールされているパスへのツールチェーンルートを指定する必要があります。デフォルトのパスアドレスは 「C:\ ProgramFiles(x86)\ COSMIC \ FSE_Compilers \ CXSTM8」 です。その後、[OK]をクリックして[MCUの選択]ウィンドウを表示します。
STM8S103F3Pを検索して選択し、[OK]をクリックします。これにより、STVDでSTM8S103F3Pの新しいプロジェクトが開きます。完了すると、ウィンドウは次のようになります。
「ソースファイル」を右クリックし、「フォルダにファイルを追加」を選択して、SPLライブラリのすべてのcファイルを含めます。同様に、「ファイルを含める」を右クリックして、すべてのヘッダーファイルを含めます。ご不明な点がございましたら、以下の動画をご覧ください。すべてのファイルが追加されたら、[ビルド] -> [すべて再 構築]をクリックし、[コンパイル]をクリックして 、コンパイラとSPLが期待どおりに機能しているかどうかを確認します。すべてがうまくいくと、ビルド結果0エラーと0警告の次の画面が表示されます。
これで、すべてのSPLライブラリがCosmicコンパイラとSTVDで動作していることを確認できます。これは、すべての新しいプロジェクトで従う標準的な手順です。必要に応じて、ビルド時間を短縮するために、プロジェクトに必要なヘッダーファイルとソースファイルのみを含めることもできます。
ST-LinkV2を使用してSTVDからSTM8S開発ボードにコードをアップロードする
以下に示すように、ST-LinkV2を開発ボードに接続します。
接続は非常に簡単で、最良の部分は外部コンポーネントが不要なことです。プログラミング用のハードウェア設定を以下に示します。接続にメスのヘッダーワイヤを使用しました。ただし、ST-Linkのピン配列が私のものと異なる場合があることに注意してください。接続する前に、必ずデバイスのピン配列に従ってください。
接続を確立し、デバイスをコンピューターに接続します。ドライバーのインストールが自動的に開始されます。デバイスマネージャを使用して、コンピュータがST-LINKV2を正しく検出したかどうかを確認できます。また、ボードに初めて電力を供給する場合は、ボードのテストLEDが点滅していることに気付くでしょう。STVDでコードを正常にコンパイルするとすぐに、プロジェクトフォルダのデバッグディレクトリの下に「S19」拡張ファイルが作成されます。私のS19ファイルを以下に示します。
このS19は、コントローラーにアップロードする必要があるHexファイルのようなものです。プログラムをアップロードするには、STVDと一緒にインストールされているはずのST Visual Programmer(STVP)を開きます。次に、構成ウィンドウで、下の画像に示すように選択し、[OK]をクリックします。
次に、[ファイル] - > [開く]をクリックし て、前に示したS19ファイルに移動します。次に、デバイスをフラッシュするには、 [プログラム]-> [現在の タブ]に従い ます 。フラッシュが成功した場合は、次の出力が表示されます。
デフォルトでは、STM8Sを購入すると、テストLEDを点滅させるblinプログラムがあります。この空白のコードをアップロードした後、LEDは点滅しなくなります。
重要:プログラミング後にST-Linkがボードを自動的にリセットしないことがわかりました。プログラムの出力を確認するために、切断して再接続する必要がありました。これがすべての人にとって問題であるかどうかはわかりません。コメントセクションでお知らせください。また、これに対する解決策を説明している下部のビデオをチェックしてください。
これで、このチュートリアルを終了しましょう。ハードウェアの基本を学び、開発環境をセットアップし、コードをコンパイルしてアップロードする方法を学びました。これで作業を進める準備が整いました。これを今後のすべてのチュートリアルで使用します。ご不明な点がございましたら、フォーラムに投稿して、ご期待ください。