レポート

このエントリーをはてなブックマークに追加
プログラミングの技術の蓄積レポートです。

レポート一覧

Mbed(10)-AD変換、DA変換

前回はは、シリアル通信を行う機能を構築しました。シリアル通信は、NUCLEO-F44REのUSB端子とPCのUSB端子を接続して行います。PC側から送信された文字をNUCLEO-F446REはエコーバックします。前回の内容は下記のサイトを参考にしてください。

Mbed(9)-シリアル通信

今回は、AD変換とDA変換を行いたいと思います。主な機能は下記の2つです。

  • AD変換した値をシリアル通信で1sec毎に送信します。
  • AD変換した値をDA変換して出力します。

Mbed対応ボードは、NUCLEO-F446REを使用します。ハードウェアはPC(Intelプロセッサ)、OSはUbuntuです。開発環境は下記のとおりです。

  • Visual Studio Code
  • GNU Arm Embedded Toolchain
  • opneOCD

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

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認

Mbed(9)-シリアル通信

前回は、ソフトウェア割り込みを使用した機能を構築しました。ソフトウェアトリガ割り込みを、Timerの割り込みのタイミングで発生させて、ソフトウェアトリガ割り込みの割り込み関数で、LEDの点灯消灯を行い、LEDを点滅さました。前回の内容は下記のサイトを参考にしてください。

Mbed(8)-ソフトウェア割り込み処理

今回は、シリアル通信を行いたいと思います。シリアル通信は、NUCLEO-F44REのUSB端子とPCのUSB端子を接続して行います。PC側から送信された文字をNUCLEO-F446REはエコーバックします。

また、NUCLEO-F446は文字を受信するたびに、LEDのON、OFFをきりかえるようにします。開発環境は下記のとおりです。

・Visual Studio Code
・GNU Arm Embedded Toolchain
・opneOCD

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

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認

Mbed(8)-ソフトウェア割り込み処理

前回は、STM32F446REしたTimer割り込みの機能を構築しました。、Tickerクラスを使用した、等間隔割り込みでは、5usec間隔の割り込みに対応できないということで、周辺機器の設定を変更するレジスタを直接変更して、5usec間隔の割り込み機能を構築しました。前回の内容は下記のサイトを参考にしてください。

Mbed(7)-レジスタ設定によるTimer割り込み

今回は、ソフトウェア割り込みを使用した機能を構築したいと思います。ソフトウェア割り込みは特定のコードを記述することで、指定した割り込みをそのコードをトリガとして割り込みを行うことができます。このソフトウェア割り込みを使用して、LEDを点滅する機能を構築したいと思います。ソフトウェアトリガ割り込みを、Timerの割り込みのタイミングで発生させて、ソフトウェアトリガ割り込みの割り込み関数で、LEDの点灯消灯を行い、LEDを点滅させたいと思います。目視でもわかりやすいように100msec間隔でTimer機能を設定します。Mbed対応ボードは、NUCLEO-F446REを使用します。ハードウェアはPC(Intelプロセッサ)、OSはUbuntuです。開発環境は下記のとおりです。

  • Visual Studio Code
  • GNU Arm Embedded Toolchain
  • opneOCD

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

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認

Mbed(7)-レジスタ設定によるTimer割り込み

前回は、Tickerクラスを使用して、LEDを点滅させる機能を構築しました。Mbed対応ボードは、NUCLEO-F446REを使用しました。前回の内容は下記のサイトを確認してください。

Mbed(6)-Tickerを使った割り込み処理

どこまでの時間間隔に対応できているのか試してみたところ、Tickerの割り込みを10usec毎に発生させた場合は、下記のように10usec毎にLDのON、OFFがきりかわりました。

Tickerの割り込み間隔を5usecにした場合は、下記のように指定した時間間隔とおりにON、OFFがきりかわりませんでした。

これは、Tickerクラス(Mbedライブラリ)に汎用性を持たせるため、クラス内の処理が大きくなっているではないかと推測しました。この5usec間隔を達成するためには、周辺機器の設定を変更するレジスタを直接変更して、機能を構築する必要がありそうです。

今回は、周辺機器の設定を変更するレジスタを直接変更して、5usec間隔で割り込みが発生するように機能を構築したいと思います。それでは、機能を構築いきたいと思います。まずは、新規プロジェクトの作成です。新規プロジェクトの作成方法は、下記のサイトを参考にしてください。

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認

Mbed(6)-Tickerを使った割り込み処理

前回は、「Visual Studio Code + GNU Arm Embedded Toolchain + opneOCD」の開発環境を使用して、Mbedボードの動作確認を行いました。Mbed対応ボードは、NUCLEO-F446REを使用しました。前回の内容は下記のサイトを確認してください。

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認

今回は、Timer処理機能を構築したいと思います。Mbedライブラリには、Tickerというクラスが用意されています。このクラスを使用すると指定した時間間隔で割り込みを発生することができます。このTickerクラスを使用して、LEDを点滅させる機能を構築したいと思います。Mbed対応ボードは、NUCLEO-F446REを使用します。ハードウェアはPC(Intelプロセッサ)、OSはUbuntuです。開発環境は下記のとおりです。

  • Visual Studio Code
  • GNU Arm Embedded Toolchain
  • opneOCD

それでは、Tickerクラスを使用して、LEDを点滅させる機能を構築していきたいと思います。まずは、新規プロジェクトの作成です。新規プロジェクトの作成方法は、下記のサイトを参考にしてください。

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認