[7] FreeRTOS ドライバ3と4―ADCドライバとDACドライバを使う

このFreeRTOSプロジェクトには5つのドライバが入っています。

その中の二つ、DACで出力したデータをADCで読み取って、読み取りデータをUART経由でWindowsPCに送信してみます。

☆アナログ入力はFPGA内蔵のADCと外付けのADCが使えますが、今回は外付けADCに割り当てられているAN6とAN7を使用します。

1. ハードウェア構成

UART通信のbpsは9600bpsです。

ハードウェア接続写真:

[ADC<->DAC] ADCとDACの端子を直結します。
・ ADC AN6, AN7 <——>DAC DA0, DA1
DAC初めは0を、以降は1毎に増加したデータをアナログ出力します。
ADCはそのアナログ出力データを任意のタイミングで読み、UARTに渡し、PCのCOMポートから表示をします。

後述しますが、本サンプルの初期状態では、DA1から出力したデータをAN7に入力します。

ですので、DA1とAN7を接続してください。

[UART]
UARTのTX/RX. GNDを、UART/COM変換ケーブルに接続し、PCと接続します。

IO32: H8 SCI0のRX <—> PC側のTX
IO30: H8 SCI0のTX <—> PC側のRX

注:PCとは、3.3VインターフェースのUART/COM変換ケーブルを使用してください。

2. サンプルソースコードビルド

サンプルソースコードでは、一定間隔でADCデータをPCに送受信します。bpsは9600bpsです。

まず、アクティブなサンプルプロジェクトを選択します。

ここでは、プロジェクト名”ADC_sample”をポイントし右クリックします。
Set as Current Project(和文は少し違うかもしれません)を選択してください。

  #define SAMPLE_MODE 0 // Single mode

このサンプルコードでは、上記のDefineでSingle modeとScan modeを切り替えます。

  #define SAMPLE_INT 1   // Enables A/D end interrupts

また、このDefineで、使用するチャネルも変化します。

+ SAMPLE_INT=0: DA0から出力したデータをAN6に入力
+ SAMPLE_INT=1: DA1から出力したデータをAN7に入力

——
[注]
H8/3048では、ポート7と、A/D変換器のアナログ入力端子とD/A変換器のアナログ出力端子が兼用になっていますが、
IPとしては独立に使用可能になっています。
このため、外部で接続しています。
—–

初期状態では、両Defineともに1になっていますので、DA1から出力したデータをAN7に入力、Scan modeで実行、となります。

この状態でビルドします。

2. サンプルソースコード実行

E10A-USB経由でダウンロードし、リセットし、実行します。

ADCの各チャネルで読めた値を断続的に表示します。(この場合Channel6は制御していませんので、読めた値が表示されているだけです)