• 検索結果がありません。

A/D コンバータ (ADC)16.11.3MUXA/MUXB交互入力選択を使う

ドキュメント内 Section 16. Analog-to-Digital Converter (ADC) (ページ 73-79)

図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

A/D コンバータ (ADC)

ドキュメント内 Section 16. Analog-to-Digital Converter (ADC) (ページ 73-79)