この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は制御していませんので、読めた値が表示されているだけです)
