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 RX65N(1)-アナログデータのサンプリング(GR-ROSE)

今回はGR-ROSEを使用して、アナログ値をサンプリングしたいと思います。GR-ROSEには、RX65N マイコンが搭載されています。GR-ROSEは小型の基板でありながら、WiFi、Ethernet、USB、RS485などさまざまなインターフェイスを搭載しており、応用が利きそうです。GR-ROSEの開発は、オンラインのIDEとオフラインのIDEが用意されています。オフラインのIDEには、e2studioやIDE for GRがあります。IDE for GRを使用するとArduinoライクなスケッチで開発を行うことができます。今回は、e2studioを使用して開発を行いたいと思います。

GR-ROSEに関しては、姉妹サイトでも紹介しているので参考にしてください。

今回作成する機能は下記のハードウェア構成で作成します。RS232通信を行うために、FTDIのICも使用します。

機能の概要は下記のようになります。

  • 1秒間ごとに入力されているアナログ値をAD変換(サンプリング)します。
  • サンプリングした値は、RS232通信で送信されます。
  • サンプリングする際に、LEDを点灯と消灯を切り替えます(点滅する)。

それでは、アナログ値をサンプリングする機能を構築したいと思います。まずは、新規プロジェクトを作成します。新規プロジェクトの作成方法は、下記のページを参考にしてください。ターゲット・デバイスは、「R5F565NEHDFP」なので、「R5F565NEHxFP」に設定してください。

RX(3)-RS232通信

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(20)-Nios II SPI通信

前回は、Nios Ⅱを使用して、UART機能(RS232シリアルポート通信機能)を構築しました。具体的には、受信したデータをそのまま返信するエコーバック機能を構築しました。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(19)-Nios2 UART(RS232)

今回も以前のお話ですが、SPI通信機能を構築しました。その時には、Nios Ⅱを使用せずに動作させました。以前の内容は下記のサイトを参考にしてください。

FPGA MAX10(8)-SPI通信

今回は、Nios Ⅱを使用して、SPI通信機能を構築したいと思います。具体的には、プッシュスイッチを押すと、トグルスイッチで指定した数値をSPI通信で送信します。受信したら、その数値を7セグメントで表示する機能を構築したいと思います。2つの評価ボードがあれば、通信している感じがあり、よりよいのですが、今回は1つの評価ボード上で、自ら送信を行い、自ら受信する機能を構築します。機能をリスト化すると下記のようになります。

  • トグルスイッチを4つ使用して、0~9を指定できるようする。10~16の時は、0として扱います。
  • プッシュスイッチを押すと、トグルスイッチで指定した数値をSPI通信で送信する。
  • SPI通信で送信されたデータを受信する。
  • 受信した数値をを7セグメントに表示する。

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

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

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

FPGA MAX10(15)-AD変換

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

FPGA MAX10(19)-Nios II UART(RS232)

前回は、Nios Ⅱを使用して、ADCの制御を行いました。機能としては、AD変換した電圧の値を7セグメントに表示する機能です。7セグメントに表示する値は、入力電圧を1000倍した値を表示します。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(18)-Nios2 ADC

今回も以前のお話ですが、UART機能(RS232シリアルポート通信機能)を構築しました。その時には、Nios Ⅱを使用せずに動作させました。以前の内容は下記のサイトを参考にしてください。

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

今回は、Nios Ⅱを使用して、UART機能(RS232シリアルポート通信機能)を構築したいと思います。具体的には、受信したデータをそのまま返信するエコーバック機能を構築します。

それでは、Nios Ⅱを使用して、UART機能(RS232シリアルポート通信機能)を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトの作成方法、下記のリンクを参照してください。

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

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

FPGA MAX10(15)-AD変換

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

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(17)-Nios II マルチコア

前回は、MAX10にNios Ⅱを搭載して動作をさせてみました。Nios IIの周辺機器としてTimerを配置してLEDの点滅回路を構築しました。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(16)-Nios II

前回、timer_0とtimer_1を用意してtimer_0にfor文をのwait処理を入れました。すると、1秒間隔で点滅していたLED0とLED1が約12秒間隔で点滅するような動作になりました。timer_0で動作しているLED0はともかく、timer_1で動作しているLED1まで約12秒間隔になってしまうのはなぜでしょうか?CPU1個の動作であり、順次処理をしているので、timer0の処理で止まってしまい、timer1にまで影響を及ぼしているためです。では、CPUを2個搭載すればよいのでは?ということで、今回はCPUを2つ搭載して動作させてみたいと思います。機能としては、前回と同様にTimerによるLED点滅回路になります。

それでは、Nios Ⅱを2つ使用したLEDの点滅回路を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトの作成方法、下記のリンクを参照してください。

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

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

FPGA MAX10(15)-AD変換

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

FPGA MAX10(16)-Nios II

前回は、MAX10に搭載されているADCを使用してAD変換を行いました。AD変換した電圧の値を7セグメントに表示する機能です。7セグメントに表示する値は、入力電圧を1000倍した値を表示します。前回の内容は下記のサイトを参考にしてください。

FPGA MAX10(15)-AD変換

今回は、MAX10にNios IIを搭載して動作をさせてみたいと思います。Nios IIは、Intel社から提供されているCPUです。Nios IIの周りに周辺機器を配置すればマイコンのような動作をさせることができます。機能としては、Timerを使用したLEDの点滅回路を構築します。

それでは、Nios IIを使用したLEDの点滅回路を構築したいと思います。まずは新規プロジェクトを作成します。新規プロジェクトの作成方法、下記のリンクを参照してください。

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

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

FPGA MAX10(15)-AD変換

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シフト点灯回路

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シフト点灯回路