セクション 65. 12 ビット高速パイプライン A/D コ...

54
© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12 ビット 高速パイプライン A/D コンバータ 65 セクション 65. 12 ビット高速パイプライン A/D コンバータ ハイライト 本セクションには下記の主要項目を記載しています。 65.1 はじめに ..................................................................................................................... 65-2 65.2 A/D に関する技術用語と変換シーケンス ................................................................... 65-4 65.3 レジスタ ..................................................................................................................... 65-5 65.4 動作の概要 ............................................................................................................... 65-21 65.5 A/D データ格納バッファ .......................................................................................... 65-25 65.6 A/D トリガイベント ................................................................................................. 65-27 65.7 割り込み ................................................................................................................... 65-27 65.8 初期化 ...................................................................................................................... 65-29 65.9 サンプルリスト ........................................................................................................ 65-32 65.10 複数チャンネル動作 ................................................................................................. 65-37 65.11 しきい値検出動作 .................................................................................................... 65-38 65.12 サンプリング / 積算動作 .......................................................................................... 65-44 65.13 リセットの影響 ........................................................................................................ 65-47 65.14 スリープおよびアイドル中の動作 ........................................................................... 65-47 65.15 レジスタマップ ........................................................................................................ 65-48 65.16 設計のヒント ........................................................................................................... 65-50 65.17 関連アプリケーション ノート ................................................................................. 65-51 65.18 改訂履歴 ................................................................................................................... 65-52 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Transcript of セクション 65. 12 ビット高速パイプライン A/D コ...

Page 1: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

セクション 65. 12 ビット高速パイプライン A/D コンバータ

12ビット

高速パイプライン

A/D

コンバータ

65

ハイライト

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

65.1 はじめに ..................................................................................................................... 65-2

65.2 A/D に関する技術用語と変換シーケンス ................................................................... 65-4

65.3 レジスタ ..................................................................................................................... 65-5

65.4 動作の概要 ............................................................................................................... 65-21

65.5 A/D データ格納バッファ .......................................................................................... 65-25

65.6 A/D トリガイベント ................................................................................................. 65-27

65.7 割り込み ................................................................................................................... 65-27

65.8 初期化 ...................................................................................................................... 65-29

65.9 サンプルリスト ........................................................................................................ 65-32

65.10 複数チャンネル動作 ................................................................................................. 65-37

65.11 しきい値検出動作 .................................................................................................... 65-38

65.12 サンプリング / 積算動作 .......................................................................................... 65-44

65.13 リセットの影響 ........................................................................................................ 65-47

65.14 スリープおよびアイドル中の動作 ........................................................................... 65-47

65.15 レジスタマップ ........................................................................................................ 65-48

65.16 設計のヒント ........................................................................................................... 65-50

65.17 関連アプリケーション ノート ................................................................................. 65-51

65.18 改訂履歴 ................................................................................................................... 65-52

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1

Page 2: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.1 はじめに

12 ビット高速パイプライン A/D コンバータ モジュールは、従来の PIC24F A/D コンバータからの発展型であり、速度の向上と動作の自動化に向けた数多くの拡張機能を備えています。この ADC モジュールは、最速動作時に A/D クロック周期あたり 1 回のサンプリングが可能です。また、豊富な自動サンプリングおよび積算オプションに対応するため、CPU に負荷をかける事なく非常に複雑な動作を実行できます。また、他の内蔵アナログ モジュールおよび構成可能データ格納バッファとのより密接な連携が可能です。

12 ビット高速パイプライン A/D コンバータは下記の特長を備えます。

• 最大 10 Msps の変換速度

• 最大 50 チャンネルのアナログ シングルエンド入力、または、最大 15 チャンネルの差動入力ペア

• 複数の内部参照入力チャンネル

• 複数の内部および外部参照電圧オプション

• 12 ビットの変換分解能

• 変換結果を保存前に評価する自動しきい値検出 ( スキャンおよび比較 ) 動作

• 最大で4つのサンプルリストを使って自由にプログラミング可能な拡張チャンネル スキャンシーケンス

• 変換結果の自動的な積算

• 選択可能な変換トリガ源

• 構成可能な 32 ワードの内部データ格納バッファ

• 4 種類の変換結果フォーマット

• 設定可能な割り込み生成

• 拡張されたモジュール専用省電力オプションによる CPU スリープ / アイドル中および Dozeモード中の A/D 動作

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

DS30686A_JP - p. 65-2 © 2014 Microchip Technology Inc.

Page 3: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

図 65-1: 12 ビット高速パイプライン A/D コンバータのブロック図

AVREF+

12-Bit ADC

AN48

AN49

AN16

AN47

AN14

AN15

AN0

AN1

AN2

AVREF-

Sample Control

AVSS

AVDD

ADRES31:ADRES0

ADCON1

ADCON2

ADCON3

ACCONL

ACCONH

ADCHITL

Control Logic

Data Formatting

Input MUX Control

Internal Data Bus

16

VR+VR-

VINH

VINL

VR+

VR-VR

Sel

ect

VBG

ADCHITH

Note 1: デバイスに実装されているアナログ入力チャンネルと参照オプションはデバイスごとに異なります。ご使用にな

るデバイスの実装オプションについては、対応するデータシートを参照してください。

CTMU

VBAT

AVSS

AVDD

ADSTATH

VBG/2

Internal

DMA Data Bus

16

ADSTATL

BGBUF2

Temp

OPA1O

OPA2O

andSample ListSequencing

Inpu

t C

hann

el M

UX

ADLnCONH

ADLnCONL

ADLnSTAT

ADLnPTR

ADTBLn

ADTnH1H

ADTnH1L

ADLnMSEL3

ADLnMSEL2

ADLnMSEL1

ADLnMSEL0

(n = 0-3)

Threshold Detectand Compare Data

S/H(Result Buffer)

(Note 1)

Band GapReferenceSource(s)

Conversion Logic

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-3

Page 4: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.2 A/D に関する技術用語と変換シーケンス

サンプリング時間とは、A/D モジュールのサンプル / ホールド (S/H) コンデンサがアナログ入力ピンに接続されている時間です。サンプリング時間は、トリガイベントへの応答として A/Dコンバータのハードウェアで自動的に開始 / 終了する事も、プログラムで開始 / 終了を直接制御する事もできます。S/H コンデンサで十分な A/D 変換精度を確保するには、最小サンプリング時間要件を満たす必要があります。

A/D トリガイベントによってサンプリング時間が始まります。サンプリング時間が終了すると、ハードウェアは自動的に A/D 変換を始めます。A/D トリガは、各種ハードウェア トリガ源から生成する事も、ソフトウェアで直接制御する事もできます。

変換時間とは、A/D コンバータが S/H コンデンサのホールド電圧を変換するのに要する時間です。変換が完了すると、その結果値は A/D データ格納バッファの 1 つに転送されます。変換結果が読み出し可能となった時点で、CPU 割り込みを生成する事もできます。図 65-2 に、基本的な変換シーケンスと、各処理時間の関係を示します。

図 65-2: A/D サンプリング / 変換シーケンス

サンプリング時間 A/D 変換時間

A/D シーケンス総時間

A/D トリガ ( ハードウェアまたはソフト

ウェア イベント )によってサンプリング

処理が始まる。

変換が完了し、結果が A/D バッファレジ

スタに書き込まれる。 必要に応じて割り

込みを生成できる。

サンプリング期間が終了し、S/H コン

デンサが入力から切り離され、変換処

理が始まる。

DS30686A_JP - p. 65-4 © 2014 Microchip Technology Inc.

Page 5: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.3 レジスタ

パイプライン A/D は最大で 151 個のレジスタを実装します ( レジスタの実装数はデバイスごとに異なります )。これらの大部分はサンプルリスト制御レジスタと A/D データ格納バッファレジスタとして使われます。このモジュールを使って変換結果を生成するには、少なくとも 6 個のレジスタを設定する必要があります。

ご使用になるデバイスに実装されているレジスタと機能については、対応するデバイス データシートを参照してください。

65.3.1 制御レジスタ

フル実装のパイプライン A/D コンバータは 113 個の制御レジスタを使います。

5 個のレジスタがモジュールのグローバルな動作を制御します。

• ADCON1 ~ ADCON3 ( レジスタ 65-1 ~レジスタ 65-3) は、基本的な A/D 動作 ( サンプリング クロックレート、参照電圧の選択、チャージポンプの動作、データ格納バッファの構成、データ フォーマット、サンプルリストの使用 ) を制御します。

• ADSTATH ( レジスタ 65-4) はモジュール機能のステータスフラグを格納し、ADSTATL ( レジスタ 65-5) は割り込みフラグを格納します。

96 個のレジスタがサンプルリストの選択 / 構成 / 実行を制御します。

• ADLnCONH および ADLnCONL (n = 0 ~ 3) プロトタイプ レジスタ (レジスタ 65-6とレジスタ 65-7) は、サンプルリストの動作 ( リストのサイズ、トリガ源、しきい値検出および比較モード、割り込み生成等 ) を設定します。4 つあるサンプルリストのそれぞれに対して 1 組の ADLnCONL および ADLnCONH レジスタが存在します。

• ADLnSTAT (n = 0 ~ 3) プロトタイプ レジスタ ( レジスタ 65-8) は、サンプルリストのステータスと割り込みフラグを格納します。4 つあるサンプルリストのそれぞれに対して 1 つのADLnSTAT レジスタが存在します。

• ADLnPTR (n = 0 ~ 3) プロトタイプ レジスタ ( レジスタ 65-9) は、サンプルリストのアドレスポインタを格納します。各サンプルリストに対して 1 つの ADLnPTR レジスタが存在します。

• ADTBLn (n = 0 ~ 63) プロトタイプ レジスタ ( レジスタ 65-10) は、サンプルリスト内の各アイテムのサンプリングおよびチャンネル選択を設定します。実装されている全てのレジスタは、4 つあるサンプルリストのいずれに対しても使えます。

• ADLnMSELx (n = 0~3、x = 0~3)プロトタイプ レジスタ(レジスタ 65-17~レジスタ 65-20)は、サンプルリストで複数チャンネル サンプリング向けに使うアナログ チャンネルを選択します。 4 つあるサンプルリストのそれぞれに対して 4 つの ( 従って全部で 16 個の )ADLnMSELx レジスタ (ADLnMSEL0 ~ ADLnMSEL3) が存在します。

12 個のレジスタは、アキュムレータとしきい値検出動作を制御します。

• ACCONH と ACCONL ( レジスタ 65-11 とレジスタ 65-12) は、ハードウェア アキュムレータの動作を設定します。

• ADCHITH と ADCHITL ( レジスタ 65-13 とレジスタ 65-14) は、しきい値比較動作中の各サンプルリスト アイテムの比較結果を示します。

• ADTHnH および ADTHnL (n = 0 ~ 3) プロトタイプ レジスタ ( レジスタ 65-15 とレジスタ 65-16) は、サンプルリストに対するしきい値比較動作向けに、それぞれ上限値と下限値を設定します。4 つあるサンプルリストのそれぞれに対して 2 つのレジスタ (ADTHnH とADTHnL) が存在します ( 従ってこれらのレジスタは全部で 8 個存在します )。

• ADTMRPR は、トリガタイマの周期を定義する 16 ビットカウンタです。詳細は 65.6.1「内部トリガタイマ」を参照してください。

65.3.2 データおよびバッファレジスタ

フル実装のパイプライン A/D コンバータは 35 個のデータレジスタを使います。

ADRES0 ~ ADRES31 は、メモリに配置されたデータ格納バッファです。動作モードとバッファモードの選択に応じて、データ格納バッファの番号はサンプルリスト内の特定のアイテムまたはアイテムのサンプリング順位に対応します。変換分解能は 12 ビットですが、データ格納バッファは 16 ビット幅を有し、各種のデータ フォーマット オプションに対応します。詳細は 65.5.2「バッファデータのフォーマット」を参照してください。デバイスによっては、データ格納バッファが 32 個よりも少ない場合があります。

ACCRESH と ACCRESL は、ハードウェア アキュムレータ動作の 32 ビット結果を格納します。詳細は 65.12「サンプリング / 積算動作」を参照してください。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-5

Page 6: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-1: ADCON1: A/D 制御レジスタ 1

R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADON — ADSIDL ADSLP FORM3 FORM2 FORM1 FORM0

bit 15 bit 8

R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0 R/W-0

PUMPEN ADCAL(2) — — — — — PWRLVL(3)

bit 7 bit 0

凡例 :

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

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

bit 15 ADON: A/D モジュール イネーブルビット

1 = モジュールを有効にする0 = モジュールを無効にする ( 無効にしてもレジスタの読み書きは可能 )

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

bit 13 ADSIDL: アイドル中 A/D 停止制御ビット

1 = CPU アイドル中に動作を停止する0 = CPU アイドル中も動作を継続する

bit 12 ADSLP: スリープ中 A/D サスペンド制御ビット

1 = CPU スリープ中も動作を継続する0 = CPU スリープ中はトリガとクロックを無視する

bit 11-8 FORM<3:0>: データ出力フォーマットビット

1xxx = 未実装 ( 使用禁止 )0111 = 符号付き小数 (sddd dddd dddd 0000)0110 = 符号なし小数 (dddd dddd dddd 0000)0101 = 符号付き整数 (ssss sddd dddd dddd) 0100 = 符号なし整数 (0000 dddd dddd dddd )0011 = 符号付き小数 (sddd dddd dddd 0000)0010 = 符号なし小数 (dddd dddd dddd 0000)0001 = 符号付き整数 (ssss sddd dddd dddd)0000 = 符号なし整数、RAW データ (0000 dddd dddd dddd)

bit 7 PUMPEN: アナログ チャンネル スイッチ用チャージポンプ イネーブルビット

1 = スイッチ用チャージポンプを有効にする ( スイッチ インピーダンスを下げる )(1)

0 = スイッチ用チャージポンプを無効にする

bit 6 ADCAL: A/D 内部アナログ校正ビット (2)

1 = 内部アナログ校正を開始する0 = 動作なし

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

bit 0 PWRLVL: 消費電力レベル選択ビット (3)

1 = フルパワー ( 最大変換レート、許容 A/D クロックレート : 1 MHz ~ 10 MHz)0 = 低消費電力 ( 低変換レート、許容 A/D クロックレート : 1 MHz ~ 2.5 MHz)

Note 1: AVDD< 2.5 V の場合、チャンネル スイッチ チャージポンプの使用を推奨します。

2: ADCAL ビットは、セットされた時点から少なくとも 1 TAD 間はセット状態を保持し、その後ハードウェアによって自動的にクリアされます。このビットを手動でクリアしても、校正ルーチンは必ずしもキャンセルされません。校正が完了した事は ADSTATH<1> = 1によって示されます。

3: PWRLVL を「1」にセットした場合、次の A/D 変換を開始する前に 50 s 間の待機が必要です。

DS30686A_JP - p. 65-6 © 2014 Microchip Technology Inc.

Page 7: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-2: ADCON2: A/D 制御レジスタ 2

R/W-0 R/W-0 U-0 R/W-0 U-0 R/W-0 R/W-1 R/W-1

PVCFG1 PVCFG0 — NVCFG0 — BUFORG ADPWR1(1) ADPWR0(1)

bit 15 bit 8

R/W-0 R/W-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0

BUFINT1(2) BUFINT0(2) — — — — REFPUMP(3)

ADHALT(1)

bit 7 bit 0

凡例 :

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

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

bit 15-14 PVCFG<1:0>: A/D コンバータ ADREF+ 参照電圧コンフィグレーション ビット

11 =未実装10 =内部バンドギャップ電圧源01 =外部 VREF+00 =AVDD

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

bit 12 NVCFG0: A/D コンバータ ADREF- 参照電圧コンフィグレーション ビット

1 = 外部 VREF-0 = AVSS

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

bit 10 BUFORG: 内部バッファ構成制御ビット

1 = 内部バッファをインデックス付きバッファとして構成する(チャンネル nの変換結果をレジスタnに保存する )

0 = 内部バッファを深さ n 段の FIFO バッファとして構成する

bit 9-8 ADPWR<1:0>: A/D 電源モード選択ビット ( トリガイベント待機時 )(1)

ADHALT = 1の場合 :xx = 全ての電源管理モードでモジュールはパワーダウンしたままになる

ADHALT = 0の場合 :11 = 全ての電源管理モードでモジュールはアクティブなままになる10 = 予約済み01 = スリープおよびアイドル中にモジュールはパワーダウンする ( 変換動作中を除く )00 = 変換動作中を除きモジュールは常にパワーダウンする

bit 7-6 BUFINT<1:0>: FIFO バッファ割り込み制御ビット (2)

11 = バッファがフル時に割り込んで停止する ( ハードウェアが SLEN ビットをクリアする )10 = バッファが 1/2 フル時に割り込みを生成する01 = バッファが 1/4 フル時に割り込みを生成する00 = 割り込みなし

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

bit 1 REFPUMP: A/D 参照電圧チャージポンプ制御ビット (3)

1 = 参照電圧チャージポンプを有効にして内部サンプリング エラーを最小限にする0 = 参照電圧チャージポンプを無効にする ( 全ての参照電圧レベルに適する )

bit 0 ADHALT: A/D サスペンドビット (1)

1 = 全てのモードでトリガとクロックを無視する ( セット時に実行中であった変換は完了する )0 = 通常動作 ( サスペンド位置から動作を再開する )

Note 1: 一部のデバイスは ADHALT または ADPWR<1:0> ( もしくはその両方 ) を実装しておらず、これらのビット定義が異なる場合があります。詳細は各デバイスのデータシートを参照してください。

2: バッファがインデックス付きモード (BUFORG = 1) で動作する場合、BUFINT<1:0> は「00」に固定されます。

3: このビットは、A/D 参照電圧が (0.65 * AVDD) よりも低い場合にのみ使用します。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-7

Page 8: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-3: ADCON3: A/D 制御レジスタ 3

R/W-0 U-0 U-0 U-0 R/W-0, HC R/W-0, HC R/W-0, HC R/W-0, HC

ADRC(1) — — — SLEN3 SLEN2 SLEN1 SLEN0

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCS7(2) ADCS6(2) ADCS5(2) ADCS4(2) ADCS3(2) ADCS2(2) ADCS1(2) ADCS0(2)

bit 7 bit 0

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

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

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

bit 15 ADRC: A/D 変換クロック源 (TSRC) ビット (1)

1 = FRC から変換クロックを供給する (TSRC = TFRC)0 = システムクロックから変換クロックを供給する (TSRC = TSYS)

bit 14-12 未実装 :「0」として読み出し

bit 11 SLEN3: A/D サンプルリスト 3 イネーブルビット

1 = このリストのサンプリングを有効にする (ADL3CONL<12:8> で定義されているトリガを処理する )0 = このリストのサンプリングを無効にする

bit 10 SLEN2: A/D サンプルリスト 2 イネーブルビット

1 = このリストのサンプリングを有効にする (ADL2CONL<12:8> で定義されているトリガを処理する )0 = このリストのサンプリングを無効にする

bit 9 SLEN1: A/D サンプルリスト 1 イネーブルビット

1 = このリストのサンプリングを有効にする (ADL1CONL<12:8> で定義されているトリガを処理する )0 = このリストのサンプリングを無効にする

bit 8 SLEN0: A/D サンプルリスト 0 イネーブルビット

1 = このリストのサンプリングを有効にする (ADL0CONL<12:8> で定義されているトリガを処理する )0 = このリストのサンプリングを無効にする

bit 7-0 ADCS<7:0>: A/D 変換クロック プリスケーラ ビット (2)

TAD = TSRC * (2 * ADCS<7:0>)11111111 11111110 ··· = 予約済み00100010 00100001

00100000 = 32 * TSRC

00011111 = 31 * TSRC

···00000010 = 4 * TSRC

00000001 = 2 * TSRC

00000000 = TSRC

Note 1: スリープ中もモジュールを動作させる場合、このビットをセットする必要があります。

2: 最終的な変換クロック周波数は 1 MHz ~ 10 MHz のレンジ内である事が必要です。

DS30686A_JP - p. 65-8 © 2014 Microchip Technology Inc.

Page 9: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-4: ADSTATH: A/D ステータス レジスタ HIGH

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

bit 15 bit 8

U-0 U-0 U-0 U-0 U-0 R-0 R-0 R-0

— — — — — PUMPST ADREADY ADBUSY

bit 7 bit 0

凡例 :

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

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

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

bit 2 PUMPST: A/D 昇圧ポンプステータスビット

1 = A/D 昇圧ポンプはアクティブ0 = A/D 昇圧ポンプはアイドル状態

bit 1 ADREADY: A/D アナログ レディービット

1 = A/D のアナログ部は内部校正済みで動作準備が完了している0 = A/D のアナログ部の動作準備は完了していない

bit 0 ADBUSY: A/D ビジービット

1 = A/D 変換を実行中0 = A/D はアイドル状態

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-9

Page 10: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-5: ADSTATL: A/D ステータス レジスタ LOW

U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0

— — — — — — — SLOV

bit 15 bit 8

U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — BUFIF ACCIF SL3IF(1) SL2IF(1) SL1IF(1) SL0IF(1)

bit 7 bit 0

凡例 :

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

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

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

bit 8 SLOV: A/D サンプルリスト エラーイベント ビット

1 = バッファ オーバーフローが発生してデータが失われた

0 = バッファ オーバーフローは発生していない

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

bit 5 BUFIF: 内部バッファ割り込みイベントビット

1 = バッファが BUFINT<1:0> で定義されているレベルまで書き込まれた

0 = バッファは上記レベルまで書き込まれていない

bit 4 ACCIF: アキュムレータ カウンタ割り込みイベントビット

1 = アキュムレータ カウンタがゼロまでカウントダウンした

0 = アキュムレータ カウンタはゼロまでカウントダウンしていない

bit 3 SL3IF: A/D サンプルリスト 3 割り込みイベントビット (1)

1 = サンプルリスト 3 で割り込みイベント (ADL3CONH<14:13> で定義 ) が発生した

0 = 割り込みイベントは発生していない

bit 2 SL2IF: A/D サンプルリスト 2 割り込みイベントビット (1)

1 = サンプルリスト 2 で割り込みイベント (ADL2CONH<14:13> で定義 ) が発生した

0 = 割り込みイベントは発生していない

bit 1 SL1IF: A/D サンプルリスト 1 割り込みイベントビット (1)

1 = サンプルリスト 1 で割り込みイベント (ADL1CONH<14:13> で定義 ) が発生した

0 = 割り込みイベントは発生していない

bit 0 SL0IF: A/D サンプルリスト 0 割り込みイベントビット (1)

1 = サンプルリスト 0 で割り込みイベント (ADL0CONH<14:13> で定義 ) が発生した

0 = 割り込みイベントは発生していない

Note 1: これらのビットは、対応する ADLnSTAT レジスタの ADLIF フラグビットの状態を反映します。ADLIFビットの状態が変化すると、SLxIF ビットも同時に変化します。

DS30686A_JP - p. 65-10 © 2014 Microchip Technology Inc.

Page 11: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-6: ADLnCONH: A/D サンプルリスト n 制御レジスタ HIGH

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ASEN SLINT1 SLINT0 WM1 WM0 CM2 CM1 CM0

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CTMEN PINTRIS MULCHEN SAMC4 SAMC3 SAMC2 SAMC1 SAMC0

bit 7 bit 0

凡例 :

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

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

bit 15 ASEN: A/D 自動スキャン イネーブルビット 1 = 自動スキャン : トリガイベントが発生するたびに、選択されている入力の全てを順番にサンプリ

ング / 変換する0 = シーケンシャル スキャン : トリガイベントが発生するたびに、次に選択されている入力をサンプ

リング / 変換する

bit 14-13 SLINT<1:0>: 割り込みトリガ制御ビット ASEN = 1の場合 :11 = 一致が発生した場合にのみ、自動スキャン完了後に割り込みを生成する10 = 一致が発生するたびに割り込みを生成する01 = 自動スキャン完了後に割り込みを生成する00 = 割り込みなし

ASEN = 0の場合 :11 = 予約済み10 = サンプルリスト内の全てのレコード (SLSIZE<5:0> + 1個のサンプル )が変換された後に割り込み

を生成する01 = 各サンプルの変換後に割り込みを生成する00 = 割り込みなし

bit 12-11 WM<1:0>: 内部バッファ書き込みモードビット

11 = 予約済み10 = 変換結果を保存しない ( 通常、しきい値比較用にのみ使用 )01 = 一致発生時に変換結果を保存する ( 通常、しきい値比較用にのみ使用 )00 = 全ての変換結果を対応する ADRESn レジスタに保存する

bit 10-8 CM<2:0>: しきい値比較ビット 111 = 予約済み110 = 予約済み101 = 予約済み100 = ウィンドウ外側一致 : A/D 結果 < 下側しきい値、または、A/D 結果 >上側しきい値011 = ウィンドウ内側一致 : 下側しきい値 < A/D 結果 < 上側しきい値010 = 「より大きい」一致 : A/D 変換結果 > しきい値001 = 「より小さい」一致 : A/D 変換結果 < しきい値000 = 一致を無効にする

bit 7 CTMEN: A/D CTMU 電流源イネーブルビット

1 = サンプリング時にCTMUを有効にし、選択されたアナログ入力を駆動するための電流源として使う0 = 上記の目的で CTMU を使わない

bit 6 PINTRIS: チャンネル TRIS 強制ビット

1 = チャンネルに割り当てられているピンをサンプリング時にハイインピーダンス モードにする0 = チャンネルに割り当てられているピンをサンプリング時に駆動する

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-11

Page 12: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

bit 5 MULCHEN: 複数チャンネル イネーブルビット

1 = ADLnMSEL レジスタで選択されている複数のチャンネルを並列に接続して一緒にサンプリングする ( サンプルリストのエントリは無視する )

0 = ADLnMSELレジスタで選択されているチャンネルを無視する (サンプルリストに基づいて1チャンネルずつ選択する )

bit 4-0 SAMC<4:0>: サンプル / ホールド コンデンサ充電時間 ( アクイジション時間 ) ビット11111 = 31 TAD

11110 = 30 TAD

···00001 = 1 TAD

00000 = 0.5 TAD

レジスタ 65-6: ADLnCONH: A/D サンプルリスト n 制御レジスタ HIGH ( 続き )

DS30686A_JP - p. 65-12 © 2014 Microchip Technology Inc.

Page 13: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-7: ADLnCONL: A/D サンプルリスト n 制御レジスタ LOW

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SLEN SAMP(1) SLENCLR SLTSRC4(2) SLTSRC3(2) SLTSRC2(2) SLTSRC1(2) SLTSRC0(2)

bit 15 bit 8

R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

THSRC — SLSIZE5 SLSIZE4 SLSIZE3 SLSIZE2 SLSIZE1 SLSIZE0

bit 7 bit 0

凡例 :

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

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

bit 15 SLEN: A/D トリガ制御イネーブルビット

1 = 選択されているトリガは対応するアナログ入力のサンプリングを開始する0 = 選択されているトリガは対応するアナログ入力のサンプリングを開始しない

bit 14 SAMP: A/D 手動変換トリガビット (1)

1 = 選択されているチャンネルのサンプリングを開始する0 = SLTSRC<4:0> の定義に従って手動トリガイベントを生成する

bit 13 SLENCLR: A/D トリガ クリアビット

1 = このサンプルリストによってトリガが生成された後に SLEN ビットはハードウェアによってクリアされる

0 = SLEN ビットはソフトウェアによってのみクリアされる

bit 12-8 SLTSRC<4:0>: トリガ源選択ビット (2)

11111....=未実装、使用不可1000110000 = Timer1 A/D トリガ01111 = コンパレータ 301110 = コンパレータ 201101 = コンパレータ 101100 = 入力キャプチャ 401011 = 入力キャプチャ 101010 = 出力コンペア 301001 = 出力コンペア 201000 = 出力コンペア 100111 = 内部周期トリガイベント ( 周期は ADTMRPR レジスタで定義 )00110 = CTMU00101 = Timer200100 = Timer1 Sync00011 = INT000010 = 手動トリガイベント : SAMP = 0の場合に ADC クロックの毎周期でトリガを生成する00001 = 手動トリガイベント : SAMP = 0かつACCONH<7> = 1の場合にADCクロックの毎周期でト

リガを生成する00000 = 手動トリガイベント : SAMP がクリアされた時に単発トリガを生成する

bit 7 THSRC: しきい値選択ビット

1 = サンプルリストしきい値レジスタ内の値をしきい値比較用に使う0 = バッファレジスタ内の値をしきい値比較用に使う

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

bit 5-0 SLSIZE<5:0>: サンプルリスト サイズビット

サンプルリストに含めるADTBLnレジスタの数を指定します(サンプルリストのサイズ = SLSIZE<5:0> + 1)

Note 1: 手動トリガモード (SLTSRC<4:0> = 00010、00001、00000のいずれか ) にのみ適用します。

2: これは大部分のデバイスに対応する標準的なビット定義です。詳細なビット定義は各デバイスのデータシートを参照してください。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-13

Page 14: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-8: ADLnSTAT: A/D サンプルリスト n ステータス レジスタ

R-0 R-0 U-0 U-0 U-0 U-0 U-0 U-0

ADTACT LBUSY — — — — — —

bit 15 bit 8

R-0 U-0 R/W-0, HS U-0 U-0 U-0 U-0 U-0

ADTDLY — ADLIF(1) — — — — —

bit 7 bit 0

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

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

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

bit 15 ADTACT: A/D トリガイベント アクティブビット

1 = トリガイベントはアサートされている0 = トリガイベントはアサートされていない

bit 14 LBUSY: A/D トリガ制御ビジービット

1 = A/D モジュールはこのリストのトリガに対応するサンプルエントリの変換を実行中0 = A/D モジュールは上記の変換を実行中ではない

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

bit 7 ADTDLY: A/D トリガ遅延フラグビット

1 = より高優先度のトリガによってこのトリガは遅延した0 = 上記の遅延は発生していない

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

bit 5 ADLIF: A/D サンプルリスト割り込みイベント フラグビット (1)

1 = サンプルリスト n で割り込みイベント (ADLnCONH<14:13> で定義 ) が発生した0 = 割り込みイベントは発生していない

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

Note 1: ADLIF は ADSTATL レジスタ内の対応する SLxIF フラグビットの状態を反映します。このビットをセットまたはクリアすると、SLxIF の状態も同時に変化します。

DS30686A_JP - p. 65-14 © 2014 Microchip Technology Inc.

Page 15: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-9: ADLnPTR: A/D サンプルリスト n ポインタレジスタ

U-0 R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0 R/W-0 R/W-0

— ADNEXT6 ADNEXT5 ADNEXT4 ADNEXT3 ADNEXT2 ADNEXT1 ADNEXT0

bit 15 bit 8

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

bit 7 bit 0

凡例 : HSC = ハードウェア セット / クリア可能ビット

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

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

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

bit 14-8 ADNEXT<6:0>: サンプルリスト内次回 A/D 変換エントリ ポインタビット

サンプルリストの開始アドレスにこの値を加算する事で、次回のトリガイベントで使う ADTBLn レジスタのアドレスが決まります。

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

レジスタ 65-10: ADTBLn: A/D サンプルテーブル エントリ n レジスタ

R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0 U-0

UCTMU DIFF — — — — — —

bit 15 bit 8

U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— ADCH6 ADCH5 ADCH4 ADCH3 ADCH2 ADCH1 ADCH0

bit 7 bit 0

凡例 :

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

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

bit 15 UCTMU: エントリ変換時 CTMU イネーブルビット

1 = このエントリのチャンネル変換時に CTMU を有効にする0 = このエントリのチャンネル変換時は CTMU を無効にする

bit 14 DIFF: 差動入力選択ビット

1 = このエントリのアナログ入力を差動ペアとしてサンプリングする0 = このエントリのアナログ入力をシングルエンドとしてサンプリングする

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

bit 6-0 ADCH<6:0>: A/D チャンネル エントリ選択ビット

7 ビットの各組み合わせは、シングルエンド アナログ チャンネルと参照電圧の組み合わせ、または、差動入力ペアを表します。

チャンネル エントリの組み合わせはデバイスごとに異なり、デバイスが実際に実装しているアナログチャンネルの総数によって決まります。詳細は各デバイスのデータシートを参照してください。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-15

Page 16: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-11: ACCONH: アキュムレータ制御レジスタ HIGH

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

bit 15 bit 8

R/W-0, HC R/W-0 U-0 U-0 U-0 U-0 U-0 U-0

ACEN(1) ACIE — — — — — —

bit 7 bit 0

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

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

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

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

bit 7 ACEN: アキュムレータ イネーブルビット (1) 1 = アキュムレータを有効にする (トリガイベント発生時に現在のサンプルリスト エントリをサンプ

リング / 変換し、結果を ACRES の内容に加算する )0 = アキュムレータ処理は開始されていない、または完了した ( このビットは、所定の積算数に達する

とハードウェアによってクリアされる )

bit 6 ACIE: アキュムレータ割り込みイネーブルビット

1 = アキュムレータが 0 までデクリメントした時点で割り込みイベントを生成する0 = アキュムレータ割り込みイベントを無効にする

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

Note 1: 予期せぬ結果や誤った結果を防ぐため、ACENT がセットされている時に ACCONH または ACCONL に書き込まない事が必要です。

レジスタ 65-12: ACCONL: アキュムレータ制御レジスタ LOW

U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — TBLSEL5 TBLSEL4 TBLSEL3 TBLSEL2 TBLSEL1 TBLSEL0

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

COUNT7 COUNT6 COUNT5 COUNT4 COUNT3 COUNT2 COUNT1 COUNT0

bit 7 bit 0

凡例 :

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

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

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

bit 13-8 TBLSEL<5:0>: 積算レコードへのポインタビット

積算する次の値のアドレスを示します。

bit 7-0 COUNT<7:0>: 積算完了カウンタビット

このカウンタは 1 回の積算動作のたびにデクリメントします。

DS30686A_JP - p. 65-16 © 2014 Microchip Technology Inc.

Page 17: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-13: ADCHITH: A/D 一致レジスタ HIGH

R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS

CHH31 CHH30 CHH29 CHH28 CHH27 CHH26 CHH25 CHH24

bit 15 bit 8

R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS

CHH23 CHH22 CHH21 CHH20 CHH19 CHH18 CHH17 CHH16

bit 7 bit 0

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

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

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

bit 15-0 CHH<31:16>: A/D 変換一致ビット

1 = 対応するサンプルリスト エントリのしきい値比較で一致が発生した0 = 一致は発生していない

レジスタ 65-14: ADCHITL: A/D 一致レジスタ LOW

R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS

CHH15 CHH14 CHH13 CHH12 CHH11 CHH10 CHH9 CHH8

bit 15 bit 8

R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS R/W-0, HS

CHH7 CHH6 CHH5 CHH4 CHH3 CHH2 CHH1 CHH0

bit 7 bit 0

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

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

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

bit 15-0 CHH<15:0>: A/D 変換一致ビット

1 = 対応するサンプルリスト エントリのしきい値比較で一致が発生した0 = 一致は発生していない

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-17

Page 18: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-15: ADTHnH: A/D サンプルテーブル n しきい値レジスタ HIGH

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TH7 TH6 TH5 TH4 TH3 TH2 TH1 TH0

bit 7 bit 0

凡例 :

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

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

bit 15-0 TH<15:0>: サンプルテーブル n ウィンドウ付き比較上側しきい値ビット

値は 12 ビットの符号なし整数形式で指定する必要があります。

レジスタ 65-16: ADTHnL: A/D サンプルテーブル n しきい値レジスタ LOW

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TH7 TH6 TH5 TH4 TH3 TH2 TH1 TH0

bit 7 bit 0

凡例 :

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

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

bit 15-0 TH<15:0>: サンプルテーブル n ウィンドウ付き比較下側しきい値ビット

このビットは、ウィンドウ付きではない単純なしきい値比較用の比較値としても使います。値は 12 ビットの符号なし整数形式で指定する必要があります。

DS30686A_JP - p. 65-18 © 2014 Microchip Technology Inc.

Page 19: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

レジスタ 65-17: ADLnMSEL3: A/D サンプルリスト n 複数チャンネル選択レジスタ 3

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

bit 15 bit 8

U-0 U-0 U-0 U-0 U-0 U-0 R/W-0, HSC R/W-0, HSC

— — — — — — MSEL49 MSEL48

bit 7 bit 0

凡例 : HSC = ハードウェア セット / クリア可能ビット

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

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

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

bit 1-0 MSEL<49:48>: A/D チャンネル選択ビット

1 = 対応するチャンネルをサンプルリスト n の複数チャンネル動作に含める0 = 対応するチャンネルを複数チャンネル動作に含めない

レジスタ 65-18: ADLnMSEL2: A/D サンプルリスト n 複数チャンネル選択レジスタ 2

R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC

MSEL47 MSEL46 MSEL45 MSEL44 MSEL43 MSEL42 MSEL41 MSEL40

bit 15 bit 8

R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC

MSEL39 MSEL38 MSEL37 MSEL36 MSEL35 MSEL34 MSEL33 MSEL32

bit 7 bit 0

凡例 : HSC = ハードウェア セット / クリア可能ビット

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

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

bit 15-0 MSEL<47:32>: A/D チャンネル選択ビット

1 = 対応するチャンネルをサンプルリスト n の複数チャンネル動作に含める0 = 対応するチャンネルを複数チャンネル動作に含めない

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-19

Page 20: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

レジスタ 65-19: ADLnMSEL1: A/D サンプルリスト n 複数チャンネル選択レジスタ 1

R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC

MSEL31 MSEL30 MSEL29 MSEL28 MSEL27 MSEL26 MSEL25 MSEL24

bit 15 bit 8

R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC R/W-0, HSC

MSEL23 MSEL22 MSEL21 MSEL20 MSEL19 MSEL18 MSEL17 MSEL16

bit 7 bit 0

凡例 : HSC = ハードウェア セット / クリア可能ビット

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

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

bit 15-0 MSEL<31:16>: A/D チャンネル選択ビット

1 = 対応するチャンネルをサンプルリスト n の複数チャンネル動作に含める0 = 対応するチャンネルを複数チャンネル動作に含めない

レジスタ 65-20: ADLnMSEL0: A/D サンプルリスト n 複数チャンネル選択レジスタ 0

R/W-0, HSC U-0 U-0 U-0 U-0 U-0 U-0 U-0

MSEL15 — — — — — — —

bit 15 bit 8

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

bit 7 bit 0

凡例 : HSC = ハードウェア セット / クリア可能ビット

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

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

bit 15 MSEL15: A/D チャンネル選択ビット

1 = 対応するチャンネルをサンプルリスト n の複数チャンネル動作に含める0 = 対応するチャンネルを複数チャンネル動作に含めない

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

DS30686A_JP - p. 65-20 © 2014 Microchip Technology Inc.

Page 21: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.4 動作の概要

65.4.1 SAR 型コンバータとパイプライン型コンバータの比較

パイプライン型 A/D コンバータと逐次近似レジスタ (SAR) 型 A/D コンバータでは、主に変換速度が異なります。標準的な SAR 型変換の場合、結果生成プロセスのデジタル変換部は逐次実行されます。通常はアナログ コンパレータを 1 つだけ使用し、 A/D クロックサイクルあたりデータの 1 つの結果ビットを変換します。パイプライン コンバータでは、並列構造を採用して複数の内部アナログ コンパレータを使う事で、変換パイプラインの複数の段で複数の結果を変換できます。パイプライン コンバータの並列構造は、変換をパイプライン化した形態で実行する事を可能にします ( つまり、各変換は緊密に段階化されて連続的に実行されます )。その結果、パイプライン型コンバータは最速で 1 A/D クロック周期 (TAD)あたり 1つの変換結果を生成できます。

パイプライン A/D コンバータの最大の欠点は、SAR コンバータに比べてノイズレベルが増加する事です。実際には、複数個のサンプルを収集して平均化する事で良好な結果が得られます。

このパイプライン A/D コンバータと標準的な 12 ビット SAR A/D コンバータのスループットとレイテンシを比較した例を表 65-1 に示します。

表 65-1: A/D コンバータの性能比較

65.4.2 サンプリング要件

パイプライン A/D コンバータのアナログ入力モデル ( シングルエンドおよび差動コンフィグレーション ) を図 65-3 に示します。A/D の総サンプリング時間は、ホールド コンデンサの充電時間と入力およびサンプリング スイッチ抵抗によって決まります。

サンプリング動作中は、サンプリング スイッチが閉じて内部サンプル / ホールド コンデンサをアナログ入力ピンに接続します。従って、ピンとコンデンサ間にはスイッチと配線の抵抗が介在します。サンプリング スイッチを閉じる期間の長さは、SAMC<4:0> ビットフィールド(ADLnCONH<4:0>) で定義します。サンプリング スイッチが閉じている間に、サンプル / ホールド コンデンサ CHOLD はアナログ電圧源 VA からアナログピンに印加された電圧によって充電されます。

コンデンサを VA と同じ電圧まで充電可能なサンプリング期間を確保するために、SAMC<4:0>の値を適切に選択する必要があります。充電プロファイルは二次 RC 回路を使ってモデル化できます ( 図 65-3 参照 )。充電に必要な時間は、表 65-2 に示すようにソース抵抗で変化します。

表 65-2: 必要最小サンプリング時間

性能12 ビット SAR

( 例 : PIC24FJ128GA310)12 ビット パイプライン

( 例 : PIC24FJ128GC010)

A/D クロック周波数 (MHz) 4 (typ.) 8 (typ.)

サンプル / ホールド充電時間 (TAD) 4 (typ.) 0.5 (typ.)

標準的な変換レイテンシ (TAD) 14 8.5

スループット ( 結果数 /TAD) 約 0.06 1

最大スループット (sample/s) 最大 200K 最大 10M

内部 A/D ノイズ ( 定性的 ) 非常に低い 中程度

RS 最小サンプリング時間

10 5 ns

50 10 ns

100 15 ns

500 75 ns

1K 150 ns

10K 1.5 s

100K 15 s

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-21

Page 22: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

サンプリング期間が終了するとサンプリング スイッチが開き、アナログ パイプラインはコンデンサに蓄えられた電荷を消費します。このパイプライン A/D コンバータ回路は、コンデンサの放電に 1/2 TAD しか要さず、電荷は完全に消費されます ( シングルエンド計測の場合は AVSS

へ放電され、差動計測の場合は正 / 負の両入力チャンネル間に放電されます )。放電期間が終了した後に、A/D コンバータはスイッチを再び閉じる ( 次に設定されているチャンネルのサンプリングを開始する ) 事ができます。

図 65-3: 12 ビット A/D コンバータのアナログ入力モデル

CPIN(1)VA

Rs ANx

ILEAKAGE

SamplingSwitch

RSS

CHOLD

VSS

= 2 pF50 nA typ.

凡例 : CPIN

ILEAKAGE

RIC

RSS

CHOLD

= 入力静電容量

= 各種接合によるピン部位のリーク電流

= 配線抵抗= サンプリング スイッチ抵抗= サンプル / ホールド静電容量 (DAC から )

Note 1: CPIN の値はデバイスのパッケージによって異なり、計測していません。Rs 1.5 kであれば CPIN の影響を無視で

きます。

2: AN14 以上のアナログ入力にのみ適用可能です。

CMUX(2)

=16 pF

CPIN(1)

VA

Rs ANx+ RIC 250

SamplingSwitch

RSS

CHOLD

VSS

= 2 pF

CMUX(2)

=16 pF

ANx- CPIN(1)Cmux(2)

=16 pF

シングルエンド入力モデル

差動入力モデル

CMUX = マルチプレクサ静電容量(AN14 以上のみ )

RIC 250

ILEAKAGE50 nA typ.

DS30686A_JP - p. 65-22 © 2014 Microchip Technology Inc.

Page 23: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.4.2.1 アナログスイッチ チャージポンプ

12 ビット高速パイプライン A/D コンバータは、アナログ入力チャンネル上で CMOS パスゲートと一緒に使用するチャージポンプを内蔵しています。ディスクリート部品のチャージポンプと同様に、静電容量ポンピングは、AVDD よりも高い MOSFET ゲート電圧を生成するためにマイクロコントローラ内部で採用されます。ゲート電圧を昇圧する事で、最悪条件でのパスゲート等価直列抵抗を大幅に低減できます。これにより、歪みと必要サンプリング時間の両方が減少します。アナログ電源電圧レベルが低い場合、昇圧しないと必要サンプリング時間は長くなります。

アナログスイッチ チャージポンプは、PUMPEN ビット (ADCON1<7>) で制御します。AVDD が2.5 V よりも低い場合、チャージポンプを有効にする事を推奨します。これにより、アナログスイッチ抵抗が最小限に抑えられ、アナログ チャンネルのサンプリング動作に要する時間が減少します。

65.4.2.2 31 TAD を超えるサンプリング時間

SAMC<4:0> ビット (ADLnCONH<4:0>) を使うと、サンプリング時間を 0.5 TAD ( 既定値 ) ~ 31TAD の範囲で設定できます。既に述べたように、サンプル / ホールド コンデンサの充電に要するサンプリング時間は、計測するアナログ信号源の特性インピーダンスと内部アナログ配線の静電容量によって決まります。ほとんどの場合、SAMCx ビットフィールドを使って適切なサンプリング時間を選択できます。しかし、31 TAD を超えるサンプリング時間が必要になる場合もあります。例えば、アナログ信号源のインピーダンスが非常に高い場合や、特定タイプのCTMU( 充電時間計測ユニット ) 動作を実行する場合がこれに該当します。

長時間サンプリングを簡単に実行するには、サンプルリスト 0 のサイズを 1 (SLSIZE<5:0> =00h) に設定し、ADTBL0 を長時間サンプリングを実行するチャンネルに対して設定します。モジュールがアイドル状態 ( 保留中のトリガイベントが存在しない状態、または、どのサンプルリストにも直近に発生したトリガイベントが存在しない状態 ) になると、A/D コンバータは次にサンプリングを行うチャンネルへ自動的に切り換えます。リストのサイズが 1 である場合、コンバータは ADTBL0 が指定するチャンネルへ接続されたままになります。そして、そのチャンネルは、トリガイベントが発生するまでサンプル / ホールド コンデンサに接続されたままになります。サンプルリスト 0 に対するトリガイベントが発生すると、SAMCx ビットフィールドで設定されている期間が経過するまでサンプリングが継続した後に、変換が始まります。

サンプルリストとその使用方法については、65.9「サンプルリスト」を参照してください。

他のサンプルリストも設定して有効にしている場合、それらのサンプルリストに対して設定されているトリガイベントが発生すると、目的のチャンネルのサンプリングも終了する事に注意してください。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-23

Page 24: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.4.3 伝達関数

図 65-4 に A/D コンバータの伝達関数を示します。入力電圧差 (VINH – VINL) は参照電圧((VR+) – (VR-)) と比較されます。

12 ビット A/D の伝達関数 :

• 最小レベルのコード遷移は、入力電圧 ((VR+) – (VR-))/4096 または 1.0 LSb で発生します。

• コード「0000 0000 0001」の中心電圧は VR- + (1.5 * ((VR+) – (VR-))/4096) です。

• コード「0010 0000 0000」の中心電圧は VREFL + (2048.5 * ((VR+) – (VR-))/4096) です。

• VR- + ((VR-) – (VR-))/4096 よりも低い入力電圧は「0000 0000 0000」として変換されます。

• VR- + 4096 ((VR+) – (VR-))/4096 よりも高い入力電圧は「1111 1111 1111」として変換されます。

図 65-4: 12 ビット A/D の伝達関数

0010 0000 0001 (2049)

0010 0000 0010 (2050)

0010 0000 0011 (2051)

0001 1111 1101 (2045)

0001 1111 1110 (2046)

0001 1111 1111 (2047)

1111 1111 1110 (4094)

1111 1111 1111 (4095)

0000 0000 0000 (0)

0000 0000 0001 (1)

Raw Code

0010 0000 0000 (2048)

(VIN

H –

VIN

L)

VR

-

VR

+ –

VR

-

40

96

204

8 *

(V

R+

– V

R-)

40

96

VR

+

VR

- +

VR

- +

409

5 *

(V

R +

– V

R-)

40

96

VR

- +

0

(Binary (Decimal))

Voltage Level

DS30686A_JP - p. 65-24 © 2014 Microchip Technology Inc.

Page 25: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.5 A/D データ格納バッファ

本モジュールは、1 回の変換が完了するたびに変換結果を ADC データ格納バッファに書き込みます。このバッファは、SFR 空間を介してアクセスされる固定ワードサイズの RAM 配列です。ほとんどの実装では、データ格納バッファ内に ADTBLn レジスタとサンプルリスト エントリの番号に対応する 32 個のレジスタ (ADRES0 ~ ADRES31) が存在します。

ユーザ ソフトウェアは、1 回の A/D 変換ごとに結果を読み出せますが、それでは CPU 時間を消費しすぎる場合があります。ソフトウェア オーバーヘッドを最小限に抑えるため、モジュールはバッファがフルになるまで変換結果を書き込んだ後に割り込みを生成します (FIFO モード )。

65.5.1 バッファ書き込みモード

データ格納バッファの動作モードは、標準 FIFO モード ( 既定値、従来の 12 ビット A/D モジュールと互換)またはサンプルリストに基づくインデックス付きモードのどちらかに設定できます。バッファ書き込みモードは BUFORG ビット (ADCON2<10>) で選択します。

65.5.1.1 FIFO モード

BUFREGEN = 0の場合、データ格納バッファは FIFO モードで動作します。変換開始後の最初の変換結果は ADRES0 に書き込まれます。後続の変換結果は、プロセスが割り込まれるまで、次のバッファアドレスに順番に書き込まれます。全てのアドレスに書き込んだ時点で割り込みが発生しない場合、モジュールは ADRES0 にロールオーバーしてプロセスを続行します。

65.5.1.2 インデックス付きモード ( サンプルリスト )

BUFREGEN = 1の場合、FIFO 動作は無効になります。この場合、各 ADTBLn サンプルリストレジスタの変換結果は、そのレジスタに対応するバッファ アドレス (ADRESn) にのみ書き込まれます。例えば、ADTBL0 で指定されているアナログ チャンネルの変換結果は全て ADRES0に保存されます。同様に、ADTBL1 の変換結果は全て ADRES1 に保存されます。

65.5.2 バッファデータのフォーマット

各 A/D 変換結果は 12 ビット幅です。データフォーマットの互換性を維持するため、各変換結果は 4 種類ある 16 ビット フォーマットのいずれかに自動的に変換されます。このフォーマットは FORM<3:0> ビット (ADCON1<11:8>) で選択します。図 65-5 に、選択可能なデータ出力フォーマットを示します。表 65-3 ~ 65-4 に、各種変換結果コードの等価値を示します。

Note: 以下では、ADLnCONH<12:11> = 00 ( 全ての変換結果をデータ格納バッファに書き込む ) に設定した場合のバッファ動作について説明します。しきい値検出機能で

「比較のみ」または「比較と保存」モードを使う場合のバッファ動作は異なります。詳細は 65.11「しきい値検出動作」を参照してください。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-25

Page 26: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

図 65-5: A/D 出力データフォーマット (12 ビット )

表 65-3: 結果コードの等価値 : 12 ビット符号なし整数フォーマット

表 65-4: 結果コードの等価値 :12 ビット符号なし小数フォーマット

RAM の内容 : d11 d10 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00

バスへの読み出し :

符号なし整数 0 0 0 0 d11 d10 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00

符号付き整数 s s s s s d10 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00

符号なし小数 (1, 15) d11 d10 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 0 0 0 0

符号付き小数 (1, 15) s d10 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 0 0 0 0

凡例 : S = 符号ビット

VIN/VREF12 ビット

出力コード

16 ビット符号なし整数フォーマット

等価 10 進値

16 ビット符号付き整数フォーマット

等価 10 進値

4095/4096 1111 1111 1111 0000 1111 1111 1111 4095 0000 0111 1111 1111 2047

4094/4096 1111 1111 1110 0000 1111 1111 1110 4094 0000 0111 1111 1110 2046

2049/4096 1000 0000 0001 0000 1000 0000 0001 2049 0000 0000 0000 0001 1

2048/4096 1000 0000 0000 0000 1000 0000 0000 2048 0000 0000 0000 0000 0

2047/4096 0111 1111 1111 0000 0111 1111 1111 2047 1111 1111 1111 1111 -1

1/4096 0000 0000 0001 0000 0000 0000 0001 1 1111 1000 0000 0001 -2047

0/4096 0000 0000 0000 0000 0000 0000 0000 0 1111 1000 0000 0000 -2048

VIN/VREF12 ビット

出力コード

16 ビット符号なし小数フォーマット

等価 10 進値

16 ビット符号付き小数フォーマット

等価 10 進値

4095/4096 1111 1111 1111 1111 1111 1111 0000 0.999 0111 1111 1111 0000 0.499

4094/4096 1111 1111 1110 1111 1111 1110 0000 0.998 0111 1111 1110 0000 0.498

2049/4096 1000 0000 0001 1000 0000 0001 0000 0.501 0000 0000 0001 0000 0.001

2048/4096 1000 0000 0000 1000 0000 0000 0000 0.500 0000 0000 0000 0000 0.000

2047/4096 0111 1111 1111 0111 1111 1111 0000 0.499 1111 1111 1111 0000 -0.001

1/4096 0000 0000 0001 0000 0000 0001 0000 0.001 1000 0000 0001 0000 -0.499

0/4096 0000 0000 0000 0000 0000 0000 0000 0.000 1000 0000 0000 0000 -0.500

DS30686A_JP - p. 65-26 © 2014 Microchip Technology Inc.

Page 27: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.6 A/D トリガイベント

設定済みの 12 ビット高速パイプライン A/D コンバータと 1 つまたは複数のサンプルリスト(65.9「サンプルリスト」参照 ) を有効にした時点で、コンバータはサンプリング / 変換動作を開始できる状態になります。しかし、この動作は、適切なトリガイベントが発生するまで実際には始まりません。トリガイベントは、A/D に印加される瞬間的なスティミュラスとして考える事ができます。トリガイベントは、アプリケーション ファームウェア内で手動生成する事も( 例 : SAMP ビットに書き込む事で HIGH から LOW への遷移を発生させる )、A/D モジュールの外部で生成する事もできます ( 例 : INT0 I/O ピンイベント、Timer1 割り込み等を使用 )。

A/D コンバータ モジュールに対して外部トリガ源を選択した場合、トリガ条件が発生すると、モジュールに対応する割り込みイベントフラグが通常のようにセットされると同時に、A/D 変換もトリガされます。例えば、Timer1 を A/D トリガ源として使う場合、Timer1 カウンタと周期レジスタの一致条件が検出された時点で A/D 変換がトリガされ、同時に TMR1IF 割り込みフラグもセットされます。

65.6.1 内部トリガタイマ

12 ビット高速パイプライン A/D コンバータは、外部トリガ源をサポートするだけでなく、周期トリガイベントを生成するために内蔵タイマも備えています ( 内蔵タイマは必要に応じて使用でき、必須ではありません )。

タイマトリガの周期は、ソフトウェアで読み書き可能な A/D タイマ周期レジスタ ADTMRPR で設定します。トリガタイマ カウンタはメモリに配置されないため、ユーザから直接読み書きする事はできません。トリガタイマ カウンタ値が ADTMRPR 値に一致すると A/D トリガイベントが生成され、トリガタイマ カウント値は 0000h にリセットされます。

トリガタイマには、ADRC および ADCSx ビット (ADCON3<15,7:0>) で選択されているクロック源からクロックが供給され、1 TAD あたり 1 つインクリメントします。従って内部 ADC トリガタイマを使う場合、ADTMRPR レジスタはトリガイベントの間隔を TAD 数 ( 最小は 1 TAD) として直接設定します。

全てのサンプルリストを無効 ( 全ての SLEN ビットを「0」) にした場合、トリガタイマのカウント値は内部でリセット値 (0000h) に固定されます。タイマのカウントは、1 つまたは複数のSLEN ビットがセットされている場合にのみインクリメントします。

トリガタイマは 1 つしか実装されていませんが、必要に応じて複数のサンプルリストで共有できます。複数のリストを有効にし、トリガタイマをトリガ源として同時に設定した場合、2 回め以降の SLEN ビットのセットに対する初回のトリガの遅延は、ADTMRPR 値から予測されるよりも短くなる可能性があります。これは、最初に SLEN ビットがセットされた時にタイマカウンタがフリーランニングになるためです。サンプルリストに対して初回のトリガイベントが生成された後の全てのトリガの周期は ADTMRPR の値に一致します。

65.7 割り込み

12 ビット高速パイプライン A/D コンバータは、下記の 3 種類のモジュールレベル割り込みを監視するために、独自のユーザ設定可能割り込み論理ツリー ( 図 65-6) を実装しています。

• ACCIF: 積算完了割り込み

• BUFIF: FIFO モード ADRESn バッファレベル ウォーターマーク割り込み

• ADLIF と SLxIF: サンプルリスト n 割り込み ( サンプルリスト 0 ~ 3 に 1 つずつ )

これらの割り込みは、デバイスレベルの割り込みを直接生成しません。その代わり、これらの割り込みのいずれか 1 つを有効にする事で、最上位の AD1IF 割り込みフラグをセットできます。AD1IE 割り込みイネーブルビットもセットされていれば、割り込み発生時に CPU を A/D割り込みハンドラへジャンプさせる事ができます ( より高優先度の割り込みが保留中でない場合 )。アプリケーションで複数の A/D 割り込み要因を有効にしている場合、ACCIF、BUFIF、ADLIF/SLxIF フラグをポーリングする事で、最上位割り込みを引き起こしたイベントを特定できます。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-27

Page 28: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

図 65-6: 12 ビット高速パイプライン A/D コンバータのハードウェア割り込みロジック

65.7.1 積算完了割り込み (ACCIF)

積算完了割り込み (ACCIF) は、決められた数のサンプルの積算が正常に完了した時点で生成されます。割り込みフラグは、積算割り込みイネーブルビット ACIE (ACCONH<6>) がセットされている場合にのみ、積算完了時にハードウェアによってセットされます。この割り込みを無効 (ACIE = 0) にすると、積算が完了しても ACCIF と AD1IF はどちらもセットされません。

ACCIF ビットは、ソフトウェアでセットまたはクリアできます。ACCIF を手動でセットまたはクリアしても、AD1IF 割り込みフラグには影響しません。

65.7.2 バッファ ウォーターマーク割り込み、FIFO モード (BUFIF)

バッファレベル ウォーターマーク割り込み (BUFIF フラグ ) は、A/D コンバータが FIFO バッファモード (BUFORG = 0) に設定されている場合にのみ生成および適用可能です。BUFINT<1:0> ビット (ADCON2<7:6>) を設定する事で、各種のバッファフィル レベルで割り込みを生成できます。このビットをクリアすると割り込みは無効になります。

65.7.3 サンプルリスト割り込み (ADLIF と SLxIF)

各サンプルリストには、それぞれに固有のA/Dサンプル割り込みフラグADLIF (ADLnSTAT<5>)が割り当てられています。これらのフラグの動作は、各リストに対応する SLINT<1:0> ビット(ADLnCONH<14:13>) で設定します。このビットをクリアすると、対応するリストの割り込みは無効になります。

自動スキャンモード (ASEN = 1) を使う場合、サンプルリスト割り込みの生成条件は 3 通り ( 自動スキャン完了時、しきい値一致条件発生時、自動スキャン完了かつしきい値一致条件発生時のいずれか ) に設定できます。

シーケンシャル モードを有効 (ASEN = 0) にした場合、サンプルリスト割り込みの生成条件は2 通り ( サンプルリスト内の最後のサンプルの変換完了時、または、サンプルリスト内の各サンプルの変換完了時 ) に設定できます。シーケンシャル モードには、しきい値比較割り込みオプションはありません。

割り込みの監視を容易にするため、ADLnSTATレジスタ内の割り込みフラグの状態はADSTATLレジスタの SLxIF ビット (ADSTATL<3:0>) に反映されます。ADLIF ビットの状態が変化すると、対応する SLxIF ビットも同時に変化します。ADLIF ビットと、対応する SLxIF ビットは、機能的には同様に扱えます。

AD1IF(2)

AD1IE

ACCIF(1)

BUFIF(1)

SLxIF/

ACIEAccumulation Complete

BUFINT<1:0> ≠ 00BUFORG

FIFO Buffer Event

ADLIF(1)SLINT<1:0> ≠ 00Sample List 0 Event

SLINT<1:0> ≠ 00Sample List 1 Event

SLINT<1:0> ≠ 00Sample List 2 Event

SLINT<1:0> ≠ 00Sample List 3 Event

SL0IF(1)

SL3IF(1)

SL2IF(1)

SL1IF(1)

Note 1: 割り込みフラグビットは上図のようにハードウェアによってセットされ、アプリケーションがクリアするまでセットされたままです。これらのビットをソフトウェアでクリアしても、AD1IF またはA/D 割り込みの状態には影響しません。

2: AD1IF は、下位の割り込みフラグの状態に関係なく、ソフトウェアでクリアできます。一度クリアされた AD1IF は、下位の割り込みイベントが次に発生するまでクリアされたままです。SLxIF/ACCIF/BUFIF ビットをクリアしなくても、ハードウェアは次のイベントを検出できます。

CPU Interrupt(A/D InterruptVector)

DS30686A_JP - p. 65-28 © 2014 Microchip Technology Inc.

Page 29: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.8 初期化

12 ビット高速パイプライン A/D コンバータを使用するための一般的手順は以下の通りです。

1. I/Oピンをアナログ入力として設定する(ANSELレジスタで対応するビットをセットする)。

2. ADCON1、ADCON2、ADCON3 レジスタで下記のグローバルな設定を行う。

a) A/D クロック源とクロックレートの設定

b) A/D 参照電圧源の設定

c) バッファの構成、データ フォーマット、割り込み生成の設定

d) その他のグローバルな設定 ( 省電力機能等 )

3. モジュールを有効にする (ADON ビット (ADCON1<15>) をセットする )。

4. ADREADY ビット (ADSTATH<1>) がセットされるまでポーリングする。

5. ADL0CONH/Lレジスタでサンプルリスト 0を下記のように設定する (この時点ではサンプルリストを有効にしない )。

a) サンプルリスト割り込み生成設定の選択

b) データ書き込みモードの設定 ( 例 : 全ての結果をバッファに書き込む )

c) アナログ サンプリング時間の設定 (SAMC<4:0>)

d) トリガ源の選択

e) サンプルリスト内のエントリ数の指定 (SLSIZE<5:0>)

f) サンプルリスト 0 に固有のその他の設定

6. ADTBLn レジスタを初期化してサンプリングするチャンネルを選択する ( 必ず ADTBL0 を選択し、必要に応じて後続のレジスタも選択する )。

7. A/D 割り込みを設定して有効にする ( 必須ではない )。

a) ADLIF および SL0IF ビットをクリするア

b) 割り込み優先度 (ADLIP<2:0> ビット ) を設定する

c) ADLIE ビットをセットする

8. サンプルリスト 0 を有効にする (SLEN ビット (ADL0CONL<15>) をセットする )。

9. サンプルリスト 0 のトリガ源を有効にしてサンプリングを始める。

10. 適切な A/D 割り込みフラグ (SL0IF または ADLIF) がセットされるまで待機し、セットされたら対応する ADRESn レジスタから結果を読み出す。

上記の手順に従う標準的な初期化シーケンスを例 65-1 に示します (p. 30、p. 31)。この初期化手順は、サンプルリストを 1 つだけ使う場合を想定しています。複数のリストを使う場合、割り込みの設定に進む前に、上記のステップ 5 と 6 を必要なだけ繰り返します。複数リストの使用に関しては、65.9.3「複数のサンプルリストを使う」を参照してください。

A/D コンバータを初期化して有効にする場合、ADON ビットをセットする前に、アプリケーションで ADCON1、ADCON2、ADCON3 グローバル レジスタを初期化する必要があります。ADON ビットをセットする前に、全ての重要なグローバル設定 ( クロック源、プリスケーラ、消費電力レベル、チャージポンプ、参照電圧の選択等 ) を済ませておく必要があります。そうする事により、初期化手順の途中でモジュールが一時的に不適切な状態に設定されてしまう事を防げます。

ADON ビットをセットすると、A/D コンバータはバックグラウンドで自動的なハードウェア自己校正動作を実行します。自己校正動作の完了には最大で 800 TAD サイクルを要します。ADONビットをセットすると、1 TAD 以内にハードウェアによって ADREADY ビット (ADSTATH<1>)がクリアされ、 自己校正が完了するまでクリア状態に保持されます。校正が完了してADREADY がセットされた時点でモジュールは使用可能となり、アプリケーションでサンプルリストを有効にしてトリガイベントを生成する事で、サンプリング / 変換動作を開始できます。特定のデバイスでは、もう 1 つの自己校正命令の実行が要求される場合があります。詳細は各デバイスのデータシートを参照してください。

この自己校正の実行中に、マイクロコントローラCPUはA/D関連コード以外のアプリケーション コードを実行できます。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-29

Page 30: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

例 65-1: A/D 変換と単純なサンプリング ( コンフィグレーションとサンプルリスト )

#include <p24FJ128GC010.h>// PIC24FJ128GC010 CONFIGURATION SETTINGS_CONFIG4(PLLDIV_DIV2 & IOL1WAY_OFF)_CONFIG3(BOREN_OFF)_CONFIG2(POSCMD_HS & FNOSC_PRIPLL & FCKSM_CSECME)_CONFIG1(FWDTEN_WDT_SW & ICS_PGx2)

// The ADC conversion result. volatile unsigned int channel_2;volatile unsigned int channel_38;

int main(){// ANALOG INPUTS CONFIGURATION// 2 analog inputs will be sampled.TRISBbits.TRISB2 = 1; // AN2(RB2)ANSBbits.ANSB2 = 1;TRISAbits.TRISA14 = 1; // AN38(RA14)ANSAbits.ANSA14 = 1;

// GLOBAL SETTINGSADCON1=0;ADCON2=0;ADCON3=0;// Configure the A/D voltage references.ADCON2bits.PVCFG = 0; // Vref+ = AVddADCON2bits.NVCFG = 0; // Vref- = AVss// Configure the A/D clock.ADCON3bits.ADRC = 0; // Conversion clock derived from system clock.ADCON3bits.ADCS = 15; // Divide system clock by 16(TAD = 1uS @ 16 MIPS).// Configure buffer storage settings and interrupt generation.ADCON1bits.FORM = 0; // Output format is unsigned integer.ADCON2bits.BUFORG = 1; // Result buffer is an indexed buffer.ADCON2bits.BUFINT = 0; // No buffer interrupt.// Configure power-saving.ADCON1bits.PWRLVL = 0; // Low power, reduced frequency operation.ADCON2bits.ADPWR = 3; // Module is always powered on.

// Sample List SETTINGSADL0CONL = 0;ADL0CONH = 0;ADL0CONLbits.SLSIZE = 2-1; // Sample list length:2 channels.// Sampling settings.ADL0CONHbits.ASEN = 1; // Enable auto-scan.ADL0CONHbits.SLINT = 1; // Interrupt after auto-scan completion.ADL0CONHbits.SAMC = 15; // Sample time is 15 TAD.ADL0CONLbits.SLTSRC = 0; // Single trigger generated when SAMP is cleared.ADL0PTR = 0; // Start from the first list entry.// Threshod compare settings.ADL0CONHbits.CM = 0; // Disable threshold compare.// Channels selection.ADTBL0bits.ADCH = 2; // Channel #2.ADTBL1bits.ADCH = 38; // Channel #38.

DS30686A_JP - p. 65-30 © 2014 Microchip Technology Inc.

Page 31: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

例 65-1: A/D 変換と単純なサンプリング ( 続き ) ( コンフィグレーションとサンプルリスト )

65.8.1 ポートピンをアナログ入力として設定する

A/D モジュールは、ポートピンをアナログ動作向けに設定するための内部機構を備えていません。代わりに、アナログ選択レジスタ (ANSn、n はポート名 ) を使って入力ピンをアナログ入力として設定する必要があります。ANSn ビットをセットすると、対応するピンはアナログ入力として設定されます。既定値では、アナログおよびデジタル機能が多重化されているピンはデバイスリセット時にアナログピンとして設定されます。

外部アナログ入力の場合、ANSn レジスタだけでなく、対応する TRIS レジスタビットも A/Dポートピンの動作に影響します。ポートピンをアナログ入力として使う場合、対応する TRISビットもセットする ( 入力として指定する ) 必要があります。TRIS ビットはデバイスリセット時に全てセットされます。A/D チャンネルに関連付けた I/O ピンをデジタル出力として設定(TRIS ビットをクリア ) し、そのピンをアナログモード用に設定した場合、ポートのデジタル出力レベル (VOH または VOL) が変換されます。

65.8.2 モジュールを有効にしたまま設定を変更する

A/D クロック源とその周波数、PWRLVL、REFPUMP の設定は、A/D コンバータを無効にした状態で変更する必要があります。これらの設定を変更する場合、ADON をクリアしてモジュールを無効にした後に設定を変更し、その後再びモジュールを有効にする事を推奨します。有効にした後は、ハードウェアの自己校正動作が完了するまで待機する ( 完了したかどうかをADREADY ビットで確認する ) 必要があります。

その他の設定はモジュールがアクティブなままでも変更できますが、サンプルリストのサイズを変更する場合またはサンプルリストのトリガ源を変更する場合は、アプリケーションで特別な配慮が必要です。サンプルリストのサイズ ( 例 : サンプルリスト 0 の SLSIZE<5:0>) を変更すると、他のサンプルリストに割り当てられる ADTBLn 配列の開始アドレスが変化します。このため、番号の大きなサンプルリストも有効にしている場合は、予期せぬ動作が発生する可能性があります。一般的に、サンプルリストのサイズを変更する前に、それよりも番号の大きな全てのサンプルリストを無効にしておく ( それぞれの SLEN ビットをクリアしておく ) 事を推奨します。

同様に、サンプルリストを有効 (SLEN = 1) にしたままそのリストの設定を変更する事は一般的に推奨しません。代わりに、全てのサンプルリスト関連設定 (ADLnCONH と ADLnCONL の値 ) は、サンプルリストを有効にする前に初期化しておく事を推奨します。サンプルリストを初期化した後に設定を変更する必要がある場合、そのサンプルリストを一時的に無効に (SLENビットをクリア ) した後に変更する事を推奨します。既にサンプルリストがトリガされて ADC動作が実行中である場合、そのサンプルリストの SLEN ビットをクリアしても、実行中の全ての ADC 動作が停止するとは限らない事に注意してください。

// ENABLE A/DADCON1bits.ADON = 1; // Enable A/D.while(ADSTATHbits.ADREADY == 0); // Wait for ready flag set.

ADCON1bits.ADCAL = 1; // Start calibration.while(ADSTATHbits.ADREADY == 0);

ADL0CONLbits.SAMP = 1; // Close sample switch.ADL0CONLbits.SLEN = 1; // Enable sample list.

// CONVERSIONwhile(1){

IFS0bits.AD1IF = 0; // Start conversion. ADL0CONLbits.SAMP = 0; // Wait for the result.

while(IFS0bits.AD1IF == 0);ADL0CONLbits.SAMP = 1; // Close the sample switch.

channel_2 = ADRES0; // Read result for the channel #2.channel_38 = ADRES1; // Read result for the channel #38.

}

}

Note 1: アナログ入力として設定された全てのピンは、PORT レジスタの読み出し時に「0」として読み出されます。

2: デジタル入力として定義されたピンにアナログ電圧レベルを印加すると、入力バッファにデバイス仕様値を超える電流が流れる可能性があります。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-31

Page 32: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

SLEN ビットをクリアすると、A/D コンバータは、そのサンプルリストに関連付けられた後続のトリガイベントを全て無視します。しかし、既に発生したトリガイベントによって開始された A/D 動作は完了するまで継続されます。SLEN ビットをクリアした場合、サンプルリストの設定を変更する前に、そのリストに対するモジュールの動作が終了したかどうかをLBUSYビット (ADLnSTAT<14>) で確認する事を推奨します。

65.9 サンプルリスト

多くのアプリケーションでは、複数の入力チャンネルを CPU に負荷をかけずに自動的にサンプリング / 変換するよう A/D コンバータを設定すると便利です。従来の PIC24F デバイスでは、自動スキャン機能を使って、複数チャンネルを固定されたチャンネル番号順にサンプリングおよびスキャンできました。この場合、モジュールを初期化しない限り、シーケンス内の各チャンネルとシーケンスの各繰り返しに対して同じサンプリング / 変換パラメータが使われました。

12 ビット高速パイプライン A/D コンバータは、サンプルリストを使う事で、従来と同じ機能を実装できるだけでなく、大幅に柔軟なスキャンおよびサンプリング オプションも提供します。サンプルリストは、自動的なサンプリング / 変換動作を実行する際にハードウェア ( モジュール ) に対して何をすべきかを指示するための命令リストであると考える事ができます。サンプルリストは、どのアナログチャンネルをサンプリングするか、それらをどのような順番でサンプリングするか、サンプリングを開始するためにどのトリガ源を使うか、といった情報を格納します。また、チャンネルのグループを 1 回だけサンプリングするのか、それともループとして繰り返しサンプリングするのかも指定できます。

パイプライン A/D コンバータは、最大で 4 つのサンプルリストをサポートし、 各リストで別々にチャンネル選択とサンプリング オプションを柔軟に設定できます。各リストの設定には、それぞれに固有の ADLnCONH および ADLnCONL レジスタ ( レジスタ 65-6、レジスタ 65-7) を使います。これにより、リストごとに固有のサンプリング / 変換動作、しきい値検出、割り込み生成を設定できます。加えて、各サンプルリストの状態 ( トリガイベントの現在の状態と割り込みステータス ) は、各リストに固有のステータスレジスタ ADLnSTAT ( レジスタ 65-8) を使って監視できます。

有効にしたサンプルリストには、1 ~最大 64 個のエントリを含める事ができます ( エントリの最大数はデバイスによって異なります )。各エントリは 1 つの ADTBLn レジスタに対応し、このレジスタは A/D 変換を実行する 1 つのアナログ入力を指定します。デバイスには最大で 64 個のADTBLn レジスタ (ADTBL0 ~ ADTBL63) が実装されています ( 実装数はデバイスによって異なります )。サンプルリストの最大サイズについては、各デバイスのデータシートを参照してください。

これらのサンプルリスト レジスタは、有効にした複数のサンプルリストに振り分ける事ができます。例えば、サンプルリスト 0 に 12 個のエントリ (ADTBL0 ~ ADTBL11) を含めた場合、サンプルリスト 1 には最大で 52 個のエントリを含める事ができます。サンプルリスト 1 に残りの全てのエントリを含めた場合、サンプルリスト 2 と 3 用に使える ADTBLn レジスタは存在しないため、これらのサンプルリストは無効にしておく必要があります。

65.9.1 サンプルリストの設定従来型デバイスの自動スキャン機能とは異なり、パイプライン A/D コンバータではサンプルリストを使う必要があります。1 つの入力チャンネルで 1 回のサンプリング / 変換動作を実行するだけの場合でも、サンプルリストを設定する必要があります。通常はサンプルリスト 0 を使います。

既に説明したように、ADLnCONH および ADLnCONL レジスタは、サンプルリスト内の全てのサンプルエントリに共通のパラメータを設定します。これには下記を含みます。

• サンプリング時間 ( アクイジション時間 )

• 自動スキャンモード

• トリガイベント要因

• 手動トリガ動作

• 割り込み生成 (ADLIF/SLxIF オプション )

• しきい値検出 / 比較動作、バッファの書き込みモード

• CTMU 電流源トリガ

• スリープ中の I/O ピンの状態

• 複数チャンネル同時サンプリング / 変換

各サンプルエントリの設定は、最大で 64 個存在する ADTBLn レジスタ ( レジスタ 65-10) のいずれか 1 つに格納されます。このレジスタはサンプリングするアナログチャンネル ( 差動モードの場合はチャンネルペア )、使用する参照電圧、CTMU 電流源の有効 / 無効を定義します。

DS30686A_JP - p. 65-32 © 2014 Microchip Technology Inc.

Page 33: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

サンプルリストのサイズは SLSIZE<5:0> ビット (ADLnCONL<5:0>) で指定します。リストの実際のサイズは (SLSIZE<5:0> + 1) です。つまり、1 つのサンプルリストは少なくとも 1 つのエントリ (SLSIZE<5:0> = 0) を含む必要があり、最大で 64 個のエントリ (SLSIZE<5:0> = 63) を含む事ができます。

SLEN ビット (ADLnCONL<15>) をセットするとサンプルリストが有効になり、その後トリガイベントが発生するとチャンネルのサンプリング / 変換が始まります。適切な ADTBLn レジスタをサンプリングするチャンネル向けに正しく初期化し、その他の全ての設定をADLnCONH/ADLnCONL レジスタで定義するまでは、SLEN = 0 にしておく事を推奨します。これにより、サンプルリストの設定中に発生したトリガイベントによって誤った変換動作が発生してしまうといった予測不可能なコンバータ挙動を防ぐ事ができます。

65.9.2 自動スキャン動作

パイプラインA/Dコンバータの場合、自動スキャン動作はサンプルリストの設定に基づきます。これらのリストは、従来型 PIC24F デバイスのチャンネル スキャン選択レジスタの代わりとして使われます。ASEN ビット (ADLnCONH<15>) はサンプルリストの処理方法を指定します。

ASEN = 1 の場合、サンプルリストは自動スキャンモードになります。トリガイベントを受け取ると、サンプルリストはリスト内で最も番号の若い ADTBLn レジスタに対応するサンプルエントリから順番に各エントリを自動的にサンプリング / 変換します。全てのエントリのサンプリング / 変換が完了した時点でサンプルリストは処理を停止し、次のトリガイベントを待機します。トリガイベントが発生するたびに、以上のプロセスを繰り返します。

ASEN = 0の場合、サンプルリストはシーケンシャル モードになります。トリガイベントを受け取ると、サンプルリストはリスト内で最も番号の若い ADTBLn レジスタに対応するサンプルエントリをサンプリング / 変換します。このサンプリング / 変換動作が完了すると、サンプルリストは処理を停止して次のトリガイベントを待機し、これが発生すると次のサンプルエントリを処理します。リスト内の全てのエントリを処理するまで、トリガが発生するたびに以上の動作を繰り返します。

65.9.3 複数のサンプルリストを使う

サンプルリストは 1 つずつ切り換えながら使う事も、同時に複数のリストを任意に組み合わせて使う事もできます。異なるリスト間のサンプリングの競合を調停するため、ハードウェア優先度が適用されます。

全てのサンプルリストは、共通の ADTBLn レジスタ配列を使って個々のサンプルエントリを定義します。各サンプルリストへの ADTBLn レジスタの割り当ては基本的に動的であり、リストサイズ (SLSIZE<5:0> ビット (ADLnCONL<5:0>) で定義 ) に基づきます。リストの実際のサイズ ( エントリの個数 ) は (SLSIZE<5:0> + 1) です。各サンプルリストの最初のエントリは、番号が 1 つ若いリストの最後のエントリの次のアドレスに位置するレジスタであり、最後のエントリはそこから (SLSIZE<5:0> + 1) 個めのレジスタです。言い換えれば、サンプルリストの最後のエントリのアドレスは常に (SLSIZE<5:0> + n) です (n は最初のエントリのアドレス )。列挙のために、必ずサンプルリスト 0 が最初に使われ、その最初のエントリは必ず ADTBL0 です。

最初のエントリを各サンプルリストで独自に定義する方法はありません ( リストの最後のエントリのアドレスと次のリストの最初のエントリのアドレスは必ず隣接します )。

図 65-7 に、パイプライン A/D コンバータが標準的に備える 4 つのサンプルリスト間の関係と、それらのリストへのサンプルレジスタの割り当て方法を示します。この例の場合、デバイスは全部で 32 個のサンプルレジスタを実装しています。サンプルリスト 0 は必ず ADTBL0 から始まり、エントリの個数 ( リストのサイズ ) は 6 (SLSIZE<5:0> = 5) であるため、最後のエントリは ADTBL5 です。サンプルリスト 1 は次のレジスタ (ADTBL6) から始まり、そのサイズは 13(SLSIZE<5:0> = 12) であるため、最後のエントリは ADTBL18 (6 + 12 = 18) です。他のサンプルリストも同様に割り当てられます。

必ずしも全ての ADTBLn レジスタを使う必要はありません。有効にしたサンプルリストの最後のレジスタよりも番号の大きなレジスタ ( 未使用のレジスタ ) は設定しなくても構いません。

モジュール ハードウェアは、実装数を超えるサンプルアイテムの割り当てを防ぐためのチェックを実行しません。従って、利用可能な ADTBLn レジスタの数を超える数のエントリを有効なサンプルリストに割り当ててしまう可能性があります。パイプライン A/D コンバータを使ったアプリケーションを開発する場合、ユーザの責任でサンプルリストを正しく定義して適切にサンプルアイテムを割り当てる必要があります。

複数のサンプルリストを使う場合のサンプルコードを例 65-2 (p. 34 ~ 36) に示します。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-33

Page 34: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

図 65-7: 複数サンプルリストに対する ADTBLn レジスタの割り当て例

例 65-2: 複数サンプルリストの初期化 ( 入力設定 )

ADTBL0ADTBL1

ADTBL9

ADTBL2ADTBL3ADTBL4ADTBL5ADTBL6ADTBL7ADTBL8

ADTBL10ADTBL11ADTBL12ADTBL13ADTBL14ADTBL15ADTBL16ADTBL17ADTBL18ADTBL19ADTBL20ADTBL21ADTBL22ADTBL23ADTBL24ADTBL25ADTBL26ADTBL27ADTBL28ADTBL29ADTBL30ADTBL31

Sample List 0: SLSIZE<5:0> = 5List Size:6First Entry:ADTBL0Last Entry:ADTBL5

Sample List 1:SLSIZE<5:0> = 12List Size:13First Entry:ADTBL6Last Entry:ADTBL18

Sample List 2:SLSIZE<5:0> = 3List Size:4First Entry:ADTBL19Last Entry:ADTBL22

Sample List 3:SLSIZE<5:0> = 6List Size:7First Entry:ADTBL23Last Entry:ADTBL29

Unallocated Registers

// PIC24FJ128GC010 CONFIGURATION SETTINGS_CONFIG4(PLLDIV_DIV2 & IOL1WAY_OFF)_CONFIG3(BOREN_OFF)_CONFIG2(POSCMD_HS & FNOSC_PRIPLL & FCKSM_CSECME)_CONFIG1(FWDTEN_WDT_SW & ICS_PGx2)

volatile unsigned int channel_0;volatile unsigned int channel_1;volatile unsigned int channel_2;volatile unsigned int channel_3;volatile unsigned int channel_4;volatile unsigned int channel_5;

int main(){// ANALOG INPUTS CONFIGURATION// 2 analog inputs for list #0.TRISBbits.TRISB0 = 1; // AN0(RB0)ANSBbits.ANSB0 = 1;TRISBbits.TRISB1 = 1; // AN1(RB1)ANSBbits.ANSB1 = 1;// 3 analog inputs for list #1.TRISBbits.TRISB2 = 1; // AN2(RB2)ANSBbits.ANSB2 = 1;TRISBbits.TRISB3 = 1; // AN3(RB3)ANSBbits.ANSB3 = 1;TRISBbits.TRISB4 = 1; // AN4(RB4)ANSBbits.ANSB4 = 1;// 1 analog input for list #2.TRISBbits.TRISB5 = 1; // AN5(RB5)ANSBbits.ANSB5 = 1;

DS30686A_JP - p. 65-34 © 2014 Microchip Technology Inc.

Page 35: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

例 65-2: 複数サンプルリストの初期化 ( 続き ) ( グローバルおよびサンプルリスト設定 )

// GLOBAL SETTINGSADCON1=0;ADCON2=0;ADCON3=0;// Configure the A/D voltage references.ADCON2bits.PVCFG = 0; // Vref+ = AVddADCON2bits.NVCFG = 0; // Vref- = AVss// Configure the A/D clock.ADCON3bits.ADRC = 0; // Conversion clock derived from system clock.ADCON3bits.ADCS = 15; // Divide system clock by 16(TAD = 1uS @ 16 MIPS).// Configure buffer storage settings and interrupt generation.ADCON1bits.FORM = 0; // Output format is raw integer.ADCON2bits.BUFORG = 1; // Result buffer is indexed registers.ADCON2bits.BUFINT = 0; // No buffer interrupt.// Configure power-saving.ADCON1bits.PWRLVL = 0; // Low power, reduced frequency operation.ADCON2bits.ADPWR = 3; // Module is always powered.

// SAMPLE LIST #0 SETTINGSADL0CONL = 0;ADL0CONH = 0;// Sample list length.ADL0CONLbits.SLSIZE = 2-1; // 2 channels are in the list.// Sampling settings.ADL0CONHbits.ASEN = 1; // Enable auto-scan.ADL0CONHbits.SLINT = 1; // Interrupt after auto-scan completion.ADL0CONHbits.SAMC = 15; // Sample time is 15 TAD.ADL0CONLbits.SLTSRC = 0; // Single trigger generated when SAMP is cleared.ADL0PTR = 0; // Start from the first list entry.// Threshod compare settings.ADL0CONHbits.CM = 0; // Disable threshold compare.// Channels selection.ADTBL0bits.ADCH = 0; // Channel #0.ADTBL1bits.ADCH = 1; // Channel #1.// SAMPLE LIST #1 SETTINGSADL1CONL = 0;ADL1CONH = 0;// Sample list length.ADL1CONLbits.SLSIZE = 3-1; // 3 channels are in the list.// Sampling settings.ADL1CONHbits.ASEN = 1; // Enable auto-scan.ADL1CONHbits.SLINT = 1; // Interrupt after auto-scan completion.ADL1CONHbits.SAMC = 15; // Sample time is 15 TAD.ADL1CONLbits.SLTSRC = 0; // Single trigger generated when SAMP is cleared.ADL1PTR = 0; // Start from the first list entry.// Threshod compare settings.ADL1CONHbits.CM = 0; // Disable threshold compare.// Channels selection.ADTBL2bits.ADCH = 2; // Channel #2.ADTBL3bits.ADCH = 3; // Channel #3.ADTBL4bits.ADCH = 4; // Channel #4// SAMPLE LIST #2 SETTINGSADL2CONL = 0;ADL2CONH = 0;// Sample list length.ADL2CONLbits.SLSIZE = 1-1; // 1 channel is in the list.// Sampling settings.ADL2CONHbits.ASEN = 1; // Enable auto-scan.ADL2CONHbits.SLINT = 1; // Interrupt after auto-scan completion.ADL2CONHbits.SAMC = 15; // Sample time is 15 TAD.ADL2CONLbits.SLTSRC = 0; // Single trigger generated when SAMP is cleared.ADL2PTR = 0; // Start from the first list entry.// Threshod compare settings.ADL1CONHbits.CM = 0; // Disable threshod compare.// Channels selection.ADTBL5bits.ADCH = 5; // Channel #5.

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-35

Page 36: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

例 65-2: 複数サンプルリストの初期化 ( 続き ) ( 変換 )

65.9.3.1 複数サンプルリストのトリガの同時発生

アプリケーションで複数のサンプルリストを設定して同時に有効にした場合、2 つ以上のサンプルリストが同時にトリガされたり、ほとんど同時にトリガされたために 1 つのサンプルリストのトリガイベントの処理中に次のトリガイベントが発生してしまう可能性があります。このような場合、アナログパイプラインはいずれか 1 つのチャンネルのサンプリング / 計測しか開始できません。なぜならば、アナログコアは 1 つのサンプル / ホールド コンデンサと 1 つのアナログ変換パイプラインしか備えないためです。

このような場合、A/D コンバータは、固定優先度のハードウェア調停を使って、複数リストからの同時 ( またはほぼ同時 ) のトリガを処理します。調停はリスト番号に基づきます。すなわち、競合しているサンプルリストの中で最も番号の若いリストが最初に処理されます。その後、番号の若い順に各リストが処理されます。

有効な各リストでは、1 つのトリガイベントをキューに入れる事ができます。既に 1 つのトリガイベントがキューに入っている場合、後続のトリガイベントは無視されます。A/D コンバータがサンプルリストのキュー内のトリガイベントの処理を完了すると、そのリストは再びトリガ可能となります。

例えば、サンプルリスト 0 ~ 2 が同時に有効にされ、それらの全てが外部 INT0 の立ち下がりエッジでトリガされるよう設定された場合、INT0 が HIGH から LOW に遷移した時点で 3 つのサンプルリストがトリガされます。この場合、ハードウェアは下記のように処理します。

1. サンプルリスト 0 で選択されているアナログ チャンネルのサンプリング / 変換を開始し、サンプルリスト 1 とサンプルリスト 2 のトリガをそれぞれのキューに入れる。

2. サンプルリスト 0 の処理が完了した時点で、サンプルリスト 1 で選択されているアナログチャンネルのサンプリング / 変換を開始する。

3. サンプルリスト 1 の処理が完了した時点で、サンプルリスト 2 で選択されているアナログチャンネルのサンプリング / 変換を開始する。

いずれかのサンプルリストで自動スキャンモードが有効である場合、コンバータはそのリスト内の全てのエントリのサンプリングを終えた後に、次のリストでキューに入れられたトリガの処理を開始します。

// ENABLE A/DADCON1bits.ADON = 1; // Enable A/D.while(ADSTATHbits.ADREADY == 0); // Wait for ready flag set.ADCON1bits.ADCAL = 1; // Start calibration.while(ADSTATHbits.ADREADY == 0);ADL0CONLbits.SAMP = 1; // Close sample switch.ADL0CONLbits.SLEN = 1; // Enable sample lists.ADL1CONLbits.SLEN = 1;ADL2CONLbits.SLEN = 1;

// CONVERSIONwhile(1){

ADSTATLbits.SL0IF = 0;ADSTATLbits.SL1IF = 0;ADSTATLbits.SL2IF = 0;ADL0CONLbits.SAMP = 0; // Start conversion.while( // Wait for the result.

(ADSTATLbits.SL0IF == 0)|| (ADSTATLbits.SL1IF == 0)|| (ADSTATLbits.SL2IF == 0) );

ADL0CONLbits.SAMP = 1; // Close the sample switch.channel_0 = ADRES0; // Read result for the channel #0.channel_1 = ADRES1; // Read result for the channel #1.channel_2 = ADRES2; // Read result for the channel #2.channel_3 = ADRES3; // Read result for the channel #3.channel_4 = ADRES4; // Read result for the channel #4.channel_5 = ADRES5; // Read result for the channel #5.

}

}

DS30686A_JP - p. 65-36 © 2014 Microchip Technology Inc.

Page 37: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.10 複数チャンネル動作

この A/D コンバータは、複数のアナログ チャンネルを同時に有効にするためのハードウェア機能を備えています。この機能は、内部 MUX の抵抗を介してそれらのチャンネル同士を実質的に短絡します。短絡されたチャンネルは S/H コンデンサに接続され、1 つの変換結果が生成されます。このモードは、静電容量式タッチキー配列を主な用途とします ( 複数のボタンを短絡して近接を検出 )。複数の入力チャンネルを有効にしても、それらのチャンネルは短絡されるだけであり、各チャンネルの値を合計した結果が得られるわけではない事に注意が必要です。

この動作は、複数の S/H と A/D コンバータを使った同時サンプリングとは異なります。このモジュールは 1 つの S/H と 1 つの A/D コンバータしか備えないため、同時に複数の電圧をサンプリングする事はできません。

複数チャンネル動作は、各サンプルリストで別々に実装できます。この動作は MULCHEN ビット (ADLnCONH<5>) によって制御されます。MULCHEN をセットする事で、ADLnMSELx レジスタ ( レジスタ 65-17 ~レジスタ 65-20) で選択されている全てのアナログ チャンネルを同時に有効にして、それらを 1 つのグループとしてサンプリングできます。これらのレジスタ内の各 MSELx ビットをセットまたはクリアする事で、対応するアナログ入力を同時サンプリングに含めるかどうかを指定します。

加えて、MULCHEN ビットをセットすると、サンプルリストの他の処理は無効になります。つまり、SLSIZEx ビットと、全ての対応する ADTBLn サンプルリスト レジスタは無視されます。代わりに、ADLnCONL レジスタ内の他のビット設定に従って、ADLnMSELx で有効にされている全てのチャンネルが 1 つのグループとして変換されます。この変換結果を使ってしきい値検出 / 比較動作を実行する事もできます (ADLnCONH レジスタ内の設定に従う )。

複数チャンネル動作の変換結果は、サンプルリストの開始アドレスに保存されます。サンプルリスト 0 の場合、このアドレスは常に ADRES0 です。他のサンプルリストの開始アドレスは、65.9.3「複数のサンプルリストを使う」で説明したように、直前のサンプルリストの設定によって決まります。

Note: 15 以上の番号を持つアナログ入力チャンネルだけが、MULCHEN ビットを使って同時に有効にできます。ADLnMSEL0 レジスタには、アナログチャンネル AN0 ~AN14 に対応するチャンネル選択ビットはありません。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-37

Page 38: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.11 しきい値検出動作

しきい値検出機能を使うと、変換結果に基づく一致条件を定義し、それらの条件に基づいて割り込みを生成する事で、複数チャンネルのスキャンおよびサンプルリスト動作の機能を拡張できます。この機能の実装には、専用のデジタルしきい値コンペア ハードウェアを使います。通常動作中にしきい値検出機能を使う事で、A/D 割り込み処理に要する CPU 時間を削減できる可能性があります。低消費電力アプリケーションの場合、特定のアナログ条件が成立した場合にのみ CPU を復帰させる事で、CPU の非アクティブ状態をより長く維持できます。

パイプラインA/Dコンバータのしきい値検出機能では、専用のしきい値レジスタ(ADTHnH/ADTHnL)または ADRESn バッファを使って比較用しきい値を管理できます。しきい値検出機能は、しきい値一致条件の発生を示すために ADCHITH/ADCHITL レジスタも使います。比較動作とバッファへのデータ保存動作を別々に設定できるため、動作を柔軟に組み合わせる事ができます。

65.11.1 動作モード

しきい値検出動作の大部分は、ADLnCONH レジスタによって制御されます。これにより、サンプルリストごとに異なるしきい値検出設定を使えます。

実行する比較のタイプは比較モードビット CM<2:0> (ADLnCONH<10:8>) で選択します。このビットでは、下記の 4 通りの比較モードを選択できます。

• 現在の変換結果は参照しきい値よりも大きい

• 現在の変換結果は参照しきい値よりも小さい

• 現在の変換結果は定義された 2 つのしきい値の間に入る ( ウィンドウ内 )

• 現在の変換結果は定義された 2 つのしきい値の間に入らない ( ウィンドウ外 )

変換結果の処理方法は書き込みモードビット (ADLnCONH<12:11>) で指定します。このビットでは、下記の 3 通りの動作を選択できます。

• 比較を実行した後に変換結果を破棄する

• 比較を実行した後に変換結果を保存する

• 比較を実行せずに変換結果を保存する

65.11.2 比較しきい値の設定

しきい値検出動作に使う参照値は、2 つのレジスタセットのどちらかに保存できます。これはTHSRC ビット (ADLnCONL<7>) で選択します。このビットをセットした場合、しきい値検出動作は ADTHnH および ADTHnL レジスタ ( レジスタ 65-15、レジスタ 65-16) を、それぞれ上側および下側しきい値の参照先として使います。ウィンドウなし ( より大きい、より小さい )比較の場合、ADTHnL に 1 つの参照値を格納します。各サンプルリストは、それぞれに固有のしきい値レジスタペアを備えます。

THSRC = 0の場合、比較動作中に A/D コンバータは ADRESn バッファを参照先として使います。ソフトウェアによる ADRESn レジスタへの書き込みは、A/D コンバータが無効である場合にのみ可能です。従って、A/D コンバータを有効にする前に、アプリケーションで ADRESnバッファに適切な参照しきい値を書き込んでおく必要があります。モジュールを有効にした後にしきい値を変更する必要がある場合、アプリケーションでモジュールを無効にした後に値を変更する必要があります。

しきい値検出動作をウィンドウなしモード ( より大きい、または、より小さい ) (CM<2:0> = 010または 001) に設定した場合、比較に使う 1 つのしきい値は、ADTBLn サンプルリスト エントリに対応する ADRESn レジスタに格納します。しきい値検出動作をウィンドウ付きモード(CM<2:0> = 100または 011) に設定した場合、隣接する 2 つの ADRESn レジスタをペアとして使います ( 偶数番号のレジスタとその次に大きな奇数番号を持つレジスタでペアを構成 )。例えば、ADRES0 と ADRES1、ADRES2 と ADRES3、... のようにペアを構成します。そして、偶数番号バッファには下側しきい値を格納し、奇数番号バッファには上側しきい値を格納します。

チャンネルのペアリングはハードウェアによって保護されません。従って、ペアリングしたバッファアドレスを他の目的で使う事ができます。しかし、ペアリングされたバッファアドレスに他のデータを保存すると、誤った比較評価が生じる可能性があります。一般的に、しきい値の保存には、ADRESn レジスタよりも ADTHnH/L レジスタの使用を推奨します。ADRESn レジスタにしきい値を保存する場合 ( 特にウィンドウ付きモードの場合 )、しきい値検出動作と一緒に FIFO バッファモード (BUFORG = 0) を使わない事を推奨します。

DS30686A_JP - p. 65-38 © 2014 Microchip Technology Inc.

Page 39: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.11.3 比較一致レジスタ

しきい値検出イベントが発生したかどうかを示すために、A/D モジュールは 2 つのレジスタを使って一致イベントを記録します。これらのレジスタ (ADCHITL と ADCHITH) を比較一致レジスタと呼びます。これらのレジスタの各ビットは、最大 32 個の各サンプルリストエントリに順番に割り当てられます。

各ビットは、対応するサンプルリスト エントリと ADTBLn レジスタに対するイベントセマフォとして機能します。定義されたイベントがそのチャンネルで発生すると、対応するビットがセットされます。このビットは、アプリケーションがクリアするまでセットされたままです。アプリケーションでそれらのビットを評価した後のビットのクリアは、ユーザの責任で行う必要があります。

イベントによっては、複数の比較一致ビットがセットされる事もあります。セットされたビットの意味は、比較モードに基づいてアプリケーションで解釈する必要があります。

65.11.4 比較モードの例

次ページ以降に記載した各例では、有効な一致が発生した場合のデータ格納バッファと比較一致レジスタへの影響を示します。各例の図では、レジスタ内の変化したビットを太字で示しています。

単純化するために、各例には 16 個の ADRESn レジスタと 1 つの比較一致レジスタ (ADCHITL)だけを示します。ここで説明する原理は、ADRESn レジスタと ADCHITH レジスタの関係にも等しく当てはまります。

これらの例では、ADRESn バッファにしきい値を保存する (THSRC = 0) 場合の動作を図示しています。既に述べたように、比較値を ADTHnH/L レジスタに保存する (THSRC = 1) 方が望ましい方法です。ADTHnH/L レジスタにしきい値を保存する場合、ADRESn レジスタには任意のデータを保存できます。

Note: どの比較モードでも、必ず内部バッファをインデックス付きバッファとして構成します (BUFORG = 1)。そうしないと、他チャンネルのしきい値が上書きされて比較結果が予測不可能になる恐れがあります。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-39

Page 40: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.11.4.1 単純比較 ( より大きい / より小さい )

比較モード ビット (CM<2:0>) を「010」または「001」に設定すると、コンバータはサンプリング値がしきい値 (ADTHnL/ADTHnH または ADRESn レジスタ内の値 ) よりも大きいかどうか(CM<2:0> = 010) または小さいかどうか (CM<2:0> = 001) を評価します。条件が成立すると下記の両方の動作が発生します。

• 対応するチャンネルの比較一致ビット (CHHx) をセットする。

• 書き込みモードビット WM<1:0> (ADLnCONH<12:11>) が「01」に設定されている場合、変換値をバッファに書き込む。THSRC = 0の場合、ADRESn レジスタ内のしきい値は変換値によって置換される。 WM<1:0> = 「10」の場合、変換値を破棄する。

THSRC = 1の場合、ADTHnL および ADTHnH レジスタ内の値がしきい値比較に使われ、WMxビットの設定に関係なく、その内容は変更されません。既述のように、比較一致ビットはセットされたままです。

データ格納バッファと比較一致レジスタの内容の変化を図 65-8 に示します。これは、どちらの単純比較タイプ ( より大きい / より小さい ) でも同じです。

図 65-8: 単純比較 ( より大きい / より小さい ) の動作

ADRES15 —

ADRES14 —

ADRES13 —

ADRES12 —

ADRES11 —

ADRES10 —

ADRES9 —

ADRES8 —

ADRES7 —

ADRES6 —

ADRES5 —

ADRES4 —

ADRES3 —

ADRES2 しきい値

ADRES1 —

ADRES0 —

変換 / 比較前

ADCHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 1 0 0

変換 / 比較後

比較のみ(10)

比較と保存

(01)

ADRES15 — —

ADRES14 — —

ADRES13 — —

ADRES12 — —

ADRES11 — —

ADRES10 — —

ADRES9 — —

ADRES8 — —

ADRES7 — —

ADRES6 — —

ADRES5 — —

ADRES4 — —

ADRES3 — —

ADRES2 しきい値 変換値

ADRES1 — —

ADRES0 — —

ADCHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0

DS30686A_JP - p. 65-40 © 2014 Microchip Technology Inc.

Page 41: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.11.4.2 ウィンドウ内側比較

比較モード ビット CM<2:0> を「010」に設定し、かつ THSRC = 0の場合、コンバータはサンプリング値がバッファ レジスタペア内の 2 つのしきい値の間に入るかどうかを評価します。2 つのしきい値のうち奇数レジスタ内の値 ( しきい値 2) の方が必ず大きいため、下記の場合に条件が成立します。

しきい値 2 > 変換値 > しきい値 1

この場合、下記の両方の動作が発生します。

• 対応するチャンネルの比較一致ビット (CHHx) をセットする ( ペアリングされたバッファの比較一致ビットはクリアされたまま )。

• WM<1:0> が「01」に設定されている場合、変換値をバッファに書き込む。THSRC = 0 の場合、ADRESn レジスタ内のしきい値は変換値によって置換される。 WM<1:0> = 「10」の場合、変換値を破棄する

THSRC = 1の場合、ADTHnL および ADTHnH レジスタ内の値がしきい値比較に使われ、WMxビットの設定に関係なく、その内容は変更されません。既述のように、比較一致ビットはセットされたままです。

データ格納バッファと比較一致レジスタの内容の変化を図 65-9 に示します。

図 65-9: ウィンドウ内側比較の動作、THSRC = 0

ADRES15 —

ADRES14 —

ADRES13 —

ADRES12 —

ADRES11 —

ADRES10 —

ADRES9 —

ADRES8 —

ADRES7 —

ADRES6 —

ADRES5 —

ADRES4 —

ADRES3 しきい値 2ADRES2 しきい値 1ADRES1 —

ADRES0 —

変換 / 比較前

ADCHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 1 0 0

変換 / 比較後

比較のみ(10)

比較と保存

(01)

ADRES15 — —

ADRES14 — —

ADRES13 — —

ADRES12 — —

ADRES11 — —

ADRES10 — —

ADRES9 — —

ADRES8 — —

ADRES7 — —

ADRES6 — —

ADRES5 — —

ADRES4 — —

ADRES3 しきい値 2 しきい値 2ADRES2 しきい値 1 変換値

ADRES1 — —

ADRES0 — —

ADCHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-41

Page 42: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.11.4.3 ウィンドウ外側比較

比較モード ビット CM<2:0> を「011」に設定し、かつ THSRC = 0の場合、コンバータはサンプリング値がバッファ レジスタペア内の 2 つのしきい値の外側にあるかどうかを評価します。この場合も、2 つのしきい値のうち奇数レジスタ内の値 ( しきい値 2) の方が必ず大きいため、下記の場合に条件が成立します。

変換値 > しきい値 2

または

しきい値 1 > 変換値

これらの場合、下記が発生します。

• 対応するチャンネルの比較一致ビット (CHHx) をセットする。

• 変換値がしきい値 2 よりも大きければ、奇数バッファの CHHn ビットもセットする。変換値がしきい値 1 よりも小さければ、奇数バッファの CHHn ビットを「0」のままにする。

• WM<1:0> が「01」に設定され、かつ THSRC = 0の場合 :

- 変換値がしきい値 2 よりも大きければ、変換値を奇数バッファに書き込む ( 上側しきい値は変換値によって上書きされる )。

- 変換値がしきい値 1 よりも小さければ、変換値を偶数バッファに書き込む ( 下側しきい値は変換値によって上書きされる )。

• WM<1:0> = 「10」の場合、変換値を破棄する

THSRC = 1の場合、ADTHnL および ADTHnH レジスタ内の値がしきい値比較に使われ、WMxビットの設定に関係なく、その内容は変更されません。既述のように、比較一致ビットはセットされたままです。

データ格納バッファと比較一致レジスタの内容の変化を図 65-10 ( 上側しきい値より大きい場合 ) と図 65-11 ( 下側しきい値より小さい場合 ) に示します。

図 65-10: ウィンドウ外側比較の動作 ( しきい値 2 よりも大きい場合 )、THSRC = 0

ADRES15 —

ADRES14 —

ADRES13 —

ADRES12 —

ADRES11 —

ADRES10 —

ADRES9 —

ADRES8 —

ADRES7 —

ADRES6 —

ADRES5 —

ADRES4 —

ADRES3 しきい値 2ADRES2 しきい値 1ADRES1 —

ADRES0 —

変換 / 比較前

AD1CHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 1 1 0 0

変換 / 比較後

比較のみ(10)

比較と保存

(01)

ADRES15 — —

ADRES14 — —

ADRES13 — —

ADRES12 — —

ADRES11 — —

ADRES10 — —

ADRES9 — —

ADRES8 — —

ADRES7 — —

ADRES6 — —

ADRES5 — —

ADRES4 — —

ADRES3 しきい値 2 変換値

ADRES2 しきい値 1 しきい値 1ADRES1 — —

ADRES0 — —

AD1CHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0

DS30686A_JP - p. 65-42 © 2014 Microchip Technology Inc.

Page 43: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

図 65-11: ウィンドウ外側比較の動作 ( しきい値 1 よりも小さい場合 )、THSRC = 0

ウィンドウ付き比較モードを選択し、かつ THSRC = 0 に設定した場合、別の動作による変換値がペアリングされたチャンネル アドレスに保存される可能性があります ( 一切の回避措置は用意されていません )。先に示した例で、サンプルリストが ADTBL3 のエントリを含んでいる場合、そのエントリのしきい値検出動作は、既にそこに保存されている上側しきい値に対して評価されます。この場合、しきい値が上書きされるか、CHH3 ビットがセットされる ( またはその両方が発生する ) 可能性があります。

このような理由により、ウィンドウ付き比較モードを使う場合、ユーザはサンプルリストとADRESn バッファの割り当ておよび使用に常に注意を払う必要があります。可能な限り、しきい値は ADTHnL および ADTHnH レジスタに保存すべきです。 それができない場合、しきい値検出動作には奇数 ADRESn レジスタを含めず、別のルーチンで対応するサンプルリスト アイテムを変換および評価します。

ADRES15 —

ADRES14 —

ADRES13 —

ADRES12 —

ADRES11 —

ADRES10

ADRES9 —

ADRES8 —

ADRES7 —

ADRES6 —

ADRES5 —

ADRES4 —

ADRES3 しきい値 2ADRES2 しきい値 1ADRES1 —

ADRES0 —

変換 / 比較前

AD1CHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 1 0 0

変換 / 比較後

比較のみ(10)

比較と保存

(01)

ADRES15 — —

ADRES14 — —

ADRES13 — —

ADRES12 — —

ADRES11 — —

ADRES10

ADRES9 — —

ADRES8 — —

ADRES7 — —

ADRES6 — —

ADRES5 — —

ADRES4 — —

ADRES3 しきい値 2 しきい値 2ADRES2 しきい値 1 変換値

ADRES1 — —

ADRES0 — —

AD1CHITL

15 14 13 12 11 10 9 8

0 0 0 0 0 0 0 0

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-43

Page 44: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.12 サンプリング / 積算動作

多くのアプリケーションでは、アナログ信号の変換結果を積算すると便利です。オーバーサンプリングはサンプル積算を使う一例です。この場合、多数のサンプルの時間的平均値を求める事で、回路のノイズを効果的に除去して結果データのクオリティを大幅に改善できます。オーバーサンプリングはソフトウェアで実行できますが、CPU 負荷が過大となります。

パイプライン A/D コンバータは、CPU に負荷をかけずに自動的なサンプリング / 積算動作を実行するハードウェア機能を提供します。積算機能はユーザ設定可能であり、ACCONH/ACCONLレジスタによって制御されます。最大 32 ビット幅の積算結果は ACRESH/ACRESL レジスタに保存されます。

積算ハードウェア機能の使用手順は下記の通りです。

1. A/D コンバータのグローバルな設定を行い、モジュールを有効にする (65.8「初期化」参照 )。

2. 積算を行うチャンネルを選択した 1 つのエントリを含むサンプルリストを設定して有効にする。

3. 適切な積算設定を行う。

a) 割り込みを設定する。

b) 積算が完了して積算完了割り込みを生成する ( 有効な場合 ) までに積算するサンプルの数を設定する。

c) TBLSEL<5:0> (ACCONL<13:8>) で適切な ADTBLn レジスタを指定する。

4. ACRESH/ACRESL 値をクリアまたはプリロードする ( 必要に応じて )。

5. ACEN ビット (ACCONH<7>) をセットして積算機能を有効にする。

6. ステップ 2 で設定したサンプルリストに対してトリガイベントを繰り返し生成し、選択した ADTBLn レジスタを使って生成した各サンプリング結果を ACRESH/ACRESL アキュムレータ結果に加算する。

積算機能は、符号なし右寄せの変換結果にのみ対応します。他のデータ フォーマット モードによる動作はサポートしません。

ACRESH/ACRESL レジスタに加算 / 積算するサンプルの総数は COUNT<7:0> ビット(ACCONL<7:0>) で指定します。これは、ACEN ビットをセットする前にソフトウェアで設定しておく必要があります。ハードウェアは、指定されたチャンネル上で 1 回の変換が完了するたびに、COUNTx 値を自動的にデクリメントします。COUNT<7:0> が 00h に達すると、ハードウェアは自動的に ACEN をクリアし、ACCIF 割り込みイベントを生成します ( 有効にしている場合 )。

1 回の積算プロセスで積算されるサンプルの総数は、プロセス開始前の COUNT<7:0> ビットの値に一致します。このため、COUNTx ビットの初期値に応じて 1:1 ~ 1:256 の範囲で任意のオーバーサンプリング比が得られます。積算開始前に COUNTx に 00h を書き込んだ場合、ハードウェアは ACEN をクリアする前に 256 回の加算を実行します。

A/D コンバータは、積算プロセスの開始時に自動的に ACRESH/ACRESL 値をクリアしません。サンプル数が 256 以下である場合、次の積算プロセスを開始する前に、アプリケーションでACRESH/ACRESL をクリアする必要があります。新しい結果値は全て ACRESH/ACRESL 内の値に加算されます。このため、A/D コンバータは 256 個を超えるサンプルを積算でき、オーバーサンプリング比を 1:256 よりも高くする事ができます。

オーバーサンプリング比または積算数を 256 よりも増やすには、アプリケーション ファームウェアで対応するCOUNT<7:0>ビットフィールド値を適当な値に再初期化した後に再度ACENをセットします。

Note: 積算ラウンドの最後で ACEN がハードウェアによってクリアされた後、モジュール ハードウェアが次の積算プロセスを開始可能となるまでに、短いセトリングタイムが必要です。すなわち、ACEN をセットした後、次の積算ラウンドを開始する前に、少なくとも 1 TAD の待機が必要です。

DS30686A_JP - p. 65-44 © 2014 Microchip Technology Inc.

Page 45: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

積算プロセスが完了した後、ファームウェアで ACRESH/ACRESL 内の積算結果をサンプルの総数で除算する事により、コンバータの本来の分解能と同じ 12 ビットの平均値が得られます。サンプル数が厳密に 2 のべき乗である場合、積算結果を右へビットシフトする事で、除算を高速に実行できます。それ以外の場合は DIV.UD命令を使います。MPLAB® C30 または XC16 コンパイラを使う場合、この命令は __builtin_divud()関数を使って実行できます。

例 65-3 (p. 45、46) に、サンプリング / 積算動作のサンプルコードを示します。

例 65-3: サンプリング / 積算動作 ( コンフィグレーションとサンプルリスト )#include <p24FJ128GC010.h>// PIC24FJ128GC010 CONFIGURATION SETTINGS_CONFIG4(PLLDIV_DIV2 & IOL1WAY_OFF)_CONFIG3(BOREN_OFF)_CONFIG2(POSCMD_HS & FNOSC_PRIPLL & FCKSM_CSECME)_CONFIG1(FWDTEN_WDT_SW & ICS_PGx2)

#define ACC_NUMBER_SAMPLES 16 // Number of samples to accumulate.

// These variables contain the results.volatile unsigned int channel_2;volatile unsigned int channel_38;volatile unsigned long accumulator;

int main(){// ANALOG INPUTS CONFIGURATION// 2 analog inputs will be sampled.TRISBbits.TRISB2 = 1; // AN2(RB2)ANSBbits.ANSB2 = 1;TRISAbits.TRISA14 = 1; // AN38(RA14)ANSAbits.ANSA14 = 1;

// GLOBAL SETTINGSADCON1=0;ADCON2=0;ADCON3=0;// Configure the A/D voltage references.ADCON2bits.PVCFG = 0; // Vref+ = AVddADCON2bits.NVCFG = 0; // Vref- = AVss// Configure the A/D clock.ADCON3bits.ADRC = 0; // Conversion clock derived from system clock.ADCON3bits.ADCS = 15; // Divide system clock by 16(TAD = 1uS @ 16 MIPS).// Configure buffer storage settings and interrupt generation.ADCON1bits.FORM = 0; // Data output format is a raw integer.ADCON2bits.BUFORG = 1; // Result buffer is an indexed buffer.ADCON2bits.BUFINT = 0; // No buffer interrupt.// Configure power-saving.ADCON1bits.PWRLVL = 0; // Low power, reduced frequency operation.ADCON2bits.ADPWR = 3; // Module is always powered.

// SAMPLE LIST SETTINGSADL0CONL = 0;ADL0CONH = 0;// Sample list length.ADL0CONLbits.SLSIZE = 2-1; // 2 channels are in the list.// Sampling settings.ADL0CONHbits.ASEN = 1; // Enable auto-scan.ADL0CONHbits.SLINT = 1; // Interrupt after auto-scan completion.ADL0CONHbits.SAMC = 15; // Sample time is 15 TAD.ADL0CONLbits.SLTSRC = 0; // Single trigger generated when SAMP is cleared.// Start from the first list entry.ADL0PTR = 0;// Threshod compare settings.ADL0CONHbits.CM = 0; // Disable threshod compare.// Channels selection.ADTBL0bits.ADCH = 2; // Channel #2.ADTBL1bits.ADCH = 38; // Channel #38.

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-45

Page 46: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

例 65-3: サンプリング / 積算動作 ( 続き ) ( アキュムレータと変換 )// ACCUMULATOR SETTINGS// Set initial value for the accumulator.ACRESL = 0;ACRESH = 0;ACCONLbits.COUNT = ACC_NUMBER_SAMPLES; // Accumulate 16 samples.ACCONLbits.TBLSEL = 1; // Accumulate channel #38 from entry #1.ADSTATLbits.ACCIF = 0; // Reset accumulator interrupt flag.ACCONHbits.ACIE = 1; // Enable the accumulator interrupt.ACCONHbits.ACEN = 1; // Accumulator enabled.

// ENABLE A/DADCON1bits.ADON = 1; // Enable A/D.while(ADSTATHbits.ADREADY == 0); // Wait for ready flag set.ADCON1bits.ADCAL = 1; // Start calibration.while(ADSTATHbits.ADREADY == 0);ADL0CONLbits.SAMP = 1; // Close sample switch.ADL0CONLbits.SLEN = 1; // Enable sample list.

// CONVERSIONwhile(1){

IFS0bits.AD1IF = 0;ADL0CONLbits.SAMP = 0; // Start conversion.while(IFS0bits.AD1IF == 0); // Wait for the result.ADL0CONLbits.SAMP = 1; // Close the sample switch.

channel_2 = ADRES0; // Read result for the channel #2.channel_38 = ADRES1; // Read result for the channel #38.

if(ADSTATLbits.ACCIF != 0){

accumulator = ACRESH; // Read result from accumulator.accumulator <<= 16;accumulator |= ACRESL;ACRESL = 0; // Set initial value for the accumulator.ACRESH = 0;ACCONLbits.COUNT = ACC_NUMBER_SAMPLES; // Accumulate samples again.ACCONHbits.ACEN = 1; // Reenable accumulator.ADSTATLbits.ACCIF = 0; // Reset accumulator interrupt flag.//// PROCESS ACCUMULATOR DATA HERE //}

}

}

DS30686A_JP - p. 65-46 © 2014 Microchip Technology Inc.

Page 47: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.13 リセットの影響

リセットが発生すると、A/D コンバータは実行中の全ての動作を中止し、A/D 制御レジスタは既定値にリセットされます。これにより、A/D モジュールは無効になります。リセットイベント後に A/D コンバータの使用を再開するには、ファームウェアでモジュール、サンプルリスト、トリガ源の選択 / 設定等を完全に再初期化した後にモジュールを有効にする必要があります。

65.14 スリープおよびアイドル中の動作

65.14.1 スリープ中の動作

下記の条件が全て成立する場合、パイプライン A/D コンバータはスリープ中も動作を継続して計測値を収集できます。

1. モジュールは FRC をクロック源として使う事 (ADRC = 1)

2. ADSLP ビット (ADCON1<12>) がセットされている事

3. 非同期トリガイベントが生成される事 (INT0 イベント、非同期モードの TMR1 等 )

モジュールがスリープ中に動作するには、FRC がスリープ中もアクティブなままである事が必要です。この状態は、A/D コンバータが有効 (ADON = 1) で FRC がクロック源として選択されており (ADRC = 1) かつ ADSLP がセットされている場合に自動的に発生します。

スリープ中の FRC 動作による消費電流の増加を許容できない場合、FRC の動作時間を最小限にするために、「hurry up and wait ( 急いで片付けてあとは待つ )」ソリューションを適用できます。このソリューションは下記のように動作します。

1. スリープのほとんどの期間で A/D コンバータを無効にする (ADON = 0)。

2. Timer1 割り込み、WDT 等を使って周期的に復帰し、下記のように変換を実行する。

a) ADON をセットしてモジュールを有効にする

b) A/D 計測値を取得する

c) ADON をクリアしてモジュールを無効にする

3. スリープに再移行する

65.14.2 アイドル中の動作

ADSIDL ビットがクリアされている場合、A/D コンバータはマイクロコントローラがアイドル中であっても通常動作を継続します。割り込みを設定して有効にしている場合、モジュールはアイドル中でも変換完了時に割り込みイベントを生成し続けます。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-47

Page 48: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

PIC

24Fフ

ァミ

リ リ

ファ

レン

ス マ

ニュ

アル

DS

30686A_JP

- p. 65-48

© 2014 M

icrochip Technolo

gy Inc.

の表はフル実装バージョンのマップです。スタマップについては、各デバイスのデー

Bit 3 Bit 2 Bit 1 Bit 0 全リセット

— — — PWRLVL 0000

— — RFPUMP ADHALT 0000

ADCS3 ADCS2 ADCS1 ADCS0 0000

0000

— PUMPST ADREADY ADBUSY 0000

SL3IF SL2IF SL1IF SL0IF 0000

SAMC3 SAMC2 SAMC1 SAMC0 0000

SLSIZE3 SLSIZE2 SLSIZE1 SLSIZE0 0000

SAMC3 SAMC2 SAMC1 SAMC0 0000

SLSIZE3 SLSIZE2 SLSIZE1 SLSIZE0 0000

SAMC3 SAMC2 SAMC1 SAMC0 0000

SLSIZE3 SLSIZE2 SLSIZE1 SLSIZE0 0000

SAMC3 SAMC2 SAMC1 SAMC0 0000

SLSIZE3 SLSIZE2 SLSIZE1 SLSIZE0 0000

— — — — 0000

— — — — 0000

— — — — 0000

— — — — 0000

— — — — 0000

— — — — 0000

— — — — 0000

— — — — 0000

ADCH3 ADCH2 ADCH1 ADCH0 0000

ADCH3 ADCH2 ADCH1 ADCH0 0000

ADCH3 ADCH2 ADCH1 ADCH0 0000

ADCH3 ADCH2 ADCH1 ADCH0 0000

65.15 レジスタマップ

12 ビット高速パイプライン A/D コンバータ関連のレジスタマップを表 65-5 に示します。こ全てのデバイスが全ての機能セットを備えているわけではありません。デバイスに固有のレジタシートを参照してください。

表 65-5: 12 ビット高速パイプライン A/D コンバータ関連のレジスタマップ

レジスタ名 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4

ADCON1 ADON — ADSIDL ADSLP FORM3 FORM2 FORM1 FORM0 PUMPEN ADCAL — —

ADCON2 PVCFG1 PVCFG0 — NVCFG0 — BUFORG ADPWR1 ADPWR0 BUFINT1 BUFINT0 — —

ADCON3 ADRC — — — SLEN3 SLEN2 SLEN1 SLEN0 ADCS7 ADCS6 ADCS5 ADCS4

ADTMRPR A/D トリガタイマ周期値

ADSTATH — — — — — — — — — — — —

ADSTATL — — — — — — — SLOV — — BUFIF ACCIF

ADL0CONH ASEN SLINT1 SLINT0 WM1 WM0 CM2 CM1 CM0 CTMEN PINTRIS MULCHEN SAMC4

ADL0CONL SLEN SAMP SLENCLR SLTSRC4 SLTSRC3 SLTSRC2 SLTSRC1 SLTSRC0 THSRC — SLSIZE5 SLSIZE4

ADL1CONH ASEN SLINT1 SLINT0 WM1 WM0 CM2 CM1 CM0 CTMEN PINTRIS MULCHEN SAMC4

ADL1CONL SLEN SAMP SLENCLR SLTSRC4 SLTSRC3 SLTSRC2 SLTSRC1 SLTSRC0 THSRC — SLSIZE5 SLSIZE4

ADL2CONH ASEN SLINT1 SLINT0 WM1 WM0 CM2 CM1 CM0 CTMEN PINTRIS MULCHEN SAMC4

ADL2CONL SLEN SAMP SLENCLR SLTSRC4 SLTSRC3 SLTSRC2 SLTSRC1 SLTSRC0 THSRC — SLSIZE5 SLSIZE4

ADL3CONH ASEN SLINT1 SLINT0 WM1 WM0 CM2 CM1 CM0 CTMEN PINTRIS MULCHEN SAMC4

ADL3CONL SLEN SAMP SLENCLR SLTSRC4 SLTSRC3 SLTSRC2 SLTSRC1 SLTSRC0 THSRC — SLSIZE5 SLSIZE4

ADL0PTR — ADNEXT6 ADNEXT5 ADNEXT4 ADNEXT3 ADNEXT2 ADNEXT1 ADNEXT0 — — — —

ADL1PTR — ADNEXT6 ADNEXT5 ADNEXT4 ADNEXT3 ADNEXT2 ADNEXT1 ADNEXT0 — — — —

ADL2PTR — ADNEXT6 ADNEXT5 ADNEXT4 ADNEXT3 ADNEXT2 ADNEXT1 ADNEXT0 — — — —

ADL3PTR — ADNEXT6 ADNEXT5 ADNEXT4 ADNEXT3 ADNEXT2 ADNEXT1 ADNEXT0 — — — —

ADL0STAT ADTACT LBUSY — — — — — — ADTDLY — ADLIF —

ADL1STAT ADTACT LBUSY — — — — — — ADTDLY — ADLIF —

ADL2STAT ADTACT LBUSY — — — — — — ADTDLY — ADLIF —

ADL3STAT ADTACT LBUSY — — — — — — ADTDLY — ADLIF —

ADTBL0 UCTMU DIFF — — — — — — — ADCH6 ADCH5 ADCH4

ADTBL1 UCTMU DIFF — — — — — — — ADCH6 ADCH5 ADCH4

...

ADTBL62 UCTMU DIFF — — — — — — — ADCH6 ADCH5 ADCH4

ADTBL63 UCTMU DIFF — — — — — — — ADCH6 ADCH5 ADCH4

凡例 : — = 未実装、「0」として読み出し、リセット値は 16 進表記です。

Page 49: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

© 2014

Microchip T

echnology Inc.

DS

30686A_JP

- p. 65-49

セク

ショ

ン65. 12

ビッ

ト高

速パ

イプ

ライ

ンA

/Dコ

ンバ

ータ

A 0000

A 0000

A 0000

A 0000

A — — — — 0000

A UNT3 COUNT2 COUNT1 COUNT0 0000

A 0000

A 0000

A HH19 CHH18 CHH17 CHH16 0000

A HH3 CHH2 CHH1 CHH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A TH3 TH2 TH1 TH0 0000

A — — MSEL49 MSEL48 0000

A SEL35 MSEL34 MSEL33 MSEL32 0000

A SEL19 MSEL18 MSEL17 MSEL16 0000

A — — — — 0000

A — — MSEL49 MSEL48 0000

A SEL35 MSEL34 MSEL33 MSEL32 0000

A SEL19 MSEL18 MSEL17 MSEL16 0000

A — — — — 0000

A — — MSEL49 MSEL48 0000

A SEL35 MSEL34 MSEL33 MSEL32 0000

A SEL19 MSEL18 MSEL17 MSEL16 0000

A — — — — 0000

A — — MSEL49 MSEL48 0000

A SEL35 MSEL34 MSEL33 MSEL32 0000

A SEL19 MSEL18 MSEL17 MSEL16 0000

A — — — — 0000

レ Bit 3 Bit 2 Bit 1 Bit 0 全リセット

12ビット高速パイプラインA/Dコンバータ 65

DRES0 A/D 結果レジスタ 0

DRES1 A/D 結果レジスタ 1

...

DRES30 A/D 結果レジスタ 30

DRES31 A/D 結果レジスタ 31

CCONH — — — — — — — — ACEN ACIE — —

CCONL — — TBLSEL5 TBLSEL4 TBLSEL3 TBLSEL2 TBLSEL1 TBLSEL0 COUNT7 COUNT6 COUNT5 COUNT4 CO

CRESH A/D 積算結果上位レジスタ (bit 31-16)

CRESL A/D 積算結果下位レジスタ (bit 15-0)

DCHITH CHH31 CHH30 CHH29 CHH28 CHH27 CHH26 CHH25 CHH24 CHH23 CHH22 CHH21 CHH20 C

DCHITL CHH15 CHH14 CHH13 CHH12 CHH11 CHH10 CHH9 CHH8 CHH7 CHH6 CHH5 CHH4 C

DTH0H TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH0L TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH1H TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH1L TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH2H TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH2L TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH3H TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DTH3L TH15 TH14 TH13 TH12 TH11 TH10 TH9 TH8 TH7 TH6 TH5 TH4

DL0MSEL3 — — — — — — — — — — — —

DL0MSEL2 MSEL47 MSEL46 MSEL45 MSEL44 MSEL43 MSEL42 MSEL41 MSEL40 MSEL39 MSEL38 MSEL37 MSEL36 M

DL0MSEL1 MSEL31 MSEL30 MSEL29 MSEL28 MSEL27 MSEL26 MSEL25 MSEL24 MSEL23 MSEL22 MSEL21 MSEL20 M

DL0MSEL0 MSEL15 — — — — — — — — — — —

DL1MSEL3 — — — — — — — — — — — —

DL1MSEL2 MSEL47 MSEL46 MSEL45 MSEL44 MSEL43 MSEL42 MSEL41 MSEL40 MSEL39 MSEL38 MSEL37 MSEL36 M

DL1MSEL1 MSEL31 MSEL30 MSEL29 MSEL28 MSEL27 MSEL26 MSEL25 MSEL24 MSEL23 MSEL22 MSEL21 MSEL20 M

DL1MSEL0 MSEL15 — — — — — — — — — — —

DL2MSEL3 — — — — — — — — — — — —

DL2MSEL2 MSEL47 MSEL46 MSEL45 MSEL44 MSEL43 MSEL42 MSEL41 MSEL40 MSEL39 MSEL38 MSEL37 MSEL36 M

DL2MSEL1 MSEL31 MSEL30 MSEL29 MSEL28 MSEL27 MSEL26 MSEL25 MSEL24 MSEL23 MSEL22 MSEL21 MSEL20 M

DL2MSEL0 MSEL15 — — — — — — — — — — —

DL3MSEL3 — — — — — — — — — — — —

DL3MSEL2 MSEL47 MSEL46 MSEL45 MSEL44 MSEL43 MSEL42 MSEL41 MSEL40 MSEL39 MSEL38 MSEL37 MSEL36 M

DL3MSEL1 MSEL31 MSEL30 MSEL29 MSEL28 MSEL27 MSEL26 MSEL25 MSEL24 MSEL23 MSEL22 MSEL21 MSEL20 M

DL3MSEL0 MSEL15 — — — — — — — — — — —

65-5: 12 ビット高速パイプライン A/D コンバータ関連のレジスタマップ ( 続き )

ジスタ名 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4

例 : — = 未実装、「0」として読み出し、リセット値は 16 進表記です。

Page 50: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.16 設計のヒント

質問 1: A/D モジュールのシステム性能を最適化する方法を教えてください。

回答 : A/D 性能を最適化するには、主として下記の 4 項目を考慮する必要があります。

1. タイミング仕様を全て満たしている事を確認してください。停止したモジュールを再起動する場合、サンプリングを開始する前に所定の遅延時間が経過するまで待機する必要があります。計測を行うには、サンプル / ホールド コンデンサをアナログ信号源の電圧まで適切に充電するために十分な時間を確保する必要があります (SAMC<4:0> ビットで設定 )。また、A/D コンバータを正しく設定する事が重要です。A/D コンバータが動作可能な TAD

クロック周波数には上限と下限があります。許容周波数レンジ外で A/D コンバータを動作させると、誤差が大幅に増加するか、モジュールが正しく動作しなくなります。

2. アナログ信号源のインピーダンスをできるだけ小さくしてください。アナログ信号源のインピーダンスが高い場合、隣接するノイズ源の影響を受けやすく、I/O ピンリーク電流の影響が大きくなります。また、A/D コンバータのサンプリング コンデンサの充電時間も増加します。加えて、信号経路とコンバータの内部動作を最適化するために、他のグローバル設定 (RFPUMP と PUMPEN 等 ) を適正に設定する必要があります。

3. プリント基板を設計する際に、A/D コンバータがサンプリングするアナログ信号源をデジタルまたは他の高 dV/dt 信号から適切に分離またはシールドしてください。コンバータのサンプリング / ホールド コンデンサの容量は非常に小さく、多くの場合、一般的なプリント基板上で隣接する 2 本の平行なトレース間の寄生容量と同等かそれ以下しかありません。隣接するトレース ( デジタルクロックまたはデータライン等 ) がトグルすると、アナログ信号トレースに少量の容量電荷が注入される可能性があります。この電荷の感度と量は、プリント基板上で隣接する 2 本のトレース間の距離と平行部の長さによって決まります。基板上で隣接するトレースの平行区間が長い場合、デジタル I/O ピンがトグルする事で、A/D 変換値の最下位の多くのビット桁が変化するのに十分な電荷が注入されます。このようなノイズ源は、トレース間の距離を大きくするか、トレースとトレースの間にシールドされたダミーのトレース (VSS または他の純 DC低インピーダンス回路に接続 ) を追加する ( またはその両方を実施する ) 事で軽減できます。

さらに、アナログ回路に小さな静電容量 ( 例 : 100 pF) を追加してアナログ信号の AC インピーダンスを低減する事で、注入された電荷の一部を吸収して安定した信号が得られる場合もあります。また、隣接するデジタル ( または高 dV/dt) トレースのスルーレートを意図的に制限すると効果的な場合もあります。通常、これを行うには、トレースを駆動する出力ピン / ドライバに接続されたデジタル トレースと直列に抵抗 ( 通常は 1 k以下 ) を直接追加します。

4. このコンバータのパイプライン アーキテクチャでは、従来型 SAR コンバータよりも高い平均ノイズフロアが発生します。これに対処するため、ほとんどのアプリケーションでは、このコンバータを高速で動作させて複数個のサンプルを取り込みます。これは、連続的にサンプリング ( 事実上の移動平均フィルタ処理 ) するか、計測値を特定数ずつセットで読み出して平均化する ( 例 : サンプルを 8 個ずつ読み出して平均化する ) 事で行えます。

質問 2: A/D 変換に関して適当な参考図書はありますか。

回答 : A/D 変換の参考書としては「Analog-Digital Conversion Handbook」、第三版、PrenticeHall 刊 (ISBN 0-13-03-2848-0) を推奨します。

DS30686A_JP - p. 65-50 © 2014 Microchip Technology Inc.

Page 51: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

セクション 65. 12 ビット高速パイプライン A/D コンバータ12

ビット

高速パイプライン

A/D

コンバータ

65

65.17 関連アプリケーション ノート

本書に関連するアプリケーション ノートの一覧を以下に記載します。一部のアプリケーションノートは PIC24F デバイスファミリ向けではありません。ただし、概念は共通しており、変更が必要であったり制限事項が存在するものの利用が可能です。12 ビット高速パイプライン A/Dコンバータに関連する最新のアプリケーション ノートは以下の通りです。

タイトル アプリケーション ノート番号

Understanding A/D Converter Performance Specifications AN693

Note: PIC24F ファミリ関連のアプリケーション ノートとサンプルコードは、Microchip社ウェブサイト (www.microchip.com) でご覧になれます。

© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-51

Page 52: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

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

65.18 改訂履歴

リビジョン A (2013 年 3 月 )

本書は初版です。

DS30686A_JP - p. 65-52 © 2014 Microchip Technology Inc.

Page 53: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

2014 Microchip Technology Inc. DS30686A_JP - p. 65-53

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。Microchip 社は、明示的、暗黙的、書面、口頭、法

定のいずれであるかを問わず、本書に記載されている情報に

関して、状態、品質、性能、商品性、特定目的への適合性を

はじめとする、いかなる類の表明も保証も行いません。

Microchip 社は、本書の情報およびその使用に起因する一切の

責任を否認します。Microchip 社の明示的な書面による承認な

しに、生命維持装置あるいは生命安全用途に Microchip 社の製

品を使用する事は全て購入者のリスクとし、また購入者はこ

れによって発生したあらゆる損害、クレーム、訴訟、費用に

関して、Microchip 社は擁護され、免責され、損害をうけない

事に同意するものとします。暗黙的あるいは明示的を問わず、

Microchip社が知的財産権を保有しているライセンスは一切譲

渡されません。

商標

Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、

米国およびその他の国における Microchip TechnologyIncorporated の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MTP、SEEVAL、Embedded Control Solutions Company は、

米国における Microchip Technology Incorporated の登録商標

です。

Silicon Storage Technologyは、その他の国におけるMicrochipTechnology Incorporated の登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、

PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ

る Microchip Technology Incorporatedの登録商標です。

SQTP は、米国における Microchip Technology Incorporatedのサービスマークです。

GestICとULPPは、その他の国におけるMicrochip TechnologyGermany II GmbH & Co. & KG (Microchip TechnologyIncorporated の子会社 ) の登録商標です。

その他、本書に記載されている商標は各社に帰属します。

©2013, Microchip Technology Incorporated, Printed in theU.S.A., All Rights Reserved.

ISBN: 978-1-62077-742-8

Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください。

• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流

通している同種製品の中でも最も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、

Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所

有権の侵害に該当する可能性が非常に高いと言えます。

• Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護

機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社

のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著

Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV

== ISO/TS 16949 ==

Page 54: セクション 65. 12 ビット高速パイプライン A/D コ …ww1.microchip.com/downloads/jp/DeviceDoc/30686A_JP.pdf© 2014 Microchip Technology Inc. DS30686A_JP - p. 65-1 12

DS30686A_JP - p. 65-54 2014 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

オースティン (TX)Tel:512-257-3370

ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

クリーブランドIndependence, OH Tel:216-447-0464

Fax:216-447-0643

ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

デトロイトNovi, MI Tel:248-848-4000

ヒューストン (TX) Tel:281-894-5983

インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

ニューヨーク (NY) Tel:631-435-6000

サンノゼ (CA) Tel:408-735-9110

カナダ - トロントTel:905-673-0699 Fax:905-673-6509

アジア / 太平洋

アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2401-1200Fax:852-2401-3431

オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

中国 - 杭州Tel:86-571-8792-8115 Fax: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-5533 Fax: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-7160 Fax: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-39

Fax: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

各国の営業所とサービス

03/13/14