1.はじめに
24bitADコンバータDAC1220(ANALOG DEVICES製)を使用するため,
プログラムを作り動作確認をしたので紹介する。
2.AD7791の基本性能と回路構成
(1)特徴
①ΔΣ24bitADコンバータ
②3線式シリアル転送
③50Hzと60Hzを同時除去
④外部リファレンスが必要
⑤変換範囲(差動で±Vref):今回は2.5V
出力データ:+2.5V=0xFFFFFF, 0V=0x800000, -2.5V=0x0
⑥1回計測の場合変換時間は標準で120msec必要(連続測定の場合は60msec)
(2)回路図
製品名:高精度電源 PS-GI0147 計測・IO回路(PS-GI0147-G07)
②この回路を3回路設けCLK,Di,Doは共通とし,/CSで識別する
/CS=Lowの時,信号ラインはアクティブとなり,Do=Lowで変換完了をチェックする
③3回路同時に/CS=Lowとし一斉変換スタートさせることが可能。
読出しは順次/CS=Lowとし,DoをチェックしLowならば読取する
④Vrefは温度係数1ppm(標準)のMAX6325(ANALOG DEVICES製)の2.5V
これにより入力信号は±2.5Vの値を扱う
3.データの送受信方法
(1)レジスタ(CR)
①コミュニケーション・レジスタ
すべてはこのレジスタの設定から始める
次のレジスタの指定,読出or書込,連続モード,入力chを設定する
bit | bit名 | 説明 |
CR7 | /WEN | 書込有効 0 |
CR6 | 0 | 必ず0書込 |
CR5-4 | RS1-RS0 | レジスタアドレス |
CR3 | R|/W | 読出,書込 |
CR2 | CREAD | 連続読出モード |
CR1-0 | CH1-CH0 | 入力ch選択 |
変換完了,エラー情報の読取り。(使用していない)
③モード・レジスタ (コミュニケーションレジスタ:RS1,0=0,1)
連続変換/シングル変換の設定。
バッファモードの設定:バッファモードは入力回路をHiZにする。
☆☆☆ シングル変換モード設定が1回変換START指令となる ☆☆☆
④フィルタ・レジスタ (コミュニケーションレジスタ:RS1,0=1,0)
消費電流抑制のため低クロック化や,50/60Hzのフィルタ特性の選択(デフォルト値で使用)
⑤データ・レジスタ (コミュニケーションレジスタ:RS1,0=1,1)
(2)送受信データ例
①デバイスのリセット:シリアル・クロックで32サイクル間Din=Highを送信する。
/CS=Low → 0xFFFFFFFF送信 → /CS=High
②変換START指令:モード設定:シングル変換モード,バッファモードに変換STRT
/CS=Low → 0x1082送信 → /CS=High
(次レジスタ:モードレジスタの書込=0x10,モードレジスタ値=0x82)
注)AD7791は3回路あり,START指令は3回路一括STARTさせた。
③データの読取:変換時間120msec必要(変換完了確認は,1回路ずつポーリング)
変換完了のポーリングをしDo=Lowを検出したら,データを読む
/CS=Low → Do=Lowチェック→ Do=High → /CS=High 次回確認
→ Do=Low → 0x38送信後24bitData読込 → /CS=High
(次のレジスタ:データレジスタの読取=0x38)
4.波形確認
①SCLK立下りとDi変化同時は動作しなかった。
Diを確定してからSCLKを立上げ→立下げで動作OKとなる
(2)3CH一括START,ポーリングデータ読取のシーケンス
5.結果
(1)入力は±2.5Vフルスケールで値7FFFF≒8388600の約70%値の測定において
5827〇xx 〇の位±1程度変化,xxは測定の都度変化する
→∴±199÷8388600=±24ppmのバラツキ → 15bitは1/32768≒30ppmなので
15bit程度の精度と考える(ノイズの影響は考慮していない)