122
© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-1 セクション 22. 高速 12 ビット逐次比較型レジスタ (SAR) A/D コンバータ (ADC) 本セクションには以下の主要項目を記載しています。 22.1 はじめに .....................................................................2 22.2 制御レジスタ .................................................................6 22.3 ADC 動作 .................................................................. 61 22.4 ADC モジュールの設定 ...................................................... 65 22.5 その他の ADC 機能.......................................................... 86 22.6 割り込み .................................................................. 108 22.7 省電力モード中の動作 ...................................................... 114 22.8 リセットの影響 ............................................................ 116 22.9 伝達関数 .................................................................. 116 22.10 ADC サンプリング要件 ..................................................... 117 22.11 接続に関する注意事項 ...................................................... 117 22.12 関連アプリケーション ノート ............................................... 118 22.13 改訂履歴 .................................................................. 119 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

注意 : この日本語版文書は参考資料としてご利用ください。 新情報は必ずオリジナルの英語版をご参照願います。

セクション 22. 高速 12 ビット逐次比較型レジスタ (SAR) A/D コンバータ (ADC)

本セクションには以下の主要項目を記載しています。

22.1 はじめに.....................................................................222.2 制御レジスタ.................................................................622.3 ADC 動作 .................................................................. 6122.4 ADC モジュールの設定 ...................................................... 6522.5 その他の ADC 機能.......................................................... 8622.6 割り込み.................................................................. 10822.7 省電力モード中の動作...................................................... 11422.8 リセットの影響............................................................ 11622.9 伝達関数.................................................................. 11622.10 ADC サンプリング要件 ..................................................... 11722.11 接続に関する注意事項...................................................... 11722.12 関連アプリケーション ノート ............................................... 11822.13 改訂履歴.................................................................. 119

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-1

Page 2: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.1 はじめに

PIC32 の高速 12 ビット逐次比較型レジスタ (SAR) A/D コンバータ (ADC) は以下の特長を備えています。

• 12 ビット分解能

• 大 8 つの ADC モジュール ( 専用サンプルホールド (S&H) 回路付き )• 2 つの専用 ADC モジュールを結合して変換レートを倍増できるターボモード

• シングルエンドと差動入力の両方またはどちらか一方

• スリープ中も動作可能

• タッチセンシング アプリケーションをサポート

• 大 6 個のデジタル コンパレータ

• 大 6 個のデジタルフィルタが以下 2 つのモードをサポート :- オーバー サンプリング モード

- 平均化モード

• 専用 ADC モジュール用の FIFO と DMA エンジン (Note 参照 )• 変換データの処理を高速化する早期割り込みの生成

• モータ制御、電力変換、汎用アプリケーション向け

図 22-1 に、ADC モジュールの概略ブロック図を示します。

デバイスによって異なりますが、ADC は 大 7 つの専用 ADC モジュールと 1 つの共有 ADCモジュールを持っています。専用 ADC は 1 つの入力 ( またはその代替入力 ) を使い、時間を重視する入力または過渡応答入力の高速高精度サンプリング向けのものです。一方、共有 ADC は低速サンプリングで複数の入力チャンネルに対応するためマルチプレクサを入力に備えており、入力スキャンロジックを使って柔軟な自動スキャンを提供します。

各 ADC モジュールのアナログ入力は S&H コンデンサに接続されています。各 ADC モジュールのクロック、サンプリング時間、出力データ分解能は別々に設定できます。ADC モジュールは、レジスタの設定に基づいて入力アナログ信号の変換を実行します。変換が完了すると、各アナログ入力用の結果バッファに 変換結果が保存されます。デジタルフィルタとデジタル コンパレータがその入力からのデータを処理するよう設定されている場合、データはそれらに渡されます。

Note: 本書はデバイス データシートの補足を目的としています。本書の内容は PIC32ファミリの一部のデバイスに対応していません。

本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、 新デバイス データシート内の「ADC」の冒頭に記載している注意書きでご確認ください。

デバイス データシートとファミリ リファレンス マニュアルの各セクションは、Microchip 社のウェブサイト (http://www.microchip.com) でご覧になれます。

Note: 一部のデバイスでは、この機能を使えません。詳細は各デバイス データシート内の「ADC」を参照してください。

DS60001344A_JP - p.22-2 Preliminary © 2016 Microchip Technology Inc.

Page 3: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

図 22-1: ADC のブロック図

Note: アナログ入力 (ANa, ANb, ANc, ANd)、FIFO 機能、DMA 機能を例として示しています。実際の ANx の選択、FIFO と DMA が使えるかどうかは、各デバイスのデータシートを参照してください。

ADC0

ADC7

AVDD AVSS VREF+ VREF-

VREFSEL<2:0>

VREFH VREFL

ADCSEL<1:0>

CONCLKDIV<5:0>

TCY FRC PBCLK

TQADCDIV<6:0>(ADCxTIME<22:16>)

ADCDIV<6:0>(ADCCON2<6:0>)

TAD0-TAD6

TAD7

…...

(DedicatedADC)

(DedicatedADC)

FIFO

DMA

Digital Filter

Digital ComparatorInterrupt/Event

Capacitive VoltageDivider (CVD)

Interrupt/Event

Triggers,Turbo Channel,

Scan Control Logic

Trigger

Status and ControlRegisters

ADC6

SH0ALT<1:0>(ADCTRGMODE<17:16>)

ANxVREFL

01

DIFFx<1>(ADCIMCONx<x>)

ANa

AN1VREFL

01

DIFF1<1>(ADCIMCON1<3>)

SH6ALT<1:0>(ADCTRGMODE<29:28>)

ANxVREFL

01

DIFFx<1>(ADCIMCONx<x>)

AN49

IVCTMU

IVBAT

AN48

AN7

CVDCapacitor

TCLK

ANbANcANd

00011011

ANbANcANd

00011011

SYST

EM B

US

ANa

Interrupt

Data

ADCDATA0

ADCDATA63

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-3

Page 4: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

図 22-2: FIFO のブロック図

FEN(ADCFSTAT<31>

FIFO(Depth Device Dependent)

ADCFIFO DATA<31:0>

ADCID<2:0>ADCFSTAT<2:0>

ADCx ID

ADCx ID Converted DataADC6

ADC6EN(ADCFSTAT<30>)

ADC5

ADC5EN(ADCFSTAT<29>)

ADC0

ADC0EN(ADCFSTAT<24>)

If data available in

FIFO

FRDYADCFSTAT<22>

FIEN(ADCFSTAT<23>

Interrupt

FCNT<7:0>ADCFSTAT<15:8>

(Number of data in FIFO)

DS60001344A_JP - p.22-4 Preliminary © 2016 Microchip Technology Inc.

Page 5: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

図 22-3: DMA のブロック図

DMAGEN(ADCDMASTAT<31>)

ADC6

DMAEN(ADC6TIME<23>)

ADC5

ADC0

DMAEN(ADC5TIME<23>)

DMAEN(ADC0TIME<23>)

Buffer A (ADC0)

Buffer B (ADC0)

Buffer A (ADC1)

Buffer B (ADC1)

Buffer A (ADC6)

Buffer B (ADC6)

2DMABL<2:0>

2DMABL<2:0>

2DMABL<2:0>

BufferFull?

RAF0(ADCDMASTAT<0>)

RAFIEN0(ADCDMASTAT<8>)

Interrupt

BufferFull?

RBF6(ADCDMASTAT<22>)

RBFIEN6(ADCDMASTAT<30>)

Interrupt

Data Count for Buffer-A (ADC0)

Data Count for Buffer-B (ADC0)

Data Count for Buffer-A (ADC1)

Data Count for Buffer-B (ADC1)

Data Count for Buffer-A (ADC6)

Data Count for Buffer-B (ADC6)

DMABADDR<31:0>

CNTBADDR<31:0>

CNTBADDR<31:0> + 1

CNTBADDR<31:0> + 2

CNTBADDR<31:0> + 3

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-5

Page 6: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.2 制御レジスタ

PIC32の高速12ビットSAR ADCモジュールは、以下の特殊機能レジスタ(SFR)を備えています。 • ADCCON1: ADC 制御レジスタ 1このレジスタは、スリープおよびアイドル中の挙動とデータのフォーマットを含む全 ADCモジュールの基本的動作を制御します。また、このレジスタは割り込みコントローラに対するベクタシフト量も指定します。ADCCON1 の他の機能として、ADC のターボ機能、DMA モードの RAM バッファ長、静電容量式分圧 (CVD) の制御があります。

• ADCCON2: ADC 制御レジスタ 2このレジスタは、全 ADC モジュールの参照電圧の選択、共有 ADC モジュール (ADC7) のサンプリング時間、参照電圧の割り込みイネーブル、早期割り込みの選択、共有 ADC(ADC7) のクロック分周比の選択を制御します。

• ADCCON3: ADC 制御レジスタ 3このレジスタを使うと、ADC クロックの選択、専用および共有 ADC モジュールのデジタル機能の有効化 / 無効化、マニュアル ( ソフトウェア ) でのサンプリングと変換の制御が可能です。

• ADCTRGMODE: 専用 ADC レジスタの ADC トリガモードこのレジスタは、アナログ入力チャンネルの選択と専用 ADC モジュール (ADC0 ~ADC6) のトリガ設定を制御します。

• ADCIMCON1: ADC 入力モード制御レジスタ 1 ~ ADCIMCON4: ADC 入力モード制御レジスタ 4これらは、シングルエンド動作または差動動作の選択と、符号付きまたは符号なしデータフォーマットの選択を行います。

• ADCGIRQEN1: ADC グローバル割り込みイネーブル レジスタ 1 とADCGIRQEN2: ADC グローバル割り込みイネーブル レジスタ 2各入力の変換割り込みがグローバル ADC 割り込みを生成するかどうかを指定します。

• ADCCSS1: ADC 共通スキャン選択レジスタ 1 とADCCSS2: ADC 共通スキャン選択レジスタ 2これらのレジスタは、共通のスキャントリガによってスキャンするアナログ入力を指定します。

• ADCDSTAT1: ADC データレディ ステータス レジスタ 1 と ADCDSTAT2: ADC データレディ ステータス レジスタ 2これらのレジスタは、各アナログ入力の変換割り込みのステータスを格納します。各ビットは、対応する入力の変換結果のデータレディ ステータスを示します。

• ADCCMPENx: ADC デジタル コンパレータ x イネーブル レジスタ (x = 1 ~ 6)これらのレジスタは、デジタル コンパレータで変換結果を処理するアナログ入力を選択します。

• ADCCMPx: ADC デジタル コンパレータ x リミット値レジスタ (x = 1 ~ 6)これらのレジスタは、デジタル コンパレータで使う上限および下限のデジタル比較値を格納します。

• ADCFLTRx: ADC デジタルフィルタ x レジスタ (x = 1 ~ 6)これらのレジスタは、オーバー サンプリング フィルタ アキュムレータの制御 / ステータスビットと、16 ビットのフィルタ出力データを格納します。

• ADCTRG1: ADC トリガ源 1 レジスタこのレジスタは、アナログ入力 AN0 ~ AN3 のトリガ源を選択します。

• ADCTRG2: ADC トリガ源 2 レジスタこのレジスタは、アナログ入力 AN4 ~ AN7 のトリガ源を選択します。

• ADCTRG3: ADC トリガ源 3 レジスタこのレジスタは、アナログ入力 AN8 ~ AN11 のトリガ源を選択します。

• ADCTRG4: ADC トリガ源 4 レジスタこのレジスタは、アナログ入力 AN12 ~ AN15 のトリガ源を選択します。

• ADCTRG5: ADC トリガ源 5 レジスタこのレジスタは、アナログ入力 AN16 ~ AN19 のトリガ源を選択します。

DS60001344A_JP - p.22-6 Preliminary © 2016 Microchip Technology Inc.

Page 7: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

• ADCTRG6: ADC トリガ源 6 レジスタこのレジスタは、アナログ入力 AN20 ~ AN23 のトリガ源を選択します。

• ADCTRG7: ADC トリガ源 7 レジスタこのレジスタは、アナログ入力 AN24 ~ AN27 のトリガ源を選択します。

• ADCTRG8: ADC トリガ源 8 レジスタこのレジスタは、アナログ入力 AN28 ~ AN31 のトリガ源を選択します。

• ADCCMPCON1: ADC デジタル コンパレータ 1 制御レジスタこのレジスタは、デジタル コンパレータ 1 の動作 ( 例 : 割り込みの生成、比較基準等 ) を制御し、コンパレータ イベント発生時のステータスを提供します。さらに、CVD の出力データも提供します。

• ADCCMPCONx: ADC デジタル コンパレータ x 制御レジスタ (x = 2 ~ 6)これらのレジスタは、デジタル コンパレータ 2 ~ 6 の動作 ( 例 : 割り込みの生成、比較基準等 ) を制御します。これらのレジスタは、コンパレータ イベント発生時のステータスも提供します。

• ADCFSTAT: ADC FIFO ステータス レジスタこのレジスタは、専用 ADC モジュールの FIFO ステータスを指定します。

• ADCFIFO: ADC FIFO データレジスタこのレジスタは、専用 ADC モジュールの FIFO 出力値を指定します。

• ADCBASE: ADC ベースレジスタこれらのレジスタは、ユーザの ADC 割り込みサービスルーチン (ISR) ジャンプテーブルのベースアドレスを指定します。

• ADCDMASTAT: ADC DMA ステータス レジスタこのレジスタは、DMA ステータスビットを格納します。

• ADCCNTB: ADC サンプル数ベースアドレス レジスタこのレジスタは、RAM のサンプル数のベースアドレスを格納します。各専用 ADC モジュールの変換データを RAM に格納する他に、DMA は変換したサンプル数も格納します。

• ADCDMAB: ADC DMA ベースアドレス レジスタこのレジスタは、DMA エンジンの RAM ベースアドレスを格納します。

• ADCTRGSNS: ADC トリガ レベルセンス / エッジセンス レジスタこのレジスタは、ADC の各アナログ入力のトリガ設定 ( レベルセンスまたはエッジセンス )を格納します。

• ADCxTIME: 専用 ADCx タイミング レジスタ x (x = 0 ~ 6)これらのレジスタは、専用アナログ入力のタイミングおよびクロック設定を格納します。

• ADCEIEN1: ADC 早期割り込みイネーブル レジスタ 1 とADCEIEN2: ADC 早期割り込みイネーブル レジスタ 2これらのレジスタは、各アナログ入力の早期割り込みを有効または無効にするためのビットを格納します。

• ADCEISTAT1: ADC 早期割り込みステータス レジスタ 1 と ADCEISTAT2: ADC 早期割り込みステータス レジスタ 2これらのレジスタは、各アナログ入力の早期割り込みのステータスビットを格納します。

• ADCANCON: ADC アナログ ウォームアップ制御レジスタ

このレジスタは、ADC モジュールのアナログおよびバイアス回路のウォームアップ制御設定を格納します。

• ADCDATAx: ADC 出力データレジスタ (x = 0 ~ 63)これらのレジスタは、ADC 出力データレジスタです。ADCDATAx レジスタは、アナログ入力 0 ~ 63 の変換結果を格納します。

• ADCxCFG: ADCx コンフィグレーション レジスタ x (x = 0 ~ 7)これらのレジスタは、ADC モジュールのコンフィグレーション データを指定します。

• ADCSYSCFG0: ADC システム コンフィグレーション レジスタ 0 と ADCSYSCFG1: ADC システム コンフィグレーション レジスタ 1これらのレジスタは、アナログ入力に対応する読み出し専用ビットを格納します。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-7

Page 8: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32

ファ

ミリ

リフ

ァレ

ンス

マニ

ュア

DS60001344A_JP - p

.22-8Prelim

inary©

2016 Microchip Technology Inc.

ビットの詳細な説明を記載しています。

Bit 20/4 Bit 19/3 Bit 18/2 Bit 17/1 Bit 16/0

STRGSRC<4:0>STRGLVL DMABL<2:0>

9:0>ADCDIV<6:0>

DIGEN4 DIGEN3 DIGEN2 DIGEN1 DIGEN0ADINSEL<5:0>

T<1:0> SH1ALT<1:0> SH0ALT<1:0>SSAMPEN4 SSAMPEN3 SSAMPEN2 SSAMPEN1 SSAMPEN0

SIGN10 DIFF9 SIGN9 DIFF8 SIGN8SIGN2 DIFF1 SIGN1 DIFF0 SIGN0

SIGN26 DIFF25 SIGN25 DIFF24 SIGN24SIGN18 DIFF17 SIGN17 DIFF16 SIGN16SIGN42 DIFF41 SIGN41 DIFF40 SIGN40SIGN34 DIFF33 SIGN33 DIFF32 SIGN32SIGN58 DIFF57 SIGN57 DIFF56 SIGN56SIGN50 DIFF49 SIGN49 DIFF48 SIGN48

AGIEN20 AGIEN19 AGIEN18 AGIEN17 AGIEN16AGIEN4 AGIEN3 AGIEN2 AGIEN1 AGIEN0

AGIEN52 AGIEN51 AGIEN50 AGIEN49 AGIEN48AGIEN36 AGIEN35 AGIEN34 AGIEN33 AGIEN32CSS20 CSS19 CSS18 CSS17 CSS16CSS4 CSS3 CSS2 CSS1 CSS0

CSS52 CSS51 CSS50 CSS49 CSS48CSS36 CSS35 CSS34 CSS33 CSS32

ARDY20 ARDY19 ARDY18 ARDY17 ARDY16ARDY4 ARDY3 ARDY2 ARDY1 ARDY0

ARDY52 ARDY51 ARDY50 ARDY49 ARDY48ARDY36 ARDY35 ARDY34 ARDY33 ARDY32CMPE20 CMPE19 CMPE18 CMPE17 CMPE16CMPE4 CMPE3 CMPE2 CMPE1 CMPE0

CHNLID<4:0>

TRGSRC2<4:0>TRGSRC0<4:0>TRGSRC6<4:0>TRGSRC4<4:0>

TRGSRC10<4:0>TRGSRC8<4:0>

TRGSRC14<4:0>TRGSRC12<4:0>TRGSRC18<4:0>TRGSRC16<4:0>TRGSRC22<4:0>TRGSRC20<4:0>TRGSRC26<4:0>TRGSRC24<4:0>TRGSRC30<4:0>TRGSRC28<4:0>

表 22-1 に、ADC 関連の特殊機能レジスタ (SFR) をまとめて示します。この表の後に、各

表 22-1: ADC 関連 SFR のまとめ

レジスタ名ビットレンジ

Bit 31/15 Bit 30/14 Bit 29/13 Bit 28/12 Bit 27/11 Bit 26/10 Bit 25/9 Bit 24/8 Bit 23/7 Bit 22/6 Bit 21/5

ADCCON1 31:16 TRBEN TRBERR TRBMST<2:0> TRBSLV<2:0> FRACT SELRES<1:0>15:0 ON — SIDL AICPMPEN CVDEN FSSCLKEN FSPBCLKEN — — IRQVS<2:0>

ADCCON2 31:16 BGVRRDY REFFLT EOSRDY CVDCPL<2:0> SAMC<15:0 BGVRIEN REFFLTIEN EOSIEN ADCEIOVR ECRIEN ADCEIS<2:0> —

ADCCON3 31:16 ADCSEL<1:0> CONCLKDIV<5:0> DIGEN7 DIGEN6 DIGEN515:0 VREFSEL<2:0> TRGSUSP UPDIEN UPDRDY SAMP RQCNVRT GLSWTRG GSWTRG

ADCTRGMODE 31:16 — — SH6ALT<1:0> SH5ALT<1:0> SH4ALT<1:0> SH3ALT<1:0> SH2AL15:0 — STRGEN6 STRGEN5 STRGEN4 STRGEN3 STRGEN2 STRGEN1 STRGEN0 — SSAMPEN6 SSAMPEN5

ADCIMCON1 31:16 DIFF15 SIGN15 DIFF14 SIGN14 DIFF13 SIGN13 DIFF12 SIGN12 DIFF11 SIGN11 DIFF1015:0 DIFF7 SIGN7 DIFF6 SIGN6 DIFF5 SIGN5 DIFF4 SIGN4 DIFF3 SIGN3 DIFF2

ADCIMCON2 31:16 DIFF31 SIGN31 DIFF30 SIGN30 DIFF29 SIGN29 DIFF28 SIGN28 DIFF27 SIGN27 DIFF2615:0 DIFF23 SIGN23 DIFF22 SIGN22 DIFF21 SIGN21 DIFF20 SIGN20 DIFF19 SIGN19 DIFF18

ADCIMCON3 31:16 DIFF47 SIGN47 DIFF46 SIGN46 DIFF45 SIGN45 DIFF44 SIGN44 DIFF43 SIGN43 DIFF4215:0 DIFF39 SIGN39 DIFF38 SIGN38 DIFF37 SIGN37 DIFF36 SIGN36 DIFF35 SIGN35 DIFF34

ADCIMCON4 31:16 DIFF63 SIGN63 DIFF62 SIGN62 DIFF61 SIGN61 DIFF60 SIGN60 DIFF59 SIGN59 DIFF5815:0 DIFF55 SIGN55 DIFF54 SIGN54 DIFF53 SIGN53 DIFF52 SIGN52 DIFF51 SIGN51 DIFF50

ADCGIRQEN1 31:16 AGIEN31 AGIEN30 AGIEN29 AGIEN28 AGIEN27 AGIEN26 AGIEN25 AGIEN24 AGIEN23 AGIEN22 AGIEN2115:0 AGIEN15 AGIEN14 AGIEN13 AGIEN12 AGIEN11 AGIEN10 AGIEN9 AGIEN8 AGIEN7 AGIEN6 AGIEN5

ADCGIRQEN2 31:16 AGIEN63 AGIEN62 AGIEN61 AGIEN60 AGIEN59 AGIEN58 AGIEN57 AGIEN56 AGIEN55 AGIEN54 AGIEN5315:0 AGIEN47 AGIEN46 AGIEN45 AGIEN44 AGIEN43 AGIEN42 AGIEN41 AGIEN40 AGIEN39 AGIEN38 AGIEN37

ADCCSS1 31:16 CSS31 CSS30 CSS29 CSS28 CSS27 CSS26 CSS25 CSS24 CSS23 CSS22 CSS2115:0 CSS15 CSS14 CSS13 CSS12 CSS11 CSS10 CSS9 CSS8 CSS7 CSS6 CSS5

ADCCSS2 31:16 CSS63 CSS62 CSS61 CSS60 CSS59 CSS58 CSS57 CSS56 CSS55 CSS54 CSS5315:0 CSS47 CSS46 CSS45 CSS44 CSS43 CSS42 CSS41 CSS40 CSS39 CSS38 CSS37

ADCDSTAT1 31:16 ARDY31 ARDY30 ARDY29 ARDY28 ARDY27 ARDY26 ARDY25 ARDY24 ARDY23 ARDY22 ARDY2115:0 ARDY15 ARDY14 ARDY13 ARDY12 ARDY11 ARDY10 ARDY9 ARDY8 ARDY7 ARDY6 ARDY5

ADCDSTAT2 31:16 ARDY63 ARDY62 ARDY61 ARDY60 ARDY59 ARDY58 ARDY57 ARDY56 ARDY55 ARDY54 ARDY5315:0 ARDY47 ARDY46 ARDY45 ARDY44 ARDY43 ARDY42 ARDY41 ARDY40 ARDY39 ARDY38 ARDY37

ADCCMPENx‘x’ = 1-6

31:16 CMPE31 CMPE30 CMPE29 CMPE28 CMPE27 CMPE26 CMPE25 CMPE24 CMPE23 CMPE22 CMPE2115:0 CMPE15 CMPE14 CMPE13 CMPE12 CMPE11 CMPE10 CMPE9 CMPE8 CMPE7 CMPE6 CMPE5

ADCCMPx‘x’ = 1-6

31:16 DCMPHI<15:0>15:0 DCMPLO<15:0>

ADCFLTRx‘x’ = 1-6

31:16 AFEN DATA16EN DFMODE OVRSAM<2:0> AFGIEN AFRDY — — —15:0 FLTRDATA<15:0>

ADCTRG1 31:16 — — — TRGSRC3<4:0> — — —15:0 — — — TRGSRC1<4:0> — — —

ADCTRG2 31:16 — — — TRGSRC7<4:0> — — —15:0 — — — TRGSRC5<4:0> — — —

ADCTRG3 31:16 — — — TRGSRC11<4:0> — — —15:0 — — — TRGSRC9<4:0> — — —

ADCTRG4 31:16 — — — TRGSRC15<4:0> — — —15:0 — — — TRGSRC13<4:0> — — —

ADCTRG5 31:16 — — — TRGSRC19<4:0> — — —15:0 — — — TRGSRC17<4:0> — — —

ADCTRG6 31:16 — — — TRGSRC23<4:0> — — —15:0 — — — TRGSRC21<4:0> — — —

ADCTRG7 31:16 — — — TRGSRC27<4:0> — — —15:0 — — — TRGSRC25<4:0> — — —

ADCTRG8 31:16 — — — TRGSRC31<4:0> — — —15:0 — — — TRGSRC29<4:0> — — —

Page 9: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

© 2016 M

icrochip Technology Inc.Prelim

inaryD

S60001344A_JP - p.22-9

セク

ショ

ン22.

高速

12ビ

ット

SAR

AD

C

ADBTWN IEHIHI IEHILO IELOHI IELOLO

AD‘x’

— — — — —BTWN IEHIHI IEHILO IELOHI IELOLO

AD — — — — —— — ADCID<2:0>

AD

AD — — — — —

AD BF4 RBF3 RBF2 RBF1 RBF0AF4 RAF3 RAF2 RAF1 RAF0

AD

AD

AD VL20 LVL19 LVL18 LVL17 LVL16LVL4 LVL3 LVL2 LVL1 LVL0

AD‘x’

ADCDIV<6:0>

AD IEN20 EIEN19 EIEN18 EIEN17 EIEN16IEN4 EIEN3 EIEN2 EIEN1 EIEN0

AD IEN52 EIEN51 EIEN50 EIEN49 EIEN48IEN36 EIEN35 EIEN34 EIEN33 EIEN32

AD RDY20 EIRDY19 EIRDY18 EIRDY17 EIRDY16IRDY4 EIRDY3 EIRDY2 EIRDY1 EIRDY0

AD RDY52 EIRDY51 EIRDY50 EIRDY49 EIRDY48RDY36 EIRDY35 EIRDY34 EIRDY33 EIRDY32

AD KIEN4 WKIEN3 WKIEN2 WKIEN1 WKIEN0NEN4 ANEN3 ANEN2 ANEN1 ANEN0

AD('x'AD‘x’

AD

AD

レジ it 20/4 Bit 19/3 Bit 18/2 Bit 17/1 Bit 16/0

CCMPCON1 31:16 CVDDATA<15:0>15:0 — — AINID<5:0> ENDCMP DCMPGIEN DCMPED IE

CCMPCONx= 2-6

31:16 — — — — — — — — — — —15:0 — — — AINID<4:0> ENDCMP DCMPGIEN DCMPED IE

CFSTAT 31:16 FEN ADC6EN ADC5EN ADC4EN ADC3EN ADC2EN ADC1EN ADC0EN FIEN FRDY FWROVERR15:0 FCNT<7:0> FSIGN — —

CFIFO 31:16 DATA<31:16>15:0 DATA<15:0>

CBASE 31:16 — — — — — — — — — — —15:0 ADCBASE<15:0>

CDMASTAT 31:16 DMAGEN RBFIEN6 RBFIEN5 RBFIEN4 RBFIEN3 RBFIEN2 RBFIEN1 RBFIEN0 DMAWROVERR RBF6 RBF5 R15:0 DMACNTEN RAFIEN6 RAFIEN5 RAFIEN4 RAFIEN3 RAFIEN2 RAFIEN1 RAFIEN0 — RAF6 RAF5 R

CCNTB 31:16 CNTBADDR<31:16>15:0 CNTBADDR<15:0>

CDMAB 31:16 DMABADDR<31:16>15:0 DMABADDR<15:0>

CTRGSNS 31:16 LVL31 LVL30 LVL29 LVL28 LVL27 LVL26 LVL25 LVL24 LVL23 LVL22 LVL21 L15:0 LVL15 LVL14 LVL13 LVL12 LVL11 LVL10 LVL9 LVL8 LVL7 LVL6 LVL5

CxTIME= 0-6

31:16 — — — ADCEIS<2:0> SELRES<1:0> DMAEN15:0 — — — — — — SAMC<9:0>

CEIEN1 31:16 EIEN31 EIEN30 EIEN29 EIEN28 EIEN27 EIEN26 EIEN25 EIEN24 EIEN23 EIEN22 EIEN21 E15:0 EIEN15 EIEN14 EIEN13 EIEN12 EIEN11 EIEN10 EIEN9 EIEN8 EIEN7 EIEN6 EIEN5 E

CEIEN2 31:16 EIEN63 EIEN62 EIEN61 EIEN60 EIEN59 EIEN58 EIEN57 EIEN56 EIEN55 EIEN54 EIEN53 E15:0 EIEN47 EIEN46 EIEN45 EIEN44 EIEN43 EIEN42 EIEN41 EIEN40 EIEN39 EIEN38 EIEN37 E

CEISTAT1 31:16 EIRDY31 EIRDY30 EIRDY29 EIRDY28 EIRDY27 EIRDY26 EIRDY25 EIRDY24 EIRDY23 EIRDY22 EIRDY21 EI15:0 EIRDY15 EIRDY14 EIRDY13 EIRDY12 EIRDY11 EIRDY10 EIRDY9 EIRDY8 EIRDY7 EIRDY6 EIRDY5 E

CEISTAT2 31:16 EIRDY63 EIRDY62 EIRDY61 EIRDY60 EIRDY59 EIRDY58 EIRDY57 EIRDY56 EIRDY55 EIRDY54 EIRDY53 EI15:0 EIRDY47 EIRDY46 EIRDY45 EIRDY44 EIRDY43 EIRDY42 EIRDY41 EIRDY40 EIRDY39 EIRDY38 EIRDY37 EI

CANCON 31:16 — — — — WKUPCLKCNT<3:0> WKIEN7 WKIEN6 WKIEN5 W15:0 WKRDY7 WKRDY6 WKRDY5 WKRDY4 WKRDY3 WKRDY2 WKRDY1 WKRDY0 ANEN7 ANEN6 ANEN5 A

CDATAx = 0 to 63)

31:16 DATA<31:16>15:0 DATA<15:0>

CxCFG= 0-7

31:16 ADCCFG<31:16>15:0 ADCCFG<15:0>

CSYSCFG0 31:16 AN<31:16>15:0 AN<15:0>

CSYSCFG1 31:16 AN<63:48>15:0 AN<47:32>

22-1: ADC 関連 SFR のまとめ

スタ名ビットレンジ

Bit 31/15 Bit 30/14 Bit 29/13 Bit 28/12 Bit 27/11 Bit 26/10 Bit 25/9 Bit 24/8 Bit 23/7 Bit 22/6 Bit 21/5 B

Page 10: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-1: ADCCON1: ADC 制御レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R-0, HS, HC R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TRBEN TRBERR TRBMST<2:0> TRBSLV<2:0>

23:16R/W-0 R/W-1 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FRACT SELRES<1:0> STRGSRC<4:0>

15:8R/W-0 U-0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-0 U-0ON — SIDL AICPMPEN CVDEN FSSCLKE

NFSPBCLKE

N—

7:0U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0— IRQVS<2:0> STRGLVL DMABL<2:0>

凡例 : HC = ハードウェア クリアビット

HS = ハードウェア セットビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 TRBEN: ターボチャンネル イネーブルビット1 = ターボチャンネルを有効にする0 = ターボチャンネルを無効にする

bit 30 TRBERR: ターボチャンネル エラー ステータスビット1 = ターボチャンネル設定中にエラーが発生した (TRBEN ビットを「1」にセットしていてもターボチャ

ンネル機能は無効になります。)0 = ターボチャンネル エラーは発生していない

Note: このビットのステータスは TRBEN ビットをセットした後のみ有効です。bit 29-27 TRBMST<2:0>: ターボマスタ ADCx ビット

111 = 予約済み110 = ADC6 をターボマスタとして選択する•••000 = ADC0 をターボマスタとして選択する

bit 26-24 TRBSLV<2:0>: ターボスレーブ ADCx ビット111 = 予約済み110 = ADC6 をターボスレーブとして選択する•••000 = ADC0 をターボスレーブとして選択する

bit 23 FRACT: 小数データ出力フォーマット ビット1 = 小数0 = 整数

bit 22-21 SELRES<1:0>: 共有 ADC (ADC7) 分解能ビット11 = 12 ビット ( 既定値 )10 = 10 ビット01 = 8 ビット00 = 6 ビット

bit 20-16 STRGSRC<4:0>: スキャントリガ源選択ビット11111~ 00100 = トリガ源選択は、各デバイス データシート内の「ADC」参照00011 = 予約済み00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG) は自己クリアしない00001 = グローバル ソフトウェア エッジトリガ (GSWTRG) は次のクロックサイクルで自己クリアする00000 = トリガなし

bit 15 ON: ADC モジュール イネーブルビット1 = ADC モジュールを有効にする0 = ADC モジュールを無効にする

Note: ON ビットは ADC モジュールを構成してからセットする必要があります。bit 14 未実装 :「0」として読み出し

DS60001344A_JP - p.22-10 Preliminary © 2016 Microchip Technology Inc.

Page 11: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 13 SIDL: Stop-in-Idle モードビット1 = デバイスがアイドルに移行するとモジュールは動作を停止する0 = デバイスがアイドル中でもモジュールは動作を継続する

bit 12 AICPMPEN: アナログ入力用チャージポンプ イネーブルビット1 = アナログ入力用チャージポンプを有効にする ( 既定値 )0 = アナログ入力用チャージポンプを無効にする

bit 11 CVDEN: 静電容量式分圧 (CVD) イネーブルビット1 = CVD 動作を有効にする0 = CVD 動作を無効にする

bit 10 FSSCLKEN: ADC 制御クロックのシステムクロックへの高速同期ビット1 = ADC 制御クロックのシステムクロックへの高速同期を有効にする0 = ADC 制御クロックのシステムクロックへの高速同期を無効にする

bit 9 FSPBCLKEN: ADC 制御クロックの周辺モジュール用クロックへの高速同期ビット1 = ADC 制御クロックの周辺モジュール用クロックへの高速同期を有効にする0 = ADC 制御クロックの周辺モジュール用クロックへの高速同期を無効にする

bit 8-7 未実装 :「0」として読み出しbit 6-4 IRQVS<2:0>: 割り込みベクタシフト ビット

これらのビットで指定する分だけ ARDYx ステータスビット (ADCDSTAT1 および ADCDSTAT2 レジスタ )を左シフトさせた値を ADCBASE レジスタの値に加算して割り込みベクタアドレスを求めます ( 詳細は22.6.2「ADC ベースレジスタ (ADCBASE) の使い方」参照 )。割り込みベクタアドレス = ADCBASE の読み出し値 = ADCBASE に書き込まれた値 + x << IRQVS<2:0> (「x」は、ADCDSTAT1またはADCDSTAT2レジスタのアクティブな入力 IDの 小値 ( 大の優先度 )です。)111 = x を左に 7 ビット分シフトする110 = x を左に 6 ビット分シフトする101 = x を左に 5 ビット分シフトする100 = x を左に 4 ビット分シフトする011 = x を左に 3 ビット分シフトする010 = x を左に 2 ビット分シフトする001 = x を左に 1 ビット分シフトする000 = x を左に 0 ビット分シフトする

bit 3 STRGLVL: スキャントリガ High レベルセンス / 立ち上がりエッジセンス ビット1 = スキャントリガを High レベルセンスにする (STRIGモードを一度選択すると (ADCTRGx レジスタの

TRGSRCx<4:0>)、STRIG モードを解除するまでスキャントリガは選択した全アナログ入力に対して継続して有効です。)

0 = スキャントリガを立ち上がりエッジセンスにする(STRIGモードを選択すると(ADCTRGxレジスタのTRGSRCx<4:0>)、1 つのスキャントリガのみが生成され、選択した全アナログ入力のスキャンを完了させます。)

bit 2-0 DMABL<2:0>: DMA バッファ長サイズビット111 = 各アナログ入力に 128 個の RAM 位置を割り当てる110 = 各アナログ入力に 64 個の RAM 位置を割り当てる101 = 各アナログ入力に 32 個の RAM 位置を割り当てる100 = 各アナログ入力に 16 個の RAM 位置を割り当てる011 = 各アナログ入力に 8 個の RAM 位置を割り当てる010 = 各アナログ入力に 4 個の RAM 位置を割り当てる001 = 各アナログ入力に 2 個の RAM 位置を割り当てる000 = 各アナログ入力に 1 個の RAM 位置を割り当てる

Note: 出力データは 16 ビット幅のため、1 つの位置は 2 バイトから成ります。

レジスタ 22-1: ADCCON1: ADC 制御レジスタ 1 ( 続き )

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-11

Page 12: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-2: ADCCON2: ADC 制御レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0, HS, HC R-0, HS, HC R-0, HS, HC R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

BGVRRDY REFFLT EOSRDY CVDCPL<2:0> SAMC<9:9>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SAMC<7:0>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

BGVRIEN REFFLTIEN EOSIEN ADCEIOVR ECRIEN ADCEIS<2:0>

7:0U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— ADCDIV<6:0>

凡例 : HC = ハードウェア クリアビット

HS = ハードウェア セットビット

r = 予約済み

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 BGVRRDY: バンドギャップ電圧 /ADC 参照電圧ステータスビット1 = バンドギャップ電圧と ADC 参照電圧 (VREF) の両方の準備が完了している0 = バンドギャップ電圧と ADC 参照電圧 (VREF) のどちらか一方または両方の準備が完了していない

データ処理が有効となるのはハードウェアが BGVRRDY ビットをセットした後です。そのため、アプリケーション コードは BGVRRDY ビットがセットされている事を確認し、データが有効である事を確かめる必要があります。このビットは ON ビット (ADCCON1<15>) = 0の時「0」に設定されます。

bit 30 REFFLT: バンドギャップ /VREF/AVDD BOR フォルト ステータスビット1 = ON ビット (ADCCON1<15>) がセットされている間にバンドギャップまたは VREF 電圧にフォルト

が検出された ( バンドギャップまたは VREF のフォルトの原因は多くの場合、アナログ VDD 電源のBOR です。)

0 = バンドギャップと VREF 電圧は正常に動作している

(ON ビット (ADCCON1<15>) = 0かつ BGVRRDY ビット = 1の場合、このビットはクリアされます。)bit 29 EOSRDY: スキャン終了時割り込みステータスビット

1 = スキャントリガのスキャン対象とみなす全アナログ入力 (ADCCSS1およびADCCSS2レジスタで指定した全アナログ入力 ) のスキャンが完了した

0 = スキャンは完了していない

このビットは、ソフトウェアが ADCCON2<31:24> を読み出すとクリアされます。

bit 28-26 CVDCPL<2:0>: 静電容量式分圧器 (CVD) 設定ビット111 = 7 * 2.5 pF = 17.5 pF110 = 6 * 2.5 pF = 15 pF101 = 5 * 2.5 pF = 12.5 pF100 = 4 * 2.5 pF = 10 pF011 = 3 * 2.5 pF = 7.5 pF010 = 2 * 2.5 pF = 5 pF001 = 1 * 2.5 pF = 2.5 pF000 = 0 * 2.5 pF = 0 pF

bit 25-16 SAMC<9:0>: 共有 ADC (ADC7) サンプリング時間ビット

1111111111 = 1025 TAD7•••0000000001 = 3 TAD70000000000 = 2 TAD7

TAD7 = ADCDIV<6:0> ビットで設定する共有 ADC (ADC7) の ADC 変換クロック周期 )bit 15 BGVRIEN: バンドギャップ /VREF 電圧レディ割り込みイネーブルビット

1 = BGVRRDY ビットがセットされると割り込みを生成する0 = BGVRRDY ビットがセットされても割り込みを生成しない

DS60001344A_JP - p.22-12 Preliminary © 2016 Microchip Technology Inc.

Page 13: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 14 REFFLTIEN: バンドギャップ /VREF 電圧フォルト割り込みイネーブルビット1 = REFFLT ビットがセットされると割り込みを生成する0 = REFFLT ビットがセットされても割り込みを生成しない

bit 13 EOSIEN: スキャン終了時割り込みイネーブルビット1 = EOSRDY ビットがセットされると割り込みを生成する0 = EOSRDY ビットがセットされても割り込みを生成しない

bit 12 ADCEIOVR: 早期割り込み要求上書きビット1 = 早期割り込み生成を上書きし、割り込み生成は ADCGIRQEN1 および ADCGIRQEN2 レジスタで制

御する0 = 早期割り込み生成を上書きせず、割り込み生成は ADCEIEN1 および ADCEIEN2 レジスタで制御する

bit 11 ECRIEN: 外部インターフェイス変換要求イネーブルビット1 = 外部モジュール ( 例 : PTG) からの ADC 変換要求を有効にする0 = 外部モジュールからの ADC 変換要求を無効にする

bit 10-8 ADCEIS<2:0>: 共有 ADC (ADC7) 早期割り込み選択ビット変換が完了する前に、指定するクロック数だけ早く割り込みを生成します。111 = 変換が終わる 8 ADC クロック前にデータレディ割り込みを生成する110 = 変換が終わる 7 ADC クロック前にデータレディ割り込みを生成する•••001 = 変換が終わる 2 ADC クロック前にデータレディ割り込みを生成する000 = 変換が終わる 1 ADC クロック前にデータレディ割り込みを生成する

Note: SELRES<1:0> ビット (ADCCON1<22:21>) で選択した分解能が 12 ビットまたは 10 ビットの場合、全ての選択肢が利用できます。8 ビットの分解能を選択した場合、「000」~「101」の選択肢が利用できます。6 ビットの分解能を選択した場合、「000」~「011」の選択肢が利用できます。

bit 7 未実装 :「0」として読み出し

bit 6-0 ADCDIV<6:0>: 共有 ADC (ADC7) クロックドライバ ビット1111111 = 254 * TQ = TAD7•••0000011 = 6 * TQ = TAD70000010 = 4 * TQ = TAD70000001 = 2 * TQ = TAD7

0000000 = 予約済み

ADCDIV<6:0> ビットで ADC 制御クロック (TQ) を分周し、共有 ADC (ADC7) のクロック (TAD7) を生成します。

レジスタ 22-2: ADCCON2: ADC 制御レジスタ 2 ( 続き )

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-13

Page 14: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-3: ADCCON3: ADC 制御レジスタ 3ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCSEL<1:0> CONCLKDIV<5:0>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIGEN7 DIGEN6 DIGEN5 DIGEN4 DIGEN3 DIGEN2 DIGEN1 DIGEN0

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0, HS, HC R/W-0 R-0, HS, HC

VREFSEL<2:0> TRGSUSP UPDIEN UPDRDY SAMP(1,2,3,4) RQCNVRT

7:0R/W-0 R-0, HS, HC R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

GLSWTRG GSWTRG ADINSEL<5:0>

凡例 : HC = ハードウェア クリアビット

HS = ハードウェア セットビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-30 ADCSEL<1:0>: ADC クロック源 (TCLK) ビット11 = システムクロック (TCY)10 = REFCLK301 = FRC オシレータ出力00 = 周辺モジュール用バスクロック (PBCLK)

bit 29-24 CONCLKDIV<5:0>: ADC 制御クロック (TQ) ドライバビット111111 = 126 * TCLK = TQ•••000011 = 6 * TCLK = TQ000010 = 4 * TCLK = TQ000001 = 2 * TCLK = TQ000000 = TCLK = TQ

bit 23 DIGEN7: 共有 ADC (ADC7) デジタル イネーブルビット1 = ADC7 のデジタル機能を ON にする0 = ADC7 のデジタル機能を OFF にする

bit 22 DIGEN6: ADC6 デジタル イネーブルビット1 = ADC6 のデジタル機能を ON にする0 = ADC6 のデジタル機能を OFF にする

bit 21 DIGEN5: ADC5 デジタル イネーブルビット1 = ADC5 のデジタル機能を ON にする0 = ADC5 のデジタル機能を OFF にする

bit 20 DIGEN4: ADC4 デジタル イネーブルビット1 = ADC4 のデジタル機能を ON にする0 = ADC4 のデジタル機能を OFF にする

Note 1: SAMP ビットは優先度が も高く、このビットをセットするとクリアされるまで S&H 回路はサンプルモードを維持します。また、SAMP ビットをセットすると SAMC<9:0> ビットの設定 (ADCCON2<25:16>)は無視されます。

2: SAMP ビットはクラス 2 およびクラス 3 アナログ入力のみを共有 ADC (ADC7) に接続します。全てのクラス 1 アナログ入力は SAMP ビットの影響を受けません。

3: SAMP ビットは自己クリアビットではないため、アプリケーション ソフトウェアでこのビットをクリアし、次に RQCNVRT ビットをセットして初めて A/D 変換を開始できます。

4: 通常、SAMP および RQCNVRT ビットをソフトウェア ルーチンで使う場合、全 TRGSRCx<4:0> ビットと STRGSRC<4:0> ビットを「00000」に設定して外部ハードウェアのトリガを全て無効にする事で、ソフトウェア制御のサンプリング コマンド信号 (SAMP) とソフトウェア制御のトリガ (RQCNVRT) にトリガが干渉しないようにする必要があります。

DS60001344A_JP - p.22-14 Preliminary © 2016 Microchip Technology Inc.

Page 15: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 19 DIGEN3: ADC3 デジタル イネーブルビット1 = ADC3 のデジタル機能を ON にする0 = ADC3 のデジタル機能を OFF にする

bit 18 DIGEN2: ADC2 デジタル イネーブルビット1 = ADC2 のデジタル機能を ON にする0 = ADC2 のデジタル機能を OFF にする

bit 17 DIGEN1: ADC1 デジタル イネーブルビット1 = ADC1 のデジタル機能を ON にする0 = ADC1 のデジタル機能を OFF にする

bit 16 DIGEN0: ADC0 デジタル イネーブルビット1 = ADC0 のデジタル機能を ON にする0 = ADC0 のデジタル機能を OFF にする

bit 15-13 VREFSEL<2:0>: 参照電圧 (VREF) 入力選択ビット

bit 12 TRGSUSP: トリガサスペンド ビット1 = トリガをブロックし、次の A/D 変換を開始しない ( しかし ADC モジュールは OFF ではありません。)0 = トリガをブロックしない

bit 11 UPDIEN: 更新レディ割り込みイネーブルビット

1 = ハードウェアが UPDRDY ビットをセットすると割り込みを生成する0 = 割り込みを生成しない

bit 10 UPDRDY: ADC 更新レディ ステータスビット

1 = ADC SFR を更新できる0 = ADC SFR を更新できない

Note: TRGSUSP ビットがセットされており、どの ADC モジュールの変換も実行していない場合のみ、このビットは有効です。

bit 9 SAMP: クラス 2 およびクラス 3 アナログ入力サンプリング イネーブルビット (1,2,3,4)

1 = ADC の S&H アンプをサンプル動作させる0 = ADC の S&H アンプをホールド動作させる

bit 8 RQCNVRT: 単独 ADC 入力変換要求ビット

このビットとこのビットに関連する ADINSEL<5:0> ビットを使うと、ソフトウェアで個別にアナログ入力の A/D 変換を要求できます。1 = ADINSEL<5:0> ビットで選択されている ADC 入力の変換をトリガする0 = 変換をトリガしない

Note: このビットは、次の ADC クロックサイクルで自動的にクリアされます。

Note 1: SAMP ビットは優先度が も高く、このビットをセットするとクリアされるまで S&H 回路はサンプルモードを維持します。また、SAMP ビットをセットすると SAMC<9:0> ビットの設定 (ADCCON2<25:16>)は無視されます。

2: SAMP ビットは、クラス 2 およびクラス 3 アナログ入力のみを共有 ADC (ADC7) に接続します。全てのクラス 1 アナログ入力は、SAMP ビットの影響を受けません。

3: SAMP ビットは自己クリアビットではないため、アプリケーション ソフトウェアがまずこのビットをクリアし、次に RQCNVRT ビットをセットして初めて A/D 変換を開始できます。

4: 通常、SAMP および RQCNVRT ビットをソフトウェア ルーチンで使っている場合、全 TRGSRCx<4:0>ビットと STRGSRC<4:0> ビットを「00000」に設定して外部ハードウェアのトリガを全て無効にする事で、ソフトウェア制御のサンプリング コマンド信号 (SAMP) とソフトウェア制御のトリガ (RQCNVRT) にトリガが干渉しないようにする必要があります。

レジスタ 22-3: ADCCON3: ADC 制御レジスタ 3 ( 続き )

VREFSEL<2:0> ADREF+ ADREF-111 AVDD 内部 VREFL110 内部 VREFH AVSS101 内部 VREFH 外部 VREFL100 内部 VREFH 内部 VREFL011 外部 VREFH 外部 VREFL010 AVDD 外部 VREFL001 外部 VREFH AVss000 AVDD AVss

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-15

Page 16: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 7 GLSWTRG: グローバル ソフトウェア レベルトリガ ビット

1 = GLSWTRGでADC入力の変換をトリガする (トリガの種類はADCTRGxレジスタのTRGSRC<4:0>ビットまたは ADCCON1 レジスタの STRGSRC<4:0> ビットで選択 )

0 = A/D 変換をトリガしない

bit 6 GSWTRG: グローバル ソフトウェア エッジトリガ ビット

1 = GSWTRGでADC入力の変換をトリガする (トリガの種類はADCTRGxレジスタの TRGSRC<4:0>ビットまたは ADCCON1 レジスタの STRGSRC<4:0> ビットで選択 )

0 = A/D 変換をトリガしない

Note: このビットは、次の ADC クロックサイクルで自動的にクリアされます。

bit 5-0 ADINSEL<5:0>: アナログ入力選択ビット

これらのビットで、RQCNVRT ビットがセットされた時に変換するアナログ入力を選択します(MAX_AN_INPUT はデバイス上で利用可能なアナログ入力の 大数 )。利用可能なアナログ入力の数は各デバイス データシート内の「ADC」を参照してください。 MAX_AN_INPUT + 2 = IVTEMPMAX_AN_INPUT + 1 = IVREFMAX_AN_INPUT = AN[MAX_AN_INPUT]•••000001 = AN1000000 = AN0

Note 1: SAMP ビットは優先度が も高く、このビットをセットするとクリアされるまで S&H 回路はサンプルモードを維持します。また、SAMP ビットをセットすると SAMC<9:0> ビットの設定 (ADCCON2<25:16>)は無視されます。

2: SAMP ビットは、クラス 2 およびクラス 3 アナログ入力のみを共有 ADC (ADC7) に接続します。全てのクラス 1 アナログ入力は、SAMP ビットの影響を受けません。

3: SAMP ビットは自己クリアビットではないため、アプリケーション ソフトウェアがまずこのビットをクリアし、次に RQCNVRT ビットをセットして初めて A/D 変換を開始できます。

4: 通常、SAMP および RQCNVRT ビットをソフトウェア ルーチンで使っている場合、全 TRGSRCx<4:0>ビットと STRGSRC<4:0> ビットを「00000」に設定して外部ハードウェアのトリガを全て無効にする事で、ソフトウェア制御のサンプリング コマンド信号 (SAMP) とソフトウェア制御のトリガ (RQCNVRT)にトリガが干渉しないようにする必要があります。

レジスタ 22-3: ADCCON3: ADC 制御レジスタ 3 ( 続き )

DS60001344A_JP - p.22-16 Preliminary © 2016 Microchip Technology Inc.

Page 17: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-4: ADCTRGMODE: 専用 ADC レジスタの ADC トリガモード

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — SH6ALT<1:0> SH5ALT<1:0> SH4ALT<1:0>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SH3ALT<1:0> SH2ALT<1:0> SH1ALT<1:0> SH0ALT<1:0>

15:8U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— STRGEN6 STRGEN5 STRGEN4 STRGEN3 STRGEN2 STRGEN1 STRGEN0

7:0U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— SSAMPEN6 SSAMPEN5 SSAMPEN4 SSAMPEN3 SSAMPEN2 SSAMPEN1 SSAMPEN0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-30 未実装 :「0」として読み出し

bit 29-28 SH6ALT<1:0>: ADC6 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN6

bit 27-26 SH5ALT<1:0>: ADC5 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN5

bit 25-24 SH4ALT<1:0>: ADC4 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN4

bit 23-22 SH3ALT<1:0>: ADC3 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN3

bit 21-20 SH2ALT<1:0>: ADC2 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN2

bit 19-18 SH1ALT<1:0>: ADC1 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN1

bit 17-16 SH0ALT<1:0>: ADC0 アナログ入力選択ビット

11~ 01= 選択可能な入力は各デバイス データシート内の「ADC」参照00 = AN0

bit 15 未実装 :「0」として読み出し

bit 14 STRGEN6: ADC6 事前同期トリガビット

1 = ADC6 で事前同期トリガを使う0 = ADC6 で事前同期トリガを使わない

bit 13 STRGEN5: ADC5 事前同期トリガビット

1 = ADC5 で事前同期トリガを使う0 = ADC5 で事前同期トリガを使わない

bit 12 STRGEN4: ADC4 事前同期トリガビット

1 = ADC4 で事前同期トリガを使う0 = ADC4 で事前同期トリガを使わない

bit 11 STRGEN3: ADC3 事前同期トリガビット

1 = ADC3 で事前同期トリガを使う0 = ADC3 で事前同期トリガを使わない

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-17

Page 18: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 10 STRGEN2: ADC2 事前同期トリガビット

1 = ADC2 で事前同期トリガを使う0 = ADC2 で事前同期トリガを使わない

bit 9 STRGEN1: ADC1 事前同期トリガビット

1 = ADC1 で事前同期トリガを使う0 = ADC1 で事前同期トリガを使わない

bit 8 STRGEN0: ADC0 事前同期トリガビット

1 = ADC0 で事前同期トリガを使う0 = ADC0 で事前同期トリガを使わない

bit 7 未実装 :「0」として読み出し

bit 6 SSAMPEN6: ADC6 同期サンプリング ビット

1 = ADC6 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC6 で同期サンプリングを使わない

bit 5 SSAMPEN5: ADC5 同期サンプリング ビット

1 = ADC5 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC5 で同期サンプリングを使わない

bit 4 SSAMPEN4: ADC4 同期サンプリング ビット

1 = ADC4 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC4 で同期サンプリングを使わない

bit 3 SSAMPEN3: ADC3 同期サンプリング ビット

1 = ADC3 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC3 で同期サンプリングを使わない

bit 2 SSAMPEN2: ADC2 同期サンプリング ビット

1 = ADC2 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC2 で同期サンプリングを使わない

bit 1 SSAMPEN1: ADC1 同期サンプリング ビット

1 = ADC1 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC1 で同期サンプリングを使わない

bit 0 SSAMPEN0: ADC0 同期サンプリング ビット

1 = ADC0 で、アイドルまたはディセーブルから復帰後の初回に同期サンプリングを使う0 = ADC0 で同期サンプリングを使わない

レジスタ 22-4: ADCTRGMODE: 専用 ADC レジスタの ADC トリガモード ( 続き )

DS60001344A_JP - p.22-18 Preliminary © 2016 Microchip Technology Inc.

Page 19: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-5: ADCIMCON1: ADC 入力モード制御レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF15 SIGN15 DIFF14 SIGN14 DIFF13 SIGN13 DIFF12 SIGN12

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF11 SIGN11 DIFF10 SIGN10 DIFF9 SIGN9 DIFF8 SIGN8

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF7 SIGN7 DIFF6 SIGN6 DIFF5 SIGN5 DIFF4 SIGN4

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF3 SIGN3 DIFF2 SIGN2 DIFF1 SIGN1 DIFF0 SIGN0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DIFF15: AN15 モードビット1 = AN15 を差動モードで使う0 = AN15 をシングルエンド モードで使う

bit 30 SIGN15: AN15 符号付きデータモード ビット1 = AN15 を符号付きデータモードで使う0 = AN15 を符号なしデータモードで使う

bit 29 DIFF14: AN14 モードビット1 = AN14 を差動モードで使う0 = AN14 をシングルエンド モードで使う

bit 28 SIGN14: AN14 符号付きデータモード ビット1 = AN14 を符号付きデータモードで使う0 = AN14 を符号なしデータモードで使う

bit 27 DIFF13: AN13 モードビット1 = AN13 を差動モードで使う0 = AN13 をシングルエンド モードで使う

bit 26 SIGN13: AN13 符号付きデータモード ビット1 = AN13 を符号付きデータモードで使う0 = AN13 を符号なしデータモードで使う

bit 25 DIFF12: AN12 モードビット1 = AN12 を差動モードで使う0 = AN12 をシングルエンド モードで使う

bit 24 SIGN12: AN12 符号付きデータモード ビット1 = AN12 を符号付きデータモードで使う0 = AN12 を符号なしデータモードで使う

bit 23 DIFF11: AN11 モードビット1 = AN11 を差動モードで使う0 = AN11 をシングルエンド モードで使う

bit 22 SIGN11: AN11 符号付きデータモード ビット1 = AN11 を符号付きデータモードで使う0 = AN11 を符号なしデータモードで使う

bit 21 DIFF10: AN10 モードビット1 = AN10 を差動モードで使う0 = AN10 をシングルエンド モードで使う

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-19

Page 20: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 20 SIGN10: AN10 符号付きデータモード ビット1 = AN10 を符号付きデータモードで使う0 = AN10 を符号なしデータモードで使う

bit 19 DIFF9: AN9 モードビット1 = AN9 を差動モードで使う0 = AN9 をシングルエンド モードで使う

bit 18 SIGN9: AN9 符号付きデータモード ビット1 = AN9 を符号付きデータモードで使う0 = AN9 を符号なしデータモードで使う

bit 17 DIFF8: AN8 モードビット1 = AN8 を差動モードで使う0 = AN8 をシングルエンド モードで使う

bit 16 SIGN8: AN8 符号付きデータモード ビット1 = AN8 を符号付きデータモードで使う0 = AN8 を符号なしデータモードで使う

bit 15 DIFF7: AN7 モードビット1 = AN7 を差動モードで使う0 = AN7 をシングルエンド モードで使う

bit 14 SIGN7: AN7 符号付きデータモード ビット1 = AN7 を符号付きデータモードで使う0 = AN7 を符号なしデータモードで使う

bit 13 DIFF6: AN6 モードビット1 = AN6 を差動モードで使う0 = AN6 をシングルエンド モードで使う

bit 12 SIGN6: AN6 符号付きデータモード ビット1 = AN6 を符号付きデータモードで使う0 = AN6 を符号なしデータモードで使う

bit 11 DIFF5: AN5 モードビット1 = AN5 を差動モードで使う0 = AN5 をシングルエンド モードで使う

bit 10 SIGN5: AN5 符号付きデータモード ビット1 = AN5 を符号付きデータモードで使う0 = AN5 を符号なしデータモードで使う

bit 9 DIFF4: AN4 モードビット1 = AN4 を差動モードで使う0 = AN4 をシングルエンド モードで使う

bit 8 SIGN4: AN4 符号付きデータモード ビット1 = AN4 を符号付きデータモードで使う0 = AN4 を符号なしデータモードで使う

bit 7 DIFF3: AN3 モードビット1 = AN3 を差動モードで使う0 = AN3 をシングルエンド モードで使う

bit 6 SIGN3: AN3 符号付きデータモード ビット1 = AN3 を符号付きデータモードで使う0 = AN3 を符号なしデータモードで使う

bit 5 DIFF2: AN2 モードビット1 = AN2 を差動モードで使う0 = AN2 をシングルエンド モードで使う

レジスタ 22-5: ADCIMCON1: ADC 入力モード制御レジスタ 1 ( 続き )

DS60001344A_JP - p.22-20 Preliminary © 2016 Microchip Technology Inc.

Page 21: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 4 SIGN2: AN2 符号付きデータモード ビット1 = AN2 を符号付きデータモードで使う0 = AN2 を符号なしデータモードで使う

bit 3 DIFF1: AN1 モードビット1 = AN1 を差動モードで使う0 = AN1 をシングルエンド モードで使う

bit 2 SIGN1: AN1 符号付きデータモード ビット1 = AN1 を符号付きデータモードで使う0 = AN1 を符号なしデータモードで使う

bit 1 DIFF0: AN0 モードビット1 = AN0 を差動モードで使う0 = AN0 をシングルエンド モードで使う

bit 0 SIGN0: AN0 符号付きデータモード ビット1 = AN0 を符号付きデータモードで使う0 = AN0 を符号なしデータモードで使う

レジスタ 22-5: ADCIMCON1: ADC 入力モード制御レジスタ 1 ( 続き )

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-21

Page 22: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-6: ADCIMCON2: ADC 入力モード制御レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF31 SIGN31 DIFF30 SIGN30 DIFF29 SIGN29 DIFF28 SIGN28

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF27 SIGN27 DIFF26 SIGN26 DIFF25 SIGN25 DIFF24 SIGN24

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF23 SIGN23 DIFF22 SIGN22 DIFF21 SIGN21 DIFF20 SIGN20

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF19 SIGN19 DIFF18 SIGN18 DIFF17 SIGN17 DIFF16 SIGN16

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DIFF31: AN31 モードビット1 = AN31 を差動モードで使う0 = AN31 をシングルエンド モードで使う

bit 30 SIGN31: AN31 符号付きデータモード ビット1 = AN31 を符号付きデータモードで使う0 = AN31 を符号なしデータモードで使う

bit 29 DIFF30: AN30 モードビット1 = AN30 を差動モードで使う0 = AN30 をシングルエンド モードで使う

bit 28 SIGN30: AN30 符号付きデータモード ビット1 = AN30 を符号付きデータモードで使う0 = AN30 を符号なしデータモードで使う

bit 27 DIFF29: AN29 モードビット1 = AN29 を差動モードで使う0 = AN29 をシングルエンド モードで使う

bit 26 SIGN29: AN29 符号付きデータモード ビット1 = AN29 を符号付きデータモードで使う0 = AN29 を符号なしデータモードで使う

bit 25 DIFF28: AN28 モードビット1 = AN28 を差動モードで使う0 = AN28 をシングルエンド モードで使う

bit 24 SIGN28: AN28 符号付きデータモード ビット1 = AN28 を符号付きデータモードで使う0 = AN28 を符号なしデータモードで使う

bit 23 DIFF27: AN27 モードビット1 = AN27 を差動モードで使う0 = AN27 をシングルエンド モードで使う

bit 22 SIGN27: AN27 符号付きデータモード ビット1 = AN27 を符号付きデータモードで使う0 = AN27 を符号なしデータモードで使う

bit 21 DIFF26: AN26 モードビット1 = AN26 を差動モードで使う0 = AN26 をシングルエンド モードで使う

DS60001344A_JP - p.22-22 Preliminary © 2016 Microchip Technology Inc.

Page 23: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 20 SIGN26: AN26 符号付きデータモード ビット1 = AN26 を符号付きデータモードで使う0 = AN26 を符号なしデータモードで使う

bit 19 DIFF25: AN25 モードビット1 = AN25 を差動モードで使う0 = AN25 をシングルエンド モードで使う

bit 18 SIGN25: AN25 符号付きデータモード ビット1 = AN25 を符号付きデータモードで使う0 = AN25 を符号なしデータモードで使う

bit 17 DIFF24: AN24 モードビット1 = AN24 を差動モードで使う0 = AN24 をシングルエンド モードで使う

bit 16 SIGN24: AN24 符号付きデータモード ビット1 = AN24 を符号付きデータモードで使う0 = AN24 を符号なしデータモードで使う

bit 15 DIFF23: AN23 モードビット1 = AN23 を差動モードで使う0 = AN23 をシングルエンド モードで使う

bit 14 SIGN23: AN23 符号付きデータモード ビット1 = AN23 を符号付きデータモードで使う0 = AN23 を符号なしデータモードで使う

bit 13 DIFF22: AN22 モードビット1 = AN22 を差動モードで使う0 = AN22 をシングルエンド モードで使う

bit 12 SIGN22: AN22 符号付きデータモード ビット1 = AN22 を符号付きデータモードで使う0 = AN22 を符号なしデータモードで使う

bit 11 DIFF21: AN21 モードビット1 = AN21 を差動モードで使う0 = AN21 をシングルエンド モードで使う

bit 10 SIGN21: AN21 符号付きデータモード ビット1 = AN21 を符号付きデータモードで使う0 = AN21 を符号なしデータモードで使う

bit 9 DIFF20: AN20 モードビット1 = AN20 を差動モードで使う0 = AN20 をシングルエンド モードで使う

bit 8 SIGN20: AN20 符号付きデータモード ビット1 = AN20 を符号付きデータモードで使う0 = AN20 を符号なしデータモードで使う

bit 7 DIFF19: AN19 モードビット1 = AN19 を差動モードで使う0 = AN19 をシングルエンド モードで使う

bit 6 SIGN19: AN19 符号付きデータモード ビット1 = AN19 を符号付きデータモードで使う0 = AN19 を符号なしデータモードで使う

bit 5 DIFF18: AN18 モードビット1 = AN18 を差動モードで使う0 = AN18 をシングルエンド モードで使う

レジスタ 22-6: ADCIMCON2: ADC 入力モード制御レジスタ 2 ( 続き )

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-23

Page 24: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 4 SIGN18: AN18 符号付きデータモード ビット1 = AN18 を符号付きデータモードで使う0 = AN18 を符号なしデータモードで使う

bit 3 DIFF17: AN17 モードビット1 = AN17 を差動モードで使う0 = AN17 をシングルエンド モードで使う

bit 2 SIGN17: AN17 符号付きデータモード ビット1 = AN17 を符号付きデータモードで使う0 = AN17 を符号なしデータモードで使う

bit 1 DIFF16: AN16 モードビット1 = AN16 を差動モードで使う0 = AN16 をシングルエンド モードで使う

bit 0 SIGN16: AN16 符号付きデータモード ビット1 = AN16 を符号付きデータモードで使う0 = AN16 を符号なしデータモードで使う

レジスタ 22-6: ADCIMCON2: ADC 入力モード制御レジスタ 2 ( 続き )

DS60001344A_JP - p.22-24 Preliminary © 2016 Microchip Technology Inc.

Page 25: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-7: ADCIMCON3: ADC 入力モード制御レジスタ 3ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF47 SIGN47 DIFF46 SIGN46 DIFF45 SIGN45 DIFF44 SIGN44

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF43 SIGN43 DIFF42 SIGN42 DIFF41 SIGN41 DIFF40 SIGN40

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF39 SIGN39 DIFF38 SIGN38 DIFF37 SIGN37 DIFF36 SIGN36

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF35 SIGN35 DIFF34 SIGN34 DIFF33 SIGN33 DIFF32 SIGN32

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DIFF47: AN47 モードビット1 = AN47 を差動モードで使う0 = AN47 をシングルエンド モードで使う

bit 30 SIGN47: AN47 符号付きデータモード ビット1 = AN47 を符号付きデータモードで使う0 = AN47 を符号なしデータモードで使う

bit 29 DIFF46: AN46 モードビット1 = AN46 を差動モードで使う0 = AN46 をシングルエンド モードで使う

bit 28 SIGN46: AN46 符号付きデータモード ビット1 = AN46 を符号付きデータモードで使う0 = AN46 を符号なしデータモードで使う

bit 27 DIFF45: AN45 モードビット1 = AN45 を差動モードで使う0 = AN45 をシングルエンド モードで使う

bit 26 SIGN45: AN45 符号付きデータモード ビット1 = AN45 を符号付きデータモードで使う0 = AN45 を符号なしデータモードで使う

bit 25 DIFF44: AN44 モードビット1 = AN44 を差動モードで使う0 = AN44 をシングルエンド モードで使う

bit 24 SIGN44: AN44 符号付きデータモード ビット1 = AN44 を符号付きデータモードで使う0 = AN44 を符号なしデータモードで使う

bit 23 DIFF43: AN43 モードビット1 = AN43 を差動モードで使う0 = AN43 をシングルエンド モードで使う

bit 22 SIGN43: AN43 符号付きデータモード ビット1 = AN43 を符号付きデータモードで使う0 = AN43 を符号なしデータモードで使う

bit 21 DIFF42: AN42 モードビット1 = AN42 を差動モードで使う0 = AN42 をシングルエンド モードで使う

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-25

Page 26: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 20 SIGN42: AN42 符号付きデータモード ビット1 = AN42 を符号付きデータモードで使う0 = AN42 を符号なしデータモードで使う

bit 19 DIFF41: AN41 モードビット1 = AN41 を差動モードで使う0 = AN41 をシングルエンド モードで使う

bit 18 SIGN41: AN41 符号付きデータモード ビット1 = AN41 を符号付きデータモードで使う0 = AN41 を符号なしデータモードで使う

bit 17 DIFF40: AN40 モードビット1 = AN40 を差動モードで使う0 = AN40 をシングルエンド モードで使う

bit 16 SIGN40: AN40 符号付きデータモード ビット1 = AN40 を符号付きデータモードで使う0 = AN40 を符号なしデータモードで使う

bit 15 DIFF39: AN39 モードビット1 = AN39 を差動モードで使う0 = AN39 をシングルエンド モードで使う

bit 14 SIGN39: AN39 符号付きデータモード ビット1 = AN39 を符号付きデータモードで使う0 = AN39 を符号なしデータモードで使う

bit 13 DIFF38: AN38 モードビット1 = AN38 を差動モードで使う0 = AN38 をシングルエンド モードで使う

bit 12 SIGN38: AN38 符号付きデータモード ビット1 = AN38 を符号付きデータモードで使う0 = AN38 を符号なしデータモードで使う

bit 11 DIFF37: AN37 モードビット1 = AN37 を差動モードで使う0 = AN37 をシングルエンド モードで使う

bit 10 SIGN37: AN37 符号付きデータモード ビット1 = AN37 を符号付きデータモードで使う0 = AN37 を符号なしデータモードで使う

bit 9 DIFF36: AN36 モードビット1 = AN36 を差動モードで使う0 = AN36 をシングルエンド モードで使う

bit 8 SIGN36: AN36 符号付きデータモード ビット1 = AN36 を符号付きデータモードで使う0 = AN36 を符号なしデータモードで使う

bit 7 DIFF35: AN35 モードビット1 = AN35 を差動モードで使う0 = AN35 をシングルエンド モードで使う

bit 6 SIGN35: AN35 符号付きデータモード ビット1 = AN35 を符号付きデータモードで使う0 = AN35 を符号なしデータモードで使う

bit 5 DIFF34: AN34 モードビット1 = AN34 を差動モードで使う0 = AN34 をシングルエンド モードで使う

レジスタ 22-7: ADCIMCON3: ADC 入力モード制御レジスタ 3 ( 続き )

DS60001344A_JP - p.22-26 Preliminary © 2016 Microchip Technology Inc.

Page 27: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 4 SIGN34: AN34 符号付きデータモード ビット1 = AN34 を符号付きデータモードで使う0 = AN34 を符号なしデータモードで使う

bit 3 DIFF33: AN33 モードビット1 = AN33 を差動モードで使う0 = AN33 をシングルエンド モードで使う

bit 2 SIGN33: AN33 符号付きデータモード ビット1 = AN33 を符号付きデータモードで使う0 = AN33 を符号なしデータモードで使う

bit 1 DIFF32: AN32 モードビット1 = AN32 を差動モードで使う0 = AN32 をシングルエンド モードで使う

bit 0 SIGN32: AN32 符号付きデータモード ビット1 = AN32 を符号付きデータモードで使う0 = AN32 を符号なしデータモードで使う

レジスタ 22-7: ADCIMCON3: ADC 入力モード制御レジスタ 3 ( 続き )

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-27

Page 28: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-8: ADCIMCON4: ADC 入力モード制御レジスタ 4ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF63 SIGN63 DIFF62 SIGN62 DIFF61 SIGN61 DIFF60 SIGN60

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF59 SIGN59 DIFF58 SIGN58 DIFF57 SIGN57 DIFF56 SIGN56

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF55 SIGN55 DIFF54 SIGN54 DIFF53 SIGN53 DIFF52 SIGN52

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DIFF51 SIGN51 DIFF50 SIGN50 DIFF49 SIGN49 DIFF48 SIGN48

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DIFF63: AN63 モードビット1 = AN63 を差動モードで使う0 = AN63 をシングルエンド モードで使う

bit 30 SIGN63: AN63 符号付きデータモード ビット1 = AN63 を符号付きデータモードで使う0 = AN63 を符号なしデータモードで使う

bit 29 DIFF62: AN62 モードビット1 = AN62 を差動モードで使う0 = AN62 をシングルエンド モードで使う

bit 28 SIGN62: AN62 符号付きデータモード ビット1 = AN62 を符号付きデータモードで使う0 = AN62 を符号なしデータモードで使う

bit 27 DIFF61: AN61 モードビット1 = AN61 を差動モードで使う0 = AN61 をシングルエンド モードで使う

bit 26 SIGN61: AN61 符号付きデータモード ビット1 = AN61 を符号付きデータモードで使う0 = AN61 を符号なしデータモードで使う

bit 25 DIFF60: AN60 モードビット1 = AN60 を差動モードで使う0 = AN60 をシングルエンド モードで使う

bit 24 SIGN60: AN60 符号付きデータモード ビット1 = AN60 を符号付きデータモードで使う0 = AN60 を符号なしデータモードで使う

bit 23 DIFF59: AN59 モードビット1 = AN59 を差動モードで使う0 = AN59 をシングルエンド モードで使う

bit 22 SIGN59: AN59 符号付きデータモード ビット1 = AN59 を符号付きデータモードで使う0 = AN59 を符号なしデータモードで使う

bit 21 DIFF58: AN58 モードビット1 = AN58 を差動モードで使う0 = AN58 をシングルエンド モードで使う

DS60001344A_JP - p.22-28 Preliminary © 2016 Microchip Technology Inc.

Page 29: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

bit 20 SIGN58: AN58 符号付きデータモード ビット1 = AN58 を符号付きデータモードで使う0 = AN58 を符号なしデータモードで使う

bit 19 DIFF57: AN57 モードビット1 = AN57 を差動モードで使う0 = AN57 をシングルエンド モードで使う

bit 18 SIGN57: AN57 符号付きデータモード ビット1 = AN57 を符号付きデータモードで使う0 = AN57 を符号なしデータモードで使う

bit 17 DIFF56: AN56 モードビット1 = AN56 を差動モードで使う0 = AN56 をシングルエンド モードで使う

bit 16 SIGN56: AN56 符号付きデータモード ビット1 = AN56 を符号付きデータモードで使う0 = AN56 を符号なしデータモードで使う

bit 15 DIFF55: AN55 モードビット1 = AN55 を差動モードで使う0 = AN55 をシングルエンド モードで使う

bit 14 SIGN55: AN55 符号付きデータモード ビット1 = AN55 を符号付きデータモードで使う0 = AN55 を符号なしデータモードで使う

bit 13 DIFF54: AN54 モードビット1 = AN54 を差動モードで使う0 = AN54 をシングルエンド モードで使う

bit 12 SIGN54: AN54 符号付きデータモード ビット1 = AN54 を符号付きデータモードで使う0 = AN54 を符号なしデータモードで使う

bit 11 DIFF53: AN53 モードビット1 = AN53 を差動モードで使う0 = AN53 をシングルエンド モードで使う

bit 10 SIGN53: AN53 符号付きデータモード ビット1 = AN53 を符号付きデータモードで使う0 = AN53 を符号なしデータモードで使う

bit 9 DIFF52: AN52 モードビット1 = AN52 を差動モードで使う0 = AN52 をシングルエンド モードで使う

bit 8 SIGN52: AN52 符号付きデータモード ビット1 = AN52 を符号付きデータモードで使う0 = AN52 を符号なしデータモードで使う

bit 7 DIFF51: AN51 モードビット1 = AN51 を差動モードで使う0 = AN51 をシングルエンド モードで使う

bit 6 SIGN51: AN51 符号付きデータモード ビット1 = AN51 を符号付きデータモードで使う0 = AN51 を符号なしデータモードで使う

bit 5 DIFF50: AN50 モードビット1 = AN50 を差動モードで使う0 = AN50 をシングルエンド モードで使う

レジスタ 22-8: ADCIMCON4: ADC 入力モード制御レジスタ 4 ( 続き )

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-29

Page 30: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 4 SIGN50: AN50 符号付きデータモード ビット1 = AN50 を符号付きデータモードで使う0 = AN50 を符号なしデータモードで使う

bit 3 DIFF49: AN49 モードビット1 = AN49 を差動モードで使う0 = AN49 をシングルエンド モードで使う

bit 2 SIGN49: AN49 符号付きデータモード ビット1 = AN49 を符号付きデータモードで使う0 = AN49 を符号なしデータモードで使う

bit 1 DIFF48: AN48 モードビット1 = AN48 を差動モードで使う0 = AN48 をシングルエンド モードで使う

bit 0 SIGN48: AN48 符号付きデータモード ビット1 = AN48 を符号付きデータモードで使う0 = AN48 を符号なしデータモードで使う

レジスタ 22-8: ADCIMCON4: ADC 入力モード制御レジスタ 4 ( 続き )

DS60001344A_JP - p.22-30 Preliminary © 2016 Microchip Technology Inc.

Page 31: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-9: ADCGIRQEN1: ADC グローバル割り込みイネーブル レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN31 AGIEN30 AGIEN29 AGIEN28 AGIEN27 AGIEN26 AGIEN25 AGIEN24

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN23 AGIEN22 AGIEN21 AGIEN20 AGIEN19 AGIEN18 AGIEN17 AGIEN16

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN15 AGIEN14 AGIEN13 AGIEN12 AGIEN11 AGIEN10 AGIEN9 AGIEN8

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN7 AGIEN6 AGIEN5 AGIEN4 AGIEN3 AGIEN2 AGIEN1 AGIEN0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 AGIEN31 ~ AGIEN0: ADC 割り込みイネーブルビット1 = 選択したアナログ入力に対する割り込みを有効にする ( 変換データが読み出し可能 (ADCDSTAT1

レジスタの ARDYx ビット (x = 31 ~ 0) で表示 ) になると、割り込みを生成します。)0 = 割り込みを無効にする

レジスタ 22-10: ADCGIRQEN2: ADC グローバル割り込みイネーブル レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN63 AGIEN62 AGIEN61 AGIEN60 AGIEN59 AGIEN58 AGIEN57 AGIEN56

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN55 AGIEN54 AGIEN53 AGIEN52 AGIEN51 AGIEN50 AGIEN49 AGIEN48

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN47 AGIEN46 AGIEN45 AGIEN44 AGIEN43 AGIEN42 AGIEN41 AGIEN40

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

AGIEN39 AGIEN38 AGIEN37 AGIEN36 AGIEN35 AGIEN34 AGIEN33 AGIEN32

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 AGIEN63 ~ AGIEN32 ADC 割り込みイネーブルビット1 = 選択したアナログ入力に対する割り込みを有効にする ( 変換データが読み出し可能 (ADCDSTAT2

レジスタの ARDYx ビット (x = 63 ~ 32) で表示 ) になると、割り込みを生成します。)0 = 割り込みを無効にする

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-31

Page 32: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-11: ADCCSS1: ADC 共通スキャン選択レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS31 CSS30 CSS29 CSS28 CSS27 CSS26 CSS25 CSS24

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS23 CSS22 CSS21 CSS20 CSS19 CSS18 CSS17 CSS16

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS15 CSS14 CSS13 CSS12 CSS11 CSS10 CSS9 CSS8

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS7 CSS6 CSS5 CSS4 CSS3 CSS2 CSS1 CSS0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 CSS31 ~ CSS0: アナログ共通スキャン選択ビット1 = ANx を入力スキャンに含める0 = ANx は入力スキャンに含めない

Note 1: クラス 1 およびクラス 2 アナログ入力をスキャンに含める場合、対応する CSSx ビットをセットするだけでなく、それらの入力のトリガ源として STRIG 入力を選択する必要があります。STRIG オプションの選択については、ADCTRGx レジスタ ( レジスタ 22-18) のビット定義を参照してください。

2: CSSx ビットを「1」に設定し TRGSRCx<4:0> ビットを STRIG モード (‘0b11) に設定する事でクラス 1またはクラス 2 入力をスキャンに含めている場合、その入力に対して他に ADCCON3 レジスタのRQCNVRT ビット、ハードウェア入力、任意のデジタルフィルタのいずれを使ったトリガも生成されていない事をユーザ アプリケーションで確認する必要があります。そうしないと、スキャンの挙動が予測不可能になります。

レジスタ 22-12: ADCCSS2: ADC 共通スキャン選択レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS63 CSS62 CSS61 CSS60 CSS59 CSS58 CSS57 CSS56

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS55 CSS54 CSS53 CSS52 CSS51 CSS50 CSS49 CSS48

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS47 CSS46 CSS45 CSS44 CSS43 CSS42 CSS41 CSS40

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CSS39 CSS38 CSS37 CSS36 CSS35 CSS34 CSS33 CSS32

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 CSS63 ~ CSS32: アナログ共通スキャン選択ビット1 = ANx を入力スキャンに含める0 = ANx は入力スキャンに含めない

Note: アナログ入力 63 ~ 32 は常にクラス 3 です。そのため利用可能なトリガは 32 個のみです。

DS60001344A_JP - p.22-32 Preliminary © 2016 Microchip Technology Inc.

Page 33: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-13: ADCDSTAT1: ADC データレディ ステータス レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY31 ARDY30 ARDY29 ARDY28 ARDY27 ARDY26 ARDY25 ARDY24

23:16R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY23 ARDY22 ARDY21 ARDY20 ARDY19 ARDY18 ARDY17 ARDY16

15:8R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY15 ARDY14 ARDY13 ARDY12 ARDY11 ARDY10 ARDY9 ARDY8

7:0R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY7 ARDY6 ARDY5 ARDY4 ARDY3 ARDY2 ARDY1 ARDY0

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 ARDY31 ~ ARDY0: アナログ入力変換データレディ ビット1 = このビットは、データレジスタで変換データが読み出し可能になるとセットされる0 = このビットは、対応するデータレジスタが読み出されるとクリアされる

レジスタ 22-14: ADCDSTAT2: ADC データレディ ステータス レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY63 ARDY62 ARDY61 ARDY60 ARDY59 ARDY58 ARDY57 ARDY56

23:16R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY55 ARDY54 ARDY53 ARDY52 ARDY51 ARDY50 ARDY49 ARDY48

15:8R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY47 ARDY46 ARDY45 ARDY44 ARDY43 ARDY42 ARDY41 ARDY40

7:0R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

ARDY39 ARDY38 ARDY37 ARDY36 ARDY35 ARDY34 ARDY33 ARDY32

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 ARDY63 ~ ARDY32: アナログ入力変換データレディ ビット1 = このビットは、データレジスタで変換データが読み出し可能になるとセットされる0 = このビットは、対応するデータレジスタが読み出されるとクリアされる

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-33

Page 34: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-15: ADCCMPENx: ADC デジタル コンパレータ x イネーブル レジスタ (x = 1 ~ 6)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CMPE31 CMPE30 CMPE29 CMPE28 CMPE27 CMPE26 CMPE25 CMPE24

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CMPE23 CMPE22 CMPE21 CMPE20 CMPE19 CMPE18 CMPE17 CMPE16

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CMPE15 CMPE14 CMPE13 CMPE12 CMPE11 CMPE10 CMPE9 CMPE8

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CMPE7 CMPE6 CMPE5 CMPE4 CMPE3 CMPE2 CMPE1 CMPE0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 CMPE31 ~ CMPE0: ADC デジタル コンパレータ x イネーブルビットこれらのビットをセットすると、対応するアナログ入力の変換結果がデジタル コンパレータによって処理されます。CMPEn ビットは入力 ANn に対応します。

Note 1: CMPExはANx (x = 0~31)にのみ対応します(デジタル コンパレータ入力はAN0~AN31に制限されます)。2: デジタル コンパレータが有効 (ENDCMP = 1) な時に、このレジスタ内のビットを変更した場合、

モジュールの挙動は予測不可能です。

レジスタ 22-16: ADCCMPx: ADC デジタル コンパレータ xリミット値レジスタ (x = 1 ~ 6)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DCMPHI<15:8>(1,2,3)

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DCMPHI<7:0>(1,2,3)

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DCMPLO<15:8>(1,2,3)

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DCMPLO<7:0>(1,2,3)

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-16 DCMPHI<15:0>: デジタル コンパレータ x 上限値ビット (1,2,3)

これらのビットは、デジタル コンパレータで A/D 変換データと比較する上限値を格納します。 bit 15-0 DCMPLO<15:0>: デジタル コンパレータ x 下限値ビット (1,2,3)

これらのビットは、デジタル コンパレータで A/D 変換データと比較する下限値を格納します。

Note 1: デジタル コンパレータが有効 (ENDCMP = 1) な時にこれらのビットを変更した場合、モジュールの挙動は予測不可能となる場合があります。

2: 符号および小数設定に関して、リミット値のフォーマットは A/D 変換データのフォーマットと一致させる必要があります。

3: CVD モードでデジタル コンパレータ 1 を使う場合、CVD 出力データは差動であり常に符号付きのため、DCMPHI<15:0> および DCMPLO<15:0> ビットは常に符号付きフォーマットで指定する必要があります。

DS60001344A_JP - p.22-34 Preliminary © 2016 Microchip Technology Inc.

Page 35: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-17: ADCFLTRx: ADC デジタルフィルタ xレジスタ (x = 1 ~ 6)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0, HS, HC

AFEN DATA16EN DFMODE OVRSAM<2:0> AFGIEN AFRDY

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — CHNLID<4:0>

15:8R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

FLTRDATA<15:8>

7:0R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

FLTRDATA<7:0>

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 AFEN: デジタルフィルタ x イネーブルビット1 = デジタルフィルタを有効にする0 = デジタルフィルタを無効にし、AFRDY ステータスビットをクリアする

bit 30 DATA16EN: フィルタ有効データ長ビット1 = フィルタの出力データの 16 ビット全てを有効にする0 = 上位 12 ビットのみを有効にする ( 下位 4 ビットは 0)Note: このビットは、DFMODE = 1( 平均モード ) または FRACT (ADCCON1<23>) = 1( 小数出力モード )

の場合のみ有効です。

bit DFMODE: ADC フィルタモード ビット1 = フィルタ x を平均化モードで動作させる0 = フィルタ x をオーバー サンプリング フィルタモードで動作させる ( 既定値 )

bit 28-26 OVRSAM<2:0>: オーバー サンプリング フィルタ レシオビットDFMODE が「0」の場合 :111 = 128 サンプル ( 積算値を 3 ビット右へシフト、出力データは 15.1 フォーマット )110 = 32 サンプル ( 積算値を 2 ビット右へシフト、出力データは 14.1 フォーマット )101 = 8 サンプル ( 積算値を 1 ビット右へシフト、出力データは 13.1 フォーマット )100 = 2 サンプル ( 積算値を 0 ビット右へシフト、出力データは 12.1 フォーマット )011 = 256 サンプル ( 積算値を 4 ビット右へシフト、出力データは 16 ビット )010 = 64 サンプル ( 積算値を 3 ビット右へシフト、出力データは 15 ビット )001 = 16 サンプル ( 積算値を 2 ビット右へシフト、出力データは 14 ビット )000 = 4 サンプル ( 積算値を 1 ビット右へシフト、出力データは 13 ビット )

DFMODE が「1」の場合 :111 = 256 サンプル (256 サンプルを平均化 )110 = 128 サンプル (128 サンプルを平均化 )101 = 64 サンプル (64 サンプルを平均化 )100 = 32 サンプル (32 サンプルを平均化 )011 = 16 サンプル (16 サンプルを平均化 )010 = 8 サンプル (8 サンプルを平均化 )001 = 4 サンプル (4 サンプルを平均化 )000 = 2 サンプル (2 サンプルを平均化 )

bit 25 AFGIEN: デジタルフィルタ x 割り込みイネーブルビット1 = デジタルフィルタの割り込みを有効にする ( 割り込みは AFRDY ステータスビットで生成します。)0 = デジタルフィルタを無効にする

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-35

Page 36: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 24 AFRDY: デジタルフィルタ x データレディ ステータスビット1 = FLTRDATA<15:0> ビット内のデータが読み出し可能である0 = データは読み出し可能ではない

Note: このビットは、FLTRDATA<15:0> ビットを読み出す事またはデジタルフィルタ モジュールを無効(AFEN を「0」に設定 ) にする事でクリアされます。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 CHNLID<4:0>: デジタルフィルタ アナログ入力選択ビットこれらのビットは、オーバー サンプリング フィルタのデータ源として使うアナログ入力を指定します。11111 = AN31•••00010 = AN200001 = AN100000 = AN0Note: 初の 32 のアナログ入力 ( クラス 1 とクラス 2) のみがデジタルフィルタを使う事ができます。

bit 15-0 FLTRDATA<15:0>: デジタルフィルタ x データ出力値ビットフィルタの出力データは、FRACT ビット (ADCCON1<23>) で設定した小数フォーマットに従います。フィルタを有効にしている間は FRACT ビットを変更してはいけません。フィルタ動作完了後に FRACT ビットの設定を変更しても、FLTRDATA<15:0> ビットの値が新しいフォーマットを反映するように更新される事はありません。

レジスタ 22-17: ADCFLTRx: ADC デジタルフィルタ xレジスタ (x = 1 ~ 6) ( 続き )

DS60001344A_JP - p.22-36 Preliminary © 2016 Microchip Technology Inc.

Page 37: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-18: ADCTRG1: ADC トリガ源 1 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC3<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC2<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC1<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC0<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC3<4:0>: アナログ入力 AN3 変換トリガ源選択ビット11111~ 00100 = トリガ源選択は、各デバイス データシート内の「ADC」参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC2<4:0>: アナログ入力 AN2 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC1<4:0>: アナログ入力 AN1 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC0<4:0>: アナログ入力 AN0 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-37

Page 38: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-19: ADCTRG2: ADC トリガ源 2 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC7<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC6<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC5<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC4<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC7<4:0>: アナログ入力 AN7 変換トリガ源選択ビット11111~ 00100 = トリガ源選択は、各デバイス データシート内の「ADC」参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC6<4:0>: アナログ入力 AN6 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC5<4:0>: アナログ入力 AN5 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC4<4:0>: アナログ入力 AN4 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

DS60001344A_JP - p.22-38 Preliminary © 2016 Microchip Technology Inc.

Page 39: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-20: ADCTRG3: ADC トリガ源 3 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC11<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC10<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC9<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC8<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC11<4:0>: アナログ入力 AN11 変換トリガ源選択ビット11111~ 00100 = トリガ源選択は、各デバイス データシート内の「ADC」参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC10<4:0>: アナログ入力 AN10 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC9<4:0>: アナログ入力 AN9 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC8<4:0>: アナログ入力 AN8 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-39

Page 40: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-21: ADCTRG4: ADC トリガ源 4 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC15<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC14<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC13<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC12<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC15<4:0>: アナログ入力 AN15 変換トリガ源選択ビット11111~ 00100 = トリガ源選択は、各デバイス データシート内の「ADC」参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC14<4:0>: アナログ入力 AN14 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC13<4:0>: アナログ入力 AN13 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC12<4:0>: アナログ入力 AN12 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

DS60001344A_JP - p.22-40 Preliminary © 2016 Microchip Technology Inc.

Page 41: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-22: ADCTRG5: ADC トリガ源 5 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC19<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC18<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC17<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC16<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC19<4:0>: アナログ入力 AN19 変換トリガ源選択ビット11111~ 00100 = トリガ源選択は、各デバイス データシート内の「ADC」参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC18<4:0>: アナログ入力 AN18 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC17<4:0>: アナログ入力 AN17 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC16<4:0>: アナログ入力 AN16 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-41

Page 42: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-23: ADCTRG6: ADC トリガ源 6 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC23<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC22<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC21<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC20<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC23<4:0>: アナログ入力 AN23 変換トリガ源選択ビット11111~ 00100 = 詳細は各デバイス データシート内の「ADC」を参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC22<4:0>: アナログ入力 AN22 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC21<4:0>: アナログ入力 AN21 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC20<4:0>: アナログ入力 AN20 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

DS60001344A_JP - p.22-42 Preliminary © 2016 Microchip Technology Inc.

Page 43: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-24: ADCTRG7: ADC トリガ源 7 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC27<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC26<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC25<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC24<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC27<4:0>: アナログ入力 AN27 変換トリガ源選択ビット11111~ 00100 = 詳細は各デバイス データシート内の「ADC」を参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC26<4:0>: アナログ入力 AN26 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC25<4:0>: アナログ入力 AN25 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC24<4:0>: アナログ入力 AN24 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-43

Page 44: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-25: ADCTRG8: ADC トリガ源 8 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC31<4:0>

23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC30<4:0>

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC29<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — TRGSRC28<4:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-24 TRGSRC31<4:0>: アナログ入力 AN31 変換トリガ源選択ビット11111~ 00100 = 詳細は各デバイス データシート内の「ADC」を参照00011 = スキャントリガ (STRIG)00010 = グローバル ソフトウェア レベルトリガ (GLSWTRG)00001 = グローバル ソフトウェア エッジトリガ (GSWTRG)00000 = トリガなし

STRIG に対しては、トリガの設定の他に STRGSRC<4:0> ビット (ADCCON1<20:16>) でトリガ源を選択し、さらに ADCCSSx レジスタで適切な CSSx ビットを設定する必要があります。

bit 23-21 未実装 :「0」として読み出し

bit 20-16 TRGSRC30<4:0>: アナログ入力 AN30 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 15-13 未実装 :「0」として読み出し

bit 12-8 TRGSRC29<4:0>: アナログ入力 AN29 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 TRGSRC28<4:0>: アナログ入力 AN28 変換トリガ源選択ビットビットの定義は bit 28-24 と同じです。

DS60001344A_JP - p.22-44 Preliminary © 2016 Microchip Technology Inc.

Page 45: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-26: ADCCMPCON1: ADC デジタル コンパレータ 1 制御レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

CVDDATA<15:8>

23:16R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

CVDDATA<7:0>

15:8U-0 U-0 R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC— — AINID<5:0>

7:0R/W-0 R/W-0 R-0, HS, HC R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ENDCMP DCMPGIEN DCMPED IEBTWN IEHIHI IEHILO IELOHI IELOLO

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-16 CVDDATA<15:0>: CVD データ ステータスビットCVD モードでは、デジタル コンパレータ イベントが生成されるたびにこれらのビットに CVD 差動出力データ (CVD の正と負の計測値の差分 ) を書き込みます。これらのビット値は FRACT ビット(ADCCON1<23>) で指定したフォーマットに従っており、常に符号付きです。

bit 15-14 未実装 :「0」として読み出しbit 13-8 AINID<5:0>: デジタル コンパレータ 1 アナログ入力 ID ビット

これらのビットは、デジタル コンパレータ イベントが発生 (DCMPED = 1) した際にデジタル コンパレータ 1 が監視中のアナログ入力の ID を示します。

Note: ADC の通常動作モードでは、アナログ入力 <31:0> のみがデジタル コンパレータ 1 で処理できます。デジタル コンパレータ 1 は CVD モードもサポートします。このモードでは、クラス 2およびクラス 3 アナログ入力は AINID<5:0> ビットに格納します。

111111 = AN63 を監視中111110 = AN62 を監視中•••000001 = AN1 を監視中000000 = AN0 を監視中

bit 7 ENDCMP: デジタル コンパレータ 1 イネーブルビット1 = デジタル コンパレータ 1 を有効にする0 = デジタル コンパレータ1を有効にせず、DCMPEDステータスビット(ADCCMPCON1<5>)をクリアする

bit 6 DCMPGIEN: デジタル コンパレータ 1 割り込みイネーブルビット1 = DCMPED ステータスビット (ADCCMPCON1<5>) がセットされると、デジタル コンパレータ 1 割り

込みを生成する0 = デジタル コンパレータ 1 割り込みを無効にする

bit 5 DCMPED: デジタル コンパレータ 1「真出力」イベント ステータスビットデジタル コンパレータが「真」を出力する論理条件は IEBTWN、IEHIHI、IEHILO、IELOHI、IELOLOビットで定義します。

Note: AINID<5:0> ビットを読み出すかデジタル コンパレータ モジュールを無効 (ENDCMP を「0」に設定 ) にすると、このビットはクリアされます。

1 = デジタル コンパレータ 1 出力が真であるイベントが発生した ( コンパレータ出力は「1」)0 = デジタル コンパレータ 1 出力は偽である ( コンパレータ出力は「0」)

bit 4 IEBTWN: デジタル コンパレータ 1 イベントビット1 = DCMPLO<15:0> DATA<31:0> < DCMPHI<15:0>の場合にデジタル コンパレータ イベント1を生成する0 = 上記の条件ではデジタル コンパレータ イベントを生成しない

bit 3 IEHIHI: デジタル コンパレータ 1 イベントビット1 = DCMPHI<15:0> DATA<31:0> の場合にデジタル コンパレータ 1 イベントを生成する0 = イベントを生成しない

bit 2 IEHILO: デジタル コンパレータ 1 イベントビット1 = DATA<31:0> < DCMPHI<15:0> の場合にデジタル コンパレータ 1 イベントを生成する0 = イベントを生成しない

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-45

Page 46: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 1 IELOHI: LOW/HIGH デジタル コンパレータ 1 イベントビット1 = DCMPLO<15:0> DATA<31:0> の場合にデジタル コンパレータ 1 イベントを生成する0 = イベントを生成しない

bit 0 IELOLO: LOW/LOW デジタル コンパレータ 1 イベントビット1 = DATA<31:0> < DCMPLO<15:0> の場合にデジタル コンパレータ 1 イベントを生成する0 = イベントを生成しない

レジスタ 22-26: ADCCMPCON1: ADC デジタル コンパレータ 1 制御レジスタ

DS60001344A_JP - p.22-46 Preliminary © 2016 Microchip Technology Inc.

Page 47: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-27: ADCCMPCONx: ADC デジタル コンパレータ 'x'制御レジスタ ('x' = 2 ~ 6)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

— — — AINID<4:0>

7:0R/W-0 R/W-0 R-0, HS, HC R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ENDCMP DCMPGIEN DCMPED IEBTWN IEHIHI IEHILO IELOHI IELOLO

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-13 未実装 :「0」として読み出し

bit 12-8 AINID<4:0>: デジタル コンパレータ 'x' アナログ入力 ID ビットこれらのビットは、デジタル コンパレータ イベントが発生 (DCMPED = 1) した際にデジタル コンパレータが監視中のアナログ入力の ID を示します。

Note: アナログ入力<31:0>のみがデジタル コンパレータ モジュール 'x' ('x' = 2~6)で処理できます。

11111 = AN31 を監視中11110 = AN30 を監視中•••00001 = AN1 を監視中00000 = AN0 を監視中

bit 7 ENDCMP: デジタル コンパレータ 'x' イネーブルビット1 = デジタル コンパレータ 'x' を有効にする0 = デジタル コンパレータ'x'を有効にせず、DCMPEDステータスビット(ADCCMPCONx<5>)をクリアする

bit 6 DCMPGIEN: デジタル コンパレータ 'x' 割り込みイネーブルビット1 = DCMPED ステータスビット (ADCCMPCONx<5>) がセットされると、デジタル コンパレータ 'x'

割り込みを生成する0 = デジタル コンパレータ 'x' 割り込みを無効にする

bit 5 DCMPED: デジタル コンパレータ 'x'「真出力」イベント ステータスビットデジタル コンパレータが「真」を出力する論理条件は IEBTWN、IEHIHI、IEHILO、IELOHI、IELOLOビットで定義します。

Note: AINID<5:0>ビット (ADCCMPCON1<13:8>)を読み出すかデジタル コンパレータ モジュールを無効 (ENDCMP を「0」に設定 ) にすると、このビットはクリアされます。

1 = デジタル コンパレータ 'x' 出力が真であるイベントが発生した ( コンパレータ出力は「1」)0 = デジタル コンパレータ 'x' 出力は偽である ( コンパレータ出力は「0」)

bit 4 IEBTWN: Low/HIGH 間デジタル コンパレータ 'x' イベントビット1 = DCMPLO<15:0> DATA<31:0> < DCMPHI<15:0> の場合にデジタル コンパレータ 'x' イベントを生

成する0 = 上記の条件ではデジタル コンパレータ 'x' イベントを生成しない

bit 3 IEHIHI: HIGH/HIGH デジタル コンパレータ 'x' イベントビット1 = DCMPHI<15:0> DATA<31:0> の場合にデジタル コンパレータ 'x' イベントを生成する0 = イベントを生成しない

bit 2 IEHILO: HIGH/LOW デジタル コンパレータ 'x' イベントビット1 = DATA<31:0> < DCMPHI<15:0> の場合にデジタル コンパレータ 'x' イベントを生成する0 = イベントを生成しない

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-47

Page 48: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

bit 1 IELOHI: LOW/HIGH デジタル コンパレータ 'x' イベントビット1 = DCMPLO<15:0> DATA<31:0> の場合にデジタル コンパレータ 'x' イベントを生成する0 = イベントを生成しない

bit 0 IELOLO: Low/Low デジタル コンパレータ 'x' イベントビット1 = DATA<31:0> < DCMPLO<15:0> の場合にデジタル コンパレータ 'x' イベントを生成する0 = イベントを生成しない

レジスタ 22-27: ADCCMPCONx: ADC デジタル コンパレータ 'x'制御レジスタ ('x' = 2 ~ 6) ( 続き )

DS60001344A_JP - p.22-48 Preliminary © 2016 Microchip Technology Inc.

Page 49: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-28: ADCFSTAT: ADC FIFO ステータス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FEN ADC6EN ADC5EN ADC4EN ADC3EN ADC2EN ADC1EN ADC0EN

23:16R/W-0 R-0, HS, HC R-0, HS, HC U-0 U-0 U-0 U-0 U-0

FIEN FRDY FWROVERR — — — — —

15:8R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

FCNT<7:0>

7:0R-0 U-0 U-0 U-0 U-0 R-0 R-0 R-0

FSIGN — — — — ADCID<2:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 FEN: FIFO イネーブルビット1 = FIFO を有効にする0 = FIFO を無効にする(FIFO にデータを格納しない )

bit 30-24 ADC6EN: ADC0EN: ADCx イネーブルビット (x = 0 ~ 6)1 = ADCx の変換出力データを FIFO に格納する0 = ADCx の変換出力データを FIFO に格納しない

Note: FIFO 使用中、出力データは対応する出力データレジスタ (ADCDATAx) にも格納されます。

bit 23 FIEN: FIFO 割り込みイネーブルビット1 = FIFO 割り込みを有効にする (FRDY ビットがセットされると割り込みを生成します。)0 = FIFO 割り込みを無効にする

bit 22 FRDY: FIFO データレディ割り込みステータスビット1 = FIFO に読み出すデータがある0 = FIFO に利用できるデータはない

Note: ADCFIFO の FIFO 出力データが全て読み出され、FIFO に読み出し可能なデータが残っていない (FIFO が空の ) 場合、このビットはクリアされます。

bit 21 FWROVERR: FIFO 書き込みオーバーフロー エラー ステータスビット1 = FIFO の書き込みオーバーフロー エラーが発生した ( リング バッファ )0 = FIFO の書き込みオーバーフロー エラーは発生していない

Note: ADCFSTAT<23:16> 読み出し後、このビットはソフトウェアによってクリアされます。

bit 15-8 FCNT<7:0>: FIFO データ入力数ステータスビットこれらのビット値は FIFO のデータ入力数を示します。

bit 7 FSIGN: FIFO 符号設定ビットこのビットは、ADCFIFO レジスタに格納されているデータの符号を示します。

bit 6-3 未実装 :「0」として読み出し

bit 2-0 ADCID<2:0>: ADCx ID ビット (x = 0 ~ 6)これらのビットは、FIFO にデータを格納した ADC モジュールを示します。111 = 予約済み110 = ADC6 の変換データを FIFO に格納する•••000 = ADC0 の変換データを FIFO に格納する

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-49

Page 50: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-29: ADCFIFO: ADC FIFO データレジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<31:24>

23:16R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<23:16>

15:8R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<15:8>

7:0R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DATA<31:0>: FIFO データ出力値ビット

Note: 代替入力を専用 ADC モジュールの入力源として使う場合でも、変換結果は既定値入力と同じデータ出力レジスタに格納されます。

レジスタ 22-30: ADCBASE: ADC ベースレジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCBASE<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCBASE<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 未実装 :「0」として読み出し

bit 15-0 ADCBASE<15:0>: ADC ISR ベースアドレス ビット

このレジスタはユーザの ADC ISR ジャンプテーブルのベースアドレスを格納します。割り込みベクタアドレスは、ARDYx ステータスビット (ADCDSTAT1 および ADCDSTAT2 レジスタ ) を IRQVS<2:0>ビット (ADCCON1 レジスタ ) で指定する分だけ左シフトさせた値を ADCBASE レジスタの値に加算して求めます。

割り込みベクタアドレス = ADCBASE の読み出し値 = ADCBASE に書き込まれた値 + x << IRQVS<2:0>(「x」は、ADCDSTAT1 または ADCDSTAT2 レジスタで変換データが読み出し可能であるアナログ入力のID の 小値 ( 大の優先度 ) です。)

DS60001344A_JP - p.22-50 Preliminary © 2016 Microchip Technology Inc.

Page 51: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-31: ADCDATAx: ADC 出力データレジスタ (x = 0 ~ 63)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<31:24>

23:16R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<23:16>

15:8R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<15:8>

7:0R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

DATA<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DATA<31:0>: ADC 変換データ出力ビット

Note 1: 代替入力を専用 ADC モジュールの入力源として使う場合でも、変換結果は既定値入力と同じデータ出力レジスタに格納されます。

2: FRACT ビットを変更後に ADCDATAx レジスタの値を読み出すと、データは FRACT ビットで指定したフォーマットに変換されます。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-51

Page 52: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-32: ADCDMASTAT: ADC DMA ステータス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMAGEN RBFIEN6 RBFIEN5 RBFIEN4 RBFIEN3 RBFIEN2 RBFIEN1 RBFIEN0

23:16R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

DMAWROVERR RBF6 RBF5 RBF4 RBF3 RBF2 RBF1 RBF0

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMACNTEN RAFIEN6 RAFIEN5 RAFIEN4 RAFIEN3 RAFIEN2 RAFIEN1 RAFIEN0

7:0U-0 R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

— RAF6 RAF5 RAF4 RAF3 RAF2 RAF1 RAF0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DMAGEN: DMA グローバル イネーブルビット1 = 全 ADC モジュールに対して DMA エンジンを有効にする (DMA を使うには、各専用 ADC モジュール

の DMAEN ビット (ADCxTIME<23>) を有効にする必要があります。)0 = 全 ADC モジュールに対して DMA エンジンを無効にする

bit 30-24 RBFIEN6 ~ RBFIEN0: RAM バッファ B フル (ADC6 ~ ADC0) 割り込みイネーブルビット1 = 割り込みを有効にし、RBFx ステータスビットがセットされると割り込みを生成する0 = 割り込みを無効にする

bit 23 DMAWROVERR: DMA 書き込みオーバーフロー エラービット1 = DMA 書き込みオーバーフロー エラーが発生した ( リングバッファ )0 = DMA 書き込みオーバーフロー エラーは発生していない

Note: このビットは、ソフトウェアが ADCDMASTAT レジスタを読み出した後にハードウェアによってクリアされます。

bit 22-16 RBF6 ~ RBF0: RAM バッファ B フル (ADC6 ~ ADC0) ステータスビット1 = RAM バッファ B はフル0 = RAM バッファ B はフルではない

Note: これらのビットは、ソフトウェアで読み出すと自動的にクリアされます。

bit 15 DMACNTEN: DMA バッファサンプル数イネーブルビットDMA エンジンは、サンプルを SRAM 内の対応するバッファに書き込むごとに、各バッファの現在のサンプル数をテーブル ( 開始アドレス ADCCNTB) に保存します。

bit 14-8 RAFIEN6 ~ RAFIEN0: RAM バッファ A フル (ADC6 ~ ADC0) 割り込みイネーブルビット1 = 割り込みを有効にし、RAFx ステータスビットがセットされると割り込みを生成する0 = 割り込みを無効にする

bit 7 未実装 :「0」として読み出し

bit 6-0 RAF6 ~ RAF0: RAM バッファ A フル (ADC6 ~ ADC0) ステータスビット1 = RAM バッファ A はフル0 = RAM バッファ A はフルではない

Note: これらのビットは、ソフトウェアで読み出すと自動的にクリアされます。

DS60001344A_JP - p.22-52 Preliminary © 2016 Microchip Technology Inc.

Page 53: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-33: ADCCNTB: ADC サンプル数ベースアドレス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CNTBADDR<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CNTBADDR<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CNTBADDR<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CNTBADDR<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 CNTBADDR<31:0>: A/D 変換数ベースアドレス ビット

ADCCNTB レジスタはユーザ定義の RAM アドレスを格納しており、これを開始アドレスとして DMAエンジンは現在の出力サンプル数を RAM に保存します (DMACNTEN ビット (ADCDMASTAT<15>) がセットされている場合 )。このサンプル数は各 ADC モジュールに対応するシステム RAM 内の各バッファに書き込み済みです。ADCx モジュールは、バッファA の現在のサンプル数をアドレス ((ADCCNTB) + 2 * x)に保存し、バッファB の現在のサンプル数をアドレス ((ADCCNTB) + (2 * x + 1)) に保存します。「x」は専用 ADC モジュールの ID (0 ~ 6) です。

レジスタ 22-34: ADCDMAB: ADC DMA ベースアドレス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMABADDR<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMABADDR<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMABADDR<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMABADDR<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DMABADDR<31:0>: DMA ベースアドレス ビット

ADCDMAB レジスタはユーザ定義の RAM アドレスを格納し、これを開始アドレスとして DMA エンジンは変換データを保存します。各データを保存するアドレスは以下の関係で指定します。

バッファ A 開始アドレス : ADCDMAB + (2 * x) * 2(ADCON1 レジスタの DMABL + 1)

バッファ B 開始アドレス : ADCDMAB + (2 * (x + 1)) * 2(ADCON1 レジスタの DMABL + 1)

「x」は専用 ADC モジュールの ID (0 ~ 6) です。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-53

Page 54: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-35: ADCTRGSNS: ADC トリガ レベルセンス / エッジセンス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

LVL31 LVL30 LVL29 LVL28 LVL27 LVL26 LVL25 LVL24

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

LVL23 LVL22 LVL21 LVL20 LVL19 LVL18 LVL17 LVL16

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

LVL15 LVL14 LVL13 LVL12 LVL11 LVL10 LVL9 LVL8

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

LVL7 LVL6 LVL5 LVL4 LVL3 LVL2 LVL1 LVL0

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 LVL31 ~ LVL0: トリガ レベルセンス / エッジセンス ビット1 = アナログ入力をHighレベルセンスでトリガする (トリガ信号がHighである限りトリガは引かれたまま )0 = アナログ入力を立ち上がりエッジセンスでトリガする ( リセット後の既定値 )

Note 1: このレジスタでは、アナログ入力 0 ~ 31 のトリガのセンス方法を指定します。

2: ID が 32 以上のアナログ入力はクラス 3 に属します。従ってスキャントリガのみを実行します。クラス 3 の全アナログ入力のスキャントリガのセンス方法 ( レベル / エッジ ) は STRGLVL ビット (ADCCON1<3>) で定義します。

DS60001344A_JP - p.22-54 Preliminary © 2016 Microchip Technology Inc.

Page 55: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-36: ADCxTIME: 専用 ADCx タイミング レジスタ x (x = 0 ~ 6)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1— — — ADCEIS<2:0> SELRES<1:0>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DMAEN ADCDIV<6:0>

15:8U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0— — — — — — SAMC<9:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SAMC<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-26 ADCEIS<2:0>: ADCx 早期割り込み選択ビット

111 = データレディ割り込みを、変換終了の 8 ADC クロックサイクル前に生成する110 = データレディ割り込みを、変換終了の 7 ADC クロックサイクル前に生成する•••001 = データレディ割り込みを、変換終了の 2 ADC クロックサイクル前に生成する000 = データレディ割り込みを、変換終了の 1 ADC クロックサイクル前に生成する

Note: SELRES<1:0> ビット (ADCxTIME<25:24>) で選択した分解能が 12 ビットまたは 10 ビットの場合、全ての選択肢が利用できます。8 ビットの分解能を選択した場合、「000」~「101」の選択肢が利用できます。6 ビットの分解能を選択した場合、「000」~「011」の選択肢が利用できます。

bit 25-24 SELRES<1:0>: ADCx 分解能選択ビット

11 = 12 ビット10 = 10 ビット01 = 8 ビット00 = 6 ビット

bit 23 DMAEN: DMA イネーブルビット

1 = ADC モジュールの DMA エンジンを有効にする (ADC はシステム RAM にデータを保存できます。)0 = ADC モジュールの DMA エンジンを無効にする ( 変換データは、対応するデータレジスタからのみ取

得できます。)bit 22-16 ADCDIV<6:0>: ADCx クロック分周比ビット

これらのビットを使って、ADC 制御クロック ( 周期 TQ) を分周する事で、ADCx のクロック (TADx) を生成します。1111111 = 254 * TQ = TADx•••0000011 = 6 * TQ = TADx0000010 = 4 * TQ = TADx0000001 = 2 * TQ = TADx0000000 = 予約済み

bit 15-10 未実装 :「0」として読み出し

bit 9-0 SAMC<9:0>: ADCx サンプリング時間ビット

TADx = 専用 ADC の変換クロックの周期 (ADCDIV<6:0> ビットで制御 )1111111111 = 1025 TADx•••0000000001 = 3 TADx0000000000 = 2 TADx

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-55

Page 56: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-37: ADCEIEN1: ADC 早期割り込みイネーブル レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN31 EIEN30 EIEN29 EIEN28 EIEN27 EIEN26 EIEN25 EIEN24

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN23 EIEN22 EIEN21 EIEN20 EIEN19 EIEN18 EIEN17 EIEN16

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN15 EIEN14 EIEN13 EIEN12 EIEN11 EIEN10 EIEN9 EIEN8

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN7 EIEN6 EIEN5 EIEN4 EIEN3 EIEN2 EIEN1 EIEN0

凡例 : HS = ハードウェア セットビット

C = クリア可能ビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 EIEN31 ~ EIEN0: アナログ入力早期割り込みイネーブルビット1 = 選択したアナログ入力の早期割り込みを有効にする (早期割り込みイベントが発生 (ADCEISTAT1レジ

スタの EIRDYx ビット (x = 31 ~ 0) で表示 ) すると、割り込みを生成します。)0 = 割り込みを無効にする

レジスタ 22-38: ADCEIEN2: ADC 早期割り込みイネーブル レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN63 EIEN62 EIEN61 EIEN60 EIEN59 EIEN58 EIEN57 EIEN56

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN55 EIEN54 EIEN53 EIEN52 EIEN51 EIEN50 EIEN49 EIEN48

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN47 EIEN46 EIEN45 EIEN44 EIEN43 EIEN42 EIEN41 EIEN40

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EIEN39 EIEN38 EIEN37 EIEN36 EIEN35 EIEN34 EIEN33 EIEN32

凡例 : HS = ハードウェア セットビット

C = クリア可能ビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 EIEN63 ~ EIEN32: アナログ入力早期割り込みイネーブルビット1 = 選択したアナログ入力の早期割り込みを有効にする (早期割り込みイベントが発生 (ADCEISTAT2レジ

スタの EIRDYx ビット (x = 63 ~ 32) で表示 ) すると、割り込みを生成します。)0 = 割り込みを無効にする

DS60001344A_JP - p.22-56 Preliminary © 2016 Microchip Technology Inc.

Page 57: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-39: ADCEISTAT1: ADC 早期割り込みステータス レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY31 EIRDY30 EIRDY29 EIRDY28 EIRDY27 EIRDY26 EIRDY25 EIRDY24

23:16R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY23 EIRDY22 EIRDY21 EIRDY20 EIRDY19 EIRDY18 EIRDY17 EIRDY16

15:8R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY15 EIRDY14 EIRDY13 EIRDY12 EIRDY11 EIRDY10 EIRDY9 EIRDY8

7:0R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY7 EIRDY6 EIRDY5 EIRDY4 EIRDY3 EIRDY2 EIRDY1 EIRDY0

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 EIRDY31 ~ EIRDY0: アナログ入力早期割り込みレディビット1 = 指定したアナログ入力で早期割り込みが発生した (ADCEIEN1 レジスタで早期割り込みを有効にしてい

る場合、割り込みが生成されます。クラス 1 アナログ入力では、このビットは ADCxTIME レジスタのADCEIS<2:0> ビットの設定に従ってセットされます。共有 ADC モジュールでは、このビットはADCCON2 レジスタの ADCEIS<2:0> ビットの設定に従ってセットされます。)

0 = 割り込みが発生していない

レジスタ 22-40: ADCEISTAT2: ADC 早期割り込みステータス レジスタ 2ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY63 EIRDY62 EIRDY61 EIRDY60 EIRDY59 EIRDY58 EIRDY57 EIRDY56

23:16R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY55 EIRDY54 EIRDY53 EIRDY52 EIRDY51 EIRDY50 EIRDY49 EIRDY48

15:8R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY47 EIRDY46 EIRDY45 EIRDY44 EIRDY43 EIRDY42 EIRDY41 EIRDY40

7:0R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC

EIRDY39 EIRDY38 EIRDY37 EIRDY36 EIRDY35 EIRDY34 EIRDY33 EIRDY32

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 EIRDY63 ~ EIRDY32: アナログ入力早期割り込みレディビット1 = 指定したアナログ入力で早期割り込みが発生した (ADCEIEN2 レジスタで早期割り込みを有効にしてい

る場合、割り込みが生成されます。クラス 1 アナログ入力では、このビットは ADCxTIME レジスタのADCEIS<2:0> ビットの設定に従ってセットされます。共有 ADC モジュールでは、このビットはADCCON2 レジスタの ADCEIS<2:0> ビットの設定に従ってセットされます。)

0 = 割り込みが発生していない

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-57

Page 58: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-41: ADCANCON: ADC アナログ ウォームアップ制御レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0— — — — WKUPCLKCNT<3:0>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

WKIEN7 WKIEN6 WKIEN5 WKIEN4 WKIEN3 WKIEN2 WKIEN1 WKIEN0

15:8R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HC R-0, HS, HCWKRDY7 WKRDY6 WKRDY5 WKRDY4 WKRDY3 WKRDY2 WKRDY1 WKRDY0

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ANEN7 ANEN6 ANEN5 ANEN4 ANEN3 ANEN2 ANEN1 ANEN0

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-28 未実装 :「0」として読み出し

bit 27-24 WKUPCLKCNT<3:0>: 復帰クロック数ビットこれらのビットは、ADC モジュールが変換を実行する前にウォームアップするのに必要な ADC クロック数を表します。クロックは各ADCに固有ですが、WKUPCLKCNTビットは全ADCモジュールに共通です。1111 = 215 = 32,768 クロック•••0110 = 26 = 64 クロック0101 = 25 = 32 クロック0100 = 24 = 16 クロック0011 = 24 = 16 クロック0010 = 24 = 16 クロック0001 = 24 = 16 クロック0000 = 24 = 16 クロック

bit 23 WKIEN7: 共有 ADC (ADC7) 復帰割り込みイネーブルビット1 = 割り込みを有効にし、WKRDY7 ステータスビットがセットされると割り込みを生成する0 = 割り込みを無効にする

bit 22-16 WKIEN6 ~ WKIEN0: ADC6 ~ ADC0 復帰割り込みイネーブルビット1 = 割り込みを有効にし、WKRDYx ステータスビットがセットされると割り込みを生成する0 = 割り込みを無効にする

bit 15 WKRDY7: 共有 ADC (ADC7) 復帰ステータスビット1 = ANEN7 を「1」にセットしてから復帰カウント数 (2WKUPEXP クロック ) が経過し、ADC7 のアナロ

グおよびバイアス回路の動作準備が完了している0 = ADC7 のアナログおよびバイアス回路の動作準備は完了していない

Note: (ANEN7 ビットをクリアすると、ハードウェアがこのビットをクリアします。)bit 14-8 WKRDY6 ~ WKRDY0: ADC6 ~ ADC0 復帰ステータスビット

1 = ANENx を「1」にセットしてから復帰カウント数 (2WKUPEXP クロック ) が経過し、ADCx のアナログおよびバイアス回路の動作準備が完了している

0 = ADCx のアナログおよびバイアス回路の動作準備は完了していない

Note: (ANENx ビットをクリアすると、ハードウェアがこのビットをクリアします。)bit 7 ANEN7: 共有 ADC (ADC7) アナログおよびバイアス回路イネーブルビット

1 = アナログおよびバイアス回路をONにする (アナログおよびバイアス回路をONにした後、ADCモジュールは WKUPCLKCNT<3:0> ビットで定義したウォームアップ時間を必要とします。)

0 = アナログおよびバイアス回路を OFF にする

bit 6-0 ANEN6 ~ ANEN0: ADC6 ~ ADC0 アナログおよびバイアス回路イネーブルビット1 = アナログおよびバイアス回路をONにする (アナログおよびバイアス回路をONにした後、ADCモジュー

ルは WKUPCLKCNT<3:0> ビットで定義したウォームアップ時間を必要とします。)0 = アナログおよびバイアス回路を OFF にする

DS60001344A_JP - p.22-58 Preliminary © 2016 Microchip Technology Inc.

Page 59: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

レジスタ 22-42: ADCxCFG: ADCx コンフィグレーション レジスタ x (x = 0 ~ 7)ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCCFG<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCCFG<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCCFG<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCCFG<7:0>

凡例 :R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 ADCCFG<31:0>: ADC モジュール コンフィグレーション データビット

Note: これらのビットは、ADCANCON レジスタの該当する ANENx ビットがクリアされている場合のみ、変更できます。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-59

Page 60: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

レジスタ 22-43: ADCSYSCFG0: ADC システム コンフィグレーション レジスタ 0ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<31:23>

23:16HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<23:16>

15:8HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<15:8>

7:0HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<7:0>

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 AN<31:0>: ADC アナログ入力ビットこれらのビットはシステム コンフィグレーションに従ってブートアップ中に更新されます。これらのビットを読み出す事で、ユーザ アプリケーションはデバイス内の各アナログ入力が利用可能かどうかを判断できます。AN<31:0>: 各アナログ入力 (AN31 ~ AN0) の有無を示します。

レジスタ 22-44: ADCSYSCFG1: ADC システム コンフィグレーション レジスタ 1ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<63:56>

23:16HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<55:48>

15:8HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<47:40>

7:0HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0 HC, HS, R-0

AN<39:32>

凡例 : HS = ハードウェア セットビット

HC = ハードウェア クリアビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 AN<63:32>: ADC アナログ入力ビットこれらのビットはシステム コンフィグレーションに従ってブートアップ中に更新されます。これらのビットを読み出す事で、ユーザ アプリケーションはデバイス内の各アナログ入力が利用可能かどうかを判断できます。AN<63:32>: 各アナログ入力 (AN63 ~ AN32) の有無を示します。

DS60001344A_JP - p.22-60 Preliminary © 2016 Microchip Technology Inc.

Page 61: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.3 ADC 動作

この高速の逐次比較型レジスタ (SAR) ADC は、電力変換およびモータ制御アプリケーションをサポートするために設計されており、 大 8 つの個別 ADC モジュールを備えています。各 ADC モジュール (ADC0 ~ ADC6) は、S&H 回路に接続されたアナログ入力 ( 代替選択後 ) を1 つ持っています。これらの ADC モジュールは専用のアナログ入力をサンプリングするため、

「専用」ADC モジュールと呼ばれています。専用 ADC モジュールは、タイミングが重要なアナログ信号やアナログ過渡信号の計測 / 収集に使います。ADC7 モジュールは、マルチプレクサを介して S&H 回路に接続された複数のアナログ入力を備えています。複数のアナログ入力がこのADC を共有するため、このモジュールは「共有」ADC モジュールと呼ばれています。共有 ADCモジュールは、低周波数のアナログ信号 ( 時間軸に対して大きく変化しない純静的信号 ) の計測に使います。

専用 ADC モジュール (ADC0 ~ ADC6) に接続されているアナログ入力は、クラス 1 入力とみなされます。共有 ADC モジュール (ADC7) に接続されているアナログ入力は、クラス 2 またはクラス 3 入力とみなされます。各クラスに指定された入力の数は、デバイスによって異なります。例えば、8つのADCモジュールと54のアナログ入力を備えるデバイスは以下の構成を持ちます。

• クラス 1 = AN0 ~ AN6• クラス 2 = AN7 ~ AN31• クラス 3 = AN32 ~ AN53各クラスの実際のアナログ入力数は、各デバイス データシート内の「ADC」を参照してください。

表 22-2 に各クラスのアナログ入力のプロパティを示します。

表 22-2: アナログ入力のクラス

クラス 1 のアナログ入力のプロパティを以下に示します。

• クラス 1 入力は専用 ADC モジュールに割り当てられています。各専用 ADC にはクラス 1入力が 1 つずつ割り当てられています。( 代替 ) 入力選択には、ADCTRGMODE レジスタのSHxALT<1:0> ビットを使います。代替入力選択にかかわらず、トリガ源と結果レジスタは変更されません。

• 各クラス 1 入力は独自のトリガ (ADCTRGx レジスタで選択 ) を備え、トリガが発生するとサンプリングを終了し変換を開始します。変換完了後、ADC モジュールはサンプリングモードに戻ります。クラス 1 入力が有効で、非変換時は常時サンプリングしています。

• 全てのクラス 1 入力は同じ優先度を持っており独立して動作するため、クラス 1 入力の変換は全て同時に開始できます。

• クラス 1 入力はスキャンリストに含めて共通のスキャントリガ源によってトリガする事もできます。

ADC モジュールアナログ入力のクラス

トリガ トリガ動作

ADC0 ~ ADC6( 専用 ADC モジュール )

クラス 1 入力ごとに選択したトリガ源またはスキャントリガ

トリガ発生時にサンプリングを終了して変換を開始する

ADC7( 共有 ADC モジュール )

クラス 2 入力ごとに選択したトリガ源またはスキャントリガ

トリガ発生時にサンプリング シーケンスまたはスキャン シーケンスを開始する

ADC7( 入力スキャン付き共有ADC モジュール )

クラス 3 スキャントリガ トリガ発生時にスキャン シーケンスを開始する

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-61

Page 62: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

図 22-4: 専用 ADC モジュールのサンプリング / 変換シーケンス

クラス 2 とクラス 3 のアナログ入力のプロパティを以下に示します。

• クラス 2 入力は共有 ADC モジュール向けに使い、単独でトリガする事も、スキャンリストに含める事もできます。単独で使う場合、クラス 2 入力は ADCTRGx レジスタで選択した独自のトリガ源でトリガします。

• 共有 ADC のアナログ入力は番号の小さい順に (AN7 が 高で AN63 が 低 ) に従います。

• クラス3入力はスキャンするためにのみ使い、共通のトリガ源 (スキャントリガ )を使います。

• クラス 3 アナログ入力は ADC モジュールとトリガ源を共有するため、これらの入力を変換する唯一の方法は、スキャントリガ イベント ( スキャンは自然順序優先度で発生 ) のたびに順次サンプリングする事です。

• クラス 1 アナログ入力とは異なり、共有 ADC モジュールのトリガが発生した場合のみサンプリングが始まります。トリガが発生すると、ADC モジュールはサンプリング モード ( サンプリング時間は SAMC<9:0> ビット (ADCCON2<25:16>) で決定 ) に遷移します。サンプリングが終わると、ADC は変換を始めます。変換が終わると、ADC モジュールは自然順序優先度に従って次のクラス 2 またはクラス 3 入力を順に変換します。共有アナログ入力 ( クラス 2またはクラス 3) の変換が全て完了し、かつ保留中のトリガが存在しない場合、ADC モジュールは全アナログ入力から切り離されます。

図 22-5: 共有 ADC モジュールのサンプリング / 変換シーケンス

Sample Sample Hold

Convert

Trigger switches the ADC core (S&H) circuit to a Hold state and the conversion begins

At the end of conversion, data is written to buffer and interrupt is generated (if enabled)

ADC module (S&H) is disconnected from the analog input during Hold

ADC module (S&H) is connected to the analog input for sampling.

(1 clock jitter)

Sample Hold

Convert

Once sampling is complete, the conversion begins

At the end of conversion, data is written to buffer and interrupt is generated (if enabled)

ADC (S&H) is disconnected from the analog input

Disconnected Disconnected

Trigger causes S&H circuit to begin sampling for the specified number of ADC clocks, and then switches to the Hold state.

DS60001344A_JP - p.22-62 Preliminary © 2016 Microchip Technology Inc.

Page 63: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.3.1 クラス 2 のトリガ

1 つのクラス 2 入力をトリガする場合、共有 S&H はその入力を図 22-5 に示すシーケンスでサンプリング / 変換します。複数のクラス 2 入力をトリガする場合、トリガタイミングの影響を理解しておく事が重要です。いずれかのクラス 2 入力が変換中である時に別のクラス 2 入力でトリガが発生すると、後者のサンプリング / ホールド / 変換は、実行中のサンプリング / ホールドサイクルが完了するまでストールします ( 図 22-6 参照 )。

図 22-6: 複数のクラス 2 入力が単独トリガを使う場合の変換シーケンス

共有 S&H の複数の入力が同時にトリガされた場合、処理の順番は自然順序優先度 ( 番号の若い入力ほど高優先度 ) によって決まります。例えば AN9、AN10、AN11 が同時にトリガされた場合、AN9 が 初にサンプリング / 変換され、その後に AN10、AN11 の順に処理されます。共有 S&H でクラス 2 入力の単独トリガを使う場合、SAMC<9:0> ビット (ADCCON2<25:16>) で全ての入力に共通のサンプリング時間を指定し、ADCTRGx レジスタ ( レジスタ 22-18 参照 ) の対応するTRGSRC<4:0> ビットで各入力のトリガ源を指定します。

Sample ANHold AN

Convert AN

Once sampling is complete, the conversion begins

ADC (S&H) is disconnected from theanalog input

DisconnectedDisconnected

Trigger for AN

Trigger for AN

AN is holding and Sampling forAN is delayed

Sample AN

Convert AN

Hold AN

ADC (S&H) is disconnected from theanalog input

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-63

Page 64: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.3.2 入力スキャン入力スキャンを使うとクラス 1、クラス 2、クラス 3 を含む複数の入力を自動的にスキャンできます。全てのクラス 2 およびクラス 3 入力のスキャンには 1 つの共有 S&H を使い、クラス1 入力のスキャンには、専用 ADC モジュールの専用 S&H を使います。スキャンするアナログ入力は、ADCCSS1 および ADCCSS2 レジスタの CSSx ビットで選択します。クラス 1 またはクラス 2 入力は ADCTRGx レジスタの STRIG 選択を使ってトリガし、クラス 3 入力はDCCON1<20:16> レジスタの STRGSRC<4:0> を使ってトリガします。トリガが発生すると、全てのクラス 1 入力は同時にキャプチャされ、変換は同時に開始します。クラス 2 およびクラス 3入力では、サンプリングと変換は自然順序優先度に従って、番号の若い入力から順番に実行されます。

図 22-7: 3 つのクラス 2 入力を含む入力スキャンの変換シーケンス

共有アナログ入力をスキャンモードで使う場合、ADC 制御レジスタ 2 の SAMC<9:0> ビット(ADCCON2<25:16>) で全ての入力に共通のサンプリング時間を指定し、ADC 制御レジスタ 1のスキャントリガ源選択ビット STRGSRC<4:0> (ADCCON1<20:16>) でトリガ源を指定します。 予測可能な結果を保証するには、全ての入力のサンプリングが完了するまでスキャンを再トリガしない事が必要です。システム設計では、スキャン実行中にスキャンを再トリガしないように注意する必要があります。

スキャン中にクラス 2 入力の単独トリガが発生した場合、それらの入力の優先度が現在処理中のサンプルよりも高ければ、実行中のスキャン シーケンスは保留されます。AN11、AN12、AN13 を含むスキャンの実行中に、クラス 2 入力 AN8 の独立トリガが発生した場合のシーケンスを図 22-8 に示します。AN8 のサンプリング / 変換が実行中のスキャンに割り込んでいます。

図 22-8: クラス 2 入力の単独トリガによるスキャンの中断

Sample AN Hold AN

Convert AN

Once sampling is complete, the conversion begins

ADC (S&H) is disconnected from the analog input

DisconnectedDisconnected

Trigger causes S&H circuit to begin sampling first input in the scan list for the specified number of ADC clocks, and then switches to Hold state.

Once the first conversion is complete, sampling begins for next input in scan list

Sample AN Hold AN

Convert AN

Sample AN Hold AN

Convert AN

When each conversion is complete, the result is written to ADCresult buffer and an interrupt is generated

Sample AN11 Hold AN11

Convert AN11

ADC core (S&H) is disconnected from the analog input

Dis

conn

ecte

d

Dis

conn

ecte

d

Scan trigger starts scan process of inputs AN11, AN12 and AN13

Independent trigger of Class 2 input AN8 occurs here

Sample AN12 Hold AN12

Convert AN12

Sample AN8 Hold AN8

Convert AN8

Sample AN13 Hold AN13

Convert AN13

Sampling and conversion of AN8 pre-empts the scan process. AN8 is sampled and converted between AN12 and AN13, but the arrival of the AN8 trigger does not abort the ongoing sample/conversion of AN12.

DS60001344A_JP - p.22-64 Preliminary © 2016 Microchip Technology Inc.

Page 65: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.4 ADC モジュールの設定

ADC モジュールの動作は、対応するレジスタのビットを設定する事で制御します。設定手順の概要を以下に示します。各設定手順のオプションと詳細は後で説明します。 ADC モジュールの設定手順は以下の通りです。

1. アナログポート ピンを設定する (22.4.1「アナログ ポートピンの設定」参照 )2. ADC マルチプレクサでアナログ入力を選択する (22.4.2「ADC マルチプレクサによる

アナログ入力の選択」参照 )3. ADC 結果のフォーマットを選択する (22.4.3「ADC 結果フォーマットの選択」参照 )4. 変換トリガ源を選択する (22.4.4「変換トリガ源の選択」参照 )5. 参照電圧源を選択する (22.4.5「参照電圧源の選択」参照 )6. スキャンする入力を選択する (22.4.6「スキャン入力の選択」参照 )7. ADC クロック源とプリスケーラを選択する (22.4.7「ADC クロック源とプリスケーラの

選択」参照 )8. 必要に応じて追加のアクイジション時間を指定する (22.10「ADC サンプリング要件」

参照 )9. ADC モジュールを有効にする (22.4.9「ADC モジュールの有効化」参照 )10. 参照電圧の準備が完了するまでポーリング ( または割り込みを待機 ) する (22.4.5「参照

電圧源の選択」参照 )11. 必要な ADC モジュールのアナログおよびバイアス回路を ON にし、ADC モジュールが

復帰した後、デジタル回路を ON にする (22.7.3「ADC 低消費電力モード」参照 )12. 必要に応じて ADC 割り込みを設定する (22.6「割り込み」参照 )

22.4.1 アナログ ポートピンの設定

アナログ入力に割り当てられている I/O ポートの ANSELx レジスタを使うと、対応するピンをアナログピンまたはデジタルピンとして設定できます。ANSELx ビットを「1」にセットすると、対応するピンはアナログ入力として設定できます。ANSELx ビットを「0」にクリアすると、対応するピンはデジタル制御向けに設定されます。ANSELx レジスタはデバイスリセット時にセットされます (ADC 入力ピンは既定値のアナログ入力として設定されます )。TRISx レジスタは、ポートピンのデジタル機能を制御します。アナログ入力として使うポートピンは、適切な TRISx レジスタ内の対応するビットをセットする事で、入力ピンとして設定しておく必要があります。TRISx ビットをクリアすると、ADC 入力に割り当てられている I/O ピンは出力として設定され、そのポートのデジタル出力レベル (VOH または VOL) が変換されます。TRISx ビットはデバイスリセット時に全てセットされます。ポートピン コンフィグレーションの詳細は、各デバイス データシート内の「I/O ポート」を参照してください。

Note: ADC とピンを共有する PORT レジスタを読み出す場合、アナログ入力として設定されている全てのピンは、PORTx ラッチの読み出し時に「0」として読み出されます。アナログ入力としてではなくデジタル入力として定義されたピンにアナログレベル電圧を印加すると、入力バッファにデバイス仕様値を超える電流が流れる可能性があります。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-65

Page 66: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-1: ADC クラス 1 入力の初期化方法と使い方

int main(int argc, char** argv) {int result[3];

/* Configure ADCCON1 */ADCCON1 = 0; // No ADCCON1 features are enabled including: Stop-in-Idle, turbo,

// CVD mode, Fractional mode and scan trigger source.

/* Configure ADCCON2 */ADCCON2 = 0; // Since, we are using only the Class 1 inputs, no setting is

// required for ADCDIV

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ADCCON3 = 0;ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

/* Select ADC sample time and conversion clock */ADC0TIMEbits.ADCDIV = 1; // ADC0 clock frequency is half of control clock = TAD0ADC0TIMEbits.SAMC = 5; // ADC0 sampling time = 5 * TAD0ADC0TIMEbits.SELRES = 3; // ADC0 resolution is 12 bitsADC1TIMEbits.ADCDIV = 1; // ADC1 clock frequency is half of control clock = TAD1ADC1TIMEbits.SAMC = 5; // ADC1 sampling time = 5 * TAD1ADC1TIMEbits.SELRES = 3; // ADC1 resolution is 12 bitsADC2TIMEbits.ADCDIV = 1; // ADC2 clock frequency is half of control clock = TAD2ADC2TIMEbits.SAMC = 5; // ADC2 sampling time = 5 * TAD2ADC2TIMEbits.SELRES = 3; // ADC2 resolution is 12 bits

/* Select analog input for ADC modules, no presync trigger, not sync sampling */ADCTRGMODEbits.SH0ALT = 0; // ADC0 = AN0ADCTRGMODEbits.SH1ALT = 0; // ADC1 = AN1ADCTRGMODEbits.SH2ALT = 0; // ADC2 = AN2

/* Select ADC input mode */ADCIMCON1bits.SIGN0 = 0; // unsigned data formatADCIMCON1bits.DIFF0 = 0; // Single ended modeADCIMCON1bits.SIGN1 = 0; // unsigned data formatADCIMCON1bits.DIFF1 = 0; // Single ended modeADCIMCON1bits.SIGN2 = 0; // unsigned data formatADCIMCON1bits.DIFF2 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; // No interrupts are usedADCGIRQEN2 = 0;

/* Configure ADCCSSx */ADCCSS1 = 0; // No scanning is usedADCCSS2 = 0;

/* Configure ADCCMPCONx */ADCCMPCON1 = 0; // No digital comparators are used.Setting the ADCCMPCONxADCCMPCON2 = 0; // register to '0' ensures that the comparator is disabled.ADCCMPCON3 = 0; // Other registers are “don't care”.ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ADCFLTR1 = 0; // No oversampling filters are used.ADCFLTR2 = 0;ADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;

DS60001344A_JP - p.22-66 Preliminary © 2016 Microchip Technology Inc.

Page 67: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-1: ADC クラス 1 入力の初期化方法と使い方 ( 続き )/* Set up the trigger sources */ADCTRGSNSbits.LVL0 = 0; // Edge triggerADCTRGSNSbits.LVL1 = 0; // Edge triggerADCTRGSNSbits.LVL2 = 0; // Edge triggerADCTRG1bits.TRGSRC0 = 1; // Set AN0 to trigger from software.ADCTRG1bits.TRGSRC1 = 1; // Set AN1 to trigger from software.ADCTRG1bits.TRGSRC2 = 1; // Set AN2 to trigger from software.

/* Early interrupt */ADCEIEN1 = 0; // No early interruptADCEIEN2 = 0;

/* Turn the ADC on */ADCCON1bits.ON = 1;

/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage

/* Enable clock to analog circuit */ADCANCONbits.ANEN0 = 1; // Enable the clock to analog biasADCANCONbits.ANEN1 = 1; // Enable the clock to analog biasADCANCONbits.ANEN2 = 1; // Enable the clock to analog bias

/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY0); // Wait until ADC0 is readywhile(!ADCANCONbits.WKRDY1); // Wait until ADC1 is readywhile(!ADCANCONbits.WKRDY2); // Wait until ADC2 is ready

/* Enable the ADC module */ADCCON3bits.DIGEN0 = 1; // Enable ADC0ADCCON3bits.DIGEN1 = 1; // Enable ADC1ADCCON3bits.DIGEN2 = 1; // Enable ADC2

while (1) {/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;

/* Wait the conversions to complete */while (ADCDSTAT1bits.ARDY0 == 0);/* fetch the result */result[0] = ADCDATA0;

while (ADCDSTAT1bits.ARDY1 == 0);/* fetch the result */result[1] = ADCDATA1;

while (ADCDSTAT1bits.ARDY2 == 0);/* fetch the result */result[2] = ADCDATA2;

/** Process results here** Note: Loop time determines the sampling time since all inputs are Class 1.* If the loop time is small and the next trigger happens before the completion* of set sample time, the conversion will happen only after the sample time* has elapsed.**/

}return (1);}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-67

Page 68: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.4.2 ADC マルチプレクサによるアナログ入力の選択

各 ADC モジュールは、非反転入力と反転入力を備えています。入力の選択オプションは、以下で述べるように、専用 ADC モジュールと共有 ADC モジュールで異なります。

22.4.2.1 非反転入力の選択

各専用 ADC モジュール (ADC0 ~ ADC6) では、各非反転入力に対して 4 つの代替選択が提供されています。各専用ADCモジュールの代替入力は、ADCトリガモード レジスタ(ADCTRGMODE)内の SHxALT<1:0> ビットを使って以下のように選択します。 • SH0ALT<1:0> (ADCTRGMODE<17:16>)• SH1ALT<1:0> (ADCTRGMODE<19:18>)• SH2ALT<1:0> (ADCTRGMODE<21:20>)• SH3ALT<1:0> (ADCTRGMODE<23:22>)• SH4ALT<1:0> (ADCTRGMODE<25:24>)• SH5ALT<1:0> (ADCTRGMODE<27:26>)• SH6ALT<1:0> (ADCTRGMODE<29:28>)

ADC 入力で使える代替選択は、各デバイスのデータシートを参照してください。

共有 ADC モジュール (ADC7) の非反転入力は、全てのクラス 2 およびクラス 3 入力によって共有されます。クラス 2 アナログ入力は、その入力のトリガが発生した時点で自動的に共有ADC モジュールに接続されます。あるいは、スキャン中のクラス 2 およびクラス 3 入力は、順番に共有 ADC モジュールに接続されます。スキャンに含める入力の選択については、22.4.6「スキャン入力の選択」で説明します。

22.4.2.2 反転入力の選択

反転入力は、ADCIMCONx レジスタの DIFFx ビットで選択します。DIFFx ビットでは、入力をシングルエンドまたは差動のどちらかに設定できます ( 電圧レンジはレールツーレール )。また、ADCIMCONx レジスタの SIGNx および DIFFx ビットを組み合わせると、内部 ADC アナログ入力と参照電圧をスケーリングし、デジタル変換結果を所定のフルスケール出力レンジに合うように設定できます。

共有 ADC モジュール (ADC7) では、アナログ入力に対して DIFFx ビットを個別に設定できます。従ってユーザは、同一共有 ADC モジュールに接続しながら、ある入力をシングルエンド、別の入力を差動に選択する事もできます。サンプリング中に、対応する DIFFx ビットの設定に従って信号がシングルエンドまたは差動に変化します。

表 22-3: 反転入力の選択

ADCIMCON1入力の設定 入力電圧 出力DIFFx SIGNx

1 1 差動 /2 の補数小入力 VINP - VINN = -VREF -2048大入力 VINP - VINN = VREF +2047

1 0 差動 / ユニポーラ小入力 VINP - VINN = -VREF 0大入力 VINP - VINN = VREF +4095

0 1 シングルエンド /2 の補数

小入力 VINP = VREF -2048大入力 VINP - VINN = VREF +2047

0 0 シングルエンド /ユニポーラ

小入力 VINP = VREF 0大入力 VINP - VINN = VREF +4095

凡例 : VINP = 非反転 S&H 入力、VINN = 反転 S&H 入力、VREF = VREFH – VREFL

Note: デバイスの適正な動作と損傷防止のため、入力電圧レベルは、各デバイス データシート内の「電気的特性」に記載されている制限値を超えないようにします。

DS60001344A_JP - p.22-68 Preliminary © 2016 Microchip Technology Inc.

Page 69: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.4.3 ADC 結果フォーマットの選択

ADC 結果レジスタ内のデータは、4 通りのデータ フォーマット ( 符号なし整数、符号付き整数、符号なし小数、符号付き小数 ) で読み出せます。整数データは右寄せ、小数データは左寄せです。

• データフォーマットで整数を使うか小数を使うかは、グローバル小数データ出力フォーマット ビット FRACT (ADCCON1<23>) で選択します。この設定は全アナログ入力に適用されます。

• データ フォーマットが符号付きか符号なしかは、アナログ入力ごとに ADCIMCONx レジスタの SIGNx ビットで選択します。

表 22-4 に、各フォーマットの ADC 結果を示します。

表 22-4: ADC 結果フォーマットの選択

FRACT SIGNx 説明 32 ビット出力データ フォーマット

0 0 符号なし整数0000 0000 0000 00000000 dddd dddd dddd

0 1 符号付き整数ssss ssss ssss ssssssss sddd dddd dddd

1 0 符号なし小数dddd dddd dddd 00000000 0000 0000 0000

1 1 符号付き小数sddd dddd dddd dddd0000 0000 0000 0000

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-69

Page 70: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-2: ADC クラス 2 コンフィグレーションおよび小数フォーマットint main(int argc, char** argv) {

int result[3];

/* Configure ADCCON1 */ADCCON1bits.FRACT = 1; // use Fractional output formatADCCON1bits.SELRES = 3; // ADC7 resolution is 12 bitsADCCON1bits.STRGSRC = 0; // No scan trigger.

/* Configure ADCCON2 */ADCCON2bits.SAMC = 5; // ADC7 sampling time = 5 * TAD7ADCCON2bits.ADCDIV = 1; // ADC7 clock freq is half of control clock = TAD7

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ADCCON3 = 0;ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

/* No selection for dedicated ADC modules, no pre sync trigger, not sync sampling */ADCTRGMODEbits = 0;

/* Select ADC input mode */ADCIMCON1bits.SIGN7 = 0; // unsigned data formatADCIMCON1bits.DIFF7 = 0; // Single ended modeADCIMCON1bits.SIGN8 = 0; // unsigned data formatADCIMCON1bits.DIFF8 = 0; // Single ended modeADCIMCON1bits.SIGN9 = 0; // unsigned data formatADCIMCON1bits.DIFF9 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; // No interrupts are usedADCGIRQEN2 = 0;

/* Configure ADCCSSx */ADCCSS1 = 0; // No scanning is usedADCCSS2 = 0;

/* Configure ADCCMPCONx */ADCCMPCON1 = 0; // No digital comparators are used.Setting the ADCCMPCONxADCCMPCON2 = 0; // register to '0' ensures that the comparator is disabled.ADCCMPCON3 = 0; // Other registers are “don't care”.ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ADCFLTR1 = 0; // No oversampling filters are used.ADCFLTR2 = 0;ADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;/* Set up the trigger sources */ADCTRGSNSbits.LVL7 = 0; // Edge triggerADCTRGSNSbits.LVL8 = 0; // Edge triggerADCTRGSNSbits.LVL9 = 0; // Edge triggerADC1TRG2bits.TRGSRC7 = 1; // Set AN7 to trigger from softwareADC2TRG3bits.TRGSRC8 = 1; // Set AN8 to trigger from softwareADC2TRG3bits.TRGSRC9 = 1; // Set AN9 to trigger from software

DS60001344A_JP - p.22-70 Preliminary © 2016 Microchip Technology Inc.

Page 71: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-2: ADC クラス 2 コンフィグレーションおよび小数フォーマット ( 続き )/* Early interrupt */ADCEIEN1 = 0; // No early interruptADCEIEN2 = 0;

/* Turn the ADC on */ADCCON1bits.ON = 1;

/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage

/* Enable clock to analog circuit */ADCANCONbits.ANEN7 = 1; // Enable the clock to analog bias

/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY7); // Wait until ADC7 is ready

/* Enable the ADC module */ADCCON3bits.DIGEN7 = 1; // Enable ADC7

while (1) {/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;

/* Wait the conversions to complete */while (ADCDSTAT1bits.ARDY7 == 0);/* fetch the result */result[0] = ADCDATA7;

while (ADCDSTAT1bits.ARDY8 == 0);/* fetch the result */result[1] = ADCDATA8;

while (ADCDSTAT1bits.ARDY9 == 0);/* fetch the result */result[2] = ADCDATA9;

/** Process results here** Note 1: Loop time determines the sampling time since all inputs are Class 2.* If the loop time happens is small and the next trigger happens before the* completion of set sample time, the conversion will happen only after the* sample time has elapsed.** Note 2: Results are in fractional format**/

}return (1);

}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-71

Page 72: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.4.4 変換トリガ源の選択

クラス 1 およびクラス 2 入力は、入力ごとにトリガして変換する事も、スキャン中にトリガする事もできます。クラス 3 入力は、スキャン中にしかトリガできません。入力単独のトリガとスキャントリガは、内蔵タイマまたは出力コンペア モジュール イベント、INT0 に接続した外部デジタル回路、アナログ コンパレータに接続した外部アナログ回路から生成できます。あるいは、ソフトウェアで SFR 内のトリガビットをセットする事でトリガを生成できます。

22.4.4.1 クラス 1 およびクラス 2 入力のトリガ選択

クラス 1 およびクラス 2 入力に対しては、入力ごとに変換トリガ源を指定できます。各アナログ入力のトリガ源は、ADCTRG1 ~ ADCTRG8 レジスタ内の TRGSRC<4:0> ビットで指定します。利用可能な変換トリガオプションの詳細は、各デバイス データシート内の「ADC」を参照してください。利用可能なトリガ源の例を以下に挙げます。

• 汎用 (GP) タイマ :32 ビットタイマ (Timer3/2, Timer5/4) または 16 ビットタイマ (Timer1,Timer3, Timer5) は、周期一致時に特殊 ADC トリガイベント信号を生成します。これら以外のタイマは、この機能を備えていません。詳細は『PIC32 ファミリ リファレンス マニュアル、セクション 14. タイマ』(DS61105) と、各デバイス データシート内の「タイマ」を参照してください。

• 出力コンペア : 出力コンペア モジュール (OC1, OC3, OC5) の出力 (Low から High への遷移 )を使って ADC トリガを生成できます。詳細は『PIC32 ファミリ リファレンス マニュアル、セクション 16. 出力コンペア』(DS61111) と、各デバイス データシート内の「出力コンペア」を参照してください。

• コンパレータ : アナログ コンパレータの出力 (Low から High への遷移 ) を使って ADCトリガを生成できます。詳細は『PIC32 ファミリ リファレンス マニュアル、セクション19. コンパレータ』(DS61110) と、各デバイス データシート内の「コンパレータ」を参照してください。

• 外部 INT0ピントリガ : ADCモジュールは INT0ピンのアクティブ状態への遷移時に変換を開始します。INT0 ピンは、変換処理のトリガ用に立ち上がりエッジ入力または立ち下がりエッジ入力として設定できます。

• グローバル ソフトウェア トリガ : このトリガオプションを選択した全ての入力の変換を手動でトリガできます。これらの入力をトリガするには、ユーザ ソフトウェアでグローバルソフトウェア エッジトリガ ビット GSWTRG (ADCCON3<6>) をセットします。

22.4.4.2 クラス 1 アナログ入力用の事前同期トリガと非同期サンプリング

ADCTRGx レジスタは ADC トリガ向けに使います。

• 専用出力レジスタ (ADCDATAx) に変換データを格納できます。

• FIFO に変換データを格納できます。

• DMA エンジンを使ってシステム RAM に変換データを格納できます。

ADCTRGMODE レジスタは、STRGEN ビット (事前同期トリガイネーブル )と SSAMPEN ビット (アイドルまたはディセーブル後の 初のサンプルを含む同期サンプリング)で設定したADCモジュールのトリガモードを格納します。

Note: 複数のクラス 2 アナログ入力の変換トリガが同時に発生した場合、それらは自然順序優先度に従って順位付けされます。AN7 は 高の優先度、AN8 は 2 番目に高い優先度です ( 以下同様 )。

Note 1: トリガと同期は「制御クロック (TQ)」で動作します。しかしサンプリング時間(tSAMCx) は TADx クロック (TQ 信号を分周して生成 ) に基づいています。

2: 同期サンプリングを使う場合 (SSAMPEN = 1)、事前同期トリガ値は無視されます(STRGEN = ドントケア )。

DS60001344A_JP - p.22-72 Preliminary © 2016 Microchip Technology Inc.

Page 73: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.4.4.2.1 同期サンプリング (SSAMPEN = 1)トリガイベントが発生するとサンプリングは終了し、事前同期トリガからちょうど「2 * TQ +tSAMCx」後、または直前の変換から tSAMCx 後に変換を開始します (tSAMCx は、SAMC<9:0>(ADCxTIME<9:0>) ビットで設定したサンプリング時間 )。

22.4.4.2.2 非同期サンプリング (SSAMPEN = 0)トリガイベントが発生するとサンプリングは終了し、( 事前同期トリガの有無にかかわらず ) 事前同期トリガから「2 * TQ + tSAMCx」または直前の変換から tSAMCx のタイミング要件を満たす( 経過済み ) 場合、ただちに変換を開始します。タイミングを満たさない場合、tSAMCx の期間サンプリングを継続した後、初めて変換を開始します。これは実質的に同期サンプリングです( 直前の非同期トリガの前の tSAMCx の要件を満たさない場合のみ )。直前の非同期トリガの前のtSAMCx の要件を満たす場合、直前のトリガは非同期サンプリング終了を発行する事と同じです。常に同期しているのは、変換開始のみです。非同期サンプリング終了から次の変換開始( 正クロック エッジアライン ) までの間、同期 ADC が変換するまでサンプリング コンデンサでアナログ電圧値を一定に保ちます。

表 22-5: クラス 1 の ADC トリガ

図 22-9 に、STRGEN および SSAMPEN ビットの各種組み合わせを図示します。トリガとは本来非同期的であり、非同期 ADC モジュールのトリガも TQ クロックに関していつトリガが発生するか決まっていません。これを「1 周期ジッタ」と呼びます。トリガが発生すると、実際のトリガの 1 TQ クロック後に「事前同期トリガ」が発生します。事前同期トリガは内部信号である事に注意します。

STRGENx と SSAMPENx の両方が「0」( 事前同期トリガなし、非同期サンプリング ) の場合、非同期トリガが発生すると ADC はサンプルモードから変換モードに切り換わります。言い換えれば、この場合事前同期トリガは無視されます ( 使いません )。これは、サンプリング時間(tSAMCx) の要件を満たす場合のみ該当します。

別のケースとして、STRGENx = 1かつ SSAMPENx = 0( 事前同期トリガ、非同期サンプリング )の場合、事前同期トリガが発生すると ADC はサンプルモードから変換モードに切り換わります。これは、サンプリング時間 (tSAMCx) の要件を満たす場合のみ該当します。

上記の両方の条件 (STRGENx, SSAMPENx = 00と STRGENx, SSAMPENx = 10) で、サンプリング時間 (tSAMCx) の要件を満たす場合、デバイスは上記の挙動を示します。反復トリガでサンプリング時間 (tSAMCx) の要件を満たす場合、上記の挙動を図 22-10 に図示します。この図はtSAMCx 経過後に 2 番目のトリガが発生する事を示しています。この 2 番目のトリガで ADC はサンプルモードから変換モードに遷移します。トリガ (1 番目または 2 番目 ) は、非同期トリガまたは事前同期トリガである事 (「STRGENx, SSAMPENx」の設定が「00」または「10」) に注意します。

サンプリング時間 tSAMCx の要件を満たさない場合、トリガ ( 非同期または事前同期トリガ ) が発生してもサンプルモードから変換モードに切り換わりません。その代わり、ADC は tSAMCx の間待機してからサンプルモードから変換モードに切り換わります。これを図 22-11 に示します。この図では、tSAMCx 時間が経過する前に 2 番目のトリガが発生しています。従って、このトリガでは変換は開始しません。その代わり、tSAMCx 時間が経過するだけでサンプルモードから変換モードに遷移します。つまり、ADC を非同期サンプルモード (SSAMPEN = 0) に設定していてもサンプリング時間 (tSAMCx) がトリガ間隔に収まらない場合、ADC の挙動は同期サンプリングになります。

図 22-9 に戻って、STRGENx = xかつ SSAMPENx = 1( 同期サンプリング ) の場合、ADC は事前同期トリガの「2 * TQ + tSAMCx」後にサンプルモードから変換モードに切り換わります。

STRGEN SSAMPEN 説明

0 0 事前同期トリガなし、非同期サンプリング

1 0 事前同期トリガ、非同期サンプリング

x 1 同期サンプリング

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-73

Page 74: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

図 22-9: 事前同期トリガ (STRGEN ビット ) と同期サンプリング (SSAMPEN ビット )

Control Clock (TQ)

Trigger(1 period jitter)

Presynchronized Trigger

Sampleends

‘00’: STRGENx = 0, SSAMPENx = 0

‘x1’: STRGENx = 0/1, SSAMPENx = 1ADCxTIME<9:0>

2 * TQ

‘10’: STRGENx = 1, SSAMPENx = 0

Sample ends, Conversion starts

tSAMCx already completed in past

tSAMCx already completed in past

Conversionstarts

tSAMCx Sample ends, Conversion starts

DS60001344A_JP - p.22-74 Preliminary © 2016 Microchip Technology Inc.

Page 75: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

図 22-10: 非同期サンプリング (SSAMPEN = 0) ( トリガ間隔がサンプリング時間 tSAMCxより長い場合、ADC は非同期トリガで変換開始 )

Trigger

Sample

Convert

tSAMCx

tCONVERT

First Trigger

Second Trigger occurred after tSAMCx

1 TQ jitter1 TQ jitter

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-75

Page 76: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

図 22-11: 非同期サンプリング (SSAMPEN = 0) ( トリガ間隔がサンプリング時間 tSAMCxより短い場合、ADC は強制的に 小サンプリング時間 (tSAMCx) でサンプリングし、既定値の動作として同期サンプリングを実行 )

クラス 1 入力は通常、高速で過渡的なアナログ信号を変換するためのものです。加えて、互いにタイミングが異なるアナログ信号を複数のクラス 1 入力で変換する必要がある場合があります。そのような信号の例として、モータの三相電流信号があります。

ADC0、ADC1、ADC2を使って3相電流をサンプリングし、全てのADCモジュールがSTRGENx,SSAMPENx = 00( 事前同期トリガなし、非同期サンプリング ) の設定を使い、ADC の各トリガはわずかに異なるタイミングで発生する ( トリガ信号の伝播遅延のため ) 場合を考えます。これを図 22-12 に示します。このトリガの差分がサンプリングしたアナログ信号の位相誤差の原因になります。このような誤差を回避するには、事前同期トリガと非同期サンプリング(STRGENx, SSAMPENx = 10) を使う必要があります。事前同期トリガを使う事で、全 ADCモジュールが全く同じ時刻に確実にトリガを受け取るようにできます。

Trigger

Sample

Convert

tSAMCx

tCONVERT

First TriggerSecond Trigger occurred before tSAMCx

1 TQ jitter

DS60001344A_JP - p.22-76 Preliminary © 2016 Microchip Technology Inc.

Page 77: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

図 22-12: 事前同期トリガ波形 ( 複数のクラス 1 入力を 3 相モータの相電流の変換に使う場合 )

トリガと同期は制御クロック (TQ) で動作し、ADC モジュールは自身のクロック (TADX) で動作するため、両クロックドメイン間で正確に同期を維持する必要があります。正確に同期のために、2 つのビット (FSSCLKEN (ADCCON1<10>), FSPBCLKEN (ADCCON1<9>) を使います。これらのビットの使い方は以下の通りです。

• 以下のいずれかの条件が成立すると、FSSCLKEN ビットをセットする。

- ADCSEL<1:0> = 11 (SYSCLK)- ADCSEL<1:0> = 10 (REFCLK3) (REFCLK3 もシステムクロック (SYSCLK) から生成

した分周クロック )- ADCSEL<1:0> = 01 (FRC) ( システムクロックも FRC で駆動するように設定する )- ADCSEL<1:0> = 00 (PBCLK) (PBCLKクロックはシステムクロックから生成した分周クロック )

• 以下のいずれかの条件が成立すると、FSPBCLKEN ビットをセットする。

- ADCSEL<1:0> = 11 (SYSCLK) ( 周辺モジュール用クロックはシステムクロックから生成した分周クロックであり、ADC クロックは周辺モジュール用クロックより高速ではない。これは、周辺モジュール用クロックと ADC クロックが両方共同じシステムクロックを分周したものである事を意味する。しかし ADC クロックの分周比は周辺モジュール用クロックの分周比と等しいかそれより大きいため、周辺モジュール用クロックは ADC クロックと同期しているものの、ADC クロックより低速ではない )

- ADCSEL<1:0> = 10 (REFCLK3) (REFCLK3は周辺モジュール用クロックと同期し、それより低速である。これは周辺モジュール用クロックも REFCLK3 から生成している限り該当する。しかし周辺モジュール用クロックは ADC クロックより低速ではない )

- ADCSEL<1:0> = 01 (FRC) ( 周辺モジュール用クロックも FRC から分周して生成し、ADC クロックより低速ではない )

- ADCSEL<1:0> = 00( 周辺モジュール用クロック )

Control Clock (TQ)

Trigger (1 period jitter)

Although ADC1, ADC2, and ADC3 use the common trigger, due to propagation delay, the “end of sampling and start of conversion” does not occur at the exact same time.

‘00’: STRGEN0 = 0, SSAMPEN0 = 0

‘00’: STRGEN1 = 0, SSAMPEN1 = 0

‘00’: STRGEN2 = 0, SSAMPEN2 = 0

ADC0

ADC1

ADC2

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-77

Page 78: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.4.4.3 変換トリガの信号源と制御

各トリガに利用できる信号源を以下に示します。

• ADCTRGx レジスタの TRGSRCx<4:0> ビットで外部トリガを選択します。この機能は、クラス 1 およびクラス 2 アナログ入力のみをサポートします。通常、ユーザは特定のトリガ源を指定して特定の入力の変換を開始します。

必要であれば、全アナログ入力に対して同一のトリガ源を選択する事もできます。この場合、得られる結果は「スキャン変換」と類似しています。この方法では変換が完了する順序はそのトリガ源に関連する入力の優先度で決まります。1 番目のトリガ選択は「00000」( トリガなし ) です。これはそのトリガを一時的に無効にします。従って、一時的にそのアナログ入力の変換を無効にする事と同じです。続く 2 つのトリガ源 (GSWTRG とGLSWTRG) 選択は、ソフトウェアによるトリガ源の生成です。2 番目のソフトウェアで生成するトリガの選択は、グローバル ソフトウェア エッジトリガ (GSWTRG) です。このトリガは ADCCON3 レジスタの GSWTRG ビットに関連付けられており、このトリガを使ってユーザ アプリケーションは 1 回の変換を開始できます。GSWTRG は自己クリアビットであるため、ユーザ アプリケーションでセットされた後、次の ADC クロックサイクルで自動的にクリアされます。3 番目のソフトウェアで生成するトリガの選択は、グローバル ソフトウェア レベルトリガ (GLSWTRG) です。これは ADCCON3 レジスタのGLSWTRG ビットに関連付けられています。GLSWTRG ビットは自己クリアビットではないため、このトリガを使うとユーザ アプリケーションは多数の連続したサンプリングを開始できます。4 番目のトリガ選択は、スキャントリガ選択という特殊な選択です。この選択を使うと、クラス 1 およびクラス 2 アナログ入力を、全入力のグローバル スキャンの一部として含める事ができます。残りのトリガ選択 (5 ~ 31) はデバイスによって異なります。詳細は各デバイスのデータシートを参照してください。

• ADCCON1レジスタのSTRGSRC<4:0>ビットとADCCSSxレジスタの選択ビットを使ってスキャントリガを選択します。通常このモードは、一連のアナログ入力の変換を開始するのに使います。この機能は、クラス 1、クラス 2、クラス 3 アナログ入力に対して機能します。しかし通常はクラス 3 入力に使います ( 対応する TRGSRC ビットを個別に持たないため )。トリガ選択の 1 つは ADCCON3 レジスタの GSWTRG ビットです。このビットを使うとユーザ ソフトウェアで変換を開始できます。

• ユーザは、ADCCON3 レジスタの ADINSEL<5:0> ビットと RQCNVRT ビットでトリガを開始できます。このモードを使うと、ユーザ アプリケーションは特定のアナログ入力に対して個別に変換トリガ要求を生成できます。このモードを使うと、ユーザ アプリケーションは ADC のトリガ源設定を変更する事なく入力の変換をトリガできます。この機能は、エラー処理中に、ADCの通常動作を中断させる事なく他のソフトウェア モジュールがADC情報を必要とする場合に便利です。これは、デジタルフィルタ シーケンスを開始するための初のトリガを生成する場合にも適した方法です。

• ADCCON3 レジスタの ADINSEL<5:0> ビットと SAMP ビットを使った、クラス 2 およびクラス 3 入力のユーザ制御サンプリングです。SAMP ビットをセットすると、クラス 2およびクラス 3 入力は SAMC<9:0> ビット選択を無視してサンプリング モードになります。このモードは、ソフトウェアでサンプリング時間を選択できるソフトウェア AD 変換にも便利です。

• 外部モジュール ( 例 : PTG) は、変換するアナログ入力を ADCCON2 レジスタの ECRIENビットで指定できます。この方法は、TRGSRC と STRGSRC を使う通常の方法とは独立して動作します。外部モジュールは、TRGSRC と STRGSRC を使う通常の方法で個別のトリガ信号を使って変換を開始する事もできます。

DS60001344A_JP - p.22-78 Preliminary © 2016 Microchip Technology Inc.

Page 79: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.4.4.4 手動による変換トリガ ( ソフトウェア AD 変換 ) ( クラス 2 およびクラス 3入力のみ )

ユーザ ソフトウェアは、任意のアナログ入力を選択して変換を手動で要求できます。これは、ADC のトリガ源設定を変更せずにプログラム実行中にいつでも要求できます。変換手順は以下の通りです。 

• 手動で変換を実行するアナログ入力の ID は、ADC 入力選択ビット ADINSEL<5:0>(ADCCON3<5:0>) で指定する。

• ソフトウェアでSAMPビット (ADCCON3<9>)をセットするとアナログ入力のサンプリングが始まる。

• 必要なサンプリング時間 ( 遅延 ) が経過すると、SAMP ビットはクリアされる。

• RQCNVRTビット(ADCCON3<8>)がセットされるとサンプリングした信号の変換が始まる。

• 変換が完了すると、ADCDSTATx レジスタの ARDYx ビットがセットされる。データはADCDATAx レジスタから読み出せる。

図 22-13 に変換プロセスを図示します。

図 22-13: 単独変換トリガプロセス

SAMP (ADCCON3<9>)

Hold AN8

Convert AN8

Select AN8 ADINSEL<5:0> (ADCCON3<5:0>)

Sample AN8

Disconnected

RQCNVRT (ADCCON3<8>)

SAMP bit is first cleared before the RQCNVRT bit is set

Automatically cleared in next clock TQ

Converted data stored in buffer

Select AN10

Hold AN10 Sample AN10

Convert AN10

Converted data stored in buffer

Disconnected

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-79

Page 80: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.4.5 参照電圧源の選択

ユーザ アプリケーションは、ADC モジュールの参照電圧 ( 内部または外部 ) を選択できます。ADC 用参照電圧の選択には、参照電圧入力選択ビット VREFSEL<2:0> (ADCCON3<15:13>) を使います。上側参照電圧 (VREFH) と下側参照電圧 (VREFL) には、内部の AVDD/AVSS 電圧レール、バンドギャップ リファレンス生成回路、外部の VREF+/VREF- 入力ピンのいずれかを選択できます。参照電圧とバンドギャップ リファレンスがレディ状態になると、BGVRRDY (ADCCON2<31>)ビットがセットされます。参照電圧でフォルト ( 例 : ブラウンアウト ) を検出すると、REFFLTビット (ADCCON2<30>)がセットされます。BGVRIENビット (ADCCON2<15>)とREFFLTIENビット (ADCCON2<14>) がセットされていると、それぞれ BGVRRDY ビットと REFFLT ビットも割り込みを生成できます。

外部参照電圧ピンへの印加電圧は仕様を満たしている必要があります。詳細は各デバイス データシート内の「電気的特性」を参照してください。

選択した上側 / 下側参照電圧の電圧差 (VREFH - VREFL) が 0.65 * (AVDD - AVSS) よりも小さい場合、アナログ入力チャージポンプ イネーブルビットAICPMPEN (ADCCON1<12>)をセットします。このビットをセットしても参照電圧の大きさは変化しません。しかし、サンプリング コンデンサへのインピーダンスが小さくなります。これにより上側 / 下側参照電圧の電圧差が小さい場合でも A/D 変換の SNR を 大限に高める事ができます。

22.4.6 スキャン入力の選択

利用可能な全てのアナログ入力は、スキャン向けに設定できます。クラス 1 入力はそれぞれの専用 ADC モジュールを使ってサンプリングされ、クラス 2 およびクラス 3 入力は共有 ADCモジュールを使ってサンプリングされます。STRGSRC<4:0> ビット (ADCCON1<20:16>) でスキャン用に選択されている全ての入力に対して、共通の変換トリガ源を使います。この変換トリガが発生するたびに、ユーザが指定したスキャンリスト (ADCCSS1 または ADCCSS2) に含まれる全ての入力が、自然順序優先度に従って順番に変換されます。クラス 1 入力の場合、トリガが発生した時点でサンプリングが終了し、それら全ての入力の変換が同時に始まります。クラス 2 およびクラス 3 入力の場合、トリガが発生した時点で自然順序優先度に従った一連のサンプリング / 変換プロセスが始まります。

以下の場合、アナログ入力はスキャンに含まれます。

• クラス 3 入力の場合、変換方法はスキャンのみです。

• クラス 1 またはクラス 2 入力でトリガ源としてスキャントリガを選択している場合(ADCTRG1 ~ ADCTRG8 レジスタの TRGSRCx<4:0> ビットで STRIG オプションを選択します。)

スキャントリガにも、クラス 1 およびクラス 2 入力の単独トリガと同様にトリガオプションを選択できます。クラス 1 またはクラス 2 入力をスキャンに含める場合、TRGSRCx<4:0> ビットでトリガ源として STRIG オプションを選択する必要があります。

Note 1: 他のアナログ周辺モジュールが外部 VREF+ および VREF- ピンを共有している場合があります。詳細は各デバイス データシートの「ピン配置」を参照してください。なお、外部参照電圧を使う場合、VREF+ および VREF- ピンに対応する ANSELxビットをアナログモード向けに設定しておく必要があります。

2: 一部のデバイスではこのバンドギャップ リファレンス源を利用できません。デバイスが本機能を備えているかどうかは、各デバイスのデータシートを参照してください。

Note 1: 各専用 ADC モジュール (ADCxTIME レジスタの SELRES、ADCDIV、SAMC<9:0>ビット ) と共有 ADC モジュール (ADCCON1 レジスタの SELRES、ADCCON2レジスタの ADCDIV および SAMC<9:0> ビット ) のクロック分周比、分解能、サンプリング時間には別々のレジスタを使うため、スキャン シーケンスを専用入力と共有入力の両方に関わるように設定する場合、スキャンモードであってもこれらのレジスタはそれぞれ個別に初期化する必要があります。

2: スキャン終了 (EOS) は、全てのクラス 1 入力のスキャンが完了しかつ 後の共有入力の変換が完了した場合にのみ生成されます。これらの条件の両方が満たされるまで、スキャン シーケンスは有効です。従って、EOS 割り込みは任意の入力タイプの組み合わせから成る全てのスキャン シーケンスに使えます。

DS60001344A_JP - p.22-80 Preliminary © 2016 Microchip Technology Inc.

Page 81: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-3: 複数の入力の ADC スキャンint main(int argc, char** argv) {

int result[3];

/* Configure ADCCON1 */ADCCON1 = 0; // No ADCCON1 features are enabled including: Stop-in-Idle, turbo,

// CVD mode, Fractional mode and scan trigger source.ADCCON1bits.SELRES = 3; // ADC7 resolution is 12 bitsADCCON1bits.STRGSRC = 1; // Select scan trigger.

/* Configure ADCCON2 */ADCCON2bits.SAMC = 5; // ADC7 sampling time = 5 * TAD7ADCCON2bits.ADCDIV = 1; // ADC7 clock freq is half of control clock = TAD7

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

ADC0TIMEbits.ADCDIV = 1; // ADC0 clock frequency is half of control clock = TAD0ADC0TIMEbits.SAMC = 5; // ADC0 sampling time = 5 * TAD0ADC0TIMEbits.SELRES = 3; // ADC0 resolution is 12 bits

/* Select analog input for ADC modules, no presync trigger, not sync sampling */ADCTRGMODEbits.SH0ALT = 0; // ADC0 = AN0

/* Select ADC input mode */ADCIMCON1bits.SIGN0 = 0; // unsigned data formatADCIMCON1bits.DIFF0 = 0; // Single ended modeADCIMCON1bits.SIGN8 = 0; // unsigned data formatADCIMCON1bits.DIFF8 = 0; // Single ended modeADCIMCON1bits.SIGN40 = 0; // unsigned data formatADCIMCON1bits.DIFF40 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; // No interrupts are used.ADCGIRQEN2 = 0;

/* Configure ADCCSSx */ADCCSS1 = 0; // Clear all bitsADCCSS2 = 0;ADCCSS1bits.CSS0 = 1; // AN0 (Class 1) set for scanADCCSS1bits.CSS8 = 1; // AN8 (Class 2) set for scanADCCSS2bits.CSS40 = 1; // AN40 (Class 3) set for scan

/* Configure ADCCMPCONx */ADCCMPCON1 = 0; // No digital comparators are used.Setting the ADCCMPCONxADCCMPCON2 = 0; // register to '0' ensures that the comparator is disabled.ADCCMPCON3 = 0; // Other registers are ‘don't care’.ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ADCFLTR1 = 0; // No oversampling filters are used.ADCFLTR2 = 0;ADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-81

Page 82: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-3: 複数の入力の ADC スキャン ( 続き )/* Set up the trigger sources */ADCTRG1bits.TRGSRC0 = 3; // Set AN0 (Class 1) to trigger from scan sourceADCTRG3bits.TRGSRC8 = 3; // Set AN8 (Class 2) to trigger from scan source

// AN40 (Class 3) always uses scan trigger source

/* Early interrupt */ADCEIEN1 = 0; // No early interruptADCEIEN2 = 0;

/* Turn the ADC on */ADCCON1bits.ON = 1;

/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage

/* Enable clock to analog circuit */ADCANCONbits.ANEN0 = 1; // Enable the clock to analog bias ADC0ADCANCONbits.ANEN7 = 1; // Enable, ADC7

/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY0); // Wait until ADC0 is readywhile(!ADCANCONbits.WKRDY7); // Wait until ADC7 is ready

/* Enable the ADC module */ADCCON3bits.DIGEN0 = 1; // Enable ADC0ADCCON3bits.DIGEN7 = 1; // Enable ADC7

while (1) {/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;

/* Wait the conversions to complete */while (ADCDSTAT1bits.ARDY0 == 0);/* fetch the result */result[0] = ADCDATA0;

while (ADCDSTAT1bits.ARDY8 == 0);/* fetch the result */result[1] = ADCDATA8;

while (ADCDSTAT2bits.ARDY40 == 0);/* fetch the result */result[2] = ADCDATA40;

/** Process results here***/

}return (1);

}

DS60001344A_JP - p.22-82 Preliminary © 2016 Microchip Technology Inc.

Page 83: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.4.7 ADC クロック源とプリスケーラの選択

ADC モジュールのクロック源 (TQ) には、内部高速 RC (FRC) オシレータ出力、システムクロック(SYSCLK)、参照クロック (REFCLK3)、周辺モジュール用バスクロック (PBCLK) のいずれかを使います。利用可能な参照クロック源については、各デバイス データシートを参照してください。

ADCSEL<1:0> ビット (ADCCON2<31:30>) を「01」に設定すると、内部 FRC オシレータがADC クロック源として使われます。内部 FRC オシレータを使うと、ADC モジュールはスリープおよびアイドル中も動作を継続できます。

アナログ / デジタル変換を正しく実行するには、変換クロックを適正な範囲に保つ必要があります。ADC モジュールは、1 ~ 28 MHz のクロック周波数で動作します。

ADCモジュールがアナログ /デジタル変換を完全に実行できる 大レート (実効変換スループット )は 2 Msps です。しかし、1 つの入力の 大変換レートは、サンプリング時間要件によって決まります。さらに、サンプリング時間は、アナログ信号源の出力インピーダンスの影響を受けます。サンプリング時間の詳細は 22.10「ADC サンプリング要件」を参照してください。

ADC のクロック構造は、専用 ADC モジュールと共有 ADC モジュールにそれぞれ独立したクロックを供給するように設計されています。ADC の入力クロック源は、ADCSEL<1:0> ビット(ADCCON3<31:30>) で選択できます。この入力クロックは、制御クロックの分周比であるCONCLKDIV<5:0> ビット (ADCCON3<29:24>) でさらに分周されます。この出力クロックは「ADC 制御クロック」と呼び、その周期は TQ です。 ADC 制御クロックは、ADCDIV<6:0> ビット (ADCxTIME<22:16>) で分周されます。これは専用ADC モジュール (ADC0 ~ ADC6) のクロック源 ( 周期 TADx) として機能します。 ADC 制御クロックは、共有 ADC (ADC7) 用に使う前に ADCDIV<6:0> ビット (ADCCON2<6:0>) で分周されます。このクロックの周期を TAD7 と表記します。

図 22-14: 専用 ( クラス 1) および共有 ADC モジュールのクロック生成

Note: 精密なADCアクイジション タイミングを要求するアプリケーションでは、SYSCLKを ADC クロック源として使う事を推奨します。

MU

X

ADCSEL<1:0> (AD CON3<31:30>)

CONCLKDIV<5:0>(AD CON3<29:24>)

ADCDIV<6:0>(AD CON2<6:0>)

Clock for

(TAD )

ADCDIV<6:0>(AD TIME<22:16>)

Clock for(TAD

ADC Control clock (TQ)

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-83

Page 84: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.4.8 サンプリング / 変換時間

式 22-1: ADC0 ~ ADC6 のサンプリング時間

式 22-2: ADC7 のサンプリング時間

22.4.9 ADC モジュールの有効化

ADC モジュールの有効化は以下の手順で行います。

ADC モジュール イネーブルビット ON (ADCCON1<15>) を「1」にセットすると、モジュールは有効になり、給電されて完全に機能する状態となります。ON ビットを「0」にクリアすると、ADC モジュールは無効になります。無効になると ADC のデジタル部とアナログ部の動作は停止し、消費電流は 小限に抑えられます。ON ビットのセットに加えて、ADC のアナログおよびデジタル回路を ON にする必要があります。詳細はセクション 22.7.3「ADC 低消費電力モード」を参照してください。

22.4.10 ADC ステータスビット

ADC モジュールは、ADCANCON レジスタの WKRDYx/WKRDY7 ステータスビットを使って、ADC のアナログ回路とバイアス回路の現在の状態を示します。ユーザ アプリケーションは、このビットがセットされるまで ADC 動作を実行しない事が必要です。

22.4.11 SFR の実行時更新

アプリケーションによっては、ADC を無効にする事なく専用および共有 ADC モジュールのSFR を更新する必要がある場合があります。その場合、特定のガイドラインに従ってユーザコードを作成しデータ破損を防ぐ必要があります。ADC モジュールのサンプリング時間が終わる直前に SFR が変更された場合、SFR の更新で出力データが完全に破損される事があります。

どの ADC モジュールにも、以下の 3 種類の状態があります。

• アイドル : ADC モジュールは次のトリガイベントを待機します。ユーザコードは、サンプリング終了を知らせる次の非同期トリガの発生時期を予測できないため、アイドル中にSFR 設定を安全に変更する事はできません。SFR の変更中にサンプリング終了が発生した場合、出力データは破損します。

• サンプリング : アナログ処理の観点から、ADC モジュールのサンプリング中に SFR を変更すべきでない事は明らかです。

• 変換 : 変換時間は一定であり SAR が制御するため、変換中は SFR を更新するのに も安全な期間です。

ADC が変換中に SFR を更新するには、早期割り込みイネーブルおよび早期割り込みレジスタ( レジスタ 22-37 ~レジスタ 22-40 参照 ) を使う事ができます。 例えば、ADCEIS<2:0> ビット (ADCxTIME<28:26) を ‘0b111に設定すると、EIRDYx が Highになった時、ADC モジュール x の逐次比較は変換のステップ 6 (= 14 - 8) を実行中です。ADCモジュール x の SAR のステップ 13 までに SFR の書き込み準備が全て完了する場合、ユーザアプリケーションはこの時点で ADC モジュール x の SFR を変更できます。ただし、ADCSEL<1:0>、CONCLKDIV<5:0>、ADCDIV<6:0>、ADCDIV<6:0> ビットを使ったクロック設定変更は例外です。SFR に安全に書き込む事ができるこの期間は、ADCDIV<6:0> ビットの設定に依存します。これは、ソフトウェアによる SFR への書き込みがシステムクロック周波数

Note: ADCモジュール有効時にADC制御ビットに書き込んで各種設定 (例 : ADCクロック、入力の割り当て、スキャン、参照電圧の選択、S&H 回路の動作モード、割り込の設定 ) を変更する事は推奨しません。

tSAMCx ADCxTIME<9:0> TADx=

tconversion 2 ADCxTIME<25:24>+ TADx=

tSAMC7 ADCCON2<25:16> TAD7=

tconversion 2 ADCCON1<22:21>+ TAD7=

DS60001344A_JP - p.22-84 Preliminary © 2016 Microchip Technology Inc.

Page 85: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

で発生するからです。ADCDIV<6:0> の値が大きく ADC が低速の場合、ADCDIV<6:0> の値が小さく ADC が高速の場合と比べて SFR への書き込みは安全です。ADC が高速の場合、ユーザアプリケーションは早期割り込みを使う代わりにEIRDYxビットをポーリングする事もできます。早期 ISR を実行する際の割り込みレイテンシに数サイクルかかる事がその理由です。ポーリングモードを使うとこれを回避できます。

以下に、安全な期間に更新できる SFR ビットの一覧を示します。

• STRGSRC<4:0> (ADCCON1<20:16>) - レジスタ 22-1 参照

• SAMC<7:0> (ADCCON2<23:16>) - レジスタ 22-2 参照

• STRGENx (ADCTRGMODE<14:8) - レジスタ 22-4 参照

• SSAMPENx (ADCTRGMODE<6:0>) - レジスタ 22-4 参照

• SHxALT<1:0> (ADCTRGMODE<29:8>) - レジスタ 22-4 参照

• DIFFx (ADCIMCONx) - レジスタ 22-5 ~レジスタ 22-8 参照

• SIGNx (ADCIMCONx) - レジスタ 22-5 ~レジスタ 22-8 参照

• CSS63:CSS0 (ADCCSS1<31:0>, ADCCSS2<63:32>) - レジスタ 22-11、レジスタ 22-12 参照

• TRGSRCx<4:0> (ADCTRGx) - レジスタ 22-18 参照

• LVL31:LVL0 (ADCTRGSNS<31:0>) - レジスタ 22-35 参照

• SAMC<7:0> (ADCxTIME<7:0>) - レジスタ 22-36 参照

早期割り込みの他に、トリガサスペンド ビット TRGSUSP (ADCCON3<12>) を使っても SFR に新しい値を書き込む事ができます。TRGSUSP ビットの使い方は以下の通りです。

1. TRGSUSP ビット (ADCCON3<12>) をセットする。

2. UPDRDY ビット (ADCCON3<10>) をポーリングしてセットされている事を確認する。UPDIEN ビット (ADCCON3<11>) を有効にしても割り込みを生成できる。UPDRDY ビットをセットすると、全トリガが保留され全 ADC モジュールがアイドルになる。

3. SFR に新しい値を書き込む (ADCSEL<1:0>、CONCLKDIV<5:0>、ADCDIV<6:0>、ADCDIV<6:0> ビットを使ったクロック設定変更は例外 )。

4. TRGSUSP ビットをクリアして ADC モジュールを通常動作に戻す。

ADCSEL<1:0>、CONCLKDIV<5:0>、ADCDIV<6:0>、ADCDIV<6:0> ビットを使った ADC のクロック設定に関連する SFR の更新は、ADC を無効にする事 (ON ビット (ADCCON1<15>) = 0)によってのみ実行できます。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-85

Page 86: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5 その他の ADC 機能

このセクションでは、ADC モジュールの以下の追加機能について説明します。 • デジタル コンパレータ

• オーバー サンプリング フィルタ

• ターボモード

• CVD モード

22.5.1 デジタル コンパレータ

デジタル コンパレータを使うと、選択したアナログ入力の変換結果がユーザ定義の制限値の範囲内にある時に割り込みを生成できます。コンパレータを使う場合も、変換を開始するには変換トリガが必要です。変換が完了すると、コンパレータは自動的に変換結果と制限値を比較します。この機能は、デジタル コンパレータ モジュール イネーブルビット ENDCMP(ADCCMPCONx<7>) をセットすると有効になります。

ユーザ アプリケーションは、ADCCMPx レジスタで定義した上限また下限値よりも ADC 結果が高いまたは低い時に発生する割り込みを利用して、変換結果を監視できます。上限値と下限値は DCMPHI<15:0> ビット (ADCCMPx<31:16>) と DCMPLO<15:0> ビット (ADCCMPx<15:0>)で指定します。

デジタル コンパレータを使って監視するアナログ入力 (AN0 ~ AN31 のみ ) は、ADCCMPENxレジスタの CMPEx ビット (x = 0 ~ 31) で指定します。割り込みを生成する比較基準は、ADCCMPCONx レジスタを使って以下のように指定します。

• IEBTWN = 1: DCMPLO ≤ ADCDATA < DCMPHI であれば割り込みを生成する

• IEHIHI = 1: DCMPHI ≤ ADCDATA であれば割り込みを生成する

• IEHILO = 1: ADCDATA < DCMPHI であれば割り込みを生成する • IELOHI = 1: DCMPLO ≤ ADCDATA であれば割り込みを生成する

• IELOLO = 1: ADCDATA < DCMPLO であれば割り込みを生成する

コンパレータ イベントの生成回路を図 22-15 に示します。ADC モジュールが生成した変換結果はコンパレータに入力されます。コンパレータはADCIMCONxレジスタのDIFFxおよびSIGNxビット ( 使うアナログ入力で決まる ) に基づいて、データのフォーマット ( 符号付き / 符号なし )を判別します。小数 / 整数フォーマットは、FRACT ビット (ADCCON1<23>) で指定されているグローバルな ADC 設定に基づいて判別します。デジタル コンパレータは、選択された比較基準に基づいて、ADC 結果と上限および下限値 (ADCCMPx レジスタで定義 ) を比較します。

比較結果に応じて、デジタル コンパレータ割り込みイベントが生成されます。コンパレータ イベントが発生し、デジタル コンパレータ割り込みイベント検出ステータスビット DCMPED(ADCCMPCONx<5>)がセットされると、アナログ入力 IDビットAINID<4:0> (ADCCMPCONx<12:8>)が自動的に更新されます。ユーザ アプリケーションは、AINID ビットを使って、割り込みイベントを生成したアナログ入力を判別できます。

Note 1: デジタル コンパレータ モジュールは、32 個のアナログ入力 (AN0 ~ AN31) だけをサポートします。

2: ユーザ ソフトウェアは、変換データのフォーマット ( 符号付き / 符号なし、整数 /小数 ) と同じフォーマットで ADCCMPx レジスタに上限および下限値を書き込む必要があります。

DS60001344A_JP - p.22-86 Preliminary © 2016 Microchip Technology Inc.

Page 87: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

図 22-15: デジタル コンパレータ

ADCDATAx<

DCMPLO

ADCDATAx=

DCMPLO

ADCDATAx>

DCMPLO

ADCDATAx<

DCMPHI

ADCDATAx=

DCMPHI

ADCDATAx>

DCMPHI

IELOLO

IELOHI

IEHILO

IEHIHI

IEBTWN

ENDCMP

Inte

rrupt

Gen

erat

ion

Logi

c Fo

r Dig

ital C

ompa

rato

r

ADCDATAx

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-87

Page 88: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-4: ADC デジタル コンパレータint main(int argc, char** argv) {

int result = 0, eventFlag = 0;

/* Configure ADCCON1 */ADCCON1 = 0; // No ADCCON1 features are enabled including: Stop-in-Idle,

// turbo, CVD mode, Fractional mode and scan trigger source.ADCCON1bits.SELRES = 3; // ADC resolution is 12 bitsADCCON1bits.STRGSRC = 0; // No scan trigger.

/* Configure ADCCON2 */ADCCON2bits.SAMC = 5; // ADC7 sampling time = 5 * TAD7ADCCON2bits.ADCDIV = 1; // ADC7 clock freq = TAD7

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ADCCON3 = 0;ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

/* No selection for dedicated ADC modules, no pre sync trigger, not sync sampling */ADCTRGMODEbits = 0;

/* Select ADC input mode */ADCIMCON1bits.SIGN8 = 0; // unsigned data formatADCIMCON1bits.DIFF8 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; // No interrupts are usedADCGIRQEN2 = 0;

/* Configure ADCCSSx */ADCCSS1 = 0; // No scanning is usedADCCSS2 = 0;

/* Configure ADCCMPCONx */ADCCMP1 = 0; // Clear the registerADCCMP1bits.DCMPHI = 0xC00; // High limit is a 3072 result.ADCCMP1bits.DCMPLO = 0x500; // Low limit is a 1280 result.ADCCMPCON1bits.IEBTWN = 1; // Create an event when the measured result is

// >= low limits and < high limit.ADCCMPEN1 = 0; // Clear all enable bitsADCCMPEN1bits.CMPE8 = 1; // set the bit corresponding to AN8ADCCMPCON1bits.ENDCMP = 1; // enable comparatorADCCMPCON2 = 0;ADCCMPCON3 = 0;ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ADCFLTR1 = 0; // No oversampling filters are used.ADCFLTR2 = 0;ADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;

DS60001344A_JP - p.22-88 Preliminary © 2016 Microchip Technology Inc.

Page 89: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-4: ADC デジタル コンパレータ ( 続き )/* Set up the trigger sources */ADCTRG3bits.TRGSRC8 = 3; // Set AN8 (Class 2) to trigger from scan source

/* Early interrupt */ADCEIEN1 = 0; // No early interruptADCEIEN2 = 0;

/* Turn the ADC on */ADCCON1bits.ON = 1;

/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage

/* Enable clock to analog circuit */ADCANCONbits.ANEN7 = 1; // Enable the clock to analog bias

/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY7); // Wait until ADC7 is ready

/* Enable the ADC module */ADCCON3bits.DIGEN7 = 1; // Enable ADC7

while (1) {/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;

while (ADCDSTAT1bits.ARDY8 == 0);/* fetch the result */result = ADCDATA8;

/* Note: It is not necessary to fetch the result for the digital* comparator to work. In this example we are triggering from* software so we are using the ARDY8 to gate our loop. Reading the* data clears the ARDY bit.*//* See if we have a comparator event*/if (ADCCMPCON1bits.DCMPED == 1) {

eventFlag = 1;/** Process results here*/

}}return (1);

}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-89

Page 90: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5.2 オーバー サンプリング デジタルフィルタ

ADC モジュールは、 大で 6 個のオーバー サンプリング デジタルフィルタをサポートします。オーバー サンプリング デジタルフィルタは、アキュムレータとデシメータ ( ダウンサンプラ ) で構成され、これらは共にローパスフィルタとして機能します。アナログ入力を要求サンプリングレートよりも高いレートでサンプリングし、これにオーバー サンプリング デジタルフィルタを適用する事で、変換スループットは低下するものの、ADC モジュールの実効分解能を向上させる事ができます。

分解能を「x」ビット向上させるのに必要なサンプル数 ( ナイキストレートに対して ) = (2x)2 を以下に示します。

• 4 倍オーバー サンプリングで分解能を 1 ビット向上 ( 合計 13 ビットの分解能 )• 16 倍オーバー サンプリングで分解能を 2 ビット向上 ( 合計 14 ビットの分解能 )• 64 倍オーバー サンプリングで分解能を 3 ビット向上 ( 合計 15 ビットの分解能 )• 256 倍オーバー サンプリングで分解能を 4 ビット向上 ( 合計 16 ビットの分解能 )またデジタルフィルタは平均化モードも持っています。平均化モードではサンプルを累積しサンプル数で除算します。

オーバー サンプリング変換を実行するには、ユーザ アプリケーションで以下のビットを設定する必要があります。

• ADCデジタルフィルタxレジスタ内のオーバー サンプリング フィルタレシオ(OVRSAM<2:0>)ビット (ADCFLTRx<28:26>) でオーバー サンプリング係数 ( 倍率 ) を選択する。

• DFMODE ビット (ADCFLTRx<29>) を使ってフィルタモードをオーバー サンプリング モードと平均モードのどちらかに設定する。

• フィルタを平均モードに設定し、データ フォーマットを小数に設定している場合、DATA16ENビット (ADCFLTRx<30>) で出力分解能を設定する。

• オーバー サンプリング中のサンプリング時間を以下のように設定する。

- クラス 1 入力を使う場合、SAMC<9:0> ビット (ADCxTIME<9:0>) を使って、オーバーサンプリング中に繰り返し実行する変換のサンプリング時間を選択する。

- クラス 2 入力を使う場合、SAMC<9:0> ビット (ADCCON2<25:16>) でサンプリング時間を選択する。

• オーバー サンプリングするアナログ入力を、アナログ入力 ID 選択 (CHNLID<4:0>) ビット(ADCFLTRx<20:16>) で選択する。

• 必要に応じてアキュムレータ フィルタ グローバル割り込みイネーブルビット AFGIEN(ADCFLTRx<25>) をセットして、オーバー サンプリング フィルタ割り込みイベントをグローバル ADC 割り込みに含める。

• オーバー サンプリング フィルタ アキュムレータ イネーブルビット AFEN (ADCFLTRx<31>)をセットして、オーバー サンプリング フィルタを有効にする。

以上のようにデジタルフィルタ モジュールを設定した後、外部トリガが発生すると、フィルタの制御ロジックはオーバー サンプリング プロセスを開始します。その後、オーバー サンプリングするアナログ入力に対してトリガ信号が発生すると、アキュムレータがクリアされて 初の変換が始まります。またトリガはレベルセンス モードになり、フィルタが OVRSAM<2:0> ビット(ADCFLTRx<28:26>) でユーザが指定したサンプル数を収集する必要がある間、トリガを「1」に保持します。各収集サンプル間の遅延はサンプリング時間設定 (ADCxTIME レジスタのSAMC<9:0> ビット ( クラス 1) または ADCCON2 レジスタの SAMC<9:0> ビット ( クラス 2))

Note 1: クラス 1 およびクラス 2 入力のみがデジタルフィルタを使う事ができます。従って、CHNLID<4:0> ビットは 5 ビット幅 (0 ~ 31) です。

2: 共有 ADC モジュールを使ったクラス 2 入力のフィルタ処理のバースト変換中( オーバー サンプリングに必要な全データが得られるまで反復トリガ ) と優先度が高い ADC 入力が変換処理中の場合、それより優先度が低い ADC 変換要求はフィルタバースト シーケンスが完了するまで待機状態で保持されます。

3: デジタルフィルタ シーケンス中により高い優先度の要求が発生した場合、フィルタ処理の完了を遅らせます。複数のサンプルを連続させる事はできないため、この遅れは結果の精度に影響する場合があります。より高優先度の ADC 変換要求による中断が生じないと予期されるタイミングで、オーバー サンプリング フィルタの開始トリガを生成する必要があります。

DS60001344A_JP - p.22-90 Preliminary © 2016 Microchip Technology Inc.

Page 91: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

と変換時間で決まります。OVRSAM<2:0> で設定した必要数のサンプル収集および処理が完了すると、データは FLTRDATA<15:0> ビット (ADCFLTRx<15:0>) に格納され、AFRDY ビット(ADCFLTRx<24>) がセットされて割り込みが生成されます ( 有効時 )。図 22-16 に、クラス 1 入力における 4 倍オーバー サンプリングのタイミング図を示します。トリガが発生するまで、クラス 1 入力は入力信号をサンプリングし、トリガが発生すると 初の変換が始まります。変換が完了すると、ADC モジュールはサンプリング モードに遷移します。サンプリング時間が終了すると、次の変換シーケンスが始まります。各サンプルの変換値はアキュムレータに積算されます。OVRSAM<2:0> ビットで指定されている数のサンプルが積算されるまで、以上のシーケンスを繰り返します。 後のサンプルが変換されて値がアキュムレータに積算されると、その結果が右シフトされて FLTRDATA<15:0> ビットに格納されます。

図 22-16: クラス 1 入力の 4 倍オーバー サンプリング

複数のクラス 1 入力がフィルタ処理を使う場合、これらは全て並行して動作し互いに独立しています。

図 22-17 に、クラス 2 入力を使った 4 倍オーバー サンプリングのタイミング図を示します。クラス 2 入力がトリガされると、SAMC<9:0> ビットで定義された期間のサンプリングが始まります。オーバー サンプリング ロジックによるトリガの反復生成には、SAMC<9:0> ビットの設定に基づくサンプリング時間が適用されます。

クラス 2 入力は共有 S&H を使うため、オーバー サンプリングは、より低優先度のクラス 2およびクラス 3 トリガをブロックします。より高優先度のクラス 2 トリガは、オーバー サンプリング プロセスを完全に妨害するため、完全に防ぐ必要があります。2 つのデジタルフィルタを使う 2 つのクラス 2 入力にも、同様の優先度規則が適用されます。そのような場合、バーストモードでも高優先度の入力が共有 ADC モジュールを使う事で、低優先度の入力が共有 ADC を使わないようにします。高優先度の入力が必要なサンプルを全て収集した後のみ、低優先度の入力は共有 ADC を使ってサンプルを収集し、デジタルフィルタ処理を実行できます。

Sample AN1 Hold AN1

Convert AN1

Prior to trigger, S&H is sampling analog input

Initial trigger clears the accumulator and starts the conversion process

Sample AN1 Hold AN1

Convert AN1

Sample AN1 Hold AN1

Convert AN1

Sample AN1 Hold AN1

Convert AN1

Converted results are added to the accumulator

Sample AN1

Sample time decided by SAMC<9:0> bit (AD1TIMEn<9:0>)

The last conversion results in a 14-bit sum, the sum is right-shifted by one producing a 13-bit result in FLTRDATA<15:0> (ADCFLTRx<15:0>)

Retriggers are generated automatically, until the number of samples set by OVRSAM<2:0> bit (AD1FLTRx<28:26>) are captured.

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-91

Page 92: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

図 22-17: クラス 2 入力の 4 倍オーバー サンプリング

例 22-5: ADC デジタル オーバー サンプリング フィルタ

Sample AN8 Hold AN8

Convert AN8

Prior to trigger, S&H is disconnected

Initial trigger clears the accumulator and starts the sampling process

Sample AN8 Hold AN8

Convert AN8

Sample AN8 Hold AN8

Convert AN8

Sample AN8 Hold AN8

Convert AN8

Converted results are added to the accumulator

Sample time decided by the SAMCSHR<9:0> bits (AD1CON2<25:16>)

Last conversion results in a 14-bit sum, the sum is right-shifted by one producing a 13-bit result in FLTRDATA<15:0> (ADCFLTRx<15:0>)

Retriggers are generated automatically, until the number of samples set by OVRSAM<2:0> (AD1FLTRx<28:26>) are captured.

Disconnected

int main(int argc, char** argv) {int result;

/* Configure ADCCON1 */ADCCON1 = 0; // No ADCCON1 features are enabled including: Stop-in-Idle, turbo,

// CVD mode, Fractional mode and scan trigger source.

/* Configure ADCCON2 */ADCCON2 = 0; // Since, we are using only the Class 1 inputs, no setting is

// required for ADCDIV

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wake-up exponent = 32 * TADx

/* Clock setting */ADCCON3 = 0;ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

ADC0TIMEbits.ADCDIV = 1; // ADC0 clock frequency is half of control clock = TAD0ADC0TIMEbits.SAMC = 5; // ADC0 sampling time = 5 * TAD0ADC0TIMEbits.SELRES = 3; // ADC0 resolution is 12 bits

/* Select analog input for ADC modules, no pre sync trigger, not sync sampling */ADCTRGMODEbits.SH0ALT = 0; // ADC0 = AN0

/* Select ADC input mode */ADCIMCON1bits.SIGN0 = 0; // unsigned data formatADCIMCON1bits.DIFF0 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; // No interrupts are usedADCGIRQEN2 = 0;

/* Configure ADCCSSx */ADCCSS1 = 0; // No scanning is usedADCCSS2 = 0;

DS60001344A_JP - p.22-92 Preliminary © 2016 Microchip Technology Inc.

Page 93: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-5: ADC デジタル オーバー サンプリング フィルタ ( 続き )/* Configure ADCCMPCONx */ADCCMPCON1 = 0; // No digital comparators are used. Setting the ADCCMPCONxADCCMPCON2 = 0; // register to '0' ensures that the comparator is disabled.ADCCMPCON3 = 0; // Other registers are ‘don't care’.ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ADCFLTR1 = 0; // Clear all bitsADCFLTR1bits.CHNLID = 0; // Use AN0 as the sourceADCFLTR1bits.OVRSAM = 3; // 16x oversamplingADCFLTR1bits.DFMODE = 0; // Oversampling modeADCFLTR1bits.AFEN = 1; // Enable filter 1ADCFLTR2 = 0; // Clear all bitsADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;

/* Set up the trigger sources */ADCTGSNSbits.LVL0 = 0; // Edge triggerADCTRG1bits.TRGSRC0 = 1; // Set AN0 to trigger from software.

/* Turn the ADC on */ADCCON1bits.ON = 1;

/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage

/* Enable clock to analog circuit */ADCANCONbits.ANEN0 = 1; // Enable the clock to analog bias and digital control

/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY0); // Wait until ADC0 is ready

/* Enable the ADC module */ADCCON3bits.DIGEN0 = 1; // Enable ADC0

while (1) {/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;

/* Wait for the oversampling process to complete */while (ADCFLTR1bits.AFRDY == 0);/* fetch the result */result = ADCFLTR1bits.FLTRDATA;

/** Process result Here** Note 1: Loop time determines the sampling time for the first sample.* remaining samples sample time is determined by set sampling + conversion time.** Note 2: The first 5 samples may have reduced accuracy.**/

}return (1);

}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-93

Page 94: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5.3 FIFO データ出力

専用 ADC モジュール (ADC0 ~ ADC6) には FIFO に出力データを格納する機能があります。ADC が信号を非常に高速に変換する場合、この機能は便利です。ADCFIFO レジスタは FIFO用の読み出しポートです。FIFO の深さは 128 レベルで、環状構造です。 FIFO を使う ADC モジュールは ADCxEN ビット (ADCFSTAT<30:24>) で選択します。複数のADC モジュールで FIFO を使う場合、ADCxEN で対応するビットを全てセットします。FIFOからデータを読み出す場合、 初に ADCID<2:0> ビット (ADCFSTAT<2:0>) を読み出し、次にADCFIFOレジスタからデータを読み出します。こうする事でユーザ アプリケーションは、FIFOからのデータがどの ADC モジュールのデータかを知る事ができます。FEN ビット(ADCFSTAT<31>) をセットすると FIFO 動作が有効になります。FIFO のデータが利用できるようになると FRDY ビット (ADCFSTAT<22>) がセットされ、FIFO を全て読み出してデータがなくなるまでセット状態を維持します。必要であれば、FIEN ビット (ADCFSTAT<23>) をセットしておく事で割り込みを生成できます。

例 22-6: クラス 1 入力の ADC FIFO の使い方

Note 1: FIFO のサイズはデバイスによって異なります。詳細は各デバイスのデータシートを参照してください。

2: FIFO からデータを読み出す際、ユーザコードは ADCID<2:0> ビットと ADCFIFOレジスタの両方を連続して読み出す必要があります。

int main(int argc, char** argv) {int result[128], index = 0;

/* Configure ADCCON1 */ADCCON1 = 0; // No ADCCON1 features are enabled including: Stop-in-Idle, turbo,

// CVD mode, Fractional mode and scan trigger source.

/* Configure ADCCON2 */ADCCON2 = 0; // Since, we are using only the Class 1 inputs, no setting is

// required for ADCDIV

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ADCCON3 = 0;ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

ADC0TIMEbits.ADCDIV = 1; // ADC0 clock frequency is half of control clock = TAD0ADC0TIMEbits.SAMC = 5; // ADC0 sampling time = 5 * TAD0ADC0TIMEbits.SELRES = 3; // ADC0 resolution is 12 bits

/* Select analog input for ADC modules, no presync trigger, not sync sampling */ADCTRGMODEbits.SH0ALT = 0; // ADC0 = AN0/* Select ADC input mode */ADCIMCON1bits.SIGN0 = 0; // unsigned data formatADCIMCON1bits.DIFF0 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; // No interrupts are usedADCGIRQEN2 = 0;/* Configure ADCCSSx */ADCCSS1 = 0; // No scanning is usedADCCSS2 = 0;/* Configure ADCCMPCONx */ADCCMPCON1 = 0; // No digital comparators are used.Setting the ADCCMPCONxADCCMPCON2 = 0; // register to '0' ensures that the comparator is disabled.ADCCMPCON3 = 0; // Other registers are ‘don't care’.ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

DS60001344A_JP - p.22-94 Preliminary © 2016 Microchip Technology Inc.

Page 95: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-6: クラス 1 入力の ADC FIFO の使い方 ( 続き )/* Configure ADCFLTRx */ADCFLTR1 = 0; // Clear all bitsADCFLTR2 = 0;ADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;/* Set up the trigger sources */ADCTGSNSbits.LVL0 = 0; // Edge triggerADCTRG0bits.TRGSRC0 = 1; // Set AN0 to trigger from software./* Early interrupt */ADCEIEN1 = 0; // No early interruptADCEIEN2 = 0;/* Set FIFO */ADCFSTAT = 0; // Clear all bitsADCFSATbits.ADC0EN = 1; // Select ADC0ADCFSATbits.FEN = 1; // Enable FIFO/* Turn the ADC on */ADCCON1bits.ON = 1;/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage/* Enable clock to analog circuit */ADCANCONbits.ANEN0 = 1; // Enable the clock to analog bias and digital control/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY0); // Wait until ADC0 is ready/* Enable the ADC module */ADCCON3bits.DIGEN0 = 1; // Enable ADC0while (1) {

/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;/* Wait the conversions to complete and data available in FIFO */while (ADCFSTATbits.FRDY == 0);/* Once FIFO bit is set, read all possible data, until bit is clear */while(ADCFSTATbits.FRDY){

/* If data overflow occurred in FIFO, break read process */if(ADCFSTATbits.FWROVERR){

break;}/* if ADC ID is really '0', read data.This is more appropriate when multiple ADC modules areusing the FIFO, therefore, reading the ADC ID willidentify the ADC and data relation */if(ADCFSTATbits.ADCID == 0){

/* Read data from FIFO */result[index] = ADCFIFO;/* For each FIFO read, ADCFSTATbits.FCNT will keep reducing */index++;if(index >= 128)index = 0;

}}/** Process results here**/

}return (1);

}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-95

Page 96: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5.4 専用 DMA によるデータ出力

デバイスによっては各専用 ADC モジュールが DMA エンジンを備えており、変換データを直接システムメモリ (RAM) に格納できます。この機能が利用可能かどうかは、各デバイス データシート内の「ADC」を参照してください。

ADCDMASTATレジスタのDMACNTENビットがセットされている場合、DMAエンジンはADCモジュールの現在のサンプル数もADCCNTBレジスタで指定された開始アドレスからシステムRAM に書き込みます。

格納に使うバッファのサイズは DMABL<2:0> ビット (ADCCON1<2:0>) で指定します。出力データを格納する RAM アドレスは ADCDMAB レジスタの DMABADDR<31:0> ビットで指定します。専用 ADC モジュールはそれぞれ 2 つのバッファ ( バッファ A とバッファ B) を備えています。

DMABL<2:0> はデータ数を示し、各データは 16 ビットなので、各 ADC モジュールのバッファの実際のサイズ ( バイト ) は以下の式で求める事ができます。

バッファサイズ ( バイト ) = 2(ADCCON1 レジスタの DMABL + 1)

チャンネル保存バッファのメモリ空間はシステム RAM 上で連続しており、ベースアドレス(ADCDMAB レジスタで指定 ) を先頭に、ADC0 のバッファ A、ADC0 のバッファ B、ADC1 のバッファ A、ADC1 のバッファ B のようにチャンネル割り当ての番号順に並んで保存されています。

表 22-6: 複数の ADC モジュールが使う場合の DMA バッファのフォーマット

新しいデータが古いデータを上書きしてデータ損失が発生しない限り、表 22-6 に示すように各 ADC モジュールあたり 大 128 のサンプル (2 バイト / サンプル ) を収集できます。DMAエンジンは、自身に割り当てられた RAM 空間内で各チャンネルのアドレスを折り返します。

ADCx (x = 0 ~ 6) のバッファ A の開始アドレスを以下に示します。

ADCDMAB + (2 * x) * 2(ADCCON1 レジスタの DMABL + 1)

ADCx (x = 0 ~ 6) のバッファ B の開始アドレスを以下に示します。

ADCDMAB + (2 * (x + 1)) * 2(ADCCON1 レジスタの DMABL + 1)

ADCCNTB レジスタはユーザ定義の RAM アドレスを格納しており、これを開始アドレスとしてDMA エンジンは現在の出力サンプル数を RAM に保存します (DMACNTEN ビット(ADCDMASTAT<15>) がセットされている場合 )。このサンプル数は各 ADC モジュールに対応するシステム RAM 内の各バッファに書き込み済みです。ADCx はバッファ A の現在のサンプル数をアドレス ((ADCCNTB) + 2 * x) に保存し、バッファ B の現在のサンプル数をアドレス((ADCCNTB) + (2 * x + 1)) に保存します。各 ADC バッファのサンプル数に必要な RAM ストレージは 1 バイトのみであるため、 大値は 128 です。ADCCNTB レジスタで指定したメモリ位置を読み出す事で、いつでも各 ADC (0 ~ 6) と各バッファ (A, B) の利用可能なデータ数を知る事ができます。これは RAFx または RBFx ビットがセットされる前でも同じです。

ADC モジュール ID バッファ RAM アドレス空間

0 A (DMABADDR<31:0>) + 0 ~ (DMABADDR<31:0>) + 2550 B (DMABADDR<31:0>) + 256 ~ (DMABADDR<31:0>) + 5111 A (DMABADDR<31:0>) + 512 ~ (DMABADDR<31:0>) + 7671 B (DMABADDR<31:0>) + 768 ~ (DMABADDR<31:0>) + 10232 A (DMABADDR<31:0>) + 1024 ~ (DMABADDR<31:0>) + 12792 B (DMABADDR<31:0>) + 1280 ~ (DMABADDR<31:0>) + 1535•••

•••

•••

6 A (DMABADDR<31:0>) + 3072 ~ (DMABADDR<31:0>) + 33276 B (DMABADDR<31:0>) + 3328 ~ (DMABADDR<31:0>) + 3583

DS60001344A_JP - p.22-96 Preliminary © 2016 Microchip Technology Inc.

Page 97: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

表 22-7: DMA バッファのサンプル数

ユーザが DIGENx ビット (ADCCON3 レジスタ ) をセットする事で ADC モジュール (0 ~ 6) を有効にした直後、DMA エンジンは ADCx バッファA のサンプル数 ( アドレス : (ADCCNTB) + 2 * x)とバッファ B のサンプル数 ( アドレス : (ADCCNTB)+(2 * x + 1)) を 0 にリセットします。

ADCモジュールの ID バッファ サンプル数

0 A 保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 )

0 B 保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 1

1 A 保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 2

1 B 保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 3

2 A 保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 4

2 B 保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 5

•••

•••

•••

6 A保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 12

6 B保存済みサンプル数 = メモリ読み出し値(ADCCNTB レジスタで指定 ) + 13

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-97

Page 98: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5.4.1 DMA ピンポンモード

DMAエンジンのピンポンモード動作 (1つのADCモジュールと使う場合 )を以下に説明します。 1. DMA エンジンは変換データをシステム RAM 内のバッファ ( バッファ A) に保存する。

2. バッファA がフルになると、その ADC に対応する RAFx ビット (ADCDMASTAT<6:0>) がセットされる。また DMA エンジンは、バッファ A の解放によりデータ使用を効能にしバッファ B への保存を開始する。

3. 選択したADCに対応するRAFIENxビット (ADCDMASTAT<14:8>)をセットしている場合、割り込みが発生する。

4. ISR 内では、ユーザ アプリケーションは RAFx または RBFx ビットを読み出す事で A とB のどちらかのバッファ ID を認識する必要がある。

5. どちらのビットがセットされていても、ユーザ アプリケーションはバッファ ID から変換データを読み出し、変換データに対して適切な処理を実行する必要がある。

6. ユーザ アプリケーションが変換データを処理している間に、DMA エンジンはバッファ Bにデータを格納する。

7. ユーザ アプリケーションがバッファ A から読み出したデータの処理を完了させると、バッファ B の完了を待機する。

アプリケーションが、バッファに格納したデータをバッファがフルになる前に使う必要がある場合、以下の手順が必要です。

1. バッファに格納したデータを検索するために、ユーザコードは DMACNTEN ビット(ADCDMASTAT<15> レジスタ ) を有効にする必要がある。

2. 現在のサンプル数は (ADCCNTB + (2 * x + 1)) から求める事ができ ( バッファB を使っている場合 )、次に ADCDMAB レジスタが指定する適切なメモリオフセットを読み出す。

3. バッファB がフルになると、そのチャンネルの RBFx ビットがセットされる。また DMAエンジンは、バッファ A にデータを保存し始める。

図 22-18 に、ピンポンモード有効時の連続モード動作を示します。

Note 1: DMA エンジンを有効にする前にバッファのサンプル数テーブルを全てゼロに初期化する事は、全てソフトウェアのタスクとして実行する必要があります。このタスクは、バッファのサンプル数テーブルのデータを意味のあるものにするため、各バッファに 初のサンプルを保存する前に実行する必要があります。

2: ADCDMASTAT レジスタを読み出すと、このレジスタの全ステータスビットがクリアされます。専用 ADC モジュールは他と完全に独立して動作するため、複数のステータスビットが同時にセットされる場合があります。どの専用 ADC モジュールのバッファがその時点でフル状態にあるかをロジックのビットレベル動作で示すために、ユーザは ADCDMASTAT レジスタを読み出し、その内容を別の変数に保存する必要があります。

DS60001344A_JP - p.22-98 Preliminary © 2016 Microchip Technology Inc.

Page 99: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

図 22-18: ピンポンモードでの繰り返しデータ転送

DMABADDR<31:0>

Transfer 1

Transfer 2

Transfer 3

Transfer n

COUNT+

+

COUNT = 0Set RAFx (ADCDMASTAT).

Generate interrupt ifRAFIENx bit is set.

Transfer 1

Transfer 2

Transfer 3

Transfer n

COUN

T++

Buffer A

Buffer B

COUNT = 2DMABL<2:0>

COUNT = 2DMABL<2:0>

Set RBFx (ADCDMASTAT).Generate interrupt if RBFIENx bit is set.

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-99

Page 100: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5.5 静電容量式分圧器 (CVD) モード

ADC は CVD モードを備えています。これを使うと、タッチイベントを検出できます。CVD 計測の原理は、2 つのコンデンサ間の電荷の平衡化と電圧計測に基づきます。

タッチセンシング アプリケーションでは、パッドに指を近づけるとパッドの静電容量が変化します。この静電容量の変化を CVD モジュールで検出します。

• 外部静電容量 ( 指がセンサパッドに触れている場合 ) = CEXT = CPAD + CFINGER

• パッドの外部静電容量 ( 指が触れていない場合 ) = CEXT = CPAD

• 内部静電容量 = CINT = CPLINE + CSAMP

図 22-19: CVD モードの概略図

Note: 共有アナログ入力 ( クラス 2 とクラス 3) のみが、CVD 計測用に使えます。

I/O Pad

CFINGER CPAD CPLINE = 2.5…17.5 pF CSAMP = 5 pF

When finger is touching the pad:CEXT = CPAD + CFINGER

When finger is removed:CEXT = CPAD

CINT

CEXT

DS60001344A_JP - p.22-100 Preliminary © 2016 Microchip Technology Inc.

Page 101: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

CVD 計測は 2 つの相 ( 正と負 ) で構成されます。

正の相 : CEXT を VDD に接続し、CINT をグランド (GND) に接続します ( 図 22-20 参照 )。両コンデンサを、SAMC<9:0> ビット (ADCCON2<25:16>) で設定したサンプリング時間の半分の期間、並列に接続します。サンプリング時間の半分の時間が経過すると、その電圧を ADC モジュールで変換します ( この電圧を VINP と呼びます )。

図 22-20: CVD モード ( 正の相 ) の概略図

I/O Pad

CFINGER CPAD CPLINE = 2.5…17.5 pF CSAMP = 5 pF

When finger is touching the pad:CEXT = CPAD + CFINGER

When finger is removed:CEXT = CPAD

CINT

CEXT

VDD GND

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-101

Page 102: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

負の相 : CEXT を GND に接続し、CINT を VDD に接続します ( 図 22-21 参照 )。正の相と同様に、VINN と呼ぶ負の相の電圧を計測します。

図 22-21: CVD モード ( 負の相 ) の概略図

I/O Pad

CFINGER CPAD CPLINE = 2.5…17.5 pF CSAMP = 5 pF

When finger is touching the pad:CEXT = CPAD + CFINGER

When finger is removed:CEXT = CPAD

CINT

CEXT

GND VDD

DS60001344A_JP - p.22-102 Preliminary © 2016 Microchip Technology Inc.

Page 103: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

CVD モジュールは内部で VINP と VINN の差を求め、そのデータを CVDDATA<15:0> ビット(ADCCMPCON1<31:16>) に符号付きフォーマットで格納します。図 22-22 の線図に、タッチイベント中に外部静電容量の増加が原因で、タッチしていない状態 ( 外部静電容量が小さい状態 )より「VINP - VINN」が高くなる様子を示します。

図 22-22: CVD 信号 – 押した時と放した時の差動値の差

式 22-3 に「VINP - VINN」の関係式を示します。

式 22-3: VINP と VINN の関係

タッチ状態では、CEXT は増加し、「VINP - VINN」は減少します。

タッチしていない状態では、CEXT は減少し、「VINP - VINN」は増加します。

デジタル コンパレータ 1 は CVD に接続されています。これを使うと、IEHIHI ビット(ADCCMPCON1<3>) をセットする事でタッチを検出した際にコンパレータ イベントと割り込みを生成できます。デジタル コンパレータは、計測した「VINP - VINN」の値が DCMPHI<15:0>ビット (ADCCMP1<31:16>) で設定した値よりも大きい場合、イベントを生成できます。コンパレータ イベントが、DCMPED ビット (ADCCMPCON1<5>) を読み出す事で、または ISR 内で検出された場合、タッチイベントの原因となったアナログ入力を AINID<5:0> ビット(ADCCMPCON1<13:8>) から読み出す事ができます。

感度を 大限にするには、CPLINE 静電容量の値を CVDCPL<2:0> ビット (ADCCON2<28:26>)で適切に選択する事で、CINT が CPAD と同等の値になるようにする必要があります。

VDD

VSS

TimeNegative Phase Positive Phase

Precharge Acquisition Conversion Precharge Acquisition ConversionVo

ltage

Inte

rnal

AD

C H

old

Cap

acito

r

Exte

rnal

Cap

aciti

ve S

enso

r

Vre

leas

ed

Vpr

esse

d

Note: CVDEN ビットをセットして CVD を有効にする前に、TRGSRC<4:0> およびSTRGSRC<4:0>ビットをクリアしてクラス2およびクラス3入力の外部トリガを無効にします。

VIN P VIN N– VDDCEXT CINT– CEXT CINT+ ------------------------------------ =

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-103

Page 104: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-7: ADC の CVD モードunsigned char touchDetected = 0;

void __ISR(_ADC_DC1_VECTOR, IPL3AUTO) _IntHandlerDrvAdc(void){ IFS1bits.ADCDC1IF = 0;

/* Check and clear event flag for comparator-1 */ if(ADCCMPCON1bits.DCMPED == 1) {

/* Verify if comparator event really due to AN21 */ if(ADCCMPCON1bits.AINID == 21) { touchDetected = 1; } }}

int main(void){

/* Configure ADCCON1 */ ADCCON1bits.SELRES = 3; // ADC resolution is 12 bits ADCCON1bits.STRGSRC = 0; // No scan trigger. ADCCON1bits.AICPMPEN = 0; ADCCON1bits.FRACT = 0;// Integer format

/* Configure ADCCON2 */ ADCCON2bits.SAMC = 32; // ADC7 sampling time ADCCON2bits.ADCDIV = 4; // ADC7 clock freq is half of control clock = TAD7 ADCCON2bits.CVDCPL = 2;// 5pF is the CVD capacitor value selected

/* Initialize warm up time register */ ADCANCON = 0; ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ ADCCON3 = 0; ADCCON3bits.ADCSEL = 0; // Select input clock source ADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clock ADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

/* No selection for dedicated ADC modules, no pre sync trigger, not sync sampling */ ADCTRGMODE = 0; /* Select ADC input mode */ ADCIMCON2bits.SIGN21 = 1; // signed data format ADCIMCON2bits.DIFF21 = 0; // Single ended mode

/* Configure ADCGIRQENx */ ADCGIRQEN1 = 0; // No interrupts are used. ADCGIRQEN2 = 0;

/* Configure ADCCSSx */ ADCCSS1 = 0; // No scanning is used ADCCSS2 = 0; ADCCSS1bits.CSS21 = 1; // AN21 (Class 3) set for CVD

/* Configure ADCCMPCONx */ ADCCMP1 = 0; // Clear the register ADCCMP1bits.DCMPHI = 1600;// High limit, depends on touch pad layout and selected cap, sample time etc. ADCCMP1bits.DCMPLO = 0; // Low limit, not very important for sensing touch event ADCCMPCON1bits.IEHIHI = 1; // When touched, the CVDDATA > HI_LIMIT(DCMPHI)

DS60001344A_JP - p.22-104 Preliminary © 2016 Microchip Technology Inc.

Page 105: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-7: ADC の CVD モード ( 続き )ADCCMPCON1bits.IEBTWN = 0;

ADCCMPCON1bits.IEHILO = 0; ADCCMPCON1bits.IELOHI = 0; ADCCMPCON1bits.IELOLO = 0; ADCCMPCON1bits.DCMPGIEN = 1;// enable interrupt ADCCMPCON1bits.ENDCMP = 1; // enable comparator ADCCMPEN1 = 0; // Clear all enable bits, as it is irrelevant in CVD mode ADCCMPCON2 = 0; ADCCMPCON3 = 0; ADCCMPCON4 = 0; ADCCMPCON5 = 0; ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ ADCFLTR1 = 0; // No oversampling filters are used. ADCFLTR2 = 0; ADCFLTR3 = 0; ADCFLTR4 = 0; ADCFLTR5 = 0; ADCFLTR6 = 0;

/* Set up the trigger sources */ ADCTRGSNS = 0; ADCTRG1 = 0; ADCTRG2 = 0; ADCTRG3 = 0; /* Early interrupt */ ADCEIEN1 = 0; // No early interrupt ADCEIEN2 = 0;

/* Turn the ADC on */ ADCCON1bits.ON = 1; /* Wait for voltage reference to be stable */ while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is ready while(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage /* Enable clock to analog circuit */ ADCANCONbits.ANEN7 = 1; // Enable the clock to analog bias /* Wait for ADC to be ready */ while(!ADCANCONbits.WKRDY7); // Wait until the ADC7 is ready

/* Enable interrupt setting for digital comparator-1 */ IFS1bits.ADCDC1IF = 0; IEC1bits.ADCDC1IE = 1; IPC11bits.ADCDC1IP = 3; IPC11bits.ADCDC1IS = 3; INTCONbits.MVEC = 1; __builtin_enable_interrupts(); /* Turn the CVD mode on */ ADCCON1bits.CVDEN = 1; /* Enable the ADC module */ ADCCON3bits.DIGEN7 = 1; // Enable ADC7 /* Trigger a level sensitive conversion */ ADCCON3bits.GLSWTRG = 1; while (1);

return (1);}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-105

Page 106: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.5.6 2 倍速ターボチャンネル

アプリケーションによっては、1 つの専用 ADC モジュールで実現可能な値以上の ADC データスループットが必要な場合があります。その場合、ターボモードを使って 2 つの専用 ADCモジュールをインターリーブできます。2 つの専用 ADC モジュールを交互に使う事で、1 つのADC モジュールでサンプリングしながらもう 1 つの ADC モジュールで変換できます。従って、スループットを 2 倍に増やす事ができます。

22.5.6.1 ターボチャンネルの設定

ターボモードはマスタとスレーブと呼ぶ 2 つの専用 ADC モジュールで構成されます。これらはそれぞれ TRBMST<2:0> ビット (ADCCON1<29:27>) と TRBSLV<2:0> ビット(ADCCON1<26:24>) で選択します。マスタ ADC モジュールは、TRGSRCx<4:0> ビット(ADCTRGx) で選択した設定でトリガされると、サンプリングを終了し変換を実行します。同時に、マスタ ADC は「tSAMC + tCONV」の間にスレーブをトリガし、スレーブはサンプリングを開始します。ターボモード動作のステップを以下に示します。 1. マスタ ADC は外部信号源 (TRGSRCx<4:0> で選択 ) からトリガを受け取る。

2. マスタ ADC はサンプリング モードに入る。

3. サンプリングが完了すると変換が始まる。また、マスタ ADC は「tSAMC + tCONV」の間にスレーブをトリガする。これにより、スレーブ ADC はサンプリング モードに入る。

4. マスタ ADC がデータ変換中、スレーブ ADC はサンプリングを完了し変換を開始する。

5. マスタ ADC は変換を終了し、スレーブ ADC もその後変換を終了する。

変換全体で見ると、1 チャンネルの場合と比べてはるかに速いデータレートが得られます。

出力データは、各専用 ADC モジュールのアナログ入力に割り当てられている 2 つの独立したデータバッファ (ADCDATAx)、FIFO、システム RAM のいずれかに送られます。

22.5.6.2 ターボチャンネル エラー

ターボチャンネルを機能させるのに必要な設定条件は複数あります。ターボチャンネルが適切に設定されていない場合、ハードウェアはターボチャンネル エラービット TRBERR (ADCCON1<30>) をセットします。TRBERR ビット (ADCCON1<30>) がセットされると、ユーザコードが TRBEN ビット (ADCCON1<31>) を「1」に設定していたとしても、ハードウェアはターボチャンネルの機能を無効にします。ターボチャンネル エラーの有無で、ユーザがターボチャンネルを正しく設定している事を確認できます。ターボチャンネルを正しく動作させるには以下の条件を満たす必要があります。それ以外の場合、ハードウェアは TRBERR ビットをセットします。

• ADC モジュールのクロック分周比 : マスタとスレーブの ADC モジュールのADCDIV<6:0>ビット (ADCxTIME<22:16>) は等しい事が必要です。

• ADC 分解能 : マスタとスレーブの ADC モジュールの SELRES<1:0> ビット(ADCxTIME<25:24>) は等しい事が必要です。また、ターボモードでは 6 ビット分解能(SELRES<1:0> = 00) はサポートされません。従って、SELRES<1:0> ビットの値は「00」以外である事が必要です。

• サンプリング時間 : マスタとスレーブの ADC モジュールの SAMC<9:0> ビット(ADCxTIME<9:0>) は等しい事が必要です。

• マスタとスレーブの ADC モジュールの STRGEN ビット (ADCTRGMODE) は両方共セットする必要があります。

• マスタとスレーブのADCモジュールのSSAMPENビット (ADCTRGMODE)は両方共セットする必要があります。

Note: 2 つの専用 ADC モジュールがマスタとスレーブに設定されていても、これらのADC モジュールは独立したアナログ入力ピンを持っており、サンプリングと変換の際にユーザはこれらの 2 つの入力 ( 差動モードの場合は 2 + 2) をアプリケーションボードレベルで接続し、マスタとスレーブ両方に同一入力信号を与える必要があります。

DS60001344A_JP - p.22-106 Preliminary © 2016 Microchip Technology Inc.

Page 107: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.5.6.3 ターボチャンネルの有効性

ターボチャンネルは、サンプリング時間 (tSAMC) が変換時間 (tCONV) より短い場合のみ効果を発揮します。これは、片方の ADC モジュールが変換を完了する前にもう一方の ADC モジュールがサンプリングを完了する事を意味します。そうでないと、両方の ADC モジュールは同時にサンプリングする事になり、ターボチャンネルを使う意味がありません。1 つの SAR ADC では、ADC 変換時間内に出力データを作成する事はできません。ターボチャンネルを使うと、変換時間をもう一方のチャンネルのサンプリングとインターリーブできます。

ADC のサンプリング時間はアナログ信号源の入力抵抗の影響を受けます。サンプリング時間を短縮するために、アナログ信号源の入力抵抗を低減する必要があります。

アプリケーションのサンプリング時間 (tSAMC) が変換時間 (tCONV)より長い場合 (設計上の制約または製品化に伴うハードウェア上の理由等でソース インピーダンスを下げられない場合 )、変換時間 ( サンプリング数 * TAD) がサンプリング時間 ( サンプリング数ではない ) と等しくなるように ADCDIV<6:0> ビット (ADCxTIME<22:16>) を増やす事でクロック周波数を下げる事ができます。クロック周波数を下げる事になるので、サンプリング時間 SAMC<9:0> ビット(ADCxTIME<9:0>) のサンプリング数を減らす必要がある事に注意します。

サンプリング時間が、サポートする 短の変換時間 (14 * TAD) と比べてはるかに長い場合、ターボチャンネルを使っても変換帯域幅を大きく向上させる事はできません。この場合、ハードウェアがサポートする 速の変換レートでシングル チャンネルモードを実行する方が賢明です。

図 22-23 に、エッジセンスとレベルセンスのマスタトリガを備えるターボチャンネル モードの動作を示します。

図 22-23: ターボモードの動作

割り込みモードでは、ユーザ アプリケーションはマスタおよびスレーブ両方の ADC モジュールに割り当てられているアナログ入力の AGIENx ビットを有効にする必要があります。

Edge Triggered mode

Master Trigger

Master Sample

Slave Trigger

Master triggers slave at mid-point of sample

and conversion

Master triggers slave at mid-point of sample

and conversion

SlaveSample

Level Triggered mode

Master Trigger

Master Sample

MasterConversion

Master triggers slave at mid-point of sample

and conversion

Master triggers slave at mid-point of sample

and conversion

Slave Trigger

End of Master conversion retriggers

master sample

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-107

Page 108: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.6 割り込み

各 ADC モジュールは各種要因による割り込みをサポートし、それらを単独で処理する事もグローバルに処理する事もできます。また、早期割り込み機能を使って割り込みサービス レイテンシを補償する事もできます。

有効な割り込みが発生すると、CPU はその割り込みに割り当てられているベクタへジャンプします。CPU はそのベクタアドレスからコード実行を始めます。このベクタアドレスのユーザソフトウェアは、必要な動作 ( データ結果の処理、割り込みフラグのクリア等 ) を実行した後に終了する必要があります。割り込みとベクタアドレス テーブルの詳細は、『PIC32 ファミリリファレンス マニュアル、セクション 08. 割り込み』(DS61108) と、各デバイス データシート内の「割り込みコントローラ」を参照してください。

22.6.1 割り込み要因

各 ADC モジュールは、表 22-8 に示すイベントから割り込みを生成できます。

表 22-8: ADC の割り込み要因

割り込みイベント 説明 割り込みイネーブルビット 割り込みステータスビット

ANx データレディ イベント

アナログ入力源 (ANx) の変換を完了すると、

割り込みを生成します。ADCBASE レジスタ

で ARDYx ビットがセットされた時点で、

その入力は単独の割り込みを生成できます。

ADCGIRQEN1 または

ADCGIRQEN2 レジスタのAGIENx

ADCDSTATx レジスタのARDYx

デジタル コンパレータ イベント

デジタル コンパレータが設定されて有効に

なっている場合、変換結果が比較条件を

満たすと割り込みを生成します。各デジタル コンパレータは、対応する DCMPED ビット

がセットされた時に単独の割り込みを

生成できます。

ADCCMPCONx レジスタのDCMPGIEN

ADCCMPCONx レジスタのDCMPED

オーバー サンプリング フィルタ データ

レディ イベント

オーバー サンプリング フィルタがアキュム

レーション / デシメーション処理を完了して

結果を保存した時点で、割り込みを生成します。

ADCFLTRx レジスタのAFGIEN

ADCFLTRx レジスタのAFRDY

バンドギャップ電圧

および ADC 参照電圧

レディイベント

バンドギャップ電圧と ADC 参照電圧が両方

共レディ状態になった時点で、割り込みを生

成します。

ADCCON2 レジスタのBGVRIEN

ADCCON2 レジスタのBGVRRDY

バンドギャップ フォルト / 参照電圧

フォルト /AVDDブラウンアウト フォルトイベント

バンドギャップ フォルト / 参照電圧フォルト /AVDD ブラウンアウトが発生すると、

割り込みを生成します。

ADCCON2 レジスタのREFFLTIEN

ADCCON2 レジスタのREFFLT

スキャン終了イベント 選択した全入力がスキャンを完了すると、

割り込みを生成します。

ADCCON2 レジスタのEOSIEN

ADCCON2 レジスタのEOSRDY

FIFO データレディ イベント

FIFO からデータを読み出す準備が完了すると、

割り込みを生成します。

ADCFSTAT レジスタのFIEN

ADCFSTAT レジスタのFRDY

DMA バッファ Bフルイベント

DMA バッファ B がフルになると、割り込み

を生成します。

ADCDMASTAT レジスタの

RBFIEN6 ~ RBFIEN0ADCDMASTAT レジスタの

RBF6 ~ RBF0DMA バッファ Aフルイベント

DMA バッファ A がフルになると、割り込み

を生成します。

ADCDMASTAT レジスタの

RAFIEN6 ~ RAFIEN0ADCDMASTAT レジスタの

RAF6 ~ RAF0ADC モジュール復帰

イベント

ADC を有効にした後復帰させると、割り込み

を生成します。

ADCANCON レジスタの

WKIEN6 ~ WKIEN0、WKIEN7

ADCANCON レジスタの

WKRDY6 ~ WKRDY0、WKRDY7

更新レディイベント ADC SFR が新しい値で ( 安全に ) 更新する

準備が完了すると、割り込みを生成します。

ADCCON3 レジスタのUPDIEN

ADCCON3 レジスタのUPDRDY

早期割り込みイベント ADCEIS<2:0> ビット (ADCxTIME<28:26>) とADCEIS<2:0> ビット (ADCCON2<10:8>) で設定した ADC クロックより前に ( 変換終了

以前 )、割り込みを生成します。

ADCEIENx レジスタの

EIEN6 ~ EIEN0ADCEISTATx レジスタの

EIRDY6 ~ EIRDY0

DS60001344A_JP - p.22-108 Preliminary © 2016 Microchip Technology Inc.

Page 109: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.6.2 ADC ベースレジスタ (ADCBASE) の使い方

ADC の変換完了後、割り込みが全アナログ入力に共通の機能を対象にしている場合、ADCDSTATxレジスタのARDYxビットを読み出してADC入力を特定するのにある程度時間がかかります。この時間を短縮するため、ADCBASE レジスタにユーザの ADC ISR のジャンプテーブルのベースアドレスを格納できます。ADCBASE レジスタからは、ADCBASE レジスタの値の合計とADCDSTATxレジスタに設定されているARDYxビットを読み出す事ができます。ADCBASE レジスタをこのように使う事で割り込みベクタアドレスを生成でき、これを使ってISR の性能を向上できます。 ARDYx ビットは優先度をバイナリ形式で格納しており、ARDY0 が 高の優先度であり、A63RDY が 低の優先度であるように符号化されています。符号化された優先度データはADCCON1 レジスタの IRQVS<2:0> ビットで指定された数のビット位置だけ左にシフトされ、ADCBASEレジスタの値に加算されます。ARDYxが1つもセットされていない場合、ADCBASEレジスタの読み出し値は ADCBASE レジスタに書き込んだ値と等しくなります。 ADCBASE レジスタには通常、適切な ISR のアドレスを含むジャンプテーブルのベースアドレスが書き込まれます。kth 割り込み要求は、ADCGIRQENx の SFR (x = 1 または 2) の内 1 つのAGIENx ビット (0 x 63) で有効になります。 例 22-8 に ADCBASE レジスタの使い方を示します。加えて例 22-9 のコードは、ADCBASEレジスタで各種 ADC 入力の割り込みをベクタ処理する方法を示します。

例 22-8: ADCBASE レジスタの使い方

Note: ADCBASE レジスタの内容は変化しません。ADCBASE レジスタを読み出すと合計演算が実行され、その合計値は ADCBASE SFR の読み値として返されます。

Case 1:ADCBASE = 0x1234; // Set the addressADCCON1bits.IRQVS = 2; // left shift by 2ADCGIRQEN1bits.AGIEN0 = 1; // enable interrupt when AN0 completion is done.Once the ADC conversion for AN0 is complete, bit 0 of ADCDSTAT1 = ARDY0 is set.Read value of ADCBASE = 0x1234 + (0 << 2) = 0x1234.Therefore, the ISR should be placed at address 0x1234 for AN0.

Case 2:ADCBASE = 0x1234; // Set the addressADCCON1bits.IRQVS = 2; // left shift by 2ADCGIRQEN1bits.AGIEN0 = 2; // enable interrupt when AN2 completion is done.Once the ADC conversion for AN2 is complete, bit 2 of ADCDSTAT1 = ARDY2 is set.Read value of ADCBASE = 0x1234 + (2 << 2) = 0x123C.Therefore, the ISR should be placed at address 0x123C for AN2.

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-109

Page 110: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-9: 各種 ADC 入力の割り込みのベクタ処理/* Number of ADC modules doing conversion */#defineADC_MODULES3

/* Declare functions for each ADC handler */void ADC0Handler(void);void ADC1Handler(void);void ADC2Handler(void);

void(*jumpTable[ADC_MODULES * 2])(void);

int ADC0Result;int ADC1Result;int ADC2Result;

int main(int argc, char** argv) {

jumpTable[0] = &ADC0Handler; // Set up jump tablejumpTable[2] = &ADC1Handler;jumpTable[4] = &ADC2Handler;

/* Configure ADCCON1 */ADCCON1 = 0; // No ADCCON1 features are enabled including: Stop-in-Idle, turbo,

// CVD mode, Fractional mode and scan trigger source.

/* Configure ADCCON2 */ADCCON2 = 0; // Since, we are using only the Class 1 inputs, no setting is

// required for ADCDIV

/* Initialize warm up time register */ADCANCON = 0;ADCANCONbits.WKUPCLKCNT = 5; // Wakeup exponent = 32 * TADx

/* Clock setting */ADCCON3 = 0;ADCCON3bits.ADCSEL = 0; // Select input clock sourceADCCON3bits.CONCLKDIV = 1; // Control clock frequency is half of input clockADCCON3bits.VREFSEL = 0; // Select AVdd and AVss as reference source

/* Select ADC sample time and conversion clock */ADC0TIMEbits.ADCDIV = 1; // ADC0 clock frequency is half of control clock = TAD0ADC0TIMEbits.SAMC = 5; // ADC0 sampling time = 5 * TAD0ADC0TIMEbits.SELRES = 3; // ADC0 resolution is 12 bitsADC1TIMEbits.ADCDIV = 1; // ADC1 clock frequency is half of control clock = TAD1ADC1TIMEbits.SAMC = 5; // ADC1 sampling time = 5 * TAD1ADC1TIMEbits.SELRES = 3; // ADC1 resolution is 12 bitsADC2TIMEbits.ADCDIV = 1; // ADC2 clock frequency is half of control clock = TAD2ADC2TIMEbits.SAMC = 5; // ADC2 sampling time = 5 * TAD2ADC2TIMEbits.SELRES = 3; // ADC2 resolution is 12 bits

/* Select analog input for ADC modules, no presync trigger, not sync sampling */ADCTRGMODEbits.SH0ALT = 0; // ADC0 = AN0ADCTRGMODEbits.SH1ALT = 0; // ADC1 = AN1ADCTRGMODEbits.SH2ALT = 0; // ADC2 = AN2

/* Select ADC input mode */ADCIMCON1bits.SIGN0 = 0; // unsigned data formatADCIMCON1bits.DIFF0 = 0; // Single ended modeADCIMCON1bits.SIGN1 = 0; // unsigned data formatADCIMCON1bits.DIFF1 = 0; // Single ended modeADCIMCON1bits.SIGN2 = 0; // unsigned data formatADCIMCON1bits.DIFF2 = 0; // Single ended mode

/* Configure ADCGIRQENx */ADCGIRQEN1 = 0; ADCGIRQEN2 = 0;ADCGIRQEN1bits.AGIEN0 = 1; // Enable data ready interrupt for AN0ADCGIRQEN1bits.AGIEN1 = 1; // Enable data ready interrupt for AN1ADCGIRQEN1bits.AGIEN2 = 1; // Enable data ready interrupt for AN2

/* Configure ADBASE */ADCBASE = (int)(&jumpTable[0]); // Initialize ADCBASE with starting address of jump tableADCCON1bits.IRQVS = 0; // No left shift of address

/* Configure ADCCSSx */ADCCSS1 = 0; // No scanning is usedADCCSS2 = 0;

DS60001344A_JP - p.22-110 Preliminary © 2016 Microchip Technology Inc.

Page 111: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

例 22-9: 各種 ADC 入力の割り込みのベクタ処理 ( 続き )/* Configure ADCCMPCONx */ADCCMPCON1 = 0; // No digital comparators are used.Setting the ADCCMPCONxADCCMPCON2 = 0; // register to '0' ensures that the comparator is disabled.ADCCMPCON3 = 0; // Other registers are “don't care”.ADCCMPCON4 = 0;ADCCMPCON5 = 0;ADCCMPCON6 = 0;

/* Configure ADCFLTRx */ADCFLTR1 = 0; // No oversampling filters are used.ADCFLTR2 = 0;ADCFLTR3 = 0;ADCFLTR4 = 0;ADCFLTR5 = 0;ADCFLTR6 = 0;

/* Set up the trigger sources */ADCTRGSNSbits.LVL0 = 0; // Edge triggerADCTRGSNSbits.LVL1 = 0; // Edge triggerADCTRGSNSbits.LVL2 = 0; // Edge triggerADCTRG1bits.TRGSRC0 = 1; // Set AN0 to trigger from software.ADCTRG1bits.TRGSRC1 = 1; // Set AN1 to trigger from software.ADCTRG1bits.TRGSRC2 = 1; // Set AN2 to trigger from software.

/* Early interrupt */ADCEIEN1 = 0; // No early interruptADCEIEN2 = 0;ADCCON2bits.ADCEIOVR = 1; // Override early interrupt

/* Turn the ADC on */ADCCON1bits.ON = 1;

/* Wait for voltage reference to be stable */while(!ADCCON2bits.BGVRRDY); // Wait until the reference voltage is readywhile(ADCCON2bits.REFFLT); // Wait if there is a fault with the reference voltage

/* Enable clock to analog circuit */ADCANCONbits.ANEN0 = 1; // Enable the clock to analog bias and digital controlADCANCONbits.ANEN1 = 1; // Enable the clock to analog bias and digital controlADCANCONbits.ANEN2 = 1; // Enable the clock to analog bias and digital control

/* Wait for ADC to be ready */while(!ADCANCONbits.WKRDY0); // Wait until ADC0 is readywhile(!ADCANCONbits.WKRDY1); // Wait until ADC1 is readywhile(!ADCANCONbits.WKRDY2); // Wait until ADC2 is ready

/* Enable the ADC module */ADCCON3bits.DIGEN0 = 1; // Enable ADC0ADCCON3bits.DIGEN1 = 1; // Enable ADC1ADCCON3bits.DIGEN2 = 1; // Enable ADC2

/* Trigger a conversion */ADCCON3bits.GSWTRG = 1;

while (1);

return (1);}

/* Handler for the ADC interrupt */void __ISR(_ADC_VECTOR, ipl3) ADCHandler1(void){

/* call the corresponding ADC module handler */((void(*)())*((int *)ADCBASE))();

}

void ADC0Handler(void){

/* Verify if data for AN0 is ready.This bit is self cleared upon data read */if(ADCDSTAT1bits.ARDY0){

ADC0Result = ADCDATA0;}

}

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-111

Page 112: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

例 22-9: 各種 ADC 入力の割り込みのベクタ処理 ( 続き )

22.6.3 割り込みの有効化、割り込み優先度、割り込みベクタ

上記の各 ADC イベントは、対応する割り込みイネーブル (IE) ビットがセットされていれば、割り込みを生成します。各イベントには、割り込みフラグビット (IF)、優先度ビット (IP<2:0>)、副優先度ビット (IS<1:0>) も割り当てられています。割り込みの有効化と優先度設定の詳細は、『PIC32 ファミリ リファレンス マニュアル、セクション 08. 割り込み』(DS61108) を参照してください。上記の各 ADC イベントには、割り込みベクタも割り当てられています。各割り込み要因に割り当てられているベクタアドレスと制御 / ステータスビットの詳細は、各デバイス データシート内の「割り込みコントローラ」を参照してください。

22.6.4 単独およびグローバル割り込み

上記の割り込みを個別に生成し、それらに対応する各 ISR で個々のイベントに効率的に対応する事で、複数の ADC イベントの処理を大幅に 適化できます。加えて、実行するタスクに応じて各種の ISR を容易に使い分ける事ができるため、ユーザ ソフトウェアによる実装と管理も容易です。しかし、1 つの ISR で複数の割り込みイベントを処理する事が望ましい場合もあります。これは、各 ADC イベントの論理和 (OR) を使って単一のグローバル割り込みを生成する事で容易に実装できます。グローバル割り込み向けに有効にされた ADC イベントが発生すると、CPU は全て同じ割り込みルーチンへジャンプします。このグローバル ISR では、ポーリングによって割り込みの要因を特定し、それに応じた処理を実行できます。

グローバル割り込みを使うには、グローバル割り込みに対応する IE、IF、IP、IS ビットと割り込みベクタを設定する必要があります (22.6.3「割り込みの有効化、割り込み優先度、割り込みベクタ」参照 )。ADC の各種割り込みは、単独割り込みとしてもグローバル割り込みとしても設定できます。一部の割り込みを単独で処理し、その他をグローバル ISR で処理する事も可能です。

void ADC1Handler(void){

/* Verify if data for AN1 is ready.This bit is self cleared upon data read */if(ADCDSTAT1bits.ARDY1){

ADC1Result = ADCDATA1;}

}void ADC2Handler(void){

/* Verify if data for AN2 is ready.This bit is self cleared upon data read */if(ADCDSTAT2bits.ARDY2){

ADC2Result = ADCDATA2;}

}

DS60001344A_JP - p.22-112 Preliminary © 2016 Microchip Technology Inc.

Page 113: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.6.5 早期割り込み

早期割り込み機能を使うと、ADCモジュールは変換が完了する前に割り込みを生成できます。これにより、入力がまだ変換処理中であっても、プロセッサ アプリケーション ソフトウェアはISR へのジャンプを開始できます。早期割り込みを使うと、ADC の変換処理と割り込み関連のプロセッサ オーバーヘッドをオーバーラップさせる事で、割り込みサービス レイテンシを補償できます。ADCEIS<2:0>ビット (ADCxTIME<28:26>)とADCEIS<2:0>ビット (ADCCON2<10:8>)は、それぞれ専用入力と共有入力に対して割り込みが発生するまでの ADC クロック数を設定します。これらのビットを適切に設定する事で、アナログ信号がサンプリングされてからユーザ アプリケーション ソフトウェアがデータを使えるようになるまでの遅延を短縮できます。

変換終了よりも先に ( すなわち ADCDATAx レジスタのデータが実際に利用可能になる前に )設定したクロック数に達すると、ADCEISTAT1 または ADCEISTAT2 レジスタ内の対応する早期割り込みレディビット EIRDYx がセットされます。ADCEIEN1 または ADCEIEN2 レジスタ内の各割り込みイネーブルビット EIENx をセットしている場合、割り込みが生成されます。

早期割り込み機能は、早期割り込みオーバーライド ビット ADCEIOVR (ADCCON2<12>) をセットする事で上書きできます。このビットをセットしていると、ADCEIEN1またはADCEIEN2レジスタのビットをセットしていても割り込みの生成には影響しません。その場合、割り込みの生成は ADCGIRQEN1 および ADCGIRQEN2 レジスタの設定で制御されます。

Note: ADCEIS<2:0> ビットの設定は、オーバー サンプリング フィルタ データレディ信号AFRDY には適用されません。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-113

Page 114: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.7 省電力モード中の動作

省電力モード ( スリープ、アイドル ) 中は CPU、バス、他の周辺モジュールのデジタル動作が小限となるため、変換ノイズを低減できます。

22.7.1 スリープ

デバイスがスリープに移行すると、システムクロック (SYCCLK) は停止します。ADCモジュールが、クロック源として SYSCLK または REFCLK3 (REFCLK3 は SYSCLK から生成 )を選択している場合、ADC はスリープに移行します。

上記のどちらの場合も、変換中にスリープへの移行が発生すると、その変換は中止されます。スリープからの復帰時、コンバータは中止された変換を再開しません。ADC レジスタの内容は、スリープへの移行およびスリープからの復帰によって影響されません。ADC クロックがSYSCLK 以外のスリープ中も動作するクロック源から供給されている場合、ADC モジュールはスリープ中でも動作できます。スリープ中に ADC モジュールを動作させる場合、FRC クロック源は妥当な選択ですが、スリープ中も動作するクロックを入力とする REFCLK3 クロック源も使えます。

スリープ中に A/D 変換を実行する事で、変換中のデジタル スイッチング ノイズが減少します。変換が完了すると、そのアナログ入力の ARDYx ステータスビットがセットされ、変換結果が対応する ADC 結果レジスタ (ADCDATAx) に書き込まれます。 いずれかの ADC 割り込みが有効であれば、ADC 割り込みが発生した時点でデバイスはスリープから復帰します。ADC 割り込みの優先度が現在の CPU 割り込み優先度よりも高い場合、プログラム実行は ADC ISR から再開します。これ以外の場合、プログラム実行はデバイスをスリープへ移行させた WAIT命令の直後の命令から再開します。 ADC モジュールの動作に対するデジタルノイズの影響を 小限に抑えるには、スリープ中にA/D 変換を実行できるよう変換トリガ源を選択する必要があります。例えば、外部割り込みピン (INT0) 変換トリガオプション (TRGSRC<4:0> = 00100) を使うと、デバイスがスリープに移行した後もサンプリング / 変換を実行できます。

22.7.2 アイドル中の ADC 動作

ADC モジュールをアイドル中に停止させるかどうかは、アイドル中停止ビット SIDL(ADCCON1<13>) で指定します。SIDL = 0 の場合、デバイスがアイドルに移行しても ADCモジュールは通常動作を継続します。いずれかの ADC 割り込みが有効であれば、ADC 割り込みが発生した時点でデバイスはアイドルから復帰します。ADC 割り込みの優先度が現在の CPU割り込み優先度よりも高い場合、プログラム実行は ADC ISR から再開します。これ以外の場合、プログラム実行はデバイスをアイドルへ移行させた WAIT命令の直後の命令から再開します。

SIDL = 1 の場合、ADC モジュールはアイドル中に停止します。変換動作中にデバイスがアイドルに移行した場合、その変換は中止されます。アイドルからの復帰時に、コンバータは中止された変換を再開しません。

Note: ADC モジュールをスリープ中に動作させるには、ADC クロック源を内部 FRC(ADCSEL<1:0> ビット (ADCCON2<31:30>) = 01) に設定する必要があります。あるいは REFCLK3 も使えますが、その場合 REFCLK3 にはスリープ中も動作するクロック源を使う必要があります。ADC クロックの設定を変更するには、ADCモジュールを無効にする必要があります。

DS60001344A_JP - p.22-114 Preliminary © 2016 Microchip Technology Inc.

Page 115: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.7.3 ADC 低消費電力モード

実行していない各 ADC モジュールのデジタル回路を OFF にする事で、ADC モジュールを低消費電力ステートに移行させる事ができます。それには、ADCCON3 レジスタの DIGENx ビットとDIGEN7 ビットをクリアします ( レジスタ 22-3 参照 )。 実行していない各 ADC モジュールのアナログおよびバイアス回路も OFF にすると、さらに低消費電力状態にする事ができます。それには、ADCANCON レジスタの ANENx ビットとANEN7 ビットをクリアします ( レジスタ 22-41 参照 )。デジタル回路を OFF にして低消費電力モードにすると、アナログおよびバイアス回路を OFF にしてから再度有効にする場合に比べて、モジュールの再起動に必要な時間を大幅に短縮できます。これは、ANENx ビットと ANEN7ビットを使ってアナログおよびバイアス回路を OFF にしてから再度有効にする場合、ADCモジュールの復帰時間 ( 通常、 小復帰時間は 20 µs) を必要とする事が原因です。安定化時間の詳細は、各デバイス データシート内の「電気的特性」を参照してください。

ADC モジュールのアナログおよびバイアス回路が ON になると、復帰レディビット (WKRDY6 ~WKRDY0、WKRDY7)が「1」に等しい事をポーリングし (または割り込みで )復帰を確認します。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-115

Page 116: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.8 リセットの影響

どのタイプのリセットイベントが発生しても、ADC 制御およびステータス レジスタはそれぞれの既定値 ( 制御ビットは非アクティブ状態 ) にリセットされます。これにより ADC モジュールは無効になり、アナログ入力ピンはアナログ入力モードに設定されます。実行中であった変換動作は中止され、変換結果はデータ格納バッファに書き込まれません。ADCDATAx レジスタの値は、デバイスリセット時に 0x00000000 に初期化されます。バイアス回路も OFF になるので、ADC 動作を再開させるには、BGVRRDY ビット (ADCCON2 レジスタ ) をポーリングする( または BGVRRDY ビットによる割り込みを要求する ) 事で、バイアス回路が安定化するまで待つ必要があります。

22.9 伝達関数

12 ビット ADC の一般的な伝達関数を図 22-24 に示します。参照電圧 (VREFH – VREFL) に対する入力差動電圧 (VINH – VINL) の比がデジタル値に変換されます。

• 小レベルのコード変化は (VREFH – VREFL)/8192 または 0.5 LSb で発生します (A)。 • コード 00 0000 0001は (VREFH – VREFL)/4096 または 1.0 LSb を中心値とします (B)。• コード 10 0000 0000は 2048*(VREFH – VREFL)/4096 を中心値とします (C)。• 1*(VREFH – VREFL)/8192よりも低い入力電圧はコード00 0000 0000に変換されます (D)。• 8192*(VREFH – VREFL)/8192よりも高い入力電圧はコード11 1111 1111に変換されます (E)。

図 22-24: ADC の伝達関数

1000 0000 0001 (= 2049)1000 0000 0010 (= 2050)1000 0000 0011 (= 2051)

0111 1111 1101 (= 2045)0111 1111 1110 (= 2046)0111 1111 1111 (= 2047)

1111 1111 1110 (= 4094)1111 1111 1111 (= 4095)

0000 0000 0000 (= 0)0000 0000 0001 (= 1)

出力コード

1000 0000 0000 (= 2048)

(VINH – VINL)VREFL VREFH – VREFL

4096

2048 * (VREFH – VREFL)

4096

VREFHVREFL + VREFL +

(A)(B)

(C)

(D)

(E)

DS60001344A_JP - p.22-116 Preliminary © 2016 Microchip Technology Inc.

Page 117: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.10 ADC サンプリング要件

12 ビット ADC のアナログ入力モデルを図 22-25 に示します。A/D 変換の総アクイジション時間は、内部回路のセトリングタイムとホールド コンデンサの充電時間によって決まります。

ADC モジュールの仕様精度を達成するには、ホールド コンデンサ (CHOLD) をアナログ入力ピンの電圧レベルまで完全に充電する必要があります。アナログ信号源の出力インピーダンス(RS)、相互接続インピーダンス (RIC)、内部サンプリング スイッチのインピーダンス (RSS) による複合インピーダンスは、コンデンサ CHOLD の必要充電時間に直接影響します。従って、一定のサンプリング時間内にホールド コンデンサを完全に ( 目標の電圧の 1/4 LSB 以内まで )充電できるよう、アナログ信号源の複合インピーダンスを十分に小さくする必要があります。内部ホールド コンデンサは、毎回のサンプリング動作の前に放電されます。

変換を終了してからから次の変換を開始するまでの間に、アクイジション時間として 1 TAD 以上の時間を確保する必要があります。詳細は各デバイス データシート内の「電気的特性」を参照してください。

図 22-25: 12 ビット ADC のアナログ入力モデル

22.11 接続に関する注意事項

静電気放電 (ESD) 保護のため、アナログ入力と VDD および VSS の間にダイオードが接続されています。従って、アナログ入力の電圧は VDD ~ VSS のレンジ内である事が必要です。ダイオードを接続する理由は、アナログ入力ピンが 5 V 耐圧でないためです。入力電圧がいずれかの向きに 0.3 V 以上このレンジを超えるとダイオードの 1 つに順バイアスがかかり、入力電流が仕様値を超えた場合にデバイスが損傷する可能性があります。

入力信号のアンチ エイリアシング用に外付け RC フィルタを追加する場合、アクイジション時間要件を満たせるように抵抗値を選択する必要があります。ハイ インピーダンスのアナログ入力ピンに接続した外付け部品 ( コンデンサ、ツェナー ダイオード等 ) は、リーク電流をほとんど生じない事が必要です。

CPINVA

Rs ANxVT = 0.6V

VT = 0.6V ILEAKAGE

RIC = 200 SamplingSwitch

RSS

CHOLD= DAC capacitance

VSS

VDD

= 5 pF± 500 nA

Note: CPIN 値はデバイス パッケージによって決まります。テストは実施していません。

Rs 5 kの場合、CPIN の影響は無視できます。

RSS = 44

凡例 :CPIN = 入力静電容量 VT = しきい値電圧

RSS = サンプリング スイッチの抵抗 RIC = 相互接続インピーダンス

RS = 信号源インピーダンス CHOLD = サンプル / ホールド静電容量

ILEAKAGE = 各種接合部によるピン部位のリーク電流

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-117

Page 118: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

22.12 関連アプリケーション ノート

本セクションに関連するアプリケーション ノートの一覧を下に記載します。一部のアプリケーション ノートは PIC32 デバイスファミリ向けではありません。ただし概念は共通しており、変更が必要であったり制限事項が存在するものの利用が可能です。高速 12 ビット逐次比較型レジスタ (SAR) A/D コンバータ (ADC) モジュールに関連する現在のアプリケーション ノートは以下の通りです。

タイトル アプリケーション ノート番号

現在、関連するアプリケーション ノートはありません。 N/A

Note: PIC32 ファミリ関連のアプリケーション ノートとサンプルコードは Microchip 社のウェブサイト (www.microchip.com) でご覧頂けます。

DS60001344A_JP - p.22-118 Preliminary © 2016 Microchip Technology Inc.

Page 119: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

セクション 22. 高速 12 ビット SAR ADC

22.13 改訂履歴

リビジョン A (2015 年 6 月 )本書は初版です。

© 2016 Microchip Technology Inc. Preliminary DS60001344A_JP - p.22-119

Page 120: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

PIC32 ファミリ リファレンス マニュアル

NOTE:

DS60001344A_JP - p.22-120 Preliminary © 2016 Microchip Technology Inc.

Page 121: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

Microchip 社製デバイスのコード保護機能に関して以下の点にご注意ください。

• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に

流通している同種製品の中でも も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解では、こうした手法

は Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知

的所有権の侵害に該当する可能性が非常に高いと言えます。

• Microchip 社は、コードの保全性に懸念を抱いているお客様と連携し、対応策に取り組んでいきます。

• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保

護機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社の

コード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作

物に不正なアクセスを受けた場合、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。Microchip 社は、明示的、暗黙的、書面、口頭、法

定のいずれであるかを問わず、本書に記載されている情報に

関して、状態、品質、性能、商品性、特定目的への適合性を

はじめとする、いかなる類の表明も保証も行いません。

Microchip 社は、本書の情報およびその使用に起因する一切の

責任を否認します。生命維持装置あるいは生命安全用途に

Microchip 社の製品を使用する事は全て購入者のリスクとし、

また購入者はこれによって発生したあらゆる損害、クレーム、

訴訟、費用に関して、Microchip 社は擁護され、免責され、損

害を受けない事に同意するものとします。暗黙的あるいは明

示的を問わず、Microchip 社が知的財産権を保有しているライ

センスは一切譲渡されません。

2016 Microchip Technology Inc. Prelimin

商標

Microchip 社の名称とロゴ、Microchip ロゴ、dsPIC、FlashFlex、flexPWR、JukeBlox、KEELOQ、KEELOQlogo、Kleer、LANCheck、MediaLB、MOST、MOST logo、MPLAB、OptoLyzer、 PIC、PICSTART、PIC32 logo、RightTouch、SpyNIC、SST、SSTLogo、SuperFlash および UNI/O は米国およびその他の国に

おける Microchip Technology Incorporated の登録商標です。

Embedded Control Solutions Company、mTouch は米国に

おける Microchip Technology Incorporated の登録商標です。

Analog-for-the-Digital Age、BodyCom、chipKIT、chipKIT logo、 CodeGuard、dsPICDEM、dsPICDEM.net、ECAN、In-Circuit Serial Programming、ICSP、Inter-Chip Connectivity、KleerNet、KleerNet logo、MiWi、motorBench、MPASM、MPF、MPLAB Certified logo、 MPLIB、MPLINK、MultiTRAK、NetDetach、Omniscient Code Generation、PICDEM、PICDEM.net、PICkit、PICtail、RightTouchlogo、REAL ICE、SQI、Serial Quad I/O、Total Endurance、 TSHARC、USBCheck、VariSense、ViewSpan、WiperLock、Wireless DNA、および ZENA は米国およびその他の Microchip Technology Incorporated の商標です。

SQTP は米国における Microchip Technology Incorporated の

サービスマークです。

Silicon Storage Technology は他の国における Microchip Technology Inc. の登録商標です。

GestIC は Microchip Technology Inc. の子会社である Microchip Technology Germany II GmbH & Co. & KG 社の他の国における

登録商標です。

その他本書に記載されている商標は各社に帰属します。

© 2016, Microchip Technology Incorporated, All Rights Reserved.

ISBN: 978-1-63277-596-2

ary DS60001344A_JP - p.22-121

Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

Page 122: セクション 22. 高速 12 ビット逐次比較型レジスタ …ww1.microchip.com/downloads/jp/DeviceDoc/60001344A_JP.pdfセクション22. 高速12ビット逐次比較型レジスタ(SAR)

DS60001344A_JP - p.22-122 Preliminary 2016 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.comアトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455オースティン、TXTel: 512-257-3370 ボストンWestborough, MATel: 774-760-0087 Fax: 774-760-0088シカゴItasca, ILTel: 630-285-0071 Fax: 630-285-0075クリーブランドIndependence, OHTel: 216-447-0464Fax: 216-447-0643ダラスAddison, TXTel: 972-818-7423 Fax: 972-818-2924デトロイトNovi, MI Tel: 248-848-4000ヒューストン、TXTel: 281-894-5983インディアナポリスNoblesville, INTel: 317-773-8323Fax: 317-773-5453ロサンゼルスMission Viejo, CATel: 949-462-9523 Fax: 949-462-9608ニューヨーク、NY Tel: 631-435-6000サンノゼ、CATel: 408-735-9110カナダ - トロント

Tel: 905-673-0699 Fax: 905-673-6509

アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2943-5100Fax: 852-2401-3431オーストラリア - シドニー

Tel: 61-2-9868-6733Fax: 61-2-9868-6755中国 - 北京

Tel: 86-10-8569-7000Fax: 86-10-8528-2104中国 - 成都

Tel: 86-28-8665-5511Fax: 86-28-8665-7889中国 - 重慶

Tel: 86-23-8980-9588Fax: 86-23-8980-9500中国 - 東莞

Tel: 86-769-8702-9880中国 - 杭州

Tel: 86-571-8792-8115Fax: 86-571-8792-8116中国 - 香港 SARTel: 852-2943-5100 Fax: 852-2401-3431中国 - 南京

Tel: 86-25-8473-2460Fax: 86-25-8473-2470中国 - 青島

Tel: 86-532-8502-7355Fax: 86-532-8502-7205中国 - 上海

Tel: 86-21-5407-5533Fax: 86-21-5407-5066中国 - 瀋陽

Tel: 86-24-2334-2829Fax: 86-24-2334-2393中国 - 深圳

Tel: 86-755-8864-2200 Fax: 86-755-8203-1760中国 - 武漢

Tel: 86-27-5980-5300Fax: 86-27-5980-5118中国 - 西安

Tel: 86-29-8833-7252Fax: 86-29-8833-7256

アジア / 太平洋中国 - 厦門

Tel: 86-592-2388138 Fax: 86-592-2388130中国 - 珠海

Tel: 86-756-3210040 Fax: 86-756-3210049インド - バンガロール

Tel: 91-80-3090-4444 Fax: 91-80-3090-4123インド - ニューデリー

Tel: 91-11-4160-8631Fax: 91-11-4160-8632インド - プネ

Tel: 91-20-3019-1500日本 - 大阪

Tel: 81-6-6152-7160Fax: 81-6-6152-9310日本 - 東京

Tel: 81-3-6880-3770 Fax: 81-3-6880-3771韓国 - 大邱

Tel: 82-53-744-4301Fax: 82-53-744-4302韓国 - ソウル

Tel: 82-2-554-7200Fax: 82-2-558-5932 または

82-2-558-5934マレーシア - クアラルンプール

Tel: 60-3-6201-9857Fax: 60-3-6201-9859マレーシア - ペナン

Tel: 60-4-227-8870Fax: 60-4-227-4068フィリピン - マニラ

Tel: 63-2-634-9065Fax: 63-2-634-9069シンガポールTel: 65-6334-8870Fax: 65-6334-8850台湾 - 新竹

Tel: 886-3-5778-366Fax: 886-3-5770-955台湾 - 高雄

Tel: 886-7-213-7830台湾 - 台北

Tel: 886-2-2508-8600 Fax: 886-2-2508-0102タイ - バンコク

Tel: 66-2-694-1351Fax: 66-2-694-1350

ヨーロッパオーストリア - ヴェルス

Tel: 43-7242-2244-39Fax: 43-7242-2244-393デンマーク - コペンハーゲン

Tel: 45-4450-2828 Fax: 45-4485-2829フランス - パリ

Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79ドイツ - デュッセルドルフ

Tel: 49-2129-3766400 ドイツ - ミュンヘン

Tel: 49-89-627-144-0 Fax: 49-89-627-144-44ドイツ - プフォルツハイム

Tel: 49-7231-424750 イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781イタリア - ヴェニス

Tel: 39-049-7625286 オランダ - ドリューネン

Tel: 31-416-690399 Fax: 31-416-690340ポーランド - ワルシャワ

Tel: 48-22-3325737 スペイン - マドリッド

Tel: 34-91-708-08-90Fax: 34-91-708-08-91スウェーデン - ストックホルム

Tel: 46-8-5090-4654イギリス - ウォーキンガム

Tel: 44-118-921-5800Fax: 44-118-921-5820

各国の営業所とサービス

07/14/15