概要
設計リソース
設計/統合ファイル
- Schematic
- Bill of Materials
- Gerber Files
- PADS Files
- Assembly Drawing
評価用ボード
型番に"Z"が付いているものは、RoHS対応製品です。 本回路の評価には以下の評価用ボードが必要です。
- EVAL-CN0319-EB1Z ($127.33) 4 mA-to-20 mA, Loop Powered Temperature Monitor Using the Integrated PWM on the ADuCM360 Precision Analog Microcontroller
機能と利点
- 4-20mA thermocouple temperature monitor
- Cold junction compensation
- Loop powered
製品カテゴリ
マーケット & テクノロジー
使用されている製品
参考資料
-
MT-101: Decoupling Techniques2015/02/14PDF954 kB
-
MT-031: データ・コンバータのグラウンディングと、「AGND」および「DGND」に関する疑問の解消2009/03/20PDF144 kB
-
CN0319: ARM Cortex-M3 を使用したループ駆動の 14 ビット、4-20mA、 熱電対温度計測システム2013/12/29PDF486 K
回路機能とその特長
図1に示す回路は、ループ駆動の熱電対温度計測システム全体を示します。このシステムは高精度アナログ・マイクロコントローラのPWM機能を使って4 mA ~20 mAの出力電流を制御します。

(簡略回路図:接続とデカップリングの一部は表示を省略)
この回路は、デュアル24ビットΣ-ΔADC、ARM Cortex™-M3プロセッサ・コア、および最大28Vのループ電圧に対して4mA~20mAのループを制御するPWM/DAC機能を含む、回路機能の大部分を ADuCM360 高精度アナログ・マイクロコントローラに組み込んでいるので、温度モニタリングに対して低コストのソリューションを提供します。
ADuCM360には、T型の熱電対と100Ωの白金測温抵抗体(RTD)が接続されています。このRTDは冷接点補償に使用します。低消費電力のCortex-M3コアにより、ADCの測定値が温度値に変換されます。T型熱電対が対応する温度範囲は−200℃~+350℃で、この温度範囲が4mA~20mAの出力電流に変換されます。
この回路は回路ノートCN-0300の回路に似ていますが、4 mA~20 mAループを駆動するPWMが高分解能であるという点が優れています。PWMベースの出力の分解能は14ビットです。温度センサとADCのインターフェース、ならびにRTD測定のリニアライゼーション技術の詳細については、回路ノート CN-0300 および AN-0970 アプリケーション・ノートを参照してください。
回路説明
この回路は ADP1720リニア・レギュレータを介して給電されます。このレギュレータは、ADuCM360、OP193 オペアンプ、およびオプションの ADR3412 リファレンス用のループの正電源を3.3Vに安定化します。
温度モニタ
回路のこの部分は CN-0300 で説明した温度モニタ回路と類似しています。 ADuCM360 の以下の機能を利用しています。
- 熱電対とRTD用に、ソフトウェアでゲインを32に設定したPGAを備えた24ビットΣ-ΔADC。ADC1で熱電対の電圧とRTDの電圧のサンプリングを連続的に切り替えます。
- プログラム可能な励起電流源がRTDに制御電流を流します。この2個の電流源は0μA~2mAの範囲で設定可能です。この例では、RTDの自己発熱によって生じる誤差を最小限に抑えるために200μAの設定値が使用されています。
- ADuCM360のADC用に1.2Vの内部リファレンスを備えています。熱電対電圧を測定する際、高精度なことから内部電圧リファレンスを使用します。
- ADuCM360のADC用外部電圧リファレンス。RTD抵抗の測定時には、外付けリファレンス抵抗(RREF)が外部のVREF+ピンとVREF−ピンの間に接続されたレシオメトリック構成を使用しています。この回路のリファレンス・ソースが高インピーダンスであることから、リファレンス内蔵の入力バッファがイネーブルされます。このリファレンス内蔵のバッファがあるため、入力リークの影響を最小限に抑えるための外付けバッファは不要です。
- バイアス電圧源(VBIAS)。VBIAS機能を使って熱電対の同相電圧をAVDD_REG/2(900mV)に設定します。これにより、この場合も熱電対の同相電圧を設定するための外部抵抗が不要になります。
- ARM Cortex-M3コア。126 kBのフラッシュメモリと8kBのSRAMを内蔵した強力な32ビットARMコアで、ADCを設定、制御して熱電対およびRTDの入力からのADC変換値を最終の温度値に変換するのに使われるユーザー・コードを実行します。4mA ~20 mAのループを駆動するPWM出力も制御します。追加のデバッグのため、UART/USBインターフェースを介した通信も制御します。
通信
- 16ビットPWM出力はOP193によって外部でバッファされ、外部NPNトランジスタBC548を制御します。このトランジスタのVBE電圧を制御することにより、47.5 Ωの負荷抵抗を流れる電流を所定の値に設定することができます。これにより、4 mA~20 mAの出力(–200°C ~ +350°Cの範囲)で±0.5°Cを上回る精度が得られます(「テスト結果」参照)。
- OP193に1.2Vリファレンスを供給するには内部DACを使用します。全温度範囲にわたって高精度を得るには、代わりに1.2Vの高精度リファレンスADR3412を使うこともできます。この外部リファレンスは内部DACと同程度の電力を消費します(約50 μA)。「消費電流測定テスト」を参照してください。
4 mA~20 mAのループはADuCM360に内蔵された16ビットPWM(パルス幅変調器)によって制御されます。このPWMのデューティサイクルはソフトウェアで設定され、47.5Ω RLOOP抵抗両端の電圧を制御し、次いでループ電流を設定します。RLOOPの上端をADuCM360のグランドに接続するように注意してください。RLOOPの下端はループのグランドに接続します。これにより、ADuCM360、ADP1720、ADR3412およびOP193による電流に、フィルタを通したPWM出力によって設定される電流を加えた電流がRLOOPに流れます。
R1とR2の接続点の電圧は次のように表されます。
VR12 = (VRLOOP + VREF) × R2/(R1 + R2) − VRLOOP
ループが安定すると次のようになります。
VIN = VR12
R1 = R2なので、以下のようになります。
VIN = (VRLOOP + VREF)/2 − VRLOOP = VREF/2 − VRLOOP /2
VRLOOP = VREF − 2VIN
VIN = 0のときフルスケール電流が流れ、その時点でVRLOOP = VREFとなります。したがって、フルスケール電流はVREF/RLOOP、つまり約24 mAです。VIN = VREF/2の場合、電流は流れません。
OP193アンプのVINはインピーダンスが高いので、フィルタを通したPWM出力に負荷をかけません。このアンプの出力は約0.7Vしか変化しません。
0mA~4mAと20mA~24mAの両端の範囲での性能は重要ではないので、オペアンプは電源レール付近での優れた性能を必要とされません。
R1とR2の絶対値は重要ではありません。ただし、R1とR2が整合していることは重要で注意を要します。
ADC1は温度計測に使われるので、この回路ノートは1個のADCしか持っていない ADuCM361に直接適用できます。 EVAL-CN0319-EB1Z ボードは、ADuCM360のADC0の入力チャネルを使って、VR12と表示されたポイントの電圧を測定するためのオプションを備えています。このADCの測定値は、4mA~20mAの電流設定値を調整するためのPWM制御ソフトウェア用のフィードバックとして使用することができます。
プログラミング、デバッグ、テスト
- ホストPCとの通信インターフェースとしてUARTを使用します。これは内蔵フラッシュメモリをプログラムするのに使用します。また、デバッグ・ポートとしても使用され、フィルタを通したPWM出力の温度計測キャリブレーション用に使用されます。
- デバイスをフラッシュ・ブート・モードに強制するため、2個の外部スイッチを使用しています。SDをロー・レベルに保持したままRESETボタンをトグルすることにより、ADuCM360は通常のユーザー・モードではなくブート・モードになります。ブート・モードでは、UARTインターフェースを介して内部フラッシュメモリをプログラムし直すことができます。
コードの説明
回路をテストするのに使用するソース・コードへのリンクについては、CN-0319設計支援パッケージ http://www.analog.com/CN0319-DesignSupport を参照してください。
ソース・コードには、コード例付きで提供されている関数ライブラリが使われています。
プロジェクトで使用されるソース・ファイルのリストをKeil μVision4で表示した画面を図2に示します。

温度モニタ
ADC1は熱電対とRTDの温度計測に使用します。コードのこの部分は、回路ノートCN-0300と同一内容です。詳細については、この回路ノートを参照してください。
通信セクション
フィルタされたPWM出力は、最低温度で4 mA、最高温度で20 mAを保証するために調整する必要があります。キャリブレーション・ルーチンが用意されており、#define CalibratePWMパラメータを使って簡単に追加、削除を行えます。
PWMを補正するには、インターフェース・ボード(USB-SWD/UART)をJ1とPCのUSBポートに接続する必要があります。ハイパーターミナルのようなCOMポート・ビューアを使って、キャリブレーション・メニューを見ながらキャリブレーション・ルーチンを1ステップずつ進ませることができます。
PWMをキャリブレーションする場合、VLOOP+出力とVLOOP–出力を高精度電流計に接続します。PWMキャリブレーション・ルーチンの最初の部分でDACを調整して4 mA出力に設定し、PWMキャリブレーション・ルーチンの2番目の部分でPWMを調整して20 mA出力に設定します。4 mAと20 mAの出力の設定に使われたPWMコードはフラッシュメモリに保存されます。
UARTは、19200のボーレート、8データ・ビット、パリティなし、フロー制御なしに設定されます。この回路をPCに直接接続すると、図3に示すように、ハイーパーターミナルやCoolTermなどの通信ポート表示アプリケーションを使って、プログラムによってUARTに送られる結果を表示することができます。
キャリブレーション・ルーチンによって要求される文字を入力するには、表示端末に必要な文字をタイプします。その結果、その文字がADuCM360のUARTポートによって受信されます。

キャリブレーションが終わると、さらに節電するためにデモコードによってUARTクロックが遮断されます。
キャリブレーション係数がフラッシュメモリに保存されるので、VLOOPレベルが変わらない限り、ボードの電源を入れるたびにキャリブレーションを行う必要はありません。
コードのフローチャートを図4に示します。

バリエーション回路
この回路にはHART通信および外部リファレンス用の実装面積が含まれています。
回路の評価とテスト
温度検出のセクションはCN-0300に記載されているので、この回路ノートでは取り上げません。ここでは温度/電流出力の性能に焦点を絞ります。
PWM差動非直線性(DNL)
フィルタを通したPWM出力のDNLが最初に測定されています。図5のDNLのグラフは、重要な4mA~20mAの範囲の標準的な性能が0.3LSB以下であることを示しています。これらのテストは、PWM出力に2次フィルタを使って行われています。図1に示すように、2本の47kΩ抵抗と2個の100nFコンデンサが使用されています。

温度-電流変換出力

PCが、UARTを介して温度の値をADuCM360へ送り、それに従ってADuCM360はPWMの出力を調整します。ループの電流が測定されて記録されます。
1°Cの温度上昇は次の値に対応します。
(20 mA – 4 mA)/550 = 0.029029 mA.
温度(℃) | 予想電流(mA) |
-200°C |
4 mA |
-199°C |
4 mA + 0.029029 mA |
...... | |
+349°C |
20 mA - 0.029029 mA |
+349°C |
20 mA |
CN-0300 (DACで制御)とCN-0319(PWMで制御)で測定した電流ループの測定誤差を図7に示します。
図7.DAC制御(CN-0300)とPWM制御(CN-0319)の温度測定値対 電流ループの誤差
これらの結果から、キャリブレーション後には、帰還なしのPWM制御ループの精度の方が、帰還ありのDAC制御ループの場合よりも良好なことが分かります。
精度を上げるために、帰還ループを追加することができます。これには、ループをモニタすることが可能な補助ADCを備えたADuCM360を使う必要があります。これにより、消費電流が増加し(ADC0オン)、ループの応答時間が遅くなります。
電流ループの更新速度はCPUとADCの設定に依存します。このコード例では、CPUの速度は1MHz、ADCの周波数は5Hzに設定されています。ADCはRTDと熱電対のいくつかのサンプルを変換してから、その結果を平均します。サンプルの数はパラメータSAMPLEN0によって設定されます。コード例ではデフォルトで8に設定されています。これにより、電流ループ更新速度は740msになります。
ループの応答時間を速くするため、SAMPLEN0の値を小さくすることができます。
消費電流測定テスト
通常動作中、回路全体で標準2 mAの電流を消費します。リセット状態に保たれている場合、回路全体の消費電流は550 μA未満です。
低消費電力動作を可能にするため、システム・クロックが8MHzの低消費電力システムをイネーブルする内部レジスタCLKSYSDIVを設定することにより、ADuCM360/ ADuCM361 コアの動作速度を下げることができます。また、CLKCON0レジスタを設定することにより、16MHzのコア周波数を2~128範囲の2の倍数で割ることができます。このコード例では、8のクロック分周値が使用され、コア速度が1MHzになっています。
主ADCはゲイン32でイネーブルされます。また、PWMとDACもループの通信のためにイネーブルされます。
消費電流を最小限に抑えるため、使用しない全ての周辺機能がディスエーブルされます。
回路全体のIDD消費電流の内訳を表2に示します。
部品 |
25°CでのIDD の値 |
ADuCM360/ ADuCM361 ADC1 On, Gain = 32, FADC = 5 Hz CPU speed = 1 MHz PWM On. 240 Hz External reference generated by DAC. Excitation current value to this figure. Typical value is 200 µA. All other peripherals off. |
1.80 mA |
ADP1720, 3.3 V Output Linear Regulator OP193, Low Power Op Amp Remaining Circuitry Total Current Less Excitation Current |
~100 µA 15 µA 50 µA 2.0 mA |
ADuCM360の消費電流値の詳細については、 AN-1111 アプリケーション・ノート を参照してください。