2つのアナログ入力(CN8, CN9)を持っており、これは制御チップ(マイクロコントローラ :PIC32MX270F256B-50I/SP)の
AN0、AN1へそれぞれ接続されており、これでデジタルに変換されています。
下記にそのブロック図(PIC32MX1XX2XX-28-36-44-PIN-DS60001168K.pdf抜粋)を示します。
10 ビットアナログ コンバータで、色々な使い方ができます。
「MUX A」と「MUX B」の2つのマルチプレクサがあり、それぞれが正極性入力と負極性入力に接続されています。
正極性入力にはアナログ入力ピンのいずれかを選択でき、負極性入力には負極性参照電圧またはAN1 を選択できる構造です。
負極性入力にAN1 を選択すると、単極差動モードで使えます。
「MUX A」はスキャンモードに設定すると、複数アナログ入力をスキャンしながらA/D 変換することができます。
また、「MUX A」と「MUX B」を交互サンプリングする構造も作れます。
これとスキャンモードを組み合わせる構造も作れます。
[UMEHOSHI ITA]の内部設定では「MUX A」 および「MUX B」 の
入力選択を交互に使うアナログ入力を変換をサンプルルーチンとして組み込んでいます。
デフォルトのADC初期化ルーチンで次のコードにより、マルチプレクサ(MUX)の入力を指定しています。
AD1CHS = 0x01000000;// MUX AにはAN0,MUX BにAN1 の入力を接続
[AD1CHS]はADC入力選択レジスタで、指定した2つの入力マルチプレクサを交互に使います。
交互に使う指定は、ADC制御レジスタ2[AD1CON2]で行います。
次のような構成にして使っているわけです。
アナログサンプリングは「アクイジション」と「変換」の 2 つのステップ により構成されます。
「アクイジション中」はアナログ入力ピンをサンプル/ ホールドアンプ(SHA) に接続されますが、
入力ピンのサンプル電圧がアンプ入力電圧に安定して伝達されまで、十分な時間が必要で、その時間が「AcquisitionTime」です。
その「AcquisitionTime」経過時間後に、入力ピンがホールドアンプ(SHA)と切り離されて、変換プロセスに入ります。
これで安定した入力電圧が得られて、この変換プロセスでも十分な時間が必要でその時間が「ConversionTime」です。
つまり、アクイジション時間とアナログ/ デジタル変換時間の合計が総サンプリング時間です。
「ADCTotalSampleTime」 = 「AcquisitionTime」 + 「ConversionTime」
そしてこの時間指定をするレジスタが「AD1CON3」で、デフォルトで次のように指定しています。
AD1CON3=0x0000023F; この指定の意味は、次の通りです。
b15=1でクロック源を周辺モジュール用バスクロック(PBCLK:40MHz) を使う指定にしています。
b12-b8 SAMC<4:0>:0b00010 自動サンプリング時間ビットで、「AcquisitionTime」の指定で、 [2 TAD]の設定値です。
(AcquisitionTime = 2 * TAD = 2 * 3.2e-06 = 6.4マイクロ秒)
b7-b0 ADCS<7:0>: 0b00111111 ADC 変換クロック選択ビットで「ConversionTime」の指定です。
TAD(アナログモジュールクロック)は、次のように算出されます。
TAD = TPB * 2 * (ADCS<7:0> + 1) ) TPBは用バスクロックの周期で 1/40e6秒です。
TAD = 1/40e6 * 2 * (63 + 1 ) = 3.2e-06 = 3.2u秒
そして、アナログ/ デジタル変換には、サンプリングに少なくとも1 TAD ( サンプリング時間)、
変換に12 TAD ( 変換時間) を要します。
これは (2+12)*3.2e-6 = 4.48e-05 = 44.8u秒を見込んでいる指定です。