5.1 A/Dコンバーター(変換器)



アナログからデジタルへA/D変換を行うのはH8に内蔵されているA/Dコンバータです.A/Dコンバータは入力されたアナログ量を10bitのデジタル量に変換できます.

A/D変換の設定

  センサから送り出されるアナログ信号の電圧はアナログ入力ピンから入力します.アナログ入力ピンはAN0〜AN7まで8チャネルあり,アナログ入力ごとにデジタル変換を行うことができます.しかし,A/D変換をするための回路そのものは1回路のみで,入力端子を切り替えることでマルチプレクス化(多重化)しています.内蔵A/D変換回路の動作モードには,単一モード,スキャンモードの2種類があります.単一モードはAN0〜AN7のうち1入力だけを使用します.スキャンモードは最大4チャネルを時分割で切り替えて使用します.
  今回の実験ではA/Dコンバータを「単一モード」の「AN0入力」で使用することにしました.これらの動作条件を設定するためには,動作モードの設定,変換作業開始,割り込み許可/不許可,A/D変換終了フラグの取得等の目的に使われるコントロール兼ステータス(状態監視)レジスタである,A/Dコントロール/ステータスレジスタ(ADCSR)に制御コードを書き込みます.

A/D変換の方法

 A/D変換の設定方法は説明しました.では,実際にはどの様にA/D変換を行っているのでしょうか?

  A/D変換にはいくつかの方法があります.H8/3052Fでは逐次比較型A/D変換という方法をとっています.H8/3052Fに内蔵された逐次比較型A/D変換器の変換方法を紹介します.以下の動作をクロックにしたがって行っています.

  1. 入力されたデータは変換中にずれてしまうのを防ぐためにホールド回路で保持
  2. 保持されたデータと同じになるようにD/A変換器の出力を調整する
  3. D/A変換器の出力をA/D変換の結果とする

 いま,AN0に3.0Vの電圧が入力されているとします.A/D変換するために,まずD/A変換器から基準電圧Vref(ここでは5V)に加えられた電圧(0〜AVcc,ただしAVcc=Vcc=5V)の半分(2.5V)を出力します.この時,D/A変換器はデータとしてH'8000 (B'1000000000000000)を使っています.電圧を比較できるコンパレータで比較した結果をD/A変換に反映します.この入力電圧(3.0V)の場合,2.5Vより高いのでH'8000のままでOKとなります.よって,最上位の1bitは1になることが分かりました.
  次のbitを見てみます.2.5〜5.0Vの範囲に入力電圧はありますから.今度はH'C000 (B'1100000000000000)と比較してみます.D/A変換器からの出力電圧は3.75V(2.5+1.25)です.今度はコンパレータで比較した結果,入力(3.0V)の方が小さいです.したがって,このビットは0です.
  このように逐次比較型のA/D変換器は1ビットずつ比較しては結果を確認していきます.
  H8/3052Fの場合,サンプルホールド時間に30ステート程度かかっています.その後100ステート程度で逐次比較し,合計134ステートで変換を終了します.実験で使用するH8/3052Fの動作周波数は25MHzですから,1回のAD変換に約5.36μsかかる計算になります.(ただし本実験では266ステートかけて変換する設定を使用します)

・電圧値変換
入力されたアナログ量は10bitのデジタル量に変換されるので,アナログ基準電圧を0〜1023(2の10乗)のステップで表現できます.アナログ基準電圧を5Vとしたとき約5V×1/1024刻みで変換できます.このとき5/1024=4.8mV変化するとデジタル値が1変化します.A/D変換した値は0VならH'0,2.5VならH'511,5VならH'1023となります.
  A/D変換時の注意としては,すでに説明したとおり,A/DコンバータはA/Dコンバータは瞬時に電圧をデジタル信号に変換してくれるわけではありません.変換に必要な時間は25MHz駆動の場合には約5.36μsかかります.



[山口研究室] <back | index | next >