概要
24 ビットΔ-Σ A/D コンバータ(DSADA)のA/D変換データを収集するソフトを作成し、入力電圧(-2.5~2.5V)に対するA/D変換データを得ました。A/D変換データ(1000回分)は、ScottPlotのsignal plotと ヒストグラムで表示しています。 (資料1*1を参考にしています。)
パソコン側の処理
・「SRART」ボタンで「A/D変換データ収集開始コマンド」を送信します。2秒後に「収集状態 読み出しコマンド」を送信します。
・マイコンからのレスポンスが「収集中」の場合、2秒後に同じコマンドを送信します。(「収集完了」なるまで繰り返します。)
・「収集完了」の場合、「A/D変換データ読み出しコマンド」を送信します。
・レスポンスのA/D変換データ(1000回分)を、時系列とヒストグラムで表示します。
・「Save」ボタンで、A/D変換データ(1000個)と統計情報(平均値、標準偏差、最小値、最大値)、メモ(自由書き込み)をCSV形式で保存します。
・「Open」ボタンで、保存ファイルを開いてグラフ表示します。
プログラム
・GitHubに登録しました。(xaml,csと CSV)
https://github.com/vABCWork/WPF-Histogram
・ConfSerial.xamlとConfSerial.xaml.cs は下記と同じです。
https://vabc.hatenadiary.jp/entry/2021/11/21/085446
マイコン側の処理
・A/D変換
パソコンから送信された「収集開始コマンド」を受信するとA/D変換を開始します。A/D変換は20msec毎に実施され、A/D変換データを格納領域へ格納します。A/D変換は1000回行うと終了します。20秒 (20msec x 1000 = 20000msec )かかります。
タイマ割り込み(10msec)によりA/D変換の開始タイミング(20msec毎)をつくります。「A/D変換完了割り込み」は、1チャンネルのA/D変換終了で発生します。「スキャン完了割り込み」は、A/D変換する全チャンネルのA/D変換終了時に発生します。今回A/D変換するのは1チャンネルだけです。
・通信
受信は「CPUの受信割り込み」を使用します。コマンド受信後、そのコマンドに対するレスポンスを作成します。レスポンスの送信は「送信割り込み」発生させて、「DMA」を起動します。全てのデータ転送後、「DMA転送終了割り込み」が発生します。その後に「送信終了割り込み」を発生させています。
・設定内容
プログラム
・ファイル
・次のファイルをGitHubに登録しました。
test1n.c, timer.c, timer.h, dsad.c, dsad.h, sci.c, sci.h, dma.c, dma.h
テスト結果
AIN4(-), AIN5(+) への入力電圧とA/D変換データ。
A/D変換を1000回行い、その平均値をA/D変換データとしています。(室温 19℃)
*1:資料1「RSSKRX23E-A PCツールプログラム操作マニュアル(R20AN0540JJ0201 Rev.2.01)」