1.はじめに
 24bitADコンバータDAC1220(ANALOG DEVICES製)を使用するため,
 プログラムを作り動作確認をしたので紹介する。

AD7791

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)

         AD7791

    ①入力は±信号を差動出力変換する差動AMP(LTC6362)を使用
    ②この回路を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を設定する

AD7791

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,0)
    変換完了,エラー情報の読取り。(使用していない)
   ③モード・レジスタ  (コミュニケーションレジスタ: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.波形確認
(1)コマンド0x1082送信時 (2)Di立下りとSCLK
AD7791 AD7791
AD7791 AD7791

   ①SCLK立下りとDi変化同時は動作しなかった。
    Diを確定してからSCLKを立上げ→立下げで動作OKとなる

(2)3CH一括START,ポーリングデータ読取のシーケンス

   AD7791

5.結果
  (1)入力は±2.5Vフルスケールで値7FFFF≒8388600の約70%値の測定において
     5827〇xx 〇の位±1程度変化,xxは測定の都度変化する
      →∴±199÷8388600=±24ppmのバラツキ → 15bitは1/32768≒30ppmなので
     15bit程度の精度と考える(ノイズの影響は考慮していない)