SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|

2004-09-17(Fri) PICのA/D変換の項の翻訳

  と、ゆーわけで、予告どおり翻訳である。いつもにも増して品質が低いような気もするが、ないよりいいだろう。とりあえず、前半である。どーぞ。

  11.0 A/D(アナログ→デジタル)変換モジュール

A/D変換モジュールは、5つの入力ピンのいずれかからのアナログ入力信号(電圧)を、10ビット値(0〜1023)に変換するものです。その際の参照電圧としてVdd(CPU電圧)、Vss(GND)、RA2またはRA3の組み合わせから選択できます。

なお、CPUのSLEEP中にA/D変換を行う機能もありますが、その場合はモジュールへのクロックの供給元として内蔵RCオシレータを選択する必要があります。

A/D変換モジュールは以下の4つのレジスタで制御します:

・A/D変換結果上位レジスタ(ADRESH)

・A/D変換結果下位レジスタ(ADRESL)

・A/D変換制御レジスタ0(ADCON0)

・A/D変換制御レジスタ1(ADCON1)

レジスタ11-1に、A/D変換モジュールの制御を行う、ADCON0レジスタについて示します。レジスタ11-2に、各ポートの機能設定を行う、ADCON1レジスタについて示します。ポートのピンはアナログ入力(RA3は参照電圧入力にも)またはデジタル入力に設定できます。

A/D変換モジュールの使用に関する更に詳しい情報は、PICmicro Mid-Range MCU Family Reference Manual(DS33023)を参照してください。

  画像の説明

  ADRESHとADRESLレジスタはA/D変換結果を格納します。A/D変換完了時、結果はADRESHとADRESLに格納され、GO/DONEビット(ADCON0<2>)はクリア、A/D割り込みフラグビットADIFがセットされます。A/D変換モジュールのブロックダイアグラムを図11-1に示します。

A/D変換モジュールの設定後、変換を開始するまで、選択したチャンネルには古いデータが入っています。アナログ入力チェンネルはTRISビットを入力に設定しておかなければなりません。

必要なサンプリング時間を知るためには、11.1節"A/D変換サンプリング時間"を参照してください。このサンプリング時間が経過してから、A/D変換が開始できます。

A/D変換を行うには、以下のステップに従います:

1. A/D変換モジュールの設定:

・アナログ入力ピン、参照電圧ピン、デジタル入力ピンの組み合わせを設定します(ADCON1)。

・A/D変換に用いるチャンネル、クロック、モジュールONを選択します(ADCON0)。

2. A/D変換割り込みの設定(必要な場合):

・ADIFビットをクリア、ADIEビットとGIEビットをセットします。

3. サンプリングに必要な時間、待ちます。

4. GO/DONEビット(ADCON0)をセットし、A/D変換を開始します。

5. A/D変換完了割り込みが発生するの待ちます。割り込みを設定しなかった場合、GO/DONEビットがクリアされるのを待ちます。

6. A/D変換結果(ADRESH:ADRESL)を得ます、必要ならADIFビットをクリアします。

7. 次の変換に備え、必要ならステップ1か2を実行します。各ビットごとのA/D変換時間はTADで示され、次のサンプリングを開始する前には、最低2TADの待ち時間が必要です。

  画像の説明

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

A/D変換を正しく行うためには、アナログ入力信号の電圧レベルに一致するまで、内部のサンプリングコンデンサ(CHOLD)を完全に充電する必要があります。アナログ入力モデルを図11-2に示します。外部抵抗の値と内部サンプリングスイッチ抵抗(RSS)の値は、CHOLDの充電時間に直接影響します。サンプリングスイッチ抵抗(RSS)はCPU電圧(Vdd)に依存します(図11-2参照)。外部抵抗の値は2.5kΩ以下を推薦します(外部抵抗の値が小さくなると、サンプリング時間も短くなります)。

アナログ入力チャンネル選択後(変更後)、サンプリングを完全に完了させ、A/D変換を開始する必要があります。最短サンプリング時間を計算するには、方程式11-1を用いてください。

この方程式は最大誤差をA/D変換モジュールの分解能以下に抑えるためのものです(訳注:かなり意訳)。

最短サンプリング時間を得るためのTACQについては、PICmicro Mid-Range MCU Family Reference Manual(DS33023)を参照してください。

  画像の説明

  注1: 参照電圧(VREF)はそれ自身で影響を打ち消すので、方程式に影響しません。

2: サンプリングコンデンサ(CHOLD)はA/D変換後も放電されません。

3: アナログ入力信号のための外部抵抗は10KΩ以下を推奨します。これはピンの漏洩電流量に基づきます(訳注:?)。

4: 変換完了後、次のサンプリングを開始する前に、最低2TADの待ち時間が必要です。2TAD経過するまで、サンプリングコンデンサが選択したA/D変換チャンネルに接続されないためです。

  画像の説明

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

各ビットごとのA/D変換クロックはTADで示され、8ビット変換ごとに9TAD必要です。

TADは以下の7段階から、適切にユーザが設定する必要があります。

・2TOSC

・4TOSC

・8TOSC

・16TOSC

・32TOSC

・64TOSC

・内蔵A/D変換モジュールのRCオシレータ(2-6μs)

正しくA/D変換を行うには、TADが1.6us〜6.4usの範囲になるようにする必要があります。CPU周波数から求められる適切なTADとの関係を表11-1に示します。

  11.3 アナログ入力ピンの設定

ADCON1とTRISAレジスタはA/D変換入力ピンの役割を制御します。アナログ入力を行うピンは、TRISビットをセットして、入力に設定する必要があります。もしTRISビットがクリア(出力)だと、デジタル出力レベル(VOHまたはVOL)に変換されてしまいます。

なお、A/D変換はCHSビット<2:0>とTRISビットの状態とは無関係に動作します。

注意1: アナログ入力に設定された全てのピンはクリア(Lowレベル)として読み出されます。デジタル入力に設定されたピンでも、アナログ入力は可能で、正確に変換が行われます。

2: ただし、デジタル入力に設定された各ピンのアナログレベル(AN1:AN0ピンを含む)を与えると、入力バッファにより必要以上の電力消費を引き起こします(訳注:チト怪しい)。

注1: RCオシレータのTADは通常4us程度、概ね2us〜6us程度です。

2: CPU周波数が1MHz以上の場合にRCオシレータを用いる場合、SLEEP中に行うことを推奨します。

3: CPUがLFバージョンの場合、15.0節"電気的特性"を参照して下さい。

  画像の説明