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

以前、GR-ROSE(開発環境:e2studio)、NUCLEO-F446RE(開発環境:STM32CubeIDE)で本機能を構築しました。これらの内容は下記のサイトを参考にしてください。

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

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

今回も使用するボードは、NUCLEO-F446REですが、開発環境を下記のものにしてアナログデータのサンプリング機能を構築したいと思います。

  • Visual Studio Code
  • GNU Arm Embedded Toolchain
  • opneOCD

これらの開発環境においての機能構築に関しては下記のサイトでも紹介しておりますので、参考にしてください。

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

今回はサンプリング周波数500khzで、アナログデータを取得して、取得したデータをDACで出力する機能を構築したいと思います。下記は、NUCLEO-F446REでパルス波をアナログ値で取得して、DACでそのまま出力した結果になります。

それでは機能を構築したいと思います。
まずは、新規プロジェクトの作成を行います。
新規プロジェクトの作成方法は、下記のサイトを参考にしてください。

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

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(18)-Nios II ADC

前回は、MAX10にNios Ⅱを2個搭載して動作をさせてみました。Nios Ⅱの周辺機器としてTimerを配置してLEDの点滅回路を構築しました。各々のCPUにTimerを一つずつ載せて動作させたので、お互いの動作に干渉することなく動作させることができました。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(17)-Nios II マルチコア

以前、MAX10に搭載されているADCを使用してみました。その時には、Nios Ⅱを使用せずに動作させました。以前の内容は下記のサイトを参考にしてください。

FPGA MAX10(15)-AD変換

今回は、Nios Ⅱを使用して、ADCの制御を行おうと思います。機能としては、依然と同じでAD変換した電圧の値を7セグメントに表示する機能です。7セグメントに表示する値は、入力電圧を1000倍した値を表示します。

それでは、Nios Ⅱを使用して、ADCの制御を行う機能を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトの作成方法、下記のリンクを参照してください。

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

まずは、Platform Designerを使用して、各コンポーネント(CPUや周辺機器など)を配置、接続します。メニューより「Tools」→「Platform Designer」を選択します。Platform Designerの画面が表示されます。Platform Designerの設定内容方法は、下記のサイトを参考にしてください。

FPGA MAX10(15)-AD変換

System Contentsに下記のように追加されたコンポーネントが表示されています。

FPGA MAX10(15)-AD変換

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

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

今回は、MAX10に搭載されているADCを使用してAD変換を行おうと思います。AD変換した電圧の値を7セグメントに表示する機能です。7セグメントに表示する値は、入力電圧を1000倍した値を表示します。

それでは、MAX10に搭載されているADCを使用してAD変換を行う機能を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトの作成方法、下記のリンクを参照してください。

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