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

PIC24F_ADConberter

N/A
N/A
Protected

Academic year: 2021

シェア "PIC24F_ADConberter"

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

10

ビット

A/

D

コンバータ

17

ハイライト

本章では次のトピックについて説明します。 17.1 はじめに ... 17-2 17.2 A/D 用語と変換シーケンス ... 17-4 17.3 関連レジスタ ... 17-5 17.4 A/D モジュールの構成設定 ... 17-11 17.5 初期化 ... 17-14 17.6 サンプリング プロセスの制御... 17-15 17.7 変換プロセスの制御 ... 17-15 17.8 A/D 結果バッファ ... 17-21 17.9 変換 シーケンス例... 17-23 17.10 A/D サンプリング要件 ... 17-32 17.11 変換関数 ... 17-33 17.12 A/D 精度 / 誤差 ... 17-34 17.13 スリープとアイドル モード中の動作... 17-34 17.14 リセットの影響 ... 17-35 17.15 レジスタ マップ... 17-36 17.16 電気的仕様 ... 17-37 17.17 設計の秘訣 ... 17-38 17.18 関連する アプリケーション ノート ... 17-39 17.19 改版履歴 ... 17-40

(2)

17.1

はじめに

PIC24F 10 ビット A/D コンバータは次のような特徴を持っています。 • 逐次変換型 (SAR) コンバータ • 最高 500 ksps の変換速度 • 最大 16 のアナログ入力チャネル • 外部電圧リファレンス入力ピン • 単極差動のサンプル ホールド (S/H) アンプ • 自動チャネルスキャン モード • 変換トリガ要因は選択可能 • 16 ワードの変換結果用バッファ • バッファ格納モードを選択可能 • 4 種の結果形式オプション • CPU がスリープまたはアイドル モード中でも動作 図 17-1 は 10 ビット A/D のブロック図です。 この コンバータには多ピンのもので AN0 か ら AN15 と呼ばれる最大 16 までのアナログ入力チャネルを持っています。実際のアナロ グ入力ピンと外部電圧リファレンス入力ピンの数は個別の PIC24F デバイスに依存しま す。デバイス固有の詳細については個別の PIC24F データ シートを参照してください。 外部電圧リファレンス接続用に 2 つのアナログ入力ピン VREF+ と VREF- があります。これ らの電圧リファレンス入力は他のアナログ入力ピンと共用になっています。A/D リファレ ンス電圧はソフトウェア制御により、デバイス供給電圧 (AVDD/AVSS) か、VREF+/VREF- ピ ンの電圧レベルのいずれかを選択できます。 アナログ入力は 2 つの独立したマルチプレクサ (MUX A と MUX B) 経由で S/H チャネルま たは CH0 と呼ばれる S/H 増幅器に接続されます。これは、コンバータに対して変換中 2 セットのアナログ入力間を切り替えます。いずれの入力ピンを使用しても単極差動変換が 可能です。オプションでアナログ入力スキャン モードとすると、選択されたチャネルの範 囲を自動的にシーケンシャルにスキャンし変換できます。 10 ビット A/D はサンプルと変換プロセスを制御する多くの手段を持っています。サンプ ルと変換のトリガ要因は、さまざまなハードウェア要因から得られ、ソフトウェアで手動 にて制御できます。自動サンプル モードと自動変換トリガを一緒に使うと、ソフトウェア の介在なしでエンドレスに自動変換を行うことが可能となります。 モジュール レベルの割り込みが毎回のサンプル / 変換終了時か多重シーケンス後に生成さ れます。割り込みごとのシーケンス回数は 1 から 16 回のいずれかです。 コンバータは変換結果をデバイスのデータ空間にマップされた 16 ワードの内部データ バッファに格納します。10 ビットの結果のそれぞれは 4 種類の 16 ビット出力フォーマッ トのうちの1つで格納されます。

(3)

10

ビット

A/D

コンバータ

17

図 17-1: 10 ビット A/D コンバータのブロック図 コンパレータ 10 ビット SAR 変換ロジック VREF+ DAC AN12 AN13 AN14 AN15 AN8 AN9 AN10 AN11 AN4 AN5 AN6 AN7 AN0 AN1 AN2 AN3 VREF -サンプル制御 S/H AVSS AVDD ADC1BUF0: ADC1BUFF AD1CON1 AD1CON2 AD1CON3 AD1CHS AD1PCFG AD1CSSL 制御ロジック データ形式変換 入力 MUX 制御 変換制御 ピン構成制御 内部データ バス 16 VR+ VR -MUX A (1) MUX B VINH VINL VINH VINH VINL VINL VR+ VR -V R 選択 注 1: MUX A のみが入力スキャンをサポートしています。詳細は AD1CSSL ( レジスタ 17-6) を参照して下さい。

(4)

17.2

A/D 用語と変換シーケンス

サンプル時間とは、A/D モジュールの S/H 増幅器がアナログ入力ピンに接続されている時 間です。サンプル時間は、手動で、あるいは A/D コンバータ ハードウエアによる自動で 開始し、そして終了します。S/H アンプが必要な A/D コンバータ精度を出すためには、最 小のサンプル時間を確保する必要があります。 変換時間とは A/D コンバータが、S/H 増幅器のもつ電圧を変換するのに要する時間です。 変換トリガによりサンプリング時間を終了し、A/D 変換またはサンプル / 変換シーケンス が始まります。変換開始トリガは種々のハードウェア要因から得ることもできますし、ソ フトウェアによる手動制御も可能です。A/D コンバータは、結果の 1 ビット分の変換に1 A/D クロックサイクル (TAD) を必要とし、さらにもう 2 サイクル必要とします。従って 10 ビットの変換を完了するには合わせて 12 TAD サイクルが必要です。変換時間が完了する と、結果は 16 A/D 結果バッファのいずれかにロードされます。 S/H は入力ピンに再接続さ れ、さらに CPU 割り込みを発生します。サンプル時間と A/D 変換時間の総計が総変換時 間になります。 図 17-2 に基本的な変換シーケンスとインターバル間の関係を示します。 変換開始トリガは種々のハードウェアから得ることもできますし、ソフトウェアによる手 動制御も可能です。変換トリガの一つのオプションは自動変換で、カウンタと A/D クロッ クを使って自動変換間の時間を設定します。自動サンプル モードと自動変換トリガを一緒 に使用すると、ソフトウェアの介在なしでエンドレスに自動変換を行うことが可能となり ます。 図 17-2: A/D サンプル / 変換シーケンス サンプル時間 A/D 変換時間 A/D 合計変換時間 サンプリングのために S/H アンプ がアナログ入力ピンに接続される 入力が CH0 から切り離され S/H アンプは信号を保持 変換トリガにより A\D 変換開始 変換完了、結果は A/D バッファ レジ スタに格納される 割り込み発生 ( オプション )

(5)

10

ビット

A/D

コンバータ

17

17.3

関連レジスタ

10 ビット A/D コンバータ モジュールの動作には、全部で 22 種のレジスタを使います。全 てのレジスタがデータ メモリ空間にマップされています。

17.3.1 制御レジスタ

モジュールは 6 個の制御とステータスのレジスタがあります。 • AD1CON1: A/D 制御レジスタ 1 • AD1CON2: A/D 制御レジスタ 2 • AD1CON3: A/D 制御レジスタ 3 • AD1CHS: A/D 入力チャネル選択レジスタ • AD1PCFG: A/D ポート構成レジスタ • AD1CSSL: A/D 入力スキャン選択レジスタ

AD1CON1、 AD1CON2、AD1CON3 レジスタ ( レジスタ 17-1、 レジスタ 17-2、レジスタ 17-3) が A/D モジュールの全体動作を制御します。これらには、モジュールの有効化、変換ク ロック、電圧リファレンス源の設定、サンプリングと変換トリガの選択、サンプル / 変換 シーケンスの手動制御などを含んでいます。

AD1CHS レジスタ ( レジスタ 17-4) で S\H アンプに接続する入力チャネルを選択します。ま た入力マルチプレクサの選択と差動サンプルのリファレンス源の選択も行います。 AD1PCFG レジスタ ( レジスタ 17-5) で I/O ピンをアナログ入力にするか、デジタル I/O に するかを設定します。 AD1CSSL レジスタ ( レジスタ 17-6) でシーケンシャル スキャンに含めるチャネルを選択 します。

17.3.2 A/D 結果バッファ

モジュールには A/D 結果を格納する ADC1BUF と呼ばれる 16 ワードのデュアル ポート RAM があります。各バッファごとにデータ メモリ空間にマップされていて、個々にアド レス指定できます。その 16 個 のバッファの位置は、ADC1BUF0 から ADC1BUFF として 参照できます。A/D 結果バッファは読み出し専用です。

(6)

レジスタ 17-1: AD1CON1: A/D 制御レジスタ 1

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

ADON — ADSIDL — — — FORM1 FORM0

ビット 15 ビット 8

R/W-0 R/W-0 R/W-0 U-0 U-0 R/W-0 R/W-0, HCS R/C-0, HCS

SSRC2 SSRC1 SSRC0 — — ASAM SAMP DONE

ビット 7 ビット 0 Legend: U = 未実装、読むと「0」 R = 読み出し可 W = 書き込み可 HCS = ハードウェアでクリア / セット -n = POR 後の値 ‘1’ = セット ‘0’ = クリア x = 不定 ビット 15 ADON: A/D 動作モード ビット 1 = A/D コンバータ モジュールは動作中 0 = A/D コンバータは無効 ビット 14 未実装 : 読むと「0」 ビット 13 ADSIDL: アイドル モード時停止ビット 1 = デバイスがアイドル モード中はモジュール動作停止 0 = アイドル モード中もモジュール動作継続 ビット 12-10 未実装 : 読むと「0」 ビット 9-8 FORM1:FORM0: データ出力形式ビット 11 = 符号付固定小数 (sddd dddd dd00 0000) 10 = 固定小数 (dddd dddd dd00 0000) 01 = 符号付整数 (ssss sssd dddd dddd) 00 = 整数 (0000 00dd dddd dddd) ビット 7-5 SSRC2:SSRC0: 変換トリガ要因選択ビット 111 = 内蔵カウンタでサンプリングを終了させ変換を開始する ( 自動変換 ) 110 = 予約 10x = 予約 100 = 予約 011 = 予約 010 = タイマ 3 の比較一致でサンプリングを終了し変換を開始する 001 = INT0 ピンのアクティブな遷移でサンプリングを終了し変換を開始する 000 = SAMP ビットのクリアでサンプリングを終了し変換を開始する ビット 4-3 未実装 : 読むと「0」 ビット 2 ASAM: A/D サンプル自動開始ビット 1 = 前の変換終了後直ぐサンプリングを開始する。 SAMP ビットは自動でセットされる 0 = SAMP ビットのセットでサンプリングを開始する ビット 1 SAMP: A/D サンプル有効化ビット 1 = 少なくとも 1 個の A/D サンプル ホールド アンプがサンプリングする 0 = A/D サンプル ホールド アンプはホールド中 ASAM = 0 のとき、このビットに「1」を書くとサンプリングを開始する。 SSRC<2:0> = 000 のとき、 このビットに「0」を書くとサンプリングを終了し変換を開始する ビット 0 DONE: A/D 変換ステータス ビット 1 = A/D 変換完了 0 = A/D 変化が完了していないか、開始していない このビットをクリアしても実行中の動作にたいしては影響を与えない。ソフトウェアか新たな変換開

(7)

10

ビット

A/D

コンバータ

17

レジスタ 17-2: AD1CON2: A/D 制御レジスタ 2

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

VCFG2 VCFG1 VCFG0 r — CSCNA — —

ビット 15 ビット 8

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

BUFS(1) — SMPI3 SMPI2 SMPI1 SMPI0 BUFM ALTS

ビット 7 ビット 0 凡例 : R = 読み出し可 W = 書き込み可 U = 未実装、読むと「0」 -n = POR 後の値 ‘1’ = セット ‘0’ = クリア x = 不定 ビット 15-13 VCFG2:VCFG0: 電圧リファレンス構成ビット ビット 12 予約 : 「0」のまま ビット 11 未実装 : 読むと「0」 ビット 10 CSCNA: MUX A 入力マルチプレクサ用 CH0+ S/H スキャン入力選択設定ビット 1 = スキャン入力とする 0 = スキャン入力にしない ビット 9-8 未実装 : 読むと「0」 ビット 7 BUFS: バッファ格納ステータス ビット(1)

1 = A/D は現在 ADC1BUF8-ADC1BUFF を使用中、ADC1BUF0-ADC1BUF7 側のデータ アクセスをして

下さい

0 = A/D は現在 ADC1BUF0-ADC1BUF7 を使用中、ADC1BUF8-ADC1BUFF 側のデータ アクセスをして

下さい ビット 6 未実装 : 読むと「0」 ビット 5-2 SMPI3:SMPI0: 割り込みごとのサンプル/変換シーケンス選択ビット 1111 = 16 番目のサンプル / 変換シーケンスの完了ごとに割り込み 1110 = 15 番目のサンプル / 変換シーケンスの完了ごとに割り込み ... 0001 = 2 番目のサンプル / 変換シーケンスの完了ごとに割り込み 0000 = サンプル / 変換シーケンスの完了ごとに割り込み ビット 1 BUFM: バッファ モード選択ビット 1 = バッファを 2 組の 8 ワード バッファとして構成する (ADC1BUF0 ~ ADC1BUF7 と ADC1BUF8 ~ ADC1BUFF)

0 = バッファを 1 個の 16 ワード バッファとする (ADC1BUF0 ~ ADC1BUFF)

ビット 0 ALTS: 交互入力サンプル モード選択ビット

1 = MUX A 入力を最初のサンプルに使用し、 その後のすべてのサンプルには MUX B と MUX A 入力マ

ルチプレクサ設定を交互に使用する 0 = 常に MUX A 入力マルチプレクサ設定を使用する VCFG2:VCFG0 VR+ VR -000 AVDD AVSS 001 外部 VREF+ ピン AVSS 010 AVDD 外部 VREF- ピン 011 外部 VREF+ ピン 外部 VREF- ピン 1xx AVDD AVSS

(8)

レジスタ 17-3: AD1CON3: A/D 制御レジスタ 3

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

ADRC — — SAMC4 SAMC3 SAMC2 SAMC1 SAMC0

ビット 15 ビット 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 ADCS6 ADCS5 ADCS4 ADCS3 ADCS2 ADCS1 ADCS0

ビット 7 ビット 0 凡例 : R = 読み出し可 W = 書き込み可 U = 未実装、読むと「0」 -n = POR 後の値 ‘1’ = セット ‘0’ = クリア x = 不定 ビット 15 ADRC: A/D 変換クロック源ビット 1 = A/D 内蔵 RC クロックとする 0 = システム クロックから派生したクロック ビット 14-13 未実装 : 読むと「0」 ビット 12-8 SAMC4:SAMC0: 自動サンプル時間ビット 11111 = 31 TAD ··· 00001 = 1 TAD 00000 = 0 TAD ( 推奨ではない ) ビット 7-0 ADCS7:ADCS0: A/D 変換クロック選択ビット 11111111 = 128 Tcy 11111110 = 127.5 Tcy ··· 00000010 = 1.5Tcy 00000001 = Tcy 00000000 = 0.5Tcy

(9)

10

ビット

A/D

コンバータ

17

レジスタ 17-4: AD1CHS: A/D 入力チャネル選択レジスタ

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

CH0NB — — — CH0SB3 CH0SB2 CH0SB1 CH0SB0

ビット 15 ビット 8

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

CH0NA — — — CH0SA3 CH0SA2 CH0SA1 CH0SA0

ビット 7 ビット 0 凡例 : R = 読み出し可 W = 書き込み可 U = 未実装、読むと「0」 -n = POR 後の値 ‘1’ = セット ‘0’ = クリア x = 不定 ビット 15 CH0NB: MUX B マルチプレクサ用チャネル 0 負側入力選択ビット 1 = チャネル 0 負側入力を AN1 とする 0 = チャネル 0 負側入力を VR- とする ビット 14-12 未実装 : 読むと「0」 ビット 11-8 CH0SB3:CH0SB0: MUX B マルチプレクサ用チャネル 0 正側入力選択ビット 1111 = チャネル 0 正側入力を AN15 とする 1110 = チャネル 0 正側入力を AN14 とする 1101 = チャネル 0 正側入力を AN13 とする ··· 0001 = チャネル 0 正側入力を AN1 とする 0000 = チャネル 0 正側入力を AN0 とする ビット 7 CH0NA: MUX A マルチプレクサ用チャネル 0 負側入力選択ビット 1 = チャネル 0 負側入力を AN1 とする 0 = チャネル 0 負側入力を VR- とする ビット 6-4 未実装 : 読むと「0」 ビット 3-0 CH0SA3:CH0SA0: MUX A マルチプレクサ用チャネル 0 正側入力選択ビット 1111 = チャネル 0 正側入力を AN15 とする 1110 = チャネル 0 正側入力を AN14 とする 1101 = チャネル 0 正側入力を AN13 とする ··· 0001 = チャネル 0 正側入力を AN1 とする 0000 = チャネル 0 正側入力を AN0 とする

(10)

レジスタ 17-5: AD1PCFG: A/D ポート構成レジスタ R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 PCFG15 PCFG14 PCFG13 PCFG12 PCFG11 PCFG10 PCFG9 PCFG8 ビット 15 ビット 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 PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 ビット 7 ビット 0 凡例 : R = 読み出し可 W = 書き込み可 U = 未実装、読むと「0」 -n = POR 後の値 ‘1’ = セット ‘0’ = クリア x = 不定 ビット 15-0 PCFG15:PCFG0: アナログ入力ピン構成制御ビット 1 = アナログ入力用ピンをデジタル モードにする。ポート読み出し可能。A/D 入力マルチプレクサの 入力は AVss に接続される 0 = アナログ入力用ピンをアナログ モードとする。ポート読み出しは無効。A/D モジュールはピンの 電圧をサンプルする

レジスタ 17-6: AD1CSSL: MUX A 用入 A/D 力スキャン選択レジスタ(1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 CSSL15 CSSL14 CSSL13 CSSL12 CSSL11 CSSL10 CSSL9 CSSL8 ビット 15 ビット 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 CSSL7 CSSL6 CSSL5 CSSL4 CSSL3 CSSL2 CSSL1 CSSL0 ビット 7 ビット 0 凡例 : R = 読み出し可 W = 書き込み可 U = 未実装、読むと「0」 -n = POR 後の値 ‘1’ = セット ‘0’ = クリア x = 不定 ビット 15-0 CSSL15:CSSL0: A/D 入力チャネル スキャン 選択ビット 1 = 対応するアナログ チャネル ANxx を MUX A のシーケンシャル スキャンとして選択する 0 = 対応するアナログ チャネルはシーケンシャル スキャンでは無視する 注 1: MUX A のみスキャンがサポートされています。

(11)

10

ビット

A/D

コンバータ

17

17.4

A/D モジュールの構成設定

A/D 変換を差動させるには次のような手順を実行して下さい。 1. A/D モジュールを構成設定する • アナログ入力として期待する範囲に合う電圧リファレンス源を選択する • プロセッサ クロックで望むデータ レートとなるアナログ変換クロックを選択 • どうサンプリングを起動するかを決める • S/H チャネルにどの入力を接続するかを決める • 望ましいサンプル / 変換シーケンスを選択する • バッファ内の変換結果の格納方法を選択する • 割り込みレートを選択する • A/D モジュールをオンする 2. A/D 割り込みを設定する ( 必要な場合 ) • AD1IF ビットをクリア • A/D 割り込み優先レベルを選択 各設定ステップのオプションについては次の各項で説明しています。

17.4.1

電圧リファレンス源の選択

A/D 変換のための電圧リファレンスは、VCFG2:VCFG0 制御ビット (ADCON2<15:13>) を 使用して選択されます。上位側電圧リファレンス (VR+) および下位側電圧リファレンス (VR-) は、内部 AVDD および AVSS 電圧範囲か、VREF+ および VREF- 入力ピンになります。 外部電圧リファレンス ピンは、少ピン デバイスの場合には AN0 入力と AN1 入力と共用 される場合があります。A/D コンバータは、VREF+ および VREF- 入力ピンで共有される場 合でも、このピンの電圧の変換を実行します。 外部リファレンス ピンに適用される電圧は、そのデバイスの仕様に合わせる必要がありま す。詳しくはデバイス データ シートの 17.16 項 「電気的仕様」を参照してください。

17.4.2 A/D 変換クロックの選択

A/D 変換には変換が完了できる最大変換レートがあります。アナログ モジュール クロッ ク TADは、変換のタイミングを制御します。A/D 変換には 12 クロック周期 (12TAD) が必 要です。A/D クロックは、デバイス命令クロックから得られます。 A/D 変換クロックの周期は、8 ビットカウンタを使用してソフトウェアで選択できます。 TADには 64 のオプションが可能であり、ADCS7:ADCS0 ビット (AD1CON3<7:0>) により 指定されます。式 17-1 から、ADCS 制御ビット、およびデバイス命令クロック周期 TCYの 関数として TAD値が求められます。正しい A/D 変換のために、A/D 変換クロック (TAD) に は 75 ns という最小の TAD時間を確保して選択して下さい。 式 17-1: A/D 変換クロック周期

注 : SSRC、 ASAM、 BUFS SMPI、 BUFM、 ALTS ビットは、AD1CON3、 AD1CSSL レジス タ同様、ADON = 1 の時には書き込まないで下さい。不定の変換結果データとなる ことがあります。 TCY (ADCS + 1) ADCS = 2 TAD – 1 TCY 2 注: TCY = FOSC/2 で、ダズ モードと PLL は無効とします。 TAD =

(12)

A/D コンバータには、変換に使用できる専用の内蔵 RC クロック源があります。A/D RC ク ロック源は、デバイスがスリープ モードの間に A/D 変換を実行する場合に使用します。 RC オシレータは ADRC ビット (ADCON3<7>) の設定により選択されます。ADRC ビット がセットされると、ADCS ビットは A/D 動作に無関係となります。

17.4.3

アナログ ポート ピンの構成

AD1PCFG レジスタは、アナログ入力として使用するデバイス ピンの入力条件を指定しま す。そのアナログ チャネルに対応する PCFGn ビット (AD1PCFG<n>) がクリアされると、 対応するピンがアナログ入力として構成されます。AD1PCFG レジスタはリセット時には クリアされるため、デフォルトでは A/D 入力ピンはアナログ入力として構成されます。ア ナログ入力に構成された場合、対応するポートの I/O デジタル入力バッファが無効になる ため、電流を消費しません。

AD1PCFG レジスタと対応する TRIS レジスタの両方が、A/D ポート ピンの動作を制御し ます。アナログ入力とするポート ピンは、対応する TRIS ビットをセットして入力とする 必要があります。デバイス リセット後、すべての TRIS ビットはセットされます。 A/D 入力に関連する I/O ピンをデジタル出力として構成 (TRIS ビットをクリアして ) して、 さらにこのピンをアナログ モード (AD1PCFG<n> = 0) とすると、このポートのデジタル出 力レベル (VOH または VOL) が変換されます。 PCFGn ビットがセットされた場合、対応するピンはデジタル I/O として構成されます。こ の構成の場合、アナログ マルチプレクサへの入力は AVSS に接続されます。

17.4.4 CH0 入力選択

A/D コンバータには、2 つの独立した入力マルチプレクサが実装されていて、どちらのア ナログ チャネルをサンプルするかユーザーが選択できます。それらはマルチプレクサ A (MUX A) とマルチプレクサ B(MUX B) として良く知られています。CH0SA3:CH0SA0 と CH0NA で指定される入力はまとめて MUX A 入力と呼ばれます。CH0SB3:CH0SB0 と CH0NB で指定される入力はまとめて MUX B 入力と呼ばれます。 MUX A と MUX B の機能は互いに良く似ています。両マルチプレクサとも、個々のサン プル用として任意のアナログ入力チャネルを選択でき、また、差動サンプリングの負側の リファレンス源としていくつかの選択肢から選択できます。さらに、MUX A はシーケン シャルなアナログ チャネルのスキャンを構成できますし、MUX B はより幅広いリファレ ンス源から選択できます。これらについては、 17.4.4.1 項 「MUX A と MUX B 入力の構成」 と 17.4.4.3 項 「複数入力のスキャニング」で詳細を説明します。 17.4.4.1 MUX A と MUX B 入力の構成 ユーザーは CH0 の正側の入力には、16 アナログ入力の任意のひとつを選択して接続でき ます。MUX A は、通常 CH0SA3:CH0SA0 ビット (AD1CHS<3:0>) で正側入力のアナログ チ ャ ネ ル を 選 択 し ま す。MUX B の正側チャネルは、CH0SB3:CH0SB0 ビット (AD1CHS<11:8>) で選択されます。 CH0 の負側 ( 反転 ) の入力には、ユーザーは 2 つの選択肢を持ち、CH0NA および CH0NB ビット ( それぞれ AD1CHS<7,15>) で選択できます。いずれかをセットすると AN1 がマル チプレクサの負側入力として選択され、クリアするとそのときの VR- 源が選択されます。 注 1: PORT レジスタを読み出すと、アナログ入力として構成されているいずれのピンも 「0」として読み出されます。 2: デジタル入力として定義されたピン (AN15:、AN0 ピンを含む ) へのアナログ レベ ルは、入力バッファにデバイス仕様以上の電流を消費させることがあります。 注 : PIC24F デバイスごとにアナログ入力の数は異なっています。利用可能なアナログ入 力については、その特定デバイスのデータ シートを参照して下さい。

(13)

10

ビット

A/D

コンバータ

17

17.4.4.2 MUX A と MUX B の交互入力選択 デフォルトでは、A/D コンバータは MUX A 側で選択された入力をサンプルし変換します。 ALTS ビット (AD1CON2<0>) によりモジュールが連続するサンプルの間 MUX A と MUX B で選択される 2 つの入力の交互入力を有効化します。

ALTS ビットが「0」の場合、CH0SA と CH0NA ビットで指定されている入力だけがサン プルされます。ALTS ビットが「1」の場合、モジュールはまず MUX A 側の入力をサンプ ルし、続いて MUX B をサンプルし、これを交互に繰り返します。

チャネル 0 の最初のサンプル / 変換で ALTS ビットが「1」の場合、CH0SA<3:0> と CH0NA で選択された入力がサンプルされます。次のサンプル / 変換シーケンスでは、 CH0SB<3:0> と CH0NB で選択された入力が選択されサンプリングされます。 このパターンが続くサン プル変換シーケンスでも繰り返されます。 17.4.4.3 複数入力のスキャニング MUX A がアナログ入力として選択されると、A/D モジュールは複数 アナログ入力チャネ ルのスキャンの能力を持ちます。CSCNA ビット (AD1CON2<10>) が CH0 チャネル入力の 選択した複数のアナログ入力スキャンを有効化します。CSCNA がセットされると CH0SA ビットは無視され、 AD1CSSL レジスタで指定されたチャネルがシーケンシャルにサンプ ルされます。 AD1CSSL レジスタの各ビットは、アナログ チャネルの 1 つに対応します。AD1CSSL レ ジスタのビットがセットされると、対応するアナログ入力チャネルがスキャン シーケンス に含まれます。入力は常に下位入力から上位入力に向かってスキャンされ、各割り込みが 発生した後は、最初の選択チャネルから再開します。 AD1CSSL は、チャネルの正側の入力だけを指定します。CH0NA ビットは、スキャンの間 もチャネルの負側の入力を選択します。 スキャンは MUX A 入力選択にのみに有効です。CH0SB<3:0> ビットの指定により MUX B の入力を選択した場合には、代替チャネル入力が選択されます。MUX A と MUX B の交 互サンプリングが選択された場合 (ALTS = 1) には、入力は、AD1CSSL レジスタで指定さ れるスキャン入力と、CH0SB ビットで指定される固定入力を交互に切り替えます。

17.4.5 モジュールの有効化

ADON ビット (ADCON1<15>) がセットされた時、モジュールはフルパワーで動作します。 ADON が「0」の場合、モジュールは無効化されます。回路のデジタルおよびアナログ部 とも省電力最大化のためにオフにされます。 ADON ビットをセットしてモジュールを有効化する場合には、ユーザーはアナログ段が安 定するまで待って下さい。安定化時間については、 17.16 項 「電気的仕様」を参照して下 さい。 注 : スキャン対象の入力に選択した数が、各割り込み毎に採取されるサンプル数よりも 大きい場合、高位の番号の入力はサンプリングされません。

(14)

17.5

初期化

例 17-1 に A/D モジュールの簡単な初期化コード例を示します。この典型的な構成では、16 の全アナログ入力をアナログ入力として設定しています。アイドル モード中の動作は無効 とし、出力データは符号なし固定小数形式で、AVDD と AVSSを VR+ と VR- として使いま す。サンプルの開始と変換の開始 ( 変換トリガ ) はいずれもソフトウェアによる手動としま す。入力スキャンは無効で、毎回のサンプル / 変換の後に割り込み (1 変換結果 ) とし、1 チャネル (AN0) のみ変換とします。A/D 変換クロックは TCY/2 です。 この例は、サンプル / 変換シーケンスを手動設定と SAMP ビット (AD1CON1<1>) をクリ アする方法で行うひとつの方法を示しています。この方法は、他の方法も含めて 17.6 項 「サンプリング プロセスの制御」と 17.7 項 「変換プロセスの制御」でさらに説明します。 例 17-1: A/D 初期化コード例

AD1PCFG = 0; // Configure A/D port // all input pins are analog AD1CON1 = 0x2208; // Configure sample clock source

// and conversion trigger mode.

// Unsigned Fraction format (FORM<1:0>=10), // Manual conversion trigger (SSRC<3:0>=000), // Manual start of sampling (ASAM=0),

// No operation in Idle mode (ADSIDL=1). AD1CON2 = 0; // Configure A/D voltage reference

// and buffer fill modes.

// Vr+ and Vr- from AVdd and AVss (VCFG<2:0>=000), // Inputs are not scanned,

// Interrupt after every sample

AD1CON3 = 0; // Configure A/D conversion clock as Tcy/2 AD1CHS = 0; // Configure input channels,

// CH0+ input is AN0, // CH0- input is Vr- (AVss). AD1CSSL = 0; // No inputs are scanned.

IFS0bits.AD1IF= 0; // Clear A/D conversion interrupt.

// Configure A/D interrupt priority bits (AD1IP<2:0>) here, if // required. Default priority level is 4.

IEC0bits.AD1IE= 1; // Enable A/D conversion interrupt AD1CON1bits.ADON= 1;// Turn on A/D

AD1CON1bits.SAMP= 1;// Start sampling the input

Delay(); // Ensure the correct sampling time has elapsed // before starting conversion.

AD1CON1bits.SAMP= 0;// End A/D sampling and start conversion // Example code for A/D ISR:

void __attribute__ ((__interrupt__)) _ADC1Interrupt(void) {

IFS0bits.AD1IF= 0; }

(15)

10

ビット

A/D

コンバータ

17

17.6

サンプリング プロセスの制御

17.6.1

手動サンプリング

ASAM ビット (AD1CON1<2>) がクリアされているとき、SAMP ビット (ADCON1<1>) を セットすると、A/D のサンプリングが開始されます。複数のオプションのいずかを使用す ると、サンプリングを終了して変換を完了できます。SAMP ビットが再度設定されるまで、 サンプリングは再開しません。例として、図 17-3 を参照してください。

17.6.2

自動サンプリング

ASAM ビットをセットすると、変換完了後に自動的にサンプリングが開始されます。サン プリングを終了し、変換を実行する場合は、複数のオプションのいずかを使用します。チャ ネルの変換の終了後に、そのチャネルでサンプリングが再開されます。例として、図 17-4 を参照してください。

17.6.3

サンプリング状態のモニタ

SAMP ビットは A/D のサンプリング状態を表しています。通常、SAMP ビットがクリアな らサンプリングは終了状態を 示しており、DONE ビットが自動的にクリアされて変換の開 始を表します。DONE が「1」で SAMP ビットが「0」のときは、A/D は停止状態です。

17.6.4

サンプリングの停止

手動サンプリング モードのときは、SAMP ビットをクリアするとサンプリングを終了しま す。SSRC2:SSRC0 = 000 なら、変換を自動的に開始します。 自動サンプリング モード中に ASAM ビットをクリアしても、進行中のサンプリング / 変 換シーケンスは終了できません。しかし、その変換終了後の自動サンプリング開始は行わ れません。

17.7

変換プロセスの制御

変換トリガ要因によりサンプリングが終了し、選択した変換シーケンスが開始されます。 SSRC2:SSRC0 ビット (AD1CON1<7:5>) により変換要因を選択します。

17.7.1 手動制御

SSRC2:SSRC0 = 000 の時、変換トリガはソフトウェア制御となります。SAMP ビット (ADCON1<1>) をクリアすると変換シーケンスが開始されます。 図 17-3 の例では、SAMP ビットのセットによりサンプリングが開始され、SAMP ビットの クリアにより、サンプリングが終了して変換が開始されます。ユーザー ソフトウェアで、 入力信号の十分なサンプリング時間を確保するようSAMPビットのセットとクリアの時間 を調整する必要があります。 図 17-4 の例は、ASAM ビットをセットで自動サンプリングが開始され、SAMP ビットを クリアしてサンプリングを終了させ、変換を開始する例です。変換完了後、モジュールは 自動的にサンプリング状態に戻ります。サンプル間隔の始めに SAMP ビットが自動的に セットされます。ユーザー ソフトウェアで、入力信号の十分なサンプリング時間を確保す るように、SAMP ビットをクリアする間の時間にサンプリング時間の他に変換時間も含ま れることを考慮して調整する必要があります。 注 1: 利用可能な変換トリガ要因は PIC24F デバイスの種類により異なります。利用可能 な変換トリガ要因に関しては特定デバイスのデータ シートを参照してください。 2: A/D モジュールが有効に設定されている場合、SSRC 選択ビットは変更できませ ん。変換トリガ要因を変更する場合、まず ADON ビット (ADCON1<15>) をクリア して A/D モジュールを無効にして下さい。

(16)

図 17-3: 1 つのチャネルの変換、手動サンプル開始、手動変換開始の場合 例 17-2: 1 つのチャネルの変換で手動サンプル開始、手動変換開始の場合のコード例 図 17-4: 1つのチャネルの変換で自動サンプル開始、 手動変換開始の場合 A/D CLK SAMP ADC1BUF0 TSAMP TCONV BCF AD1CON1, SAMP BSF AD1CON1, SAMP 命令実行 DONE int ADCValue;

AD1PCFG = 0xFFFB; // AN2 as analog, all other pins are digital AD1CON1 = 0x0000; // SAMP bit = 0 ends sampling

// and starts converting AD1CHS = 0x0002; // Connect AN2 as CH0 input

// in this example AN2 is the input AD1CSSL = 0;

AD1CON3 = 0x0002; // Manual Sample, Tad = 2 Tcy AD1CON2 = 0;

AD1CON1bits.ADON= 1; // turn ADC ON

while (1) // repeat continuously {

AD1CON1bits.SAMP= 1; // start sampling...

Delay(); // Ensure the correct sampling time has elapsed // before starting conversion.

AD1CON1bits.SAMP= 0; // start Converting while (!AD1CON1bits.DONE); // conversion done? ADCValue= ADC1BUF0; // yes then get ADC value } A/D CLK SAMP ADC1BUF0 TSAMP TCONV BCF AD1CON1, SAMP TCONV

BSF AD1CON1, ASAM BCF AD1CON1, SAMP TSAMP

TAD0 TAD0

(17)

10

ビット

A/D

コンバータ

17

17.7.2

クロックによる変換トリガ

SSRC2:SSRC0 = 111 の時、変換トリガは A/D クロック制御下に置かれます。SAMC ビッ ト (ADCON3<12:8>) により、サンプリング開始から変換開始までのクロック サイクル TAD の数が選択されます。サンプリング開始後、モジュールは SAMC ビットで指定された数 の TAD クロックをカウントします。サンプリングに必要な時間を確保するため、SAMC ビットには常に少なくとも 1 クロックサイクル以上をプログラムして下さい。 式 17-2: クロックによる変換トリガ時間 図 17-5 はユーザー ソフトウェアでクロックによる変換トリガをサンプリングを開始したあ とどのように使うかを示しています。 図 17-5: 1 つのチャネルの変換で、手動サンプリング開始、 TADベースの変換開始の場合 例 17-3: 1 つのチャネルの変換で、手動サンプリング開始、TAD ベースの変換開始の場合のコード例 TSMP = SAMC<4:0> * TAD A/D CLK SAMP ADC1BUF0 TSAMP TCONV BSF AD1CON1, SAMP 命令実行 DONE int ADCValue;

AD1PCFG = 0xEFFF; // all PORTB = Digital; RB12 = analog AD1CON1 = 0x00E0; // SSRC<3:0> = 111 implies internal

// counter ends sampling and starts // converting.

AD1CHS = 0x000C; // Connect AN12 as CH0 input. // in this example AN12 is the input AD1CSSL = 0;

AD1CON3 = 0x1F02; // Sample time = 31Tad, // Tad = 2 Tcy

AD1CON2 = 0;

AD1CON1bits.ADON= 1; // turn ADC ON

while (1) // repeat continuously {

AD1CON1bits.SAMP= 1; // start sampling then... // after 31Tad go to conversion while (!AD1CON1bits.DONE); // conversion done?

ADCValue= ADC1BUF0; // yes then get ADC value

(18)

17.7.2.1 フリーランのサンプリング、変換シーケンス 自動変換トリガ モード (SSRC2:SSRC0 = 111) を自動サンプリング モード (ASAM = 1) と 一緒に使うと、A/D モジュールをユーザーやデバイスのリソースの介在なく、スケジュー ルされたサンプル / 変換シーケンスにできます。「クロックによる」モードを図 17-6 に示 しますが、モジュール初期化後は連続的にデータの収集を実行します。 図 17-6: 1 つのチャネルの変換で、 自動サンプル開始、TADベースの変換開始の場合 例 17-4: 1 つのチャネルの変換で、自動サンプリング開始、TADベースの変換開始のコード例 17.7.2.2 クロックによる変換トリガと自動サンプリングを使用した場合のサンプル 時間の考慮 A/D CLK SAMP ADC1BUF1 TSAMP TCONV DONE TSAMP TCONV ADC1BUF0 BSF AD1CON1, ASAM 命令実行 ソフトウェアで リセット

int ADCValue, count; int *ADC16Ptr;

AD1PCFG = 0xFFFB; // AN2 as analog,

// all other pins are digital AD1CON1 = 0x00E0; // SSRC bit = 111 implies internal

// counter ends sampling // and starts converting.

AD1CHS = 0x0002; // Connect RB2/AN2 as CH0 input.. // in this example RB2/AN2 is // the input

AD1CSSL = 0;

AD1CON3 = 0x0F00; // Sample time = 15Tad, // Tad = Tcy/2

AD1CON2 = 0x0004; // Set AD1IF after every 2 samples AD1CON1bits.ADON= 1; // turn ADC ON

while (1) // repeat continuously {

ADCValue= 0; // clear variable

ADC16Ptr= &ADC1BUF0; // initialize ADC1BUF pointer IFS0bits.AD1IF= 0; // clear ADC interrupt flag AD1CON1bits.ASAM= 1; // auto start sampling

// for 31Tad then go to conversion while (!IFS0bits.AD1IF); // conversion done?

AD1CON1bits.ASAM= 0; // yes then stop sample/convert for (count = 0; count < 2; count++)// average the 2 ADC value ADCValue= ADCValue + *ADC16Ptr++;

ADCValue= ADCValue >> 1;

(19)

10

ビット

A/D

コンバータ

17

17.7.3

イベント トリガによる変換開始

サンプリングの終了と変換開始を、他のタイム イベントと同期させるのが望ましい場合が あります。A/D モジュールは、変換トリガ イベントとして、3 つの要因のいずれかを使用 できます 17.7.3.1 外部 INT0 ピン トリガ SSRC2:SSRC0 = 001 の時、A/D 変換は INT0 ピンのアクティブな遷移でトリガされます。 ピンは、入力の立ち上がりエッジまたは立下りエッジのいずれかでプログラムされます。 17.7.3.2 汎用タイマ比較トリガ A/D は SSRC<2:0> = 010 設定によりこのトリガ モードに構成されます。32 ビットタイマ TMR3/TMR2 と 32 ビットの結合周期レジスタ PR3/PR2 との間で比較一致が発生すると、 特別な ADC トリガ イベント信号がタイマ 3 により生成されます。TMR5/TMR4 タイマ ペ アにはこの機能はありません。詳しくは第 14 章 「タイマ」 を参照してください。 17.7.3.3 内部、外部イベントと A/D 変換動作の同期化 外部イベント トリガ パルスによりサンプリングを終了し変換を開始するモード (SSRC2:SSRC0 = 001、 010、011) を、自動サンプリング (ASAM = 1) と併用することで、 A/D のサンプル変換イベントをトリガ パルス要因に同期させられます。例えば、図 17-8 で は、SSRC2:SSRC0 = 010 かつ ASAM = 1 ですので、A/D は常にサンプリングを終了させて、 タイマ比較トリガ イベントに同期して変換を開始します。A/D のサンプル変換レートは、 タイマ比較イベント レートに依存することになります。 図 17-7: 手動サンプル開始、 トリガ ベースの変換開始の場合 図 17-8: 自動サンプル開始、変換トリガ ベースの変換開始の場合 変換トリガ A/D CLK SAMP ADC1BUF0 TSAMP TCONV BSF AD1CON1, SAMP 命令実行 変換トリガ A/D CLK SAMP ADC1BUF0 TSAMP TCONV BSF AD1CON1, ASAM TCONV TSAMP ADC1BUF1 DONE ソフトウェアで リセット 命令実行

(20)

例 17-5: 1 チャネルの変換で、 自動サンプリング開始、変換トリガ ベースの変換開 始の場合のコード例 17.7.3.4 自動サンプリング / 変換シーケンスの場合のサンプル時間の考慮 サンプル / 変換シーケンスが異なると、S/H チャネルがアナログ信号を獲得するために利 用できるサンプル時間が異なります。サンプリング時間が 17.10 項 「A/D サンプリング要 件」で概説しているサンプリング要件を上回るようにして下さい。 モジュールが自動サンプリング用に設定され、外部トリガ パルスが変換トリガとして使用 されている場合、サンプリング間隔はトリガ パルス インターバルの一部となります。サ ンプル時間はトリガ パルス周期となりますから、変換を完了するのに要する時間はこれよ り短くなります。 式 17-3: シーケンシャル サンプリングの場合の有効サンプリング時間の計算

17.7.4 サンプリング / 変換状態のモニタ

DONE ビット (AD1CON1<0>) は、A/D のサンプリング状態を表します。一般的に、サン プリングが終了したことを表す SAMP ビットがクリアされると、DONE ビットが自動的に クリアされて変換開始を示します。SAMP が 「0」で DONE が「1」の場合、A/D は非ア クティブ状態です。

一部の動作モードでは、SAMP ビットでサンプリングの開始および終了を行うこともでき ます。これらのモードでは、DONE ビットを進行中の変換終了には使用できません。

17.7.5

A/D 割り込みの発生

SMPI3:SMPI0 ビット (AD1CON2<5:2>) で AD1IF 割り込みフラグの発生の制御をします。 A/D 割り込みフラグは、サンプリング開始後 SMPI ビットで指定されたサンプル / 変換シー ケンス回数後にセットされ、以降同じサンプル回数ごとに繰り返されます。SMPI ビット で指定される値は、バッファの中のデータ サンプル数に対応し、最大 16 です。割り込み を有効にするには、A/D 割り込み有効化ビット AD1IE をセットする必要があります。

TSMP = トリガ パルス間隔 (TSEQ) – 変換時間 (TCONV) = TSEQ – TCONV int ADCValue;

AD1PCFG = 0xFFFB; // AN2 analog, all other pins digital AD1CON1 = 0x0040; // SSRC bit = 010 implies GP TMR3

// compare ends sampling and starts // converting.

AD1CHS = 0x0002; // Connect AN2 as CH0 input... // in this example AN2 is the input AD1CSSL = 0;

AD1CON3 = 0x0000; // Sample time is TMR3, Tad = Tcy/2 AD1CON2 = 0x0004; // Set AD1IF after 2 conversions

// set TMR3 to time out every 125 ms TMR3 = 0x0000;

PR3 = 0x3FFF; T3CON = 0x8010;

AD1CON1bits.ADON= 1; // turn ADC ON

AD1CON1bits.ASAM= 1; // start auto sampling every 125 ms while (1) // repeat continuously

{

while (!IFS0bits.AD1IF);// conversion done?

ADCValue= ADC1BUF0; // yes then get first ADC value IFS0bits.AD1IF= 0; // clear AD1IF

(21)

10

ビット

A/D

コンバータ

17

17.7.6

変換の中断

変換中に ADON ビットをクリアすることにより現在の変換が中断されます。A/D 結果バッ ファは、部分的な A/D 変換サンプル完了では更新されません。つまり、対応している ADC1BUF バッファ位置には、最後に完了した変換の値 ( またはバッファに最後に書き込 まれた値 ) が引き続き格納されています。

17.8

A/D 結果バッファ

変換が完了すると、モジュールにより A/D 結果バッファに変換の結果が書き込まれます。 このバッファは、16 ワードの RAM アレイで、SFR 空間経由でアクセスされます。 ユーザー ソフトウェアは、A/D 変換結果が生成されるたびに、これを読み込むこともでき ますが、この方法では CPU 時間が大量に消費されます。一般的に、コードを簡単にする ために、モジュールがバッファに結果を格納し、バッファが一杯になったときに割り込み を生成するようにします。

17.8.1

割り込みごとの変換回数

SMPI3:SMPI0 で CPU の割り込みが起こる前に実行する A/D 変換の回数を選択します。割 り込みあたり 1 サンプルから 16 サンプルまで指定できます。各割り込みの後に、A/D 変 換モジュールは常にバッファの先頭から変換結果の書き込みを開始します。例えば、 SMPI3:SMPI0 = 0000 ならば、変換結果は常に ADC1BUF0 に書き込まれます。この例で は、他のバッファ位置は使用されません。

17.8.2

バッファ フィル モード

BUFM ビット (AD1CON2<1>) が「1」の時、16 ワードの結果バッファは 2 つの 8 ワードの グループ、下位グループ (ADC1BUF0 ~ ADC1BUF7) と上位グループ (ADC1BUF8 ~ ADC1BUFF) に分けられます。各割り込みイベントの後に、8 ワード バッファは交互に変 換結果を受け取ります。BUFM のセット後に使用される最初の 8 ワード バッファは下位 グループです。BUFM が「0」の時、すべての変換シーケンスで 16 ワードの完全なバッ ファが使用されます。 分割バッファ機能を使用するかどうかの決定は、 割り込み後にバッファ内容を移動するの に利用できる時間により異なり、アプリケーションにより決定されます。1 つのチャネル をサンプルし変換するのにかかる時間内に、プロセッサが素早くすべてのバッファをアン ロードできる場合、BUFM ビットは「0」にでき、割り込みごとに最大 16 変換が実行でき ます。アプリケーションは、最初のバッファ位置が上書きされる前に 1 回分のサンプリン グ / 変換時間だけが与えられます。 1 回のサンプルと変換の時間内にプロセッサがバッファをアンロードできない場合、 BUFM ビットを「1」にします。例えば、SMPI3:SMPI0 = 0111 ならば、8 つの変換がバッ ファの下位半分にロードされ、その後割り込みが発生します。次の 8 つの変換はバッファ の残りの上位半分にロードされます。したがって、プロセッサは割り込み間の全ての時間 を使って、バッファから 8 つの変換を取り出すことができます。

17.8.3

バッファ フィル ステータス

変換結果バッファが BUFM 制御ビットを使って分割される場合、BUFS ステータ スビッ ト (ADCON2<7>) により、どちらの半分が A/D コンバータにより書き込み中であるかが示 されます。BUFS = 0 ならば、A/D コンバータは下位グループに格納中であり、ユーザー ソフトウェアは上位グループから変換値を読み出します。BUFS = 1 ならば、状況は逆に なり、ユーザー ソフトウェアは下位グループから変換値を読み出します。 注 : BUFM ビット (AD1CON2<1>) がセットされた場合、ユーザーは割り込みごとに 8 変 換以上の値を SMPI ビットにプログラムしないようにして下さい。

(22)

17.8.4

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

各 A/D 変換結果は 10 ビット幅です。データ フォーマットの互換性を保つため、各変換結 果は自動的に 4 種の選択可能な 16 ビット フォーマットの内のひとつに変換されます。 FORM1:FORM0 ビット (AD1CON1<9:8>) でフォーマットを選択します。 図 17-9 に選択可 能なデータ出力フォーマットを示します。 図 17-9: A/D 出力データ フォーマット 表 17-1: 各種結果コードの数値表現 : 整数フォーマットの場合 RAM 内容 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 バス読み出し 整数 0 0 0 0 0 0 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 符号付整数 d09 d09 d09 d09 d09 d09 d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 固定小数 (1.15) d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 0 0 0 0 0 0 符号付固定小数 (1.15) d09 d08 d07 d06 d05 d04 d03 d02 d01 d00 0 0 0 0 0 0 VIN/VREF 10 ビット 出力コード 16 ビット整数フォーマット / 10 進数表記 16 ビット符号付整数フォーマット / 10 進数表記 1023/1024 11 1111 1111 0000 0011 1111 1111 1023 0000 0001 1111 1111 511 1022/1024 11 1111 1110 0000 0011 1111 1110 1022 0000 0001 1111 1110 510 ²²² 513/1024 10 0000 0001 0000 0010 0000 0001 513 0000 0000 0000 0001 1 512/1024 10 0000 0000 0000 0010 0000 0000 512 0000 0000 0000 0000 0 511/1024 01 1111 1111 0000 0001 1111 1111 511 1111 1111 1111 1111 -1 ²²² 1/1024 00 0000 0001 0000 0000 0000 0001 1 1111 1110 0000 0001 -511 0/1024 00 0000 0000 0000 0000 0000 0000 0 1111 1110 0000 0000 -512

(23)

10

ビット

A/D

コンバータ

17

表 17-2: 各種結果コードの数値表現 : 固定小数フォーマットの場合

17.9

変換 シーケンス例

以下の構成例には、サンプリングおよびバッファ構成の異なる A/D 動作が示されていま す。各例では、 ASAM ビットの設定により自動サンプリングが開始されます。変換トリガ によりサンプリングが終了し、変換が開始されます。

17.9.1 単一チャネルの複数回のサンプリングと変換

図 17-10 と例 17-6 では A/D の基本構成を説明しています。この場合、1 つの A/D 入力で ある AN0 がサンプリングされ変換されます。結果は ADC1BUF バッファに格納されます。 このプロセスは、バッファが一杯になってモジュールが割り込みを生成するまで 16 回繰 り返されます。そして全プロセスが繰り返されます。

ALTS をクリアすることで、MUX A 入力のみがアクティブになります。CH0SA ビットと CH0NA ビット (AN0-VR-) が、サンプル / ホールド チャネルへの入力を指定します。他の 入力選択ビットはすべて使用されません。 図 17-10: 割り込み当たり単一チャネルで 16 回の 変換の場合 VIN/VREF 10 ビット 出力コード 16 ビット固定小数フォーマット / 10 進数表記 16 ビット符号付固定小数フォーマット / 10 進数表記 1023/1024 11 1111 1111 1111 1111 1100 0000 0.999 0111 1111 1100 0000 0.499 1022/1024 11 1111 1110 1111 1111 1000 0000 0.998 0111 1111 1000 0000 0.498 ••• 513/1024 10 0000 0001 1000 0000 0100 0000 0.501 0000 0000 0100 0000 0.001 512/1024 10 0000 0000 1000 0000 0000 0000 0.500 0000 0000 0000 0000 0.000 511/1024 01 1111 1111 0111 1111 1100 0000 0.499 1111 1111 1100 0000 -0.001 ••• 1/1024 00 0000 0001 0000 0000 0100 0000 0.001 1000 0000 0100 0000 -0.499 0/1024 00 0000 0000 0000 0000 0000 0000 0.000 1000 0000 0000 0000 -0.500 変換 A/D CLK SAMP ADC1BUF0 TSAMP TCONV BSF AD1CON1, ASAM ADC1BUF1 DONE ADC1BUFE ADC1BUFF CH0 への入力 AN0 TSAMP TCONV AN0 TSAMP TCONV AN0 TSAMP TCONV AN0 AD1IF ASAM トリガ 命令実行

(24)

例 17-6: 単一チャネルの 複数回のサンプルと変換の場合

int ADCValue, count; int *ADC16Ptr;

AD1PCFG = 0xFFFB; // Only AN2 as analog input

AD1CON1 = 0x00E0; // Internal counter triggers conversion AD1CHS = 0x0002; // Connect AN2 as CH0 positive input AD1CSSL = 0;

AD1CON3 = 0x0F00; // Sample time = 15Tad, Tad = Tcy/2 AD1CON2 = 0x003C; // Set AD1IF after every 16 samples AD1CON1bits.ADON= 1; // turn ADC ON

while (1) // repeat continuously {

ADCValue= 0; // clear value

ADC16Ptr= &ADC1BUF0; // initialize ADC1BUF pointer IFS0bits.AD1IF= 0; // clear ADC interrupt flag AD1CON1bits.ASAM= 1; // auto start sampling for 31Tad

// then go to conversion while (!IFS0bits.AD1IF); // conversion done?

AD1CON1bits.ASAM= 0; // yes then stop sample/convert for (count = 0; count < 16; count++)// average the 16 ADC value ADCValue= ADCValue + *ADC16Ptr++;

ADCValue= ADCValue >> 4;

(25)

10

ビット

A/D

コンバータ

17

例 17-7: 割り込み当たり単一チャネルで 16 回の変換の場合 A/D の構成 • AN0 を CH0+ 入力として選択 (CH0SA3:CH0SA0 = 0000) • VR- を CH0- 入力として選択 (CH0NA = 0) • 入力スキャンなしに構成 (CSCNA = 0) • MUX A のみサンプリングに使用する (ALTS = 0) • AD1IF を 16 回目のサンプリングごととセットする (SMPI3:SMPI0 = 1111) • バッファを 16 ワード結果の単一構成とする (BUFM = 0) 動作シーケンス 1. MUX A の入力 AN0 をサンプル ; 変換しバッファ 0h に書き込む 2. MUX A の入力 AN0 をサンプル ; 変換しバッファ 1h に書き込む 3. MUX A の入力 AN0 をサンプル ; 変換しバッファ 2h に書き込む 4. MUX A の入力 AN0 をサンプル ; 変換しバッファ 3h に書き込む 5. MUX A の入力 AN0 をサンプル ; 変換しバッファ 4h に書き込む 6. MUX A の入力 AN0 をサンプル ; 変換しバッファ 5h に書き込む 7. MUX A の入力 AN0 をサンプル ; 変換しバッファ 6h に書き込む 8. MUX A の入力 AN0 をサンプル ; 変換しバッファ 7h に書き込む 9. MUX A の入力 AN0 をサンプル ; 変換しバッファ 8h に書き込む 10. MUX A の入力 AN0 をサンプル ; 変換しバッファ 9h に書き込む 11. MUX A の入力 AN0 をサンプル ; 変換しバッファ Ah に書き込む 12. MUX A の入力 AN0 をサンプル ; 変換しバッファ Bh に書き込む 13. MUX A の入力 AN0 をサンプル ; 変換しバッファ Ch に書き込む 14. MUX A の入力 AN0 をサンプル ; 変換しバッファ Dh に書き込む 15. MUX A の入力 AN0 をサンプル ; 変換しバッファ Eh に書き込む 16. MUX A の入力 AN0 をサンプル ; 変換しバッファ Fh に書き込む 17. AD1IF フラグをセット ( さらに有効なら割り込み発生 ) 18. 割り込みから戻って (1-16) を繰り返す バッファに格納される結果 (2 サイクル後 ) バッファ アドレス バッファ内容 最初の AD1IF イベント時 バッファ内容 2 回目の AD1IF イベント時 ADC1BUF0 AN0、 サンプル 1 AN0、 サンプル 17 ADC1BUF1 AN0、 サンプル 2 AN0、 サンプル 18 ADC1BUF2 AN0、 サンプル 3 AN0、 サンプル 19 ADC1BUF3 AN0、 サンプル 4 AN0、 サンプル 20 ADC1BUF4 AN0、 サンプル 5 AN0、 サンプル 21 ADC1BUF5 AN0、 サンプル 6 AN0、 サンプル 22 ADC1BUF6 AN0、 サンプル 7 AN0、 サンプル 23 ADC1BUF7 AN0、 サンプル 8 AN0、 サンプル 24 ADC1BUF8 AN0、 サンプル 9 AN0、 サンプル 25 ADC1BUF9 AN0、 サンプル 10 AN0、 サンプル 26 ADC1BUFA AN0、 サンプル 11 AN0、 サンプル 27 ADC1BUFB AN0、 サンプル 12 AN0、 サンプル 28 ADC1BUFC AN0、 サンプル 13 AN0、 サンプル 29 ADC1BUFD AN0、 サンプル 14 AN0、 サンプル 30 ADC1BUFE AN0、 サンプル 15 AN0、 サンプル 31

(26)

17.9.2

全アナログ入力をスキャンする A/D 変換の場合

図 17-11 と例 17-9 に、すべての利用可能なアナログ入力チャネルをサンプルし変換する典 型的なセット アップ例を示しています。CSCNA ビットをセットすると、CH0 の 正入力へ の A/D 入力のスキャンを指定します。他の条件は 17.9.1 項 「単一チャネルの複数回のサン プリングと変換」と同じです。 最初に、AN0 入力が CH0 によりサンプリングされ変換されます。結果は ADC1BUF バッ ファに格納されます。次に AN1 入力がサンプリングされ変換されます。この入力のスキャ ン プロセスは、バッファが一杯になってモジュールが割り込みを生成するまで 16 回繰り 返されます。次に全プロセスが繰り返されます。 図 17-11: 1 回の割り込みごとに 16 入力全てをスキャンする場合 例 17-8: 全チャネルのサンプリングと変換 変換 A/D CLK SAMP ADC1BUF0 TSAMP TCONV

BSET AD1CON1, #ASAM ADC1BUF1 DONE ADC1BUFE ADC1BUFF CH0 への入力 AN0 TSAMP TCONV AN1 TSAMP TCONV AN14 TSAMP TCONV AN15 AD1IF ASAM トリガ 命令実行

int ADCValue, count; int *ADC16Ptr;

AD1PCFG = 0x0000; // Configure all pins as analog inputs AD1CSSL = 0xFFFF; // Include all channels in scan

AD1CON1 = 0x00E0; // Internal counter triggers conversion AD1CON3 = 0x0F00; // Sample time = 15Tad, Tad = Tcy/2 AD1CON2 = 0x023C; // Set AD1IF after every 16 samples,

// enable scanning AD1CON1bits.ADON= 1; // turn ADC ON

while (1) // repeat continuously {

ADCValue= 0; // clear value

ADC16Ptr= &ADC1BUF0; // initialize ADC1BUF pointer IFS0bits.AD1IF= 0; // clear ADC interrupt flag AD1CON1bits.ASAM= 1; // auto start sampling for 31Tad

// then go to conversion while (!IFS0bits.AD1IF); // conversion done?

(27)

10

ビット

A/D

コンバータ

17

例 17-9: 1 回の割り込みごとに 16 チャネルすべてをスキャンし変換する例 A/D の構成 • CH0+ 入力へのチャネルを選択する (CH0SA3:CH0SA0 = xxxx) • VR- を CH0- 入力として選択する (CH0NA = 0) • MUX A のみサンプリングに使用する (ALTS = 0) • MUX A を入力スキャンと構成する (CSCNA = 1) • 全アナログチャネルをスキャン対象とする (AD1CSSL = 1111 1111 1111 1111) • AD1IF を 16 回目のサンプリングごととしてセットする (SMPI3:SMPI0 = 1111) • バッファを 16 ワード結果の単一構成とする (BUFM = 0) 動作シーケンス 1. MUX A の入力 AN0 をサンプル ; 変換しバッファ 0h に書き込む 2. MUX A の入力 AN1 をサンプル ; 変換しバッファ 1h に書き込む 3. MUX A の入力 AN2 をサンプル ; 変換しバッファ 2h に書き込む 4. MUX A の入力 AN3 をサンプル ; 変換しバッファ 3h に書き込む 5. MUX A の入力 AN4 をサンプル ; 変換しバッファ 4h に書き込む 6. MUX A の入力 AN5 をサンプル ; 変換しバッファ 5h に書き込む 7. MUX A の入力 AN6 をサンプル ; 変換しバッファ 6h に書き込む 8. MUX A の入力 AN7 をサンプル ; 変換しバッファ 7h に書き込む 9. MUX A の入力 AN8 をサンプル ; 変換しバッファ 8h に書き込む 10. MUX A の入力 AN9 をサンプル ; 変換しバッファ 9h に書き込む 11. MUX A の入力 AN10 をサンプル ; 変換しバッファ Ah に書き込む 12. MUX A の入力 AN11 をサンプル ; 変換しバッファ Bh に書き込む 13. MUX A の入力 AN12 をサンプル ; 変換しバッファ Ch に書き込む 14. MUX A の入力 AN13 をサンプル ; 変換しバッファ Dh に書き込む 15. MUX A の入力 AN14 をサンプル ; 変換しバッファ Eh に書き込む 16. MUX A の入力 AN15 をサンプル ; 変換しバッファ Fh に書き込む 17. AD1IF フラグをセット ( 有効であれば割り込み発生 ) 18. 割り込みから戻って (1-16) を繰り返す バッファに格納される結果 (2 サイクル後 ) バッファ アドレス バッファ内容 最初の AD1IF イベント時 バッファ内容 2 回目の AD1IF イベント時 ADC1BUF0 サンプル 1 (AN0、 サンプル 1) サンプル 17 (AN0、 サンプル 2) ADC1BUF1 サンプル 2 (AN1、 サンプル 1) サンプル 18 (AN1、 サンプル 2) ADC1BUF2 サンプル 3 (AN2、 サンプル 1) サンプル 19 (AN2、 サンプル 2) ADC1BUF3 サンプル 4 (AN3、 サンプル 1) サンプル 20 (AN3、 サンプル 2) ADC1BUF4 サンプル 5 (AN4、 サンプル 1) サンプル 21 (AN4、 サンプル 2) ADC1BUF5 サンプル 6 (AN5、 サンプル 1) サンプル 22 (AN5、 サンプル 2) ADC1BUF6 サンプル 7 (AN6、 サンプル 1) サンプル 23 (AN6、 サンプル 2) ADC1BUF7 サンプル 8 (AN7、 サンプル 1) サンプル 24 (AN7、 サンプル 2) ADC1BUF8 サンプル 9 (AN8、 サンプル 1) サンプル 25 (AN8、 サンプル 2) ADC1BUF9 サンプル 10 (AN9、 サンプル 1) サンプル 26 (AN9、 サンプル 2) ADC1BUFA サンプル 11 (AN10、 サンプル 1) サンプル 27 (AN10、 サンプル 2) ADC1BUFB サンプル 12 (AN11、 サンプル 1) サンプル 28 (AN11、 サンプル 2) ADC1BUFC サンプル 13 (AN12、 サンプル 1) サンプル 29 (AN12、 サンプル 2) ADC1BUFD サンプル 14 (AN13、 サンプル 1) サンプル 30 (AN13、 サンプル 2)

(28)

17.9.3

ダブル 8 ワード バッファの使い方

図 17-12 および例 17-10 は 2 つの 8 ワード バッファを使った交互バッファに格納する例で す。BUFM ビットをセットすると 2 つの 8 ワード バッファが有効化されます。この例で はサンプル後ごとに割り込みを発生します。BUFM の設定は他の動作パラメータには影響 を与えません。まず、変換シーケンスはバッファ ADC1BUF0 への格納から開始します。 最初の割り込み発生後、バッファは ADCBUF8 から書き込みを開始します。BUFS ステー タス ビットは割り込み毎に交互にセットとクリアが繰り返されます。 図 17-12: 2 つの 8 ワード バッファを使って割り込みごとに 1 回、1 チャネルを変換する場合 A/D CLK SAMP ADC1BUF0

BSET AD1CON1, #ASAM 命令実行

CH0 への入力 AN3 TSAMP AD1IF ADC1BUF8 AN3 TSAMP AN3 TSAMP BUFS 変換 トリガ TCONVTCONV

TCONV TCONVTCONVTCONVTCONV TCONVTCONVTCONV

BCLR IFS0, #AD1IF BCLR IFS0, #AD1IF

TCONV

(29)

10

ビット

A/D

コンバータ

17

例 17-10: ダブル バッファ モードで割り込みごとに 1 チャネルを変換する例 A/D の構成 • AN3 を CH0+ 入力として選択する (CH0SA3:CH0SA0 = 0011) • VR- を CH0- 入力として選択する (CH0NA = 0) • 入力スキャンなしと設定 (CSCNA = 0) • MUX A のみをサンプリングに使用する (ALTS = 0) • AD1IF を毎回サンプリングごとにセットとする (SMPI3:SMPI0 = 0000) • バッファを 2 つの 8 ワード セグメントに構成する (BUFM = 1) 動作シーケンス 1. MUX A の入力 AN3 をサンプル ; 変換しバッファ 0h に書き込む 2. AD1IF フラグをセット ( 有効であれば割り込み発生 ); 書き込みアクセスが自動的 に別のバッファに切り替わる 3. MUX A の入力 AN3 をサンプル ; 変換しバッファ 8h に書き込む 4. AD1IF フラグをセット ( 有効であれば割り込み発生 ); 書き込みアクセスが自動的 に別のバッファに切り替わる 5. (1-4) を繰り返す バッファに格納される結果 ( 2 サイクル後 ) バッファ アドレス バッファ内容 最初の AD1IF イベント時 バッファ内容 2 回目の AD1IF イベント時 ADC1BUF0 サンプル 1 (AN3、 サンプル 1) ( 使用しない ) ADC1BUF1 ( 使用しない ) ( 使用しない ) ADC1BUF2 ( 使用しない ) ( 使用しない ) ADC1BUF3 ( 使用しない ) ( 使用しない ) ADC1BUF4 ( 使用しない ) ( 使用しない ) ADC1BUF5 ( 使用しない ) ( 使用しない ) ADC1BUF6 ( 使用しない ) ( 使用しない ) ADC1BUF7 ( 使用しない ) ( 使用しない ) ADC1BUF8 ( 使用しない ) サンプル 2 (AN3、 サンプル 2) ADC1BUF9 ( 使用しない ) ( 使用しない ) ADC1BUFA ( 使用しない ) ( 使用しない ) ADC1BUFB ( 使用しない ) ( 使用しない ) ADC1BUFC ( 使用しない ) ( 使用しない ) ADC1BUFD ( 使用しない ) ( 使用しない ) ADC1BUFE ( 使用しない ) ( 使用しない ) ADC1BUFF ( 使用しない ) ( 使用しない )

(30)

17.9.4

MUX A と MUX B の交互入力選択の使い方

図 17-13 および例 17-11 は MUX A および MUX B に割り当てられた入力の交互サンプリン グの例です。ALTS ビットをセットすると、交互入力選択が有効化されます。最初のサン プルでは、CH0SA、CH0NA ビットで指定された MUX A 入力を使用します。次のサンプ ルでは、CH0SB、CH0NB ビットで指定された MUX B 入力を使用します。 この例では、2 つの 8 ワードバッファの例も示しています。8 回目のサンプルごとに割り 込みが発生し、割り込みごとに 8 ワードがバッファに格納されていることになります。 図 17-13: 交互入力選択を使って 2 つの入力を変換する場合 A/D CLK SAMP ADC1BUF0 ADC1BUF1 DONE ADC1BUF2 ADC1BUF3 CH0 への入力 AN1 TSAMP AD1IF TCONV ADC1BUF4 ADC1BUF5 ADC1BUF6 ADC1BUF7 AN15 TSAMP TCONV ASAM BUFS AN1 TSAMP TCONV AN15 TSAMP TCONV ADC1BUF8 ADC1BUF9 ADC1BUFA ADC1BUFB TCONV TSAMP AN15 変換 トリガ ソフトウェアでクリア ソフトウェアで クリア

(31)

10

ビット

A/D

コンバータ

17

例 17-11: MUX A と MUX B を交互で 2 つの入力を変換する例 A/D の構成

• AN1 を MUX A CH0+ の入力として選択 (CH0SA3:CH0SA0 = 0001) • VR- を MUX A CH0- の入力として選択 (CH0NA = 0)

• 入力スキャンなしに構成 (CSCNA = 0)

• AN15 を MUX B CH0+ の入力として選択 (CH0SB3:CH0SB0 = 1111) • VR- を MUX B CH0- の入力として選択 (CH0NB = 0)

• MUX A と MUX B の交互サンプリングとする (ALTS = 1)

• AD1IF を 8 回目のサンプルごとにセットする (SMPI3:SMPI0 = 0111) • バッファを 2 つの 8 ワード セグメントとする (BUFM = 1) 動作シーケンス 1. MUX A 入力の AN1 をサンプル ; 変換しバッファ 0h に書き込む 2. MUX B 入力の AN15 をサンプル ; 変換しバッファ 1h に書き込む 3. MUX A 入力の AN1 をサンプル ; 変換しバッファ 2h に書き込む 4. MUX B 入力の AN15 をサンプル ; 変換しバッファ 3h に書き込む 5. MUX A 入力の AN1 をサンプル ; 変換しバッファ 4h に書き込む 6. MUX B 入力の AN15 をサンプル ; 変換しバッファ 5h に書き込む 7. MUX A 入力の AN1 をサンプル ; 変換しバッファ 6h に書き込む 8. MUX B 入力の AN15 をサンプル ; 変換しバッファ 7h に書き込む 9. AD1I フラグをセット ( 有効ならば割り込み発生 ); 書き込みアクセスが自動的に別 のバッファに切り替わる 10. (1-9) を繰り返す ; バッファ書き込みはバッファ8h から再開 ( 別のバッファの最初 のアドレス ) バッファに格納される結果 (2 サイクル後 ) バッファ アドレス バッファ内容 最初の AD1IF イベント時 バッファ内容 2 回目の AD1IF イベント時 ADC1BUF0 サンプル 1 (AN1、 サンプル 1) ( 使用しない ) ADC1BUF1 サンプル 2 (AN15、 サンプル 1) ( 使用しない ) ADC1BUF2 サンプル 3 (AN1、 サンプル 2) ( 使用しない ) ADC1BUF3 サンプル 4 (AN15、 サンプル 2) ( 使用しない ) ADC1BUF4 サンプル 5 (AN1、 サンプル 3) ( 使用しない ) ADC1BUF5 サンプル 6 (AN15、 サンプル 3) ( 使用しない ) ADC1BUF6 サンプル 7 (AN1、 サンプル 4) ( 使用しない ) ADC1BUF7 サンプル 8 (AN15、 サンプル 4) ( 使用しない ) ADC1BUF8 ( 使用しない ) サンプル 9 (AN1、 サンプル 5) ADC1BUF9 ( 使用しない ) サンプル 10 (AN15、 サンプル 5) ADC1BUFA ( 使用しない ) サンプル 11 (AN1、 サンプル 6) ADC1BUFB ( 使用しない ) サンプル 12 (AN15、 サンプル 6) ADC1BUFC ( 使用しない ) サンプル 13 (AN1、 サンプル 7) ADC1BUFD ( 使用しない ) サンプル 14 (AN15、 サンプル 7) ADC1BUFE ( 使用しない ) サンプル 15 (AN1、 サンプル 8) ADC1BUFF ( 使用しない ) サンプル 16 (AN15、 サンプル 8)

図 17-3:    1 つのチャネルの変換、手動サンプル開始、手動変換開始の場合     例 17-2:   1 つのチャネルの変換で手動サンプル開始、手動変換開始の場合のコード例 図 17-4:   1つのチャネルの変換で自動サンプル開始、 手動変換開始の場合   A/D CLKSAMPADC1BUF0TSAMP T CONVBCF AD1CON1, SAMPBSF AD1CON1, SAMP命令実行DONEintADCValue;

参照

関連したドキュメント

回転に対応したアプリを表示中に本機の向きを変えると、 が表 示されます。 をタップすると、縦画面/横画面に切り替わりま

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

Jabra Talk 15 SE の操作は簡単です。ボタンを押す時間の長さ により、ヘッドセットの [ 応答 / 終了 ] ボタンはさまざまな機

点から見たときに、 債務者に、 複数債権者の有する債権額を考慮することなく弁済することを可能にしているものとしては、

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

イヌワシは晩秋に繁殖行動を開始します。オスとメスが一緒に飛んだり、オス が波状飛行を繰り返します。その後、12月から

AC100Vの供給開始/供給停止を行います。 動作の緊急停止を行います。

手動のレバーを押して津波がどのようにして起きるかを観察 することができます。シミュレーターの前には、 「地図で見る日本