図16-33と表16-22に、MUXAとMUXBに割り当てた入力を交互にサンプリングする例を示 します。この例では、2 チャンネルの同時サンプリングを有効にしています。ALTS ビット (ADCxCON2<0>)をセットする事により、交互入力選択を有効にします。最初のサンプリング にはCH0SA、CH0NA、CH123SA、CH123NAビットで指定したMUXA入力を使います。次 のサンプリングにはCH0SB、CH0NB、CH123SB、CH123NBビットで指定したMUXB入力 を使います。この例では、MUXB入力選択で1つのS&H (CH1)に2つのアナログ入力を差動 入力として選択する事により、(AN3-AN9)をサンプリングしています。
4つのS&Hチャンネルを使えば、交互入力選択を使わなくても、本例のように2チャンネルで
交互入力選択を使った場合と同じ変換数が得られます。
しかしこの場合、CH1、CH2、CH3チャンネルのアナログ入力の選択自由度がより制限される ため、2チャンネルを使う本例の方が、4チャンネルを使うよりも柔軟に入力を選択できます。
図16-33: 交互入力選択を使って2 x 2入力を変換する
ADC Clock
SAMP Input to
AN1 TSAMP
ADxIF
TCONV TCONV
Input to AN0
AN15 TSAMP
TCONV TCONV
AN3-AN9 ASAM
AN1 TSAMP
TCONV TCONV
AN0
AN15 TSAMP
TCONV TCONV
AN3-AN9 TCONV
TCONV TSAMP
AN15 AN3-AN9 CH0
CH1 Conversion Trigger
表16-22: 交互入力選択を使って2 x 2入力を変換する
制御ビット 動作シーケンス
シーケンス選択 MUXA入力をサンプリングする: AN1->CH0, AN0->CH1
SMPI<4:0> =00001 CH0を変換する
サンプリング/変換動作2回ごとにDMAアド CH1を変換する レスをインクリメントする MUXB入力をサンプリングする: AN15->CH0, (AN3-AN9)->CH1
CHPS<1:0> =01 CH0を変換する
チャンネルCH0とCH1をサンプリングする CH1を変換する
SIMSAM =1 MUXA入力をサンプリングする: AN1->CH0, AN0->CH1
全てのチャンネルを同時にサンプリングする CH0を変換する
ADDMABM =1 CH1を変換する
変換順にDMAバッファに書き込む MUXB入力をサンプリングする: AN15->CH0,(AN3-AN9)->CH1
ALTS =1 CH0を変換する
MUXA/MUXB入力の交互選択 CH1を変換する
ADDMAEN = 1 DMA割り込み
ADCでDMAを使う MUXA入力をサンプリングする: AN1->CH0, AN0->CH1
MUXA入力選択 CH0を変換する
CH0SA<3:0> =0001 CH1を変換する
CH0+入力にAN1を選択する MUXB入力をサンプリングする: AN15->CH0,(AN3-AN9)->CH1
CH0NA =0 CH0を変換する
CH0-入力にVREF-を選択する CH1を変換する
CSCNA =0 MUXA入力をサンプリングする: AN1->CH0, AN0->CH1
入力スキャンしない CH0を変換する
CSSL<15:0> = n/a CH1を変換する
スキャン入力選択を使わない MUXB入力をサンプリングする: AN15->CH0,(AN3-AN9)->CH1
CH123SA =0 CH0を変換する
CH1+ = AN0、CH2+ = AN1、CH3+ = AN2 CH1を変換する
CH123NA<1:0> =0X DMA割り込み
CH1-, CH2-, CH3- = VREF- 以上を繰り返す
MUXB入力選択 CH0SB<3:0> =1111
CH0+入力にAN15を選択する CH0NB =0
CH0-入力にVREF-を選択する CH123SB =1
CH1+ = AN3, CH2+ = AN4, CH3+ = AN5 CH123NB<1:0> =11
CH1- = AN9, CH2- = AN10, CH3- = AN11
初回のDMA割り込み時の DMAバッファの状態
2回目のDMA割り込み時の DMAバッファの状態
AN1 Sample 1 AN1 Sample 3
AN0 Sample 1 AN0 Sample 3
AN15 Sample 1 AN15 Sample 3
(AN3-AN9) Sample 1 (AN3-AN9) Sample 3
A/D コンバータ (ADC)
16.11.4 同時サンプリングを使って 8 入力をサンプリングする
この例と次の例の設定は似ていますが、この例では同時サンプリング(SIMSAM = 1)を使うの に対して次の例では逐次サンプリング(SIMSAM = 0)を使います。どちらの例でも交互入力選 択を使い、S&Hに差動入力を指定します。
図16-34と表16-23に、同時サンプリングの例を示します。同時サンプリングで複数チャンネ
ルを変換する場合、ADCモジュールは、全てのチャンネルを同時にサンプリングした後に、必 要な変換を逐次実行します。この例ではASAMビットをセットしているため、変換完了後にサ ンプリングが自動的に始まります。
図16-34: 同時サンプリングを使って8入力をサンプリングする
ADC Clock
SAMP
Input to CH0 AN13-AN1 TSAMP
AD1IF
AN0 AN1 AN2 Input to CH1
Input to CH2 Input to CH3
AN14 TSAMP
AN3-AN6 AN4-AN7 AN5-AN8
AN14 TSAMP
AN3-AN6 AN4-AN7 AN5-AN8 ASAM
AN13-AN1 AN0 AN1 AN2 Conversion
Trigger
TCONVTCONVTCONV
TCONV TCONVTCONVTCONVTCONV TCONVTCONVTCONVTCONV
表16-23: 同時サンプリングを使って8入力をサンプリングする
制御ビット 動作シーケンス
シーケンス選択 MUXA入力をサンプリングする:
SMPI<4:0> =00001 (AN13-AN1)->CH0, AN0->CH1, AN1->CH2, AN2->CH3 サンプリング/変換動作2回ごとにDMAアド CH0を変換する
レスをインクリメントする CH1を変換する
CHPS<1:0> =1X CH2を変換する
チャンネルCH0, CH1, CH2, CH3をサンプリングする CH3を変換する
SIMSAM =1 MUXB入力をサンプリングする:
全てのチャンネルを同時にサンプリングする AN14->CH0,
ADDMABM =0 (AN3-AN6)->CH1, (AN4-AN7)->CH2, (AN5-AN8)->CH3
変換順にDMAバッファに書き込む CH0を変換する
ALTS =1 CH1を変換する
MUXA/MUXB入力の交互選択 CH2を変換する
ADDMAEN = 1 CH3を変換する
ADCでDMAを使う MUXA入力をサンプリングする:
MUXA入力選択 (AN13-AN1)->CH0, AN0->CH1, AN1->CH2, AN2->CH3
CH0SA<3:0> =1101 CH0を変換する
CH0+入力にAN13を選択する CH1を変換する
CH0NA =1 CH2を変換する
CH0-入力にAN1を選択する CH3を変換する
CSCNA =0 MUXB入力をサンプリングする:
入力スキャンしない AN14->CH0,
CSSL<15:0> = n/a (AN3-AN6)->CH1, (AN4-AN7)->CH2, (AN5-AN8)->CH3
スキャン入力選択を使わない CH0を変換する
CH123SA =0 CH1を変換する
CH1+ = AN0, CH2+ = AN1, CH3+ = AN2 CH2を変換する
CH123NA<1:0> =0X CH3を変換する
CH1-, CH2-, CH3- = VREF- DMA割り込み
MUXB入力選択 以上を繰り返す
CH0SB<3:0> =1110
CH0+入力にAN14を選択する CH0NB =0
CH0-入力にVREF-を選択する CH123SB =1
CH1+ = AN3, CH2+ = AN4, CH3+ = AN5 CH123NB<1:0> =10
CH1- = AN6、CH2- = AN7、CH3- = AN8
初回のDMA割り込み時の DMAバッファの状態
2回目のDMA割り込み時の DMAバッファの状態
(AN13-AN1) Sample 1 (AN13-AN1) Sample 3
AN0 Sample 1 AN0 Sample 3
AN1 Sample 1 AN1 Sample 3
AN2 Sample 1 AN2 Sample 3
AN14 Sample 1 AN14 Sample 3
(AN3-AN6) Sample 1 (AN3-AN6) Sample 3
(AN4-AN7) Sample 1 (AN4-AN7) Sample 3
(AN5-AN8) Sample 1 (AN5-AN8) Sample 3
(AN13-AN1) Sample 1 (AN13-AN1) Sample 4
AN0 Sample 2 AN0 Sample 4
AN1 Sample 2 AN1 Sample 4
AN2 Sample 2 AN2 Sample 4
AN14 Sample 2 AN14 Sample 4
(AN3-AN6) Sample 2 (AN3-AN6) Sample 4
(AN4-AN7) Sample 2 (AN4-AN7) Sample 4
(AN5-AN8) Sample 2 (AN5-AN8) Sample 4
A/D コンバータ (ADC)
16.11.5 逐次サンプリングを使って 8 入力をサンプリングする
図16-35と表16-24に、逐次サンプリングの例を示します。 逐次サンプリングで複数チャンネ
ルを変換する場合、ADC モジュールは可能な限り早期に 1チャンネルのサンプリングを開始 し、続いてそのチャンネルの変換を実行します。この例ではASAMビットをセットしているた め、各チャンネルのサンプリングは、そのチャンネルの変換が完了した後に自動的に始まりま す。
ASAMビットをクリアした場合、変換が完了してもSAMPビット(ADxCON1<1>)がセットさ れるまでサンプリングは始まりません。
逐次サンプリングを使って複数チャンネルを変換する場合、各チャンネルのサンプリングは、
別のチャンネルで変換を実行している間にできるため、同時サンプリングよりも長いサンプリ ング時間を確保できます。
図16-35: 逐次サンプリングを使って8入力をサンプリングする
ADC Clock
SAMP
Input to CH0 AN13-AN1 TSAMP
AD1IF
AN0 AN1
AN2 Input to CH1
Input to CH2 Input to CH3
AN14 TSAMP
AN4-AN7 AN5-AN8
AN14 TSAMP
AN3-AN6 AN4-AN7
AN5-AN8 ASAM
AN1 AN2 AN13-AN1
AN0
AN2 Conversion
Trigger
TCONVTCONVTCONV
TCONV TCONVTCONVTCONVTCONV TCONVTCONVTCONVTCONV
AN3-AN6
AN1
AN13-AN1 AN0
表16-24: 逐次サンプリングを使って8入力をサンプリングする
制御ビット 動作シーケンス
シーケンス選択 サンプリング: (AN13-AN1) -> CH0
SMPI<4:0> =00001 CH0を変換する
サンプリング/変換動作2回ごとにDMAアド サンプリング: AN0 -> CH1
レスをインクリメントする CH1を変換する
CHPS<1:0> =1X サンプリング: AN1 -> CH2
チャンネルCH0,CH1,CH2,CH3をサンプリングする CH2を変換する
SIMSAM =0 サンプリング: AN2 -> CH3
全てのチャンネルを逐次サンプリングする CH3を変換する
ADDMABM =1 サンプリング: AN14 -> CH0
変換順にDMAバッファに書き込む CH0を変換する
ALTS =1 サンプリング: (AN3-AN6) -> CH1
MUXA/MUXB入力の交互選択 CH1を変換する
ADDMAEN = 1 サンプリング: (AN4-AN7) -> CH2
ADCでDMAを使う CH2を変換する
MUXA入力選択 サンプリング: (AN5-AN8) -> CH3
CH0SA<3:0> =0110 CH3を変換する
CH0+入力にAN6を選択する サンプリング: (AN13-AN1) -> CH0
CH0NA =0 CH0を変換する
CH0-入力にVREF-を選択する サンプリング: AN0 -> CH1
CSCNA =0 CH1を変換する
入力スキャンしない サンプリング: AN1 -> CH2
CSSL<15:0> = n/a CH2を変換する
スキャン入力選択を使わない サンプリング: AN2 -> CH3
CH123SA =0 CH3を変換する
CH1+ = AN0, CH2+ = AN1, CH3+ = AN2 サンプリング: AN14 -> CH0
CH123NA<1:0> =0X CH0を変換する
CH1-, CH2-, CH3- = VREF- サンプリング: (AN3-AN6) -> CH1
MUXB入力選択 CH1を変換する
CH0SB<3:0> =0111 サンプリング: (AN4-AN7) -> CH2
CH0+入力にAN7を選択する CH2を変換する
CH0NB =0 サンプリング: (AN5-AN8) -> CH3
CH0-入力にVREF-を選択する CH3を変換する
CH123SB =1 DMA割り込み
CH1+ = AN3, CH2+ = AN4, CH3+ = AN5 以上を繰り返す
CH123NB<1:0> =0X
CH1-, CH2-, CH3- = VREF
-初回のDMA割り込み時の DMAバッファの状態
2回目のDMA割り込み時の DMAバッファの状態
(AN13-AN1) Sample 1 (AN13-AN1) Sample 3
AN0 Sample 1 AN0 Sample 3
AN1 Sample 1 AN1 Sample 3
AN2 Sample 1 AN2 Sample 3
AN14 Sample 1 AN14 Sample 3
(AN3-AN6) Sample 1 (AN3-AN6) Sample 3
(AN4-AN7) Sample 1 (AN4-AN7) Sample 3
(AN5-AN8) Sample 1 (AN5-AN8) Sample 3
(AN13-AN1) Sample 2 (AN13-AN1) Sample 4
AN0 Sample 2 AN0 Sample 4
AN1 Sample 2 AN1 Sample 4
AN2 Sample 2 AN2 Sample 28
AN14 Sample 2 AN14 Sample 4
(AN3-AN6) Sample 2 (AN3-AN6) Sample 4
(AN4-AN7) Sample 2 (AN4-AN7) Sample 4
(AN5-AN8) Sample 2 (AN5-AN8) Sample 4