MCU STM32(1)-アナログデータのサンプリング

今回は、アナログデータのサンプリング機能を構築したいと思います。具体的には、サンプリング周波数1HzでAD変換を行い、RS232C通信を使用して、AD変換した値を送信します。下記のようにAD変換した値が送信されます。

使用するマイコンは、「STM32F446」です。使用するボードは、「STM32F446」マイコンが搭載されている「NUCLEO-F446RE」です。開発環境は、「STM32CubeIDE」を使用します。

「STM32CubeIDE」は下記のサイトからダウンロードできます。

https://www.st.com/ja/development-tools/stm32cubeide.html

SMT32マイコンに関しては、下記のサイトでもレポートにしてありますので、よろしかったら参考にしてください。

プログラミングのあれこれ

それでは、アナログデータのサンプリング機能を構築したいと思います。まずは、新規プロジェクトを作成します。

FPGA MAX10(14)-RS232Cシリアル通信エコーバック

前回は、RS232Cの通信ポートを使用してシリアルデータを受信する機能を構築しました。具体的には、アスキーコードの0~9を受信すると、7セグメントに受信した数字を表示する機能になります。0~9以外の値を受信した場合は、7セグメントを非表示にします。データの送信はPC上のTeraTermから行います。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(13)-RS232Cシリアルデータ受信

今回は、RS232Cの通信ポートを使用したシリアル通信のエコーバック機能を構築したいと思います。受信したデータをそのまま送信する機能になります。bandrateは9600bps、ストップビットは1ビットです。シリアル通信を行う相手側はPC上のTeraTermになります。追加機能として、下記の機能も構築しようと思います。受信したデータは2進数表現でLEDに表示したいと思います。アスキーコードで0~9の値を受信した場合は、7セグメントにその値を表示します。0~9以外の値を受信した場合は、7セグメントを非表示にします。

それでは、RS232Cの通信ポートを使用したシリアル通信のエコーバック機能を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトを作成できたら、IPを使用してPLL回路を追加します。PLLでは50MHzのクロックを入力として、10MHzのクロックを出力します。新規プロジェクトの作成方法、PLLの追加方法は下記のリンクを参照してください。

FPGA MAX10(4)-LEDシフト点灯回路

FPGA MAX10(13)-RS232Cシリアルデータ受信

前回は、RS232Cの通信ポートを使用してシリアルデータを送信する機能を構築しました。具体的には、トグルスイッチを使用して、8ビットのデータ作成して、プッシュスイッチを押すと、シリアルデータとして送信する仕組みを構築しました。送信されたシリアルデータはPC上のTeraTermに表示しました。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(12)-RS232Cシリアルデータ送信

今回は、RS232Cの通信ポートを使用してシリアルデータを受信する機能を構築したいと思います。具体的には、アスキーコードの0~9を受信すると、7セグメントに受信した数字を表示する機能になります。0~9以外の値を受信した場合は、7セグメントを非表示にします。bandrateは9600bps、ストップビットは1ビットです。データの送信はPC上のTeraTermから行います。

それでは、RS232Cの通信ポートを使用してシリアルデータを受信する機能を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトを作成できたら、IPを使用してPLL回路を追加します。PLLでは50MHzのクロックを入力として、10MHzのクロックを出力します。新規プロジェクトの作成方法、PLLの追加方法は下記のリンクを参照してください。

FPGA MAX10(4)-LEDシフト点灯回路

FPGA MAX10(12)-RS232Cシリアルデータ送信

前回は、Modelsimを使用してシミュレーション評価をしました。

Modelsimを使用してシミュレーションを実行した場合のシミュレーションの流れは下記のサイトを参考にしてください。

FPGA MAX10(10)-ModelSim①

QuartusPrimeからModelsimを起動して、シミュレーションを実行した場合のシミュレーションの流れは下記のサイトを参考にしてください。

FPGA MAX10(11)-ModelSim②

今回は、RS232Cの通信ポートを使用してシリアルデータを送信する機能を構築したいと思います。具体的には、トグルスイッチを使用して、8ビットのデータ作成して、プッシュスイッチを押すと、シリアルデータとして送信する仕組みを構築します。bandrateは9600bps、ストップビットは1ビットです。送信されたシリアルデータはPC上のTeraTermに表示したいと思います。

それでは、RS232Cの通信ポートを使用してシリアルデータを送信する機能を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトを作成できたら、IPを使用してPLL回路を追加します。PLLでは50MHzのクロックを入力として、10MHzのクロックを出力します。新規プロジェクトの作成方法、PLLの追加方法は下記のリンクを参照してください。

FPGA MAX10(4)-LEDシフト点灯回路

次に、VHDLファイルを作成して回路を構築していきます。まずは、プッシュスイッチのポーリング処理とエッジ検出処理機能を構築します。こちらのモジュールの作成方法は、下記のリンクを参照してください。

FPGA MAX10(9)-ポーリング処理とエッジ検出処理