dsPIC30F汎用シリーズとセンサーシリーズに内蔵されている12ビットA/Dコンバータの
使い方について説明しています。
【内部構成】
12ビットA/Dコンバータの内部構成は下図のようになっています。
12ビットA/Dコンバータは、10ビットA/Dコンバータに比べて単純な構成になっています。
サンプルホールドアンプが1個だけなので、常に1入力ごとのA/D変換となります。
サンプルホールドアンプの入力は、最大16個のどれでも選択可能です。
さらに、サンプルホールドアンプの入力については、マイナス側の差動入力をAN1かRefを
選択指定することができるようになっていて、AN1とのアナログ信号の差分をA/D変換する
こともできます。
さらに、この切替マルチプレクサをMUXAとMUXBと2つ持っていて、交互に切り替え
ながら入力することができます。
自動スキャン機能があり、最大16個のアナログ入力を自動的に順番にA/D変換し、
結果をバッファメモリに順番に格納してから1回の割り込みを発生させることができます。
プログラムは割り込みごとにバッファメモリの16個のデータを一気に読み取ります。
これで、多くのアナログ信号の入力を高速で行うことが可能になります。
【関連SFR】
上記のように10ビットA/Dコンバータは多様な動作モードを持っているため、設定制御用
のSFRもやや複雑な構成となっていて、下記の6個のSFRとなっています。
(1) ADCON1
A/Dコンバータのイネーブルと変換結果のデータフォーマット指定、サンプリング方法
などの設定を行います。
(2) ADCON2
リファレンス電圧指定、使用チャネル指定、バッファの使い方、割り込みタイミング、
スキャン機能などの設定を行います。
(3) ADCON3
アクイジションタイムとA/Dコンバータのクロック設定を行います。
(4) ADCHS
サンプルホールドアンプのMUXA、MUXBそれぞれの入力切替設定を行います。
(5) ADPCFG
16個のピンをディジタルで使うかアナログ入力にするかの設定を行います。
この設定は単純でアナログ入力にするピンに対応するビットを0にするだけです。
(6) ADCSSL
チャネル0の自動スキャンに含める入力を指定します。この設定は単純で、含める
入力に相当するビットを1にするだけです。
【C言語での使い方】
マイクロチップ社のC30コンパイラでの使い方です。
【使用例】