温度/ビット変換ファミリ製品にカスタム・サーミスタを使用する方法
温度/ビット・コンバータLTC2983、LTC2984、LTC2986、LTC2986-1には標準のセンサーが組み込まれていますが、カスタムのセンサーも使用できます。本稿では、カスタム・サーミスタについて説明し、コンバータを設定する2通りの方法を紹介します。
サーミスタは、半導体材料でできた抵抗型温度センサーで、温度係数が負のもの(NTC)と正のもの(PTC)があります。RTDに使用されるニッケルやプラチナなど金属の多くは、正の温度係数を有しますが、その応答の直線性や、所定の温度範囲に対して示す抵抗値の範囲は、サーミスタとは異なります(サーミスタは対数的応答を示すため)。
サーミスタのユーザは、サーミスタのメーカーからの情報に基づき、測定された抵抗値から温度を判定する必要があります。この温度/ビット変換ファミリには、44004/44033 2.252kΩ、44006/44031 10kΩ、44008/44032 30kΩなどの一般的なサーミスタを含む、多くの標準サーミスタ用に係数が組み込まれています。したがって、このような標準タイプのサーミスタを使用するのが、サーミスタによる温度測定では最も簡単な方法です。ただし、これが常に可能で最適というわけではないため、カスタム・センサーにも対応できるようになっています。
メーカーから提供されるのは、抵抗と温度の対応表またはSteinhart-Hart(スタインハート)式の諸係数やベータ値です。ベータは、Steinhart-Hart式を限られた範囲で近似する単一の数値です。ベータ値を提供するメーカーのほとんどが、センサーの全範囲をカバーする抵抗-温度対応表も提供しているため、本稿で扱うカスタム・サーミスタについては、抵抗-温度表とSteinhart-Hart式を用いる2つの方法を中心に説明します。
カスタム・サーミスタをメモリに入力
TestBench GUIを用いて、この機能を説明します。なお、このGUIから開始すれば、後にCコードが必要となった場合でも困ることはありません。GUIは、カスタム・センサーのパラメータをRAMに効果的に読み込む方法を示すほか、表や係数を含むCコードを生成することも可能です。GUIとデモ回路を使って新しいセンサーの設定をテストすることで、カスタム・センサーを使用する際に注意を要する部分が、正しく機能することを確認することができます。
カスタムの抵抗センサーを使用するための最も直接的な方法は、抵抗-温度表をメモリに入力することです。まずNTCサーミスタを1つ選んで開始しましょう。村田製作所の25°Cで4.7kΩ(公称値)のNCP15XM472J03RCは、Digi-Keyでは最も安価なサーミスタに相当し、4.7kΩの公称値は、アナログ・デバイセズの標準曲線にはありません。
データシートをクリックすると、ほぼ瞬時にR-T表が表示されます。

図1.村田製作所のデータシートに示されたR-T表
図中の黄色ハイライトは、検討中のセンサーの温度と対応する抵抗の列を示しています。これでカスタム・サーミスタの設定に必要なデータがすべて揃ったので、次にベンチ・テストのセットアップを行います。
DC2210、TestBench GUI、カスタム・センサーを設定してベンチテストで検証
カスタム・センサーを設定したら直ちにテストできるように、ハードウェアをセットアップしておきます。
DC2209A LTC2983デモ回路とのインターフェースには、DC2026C Linduino Oneを使用します。最後に、テスト抵抗を接続するために、DC2210A実験用ボードを使用します。今回のラボで用いたDC2210Aには、COMとGNDの間にジャンパを接続し、便宜上、一部にヘッダを配置しました。
このアプリケーションでは、予想される最大抵抗と同程度のRSENSEを選択します。これにより、最大の励起電流範囲と精度を得ることができます。ほとんどのサーミスタ設計では、10kΩから始めるのが適切ですが、ここでは、RSENSEに高精度の5kΩを選択し、CH1とCH2の間に配置しました。サーミスタの位置には、2.2kΩのテスト抵抗を挿入しました。サーミスタは、カスタム・センサーが正しく設定されていれば、45°C~50°Cの値を示すことがデータシートから読み取れます。テスト抵抗はCH7とCH8の間に置かれているため、CH2の検出抵抗の下側とCH7の使用センサーの上部をジャンパで接続する必要があります。このテストのセットアップを図2に示します。

図2.サーミスタ・テスト用のDC2210Aセットアップ(Linduino Oneは非表示)
ハードウェアのセットアップが完了したので、次にGUIを設定します。まず、チャンネル2に5kΩの検出抵抗を設定します。

図3.検出抵抗の設定
次に、チャンネル8に[Thermistor Custom Table]を設定します。データシートの最大励起電流は0.31mAです。LTC2983の最大差動電圧は1.25Vであるため、5kΩの最大抵抗を使用した場合、最大250µAの励起電流を使用でき、これはデータシートの最大値を十分に下回ります。実際に使用するセンサーは小型のデバイスであるため、自己加熱を避けるため、これを100µAに下げます。なお、励起電流を設定する際に「オート・レンジ」を使用すると便利ですが、カスタム・センサーの場合「オート・レンジ」は選択できません。そのため、NTC抵抗が低下するような高温でも連続して動作可能な電流値を設定します。
これでカスタム・データを入力する準備がほぼ完了しました。カスタム・センサーのデータはユーザRAM内の任意の場所に置くことができるため、重複しないよう注意が必要です。1つ目のカスタム・センサーである場合、RAMはブランクなので、メモリ内でデータ・オフセットを行う必要はありません。そのため、カスタム・アドレスは0のままにします。データ点数もまだカウントしていないため、表の長さも今の時点では0にしておきます。ただし、この設定を、ダイアログ・ボックスを閉じる前に行う必要があります。
次に、カスタム値の入力ウィンドウを見てみましょう。

図4. 表のカスタム値の単位はΩおよびKとなっている
ここで気づくことは、値の入力は少々手間がかかり、データシートの表のフォーマットが求めるものとは違うということです。データシートの単位は、温度は摂氏、抵抗値はkΩですが、LTC2983ではΩ単位です。そこで、これらを1つ1つ修正して入力するのでなく、スプレッドシートを利用することにします。
幸い、村田製作所のPDFはテキスト・コピーが可能なため、コピー&ペーストを数回行えばデータを得ることができます。他社の場合はこれほど簡単ではありませんが、このようなスプレッドシートを使用すれば、データ入力は一回で済みます。
続いて、温度(ケルビン)と抵抗(Ω)で新しい列を作成します。列には、単純な数式(“=A2+273.15”や“=B2*1000”など)が入っています。カスタム・データは、単位がΩと温度(K)で、単調増加(Ω)でなくてはならないことから、抵抗の昇順でシートを並べ替えます。詳細についてはLTC2983のデータシートの65ページを参照してください。
最後に、TestBench GUIにすぐにインポートできるように、カンマ区切りの値を表示する列を作成します。ここでもExcelの組込み関数(“=CONCATENATE(E2, ",", D2)”など)を使用できます。これで図5に示すスプレッドシートが完成しました。

図5.スプレッドシート・プログラムを使った、TestBench GUIにインポート可能なCSVフォーマットのデータ
あとは、この表をTestBench GUIの[Custom values]ウィンドウにコピー&ペーストするだけです。

図6.適切にフォーマットされたCSV列をTestBench GUIに直接コピー
[OK]をクリックします。スプレッドシートから34行のデータ、つまり34個の表入力があったことがわかります。GUI用に長さ-1が必要であるため、表の長さとして33を入力し、[Accept Changes]をクリックします。
![図7.ユーザRAMの表データの長さを示した最終的な[Custom Table Configuration]ウィンドウ](/jp/_/media/analog/en/landing-pages/technical-articles/using-custom-thermistors-with-the-temp-to-bits-family/37713.png?la=en&rev=0439134e7bb144619e0e366ef760ea6d)
図7.ユーザRAMの表データの長さを示した最終的な[Custom Table Configuration]ウィンドウ
この時点でGUIには、テスト・セットアップに一致する配線図が表示されるはずです。

図8.GUIで配線図を検証することで、設定の問題点を早期に検出できます。
早速テストしてみましょう。まず、上部にある緑色のチェックマークを使用して、設定を検証します。

図9.TestBench GUIで、リードの重複やRSENSE配線の欠如のチェックなど、設定を検証できます。
設定の評価(緑色のボタン)を実行して問題がなければ、46°C(データシートの表からの推測値)近辺の温度値が表示されるはずです。

図10.GUIに表示される測定抵抗値と計算した温度により、RSENSEの値を素早くチェックできます。
結果は成功です。図10に示す抵抗値が正しいことから、検出抵抗が正しく設定されていたことになります。また、温度は表の値から45°Cと50°Cの間に正しく補間されています。
表が正しく機能していることを確認するために、もう1つ330Ωでチェックしましょう。ちょうど110°Cが表示されるはずです。

図11.別の抵抗値でも表は正しく補間されています。
問題ありません。
カスタム・サーミスタ用Steinhart-Hart
もう1つの方法であるSteinhart-Hart係数を使用した場合はどうでしょうか。メーカーの中には、本稿で説明する方法で直接使用できる係数を提供するメーカー(Omegaなど)もあれば、多少異なるが使用可能な方法で係数を提供するメーカー(Vishayなど)もあります。ここでは、何が必要かを理解できるように、若干の調整を必要とする例を見ていきます。
Vishay(ビシェイ)のリード付きNTCサーミスタであるNTCLE100E3ファミリは、広く用いられている安価なセンサーです。25°Cで10kΩ(公称値)の場合を見てみましょう。このベータ(25/85)は3997Kです。Vishayでは、図12に示すような係数の表を提供しています。

図12. Vishayのサーミスタのデータシート形式は、Steinhart-Hart式とは若干異なります。
対象の係数とVishayが使用するSteinhart-Hart式を、ハイライト表示しています。なお、Vishayの方程式はLTC2983で求められているものと若干、異なります。EとFをゼロに設定することで、Vishayのデータシートにこれらの項がないという問題を解消できます。

図13.LTC2983、LTC2984、LTC2986、LTC2986-1に組み込まれている完全なSteinhart-Hart式
ただし、LTC2983の式ではRの値をΩ単位で使用していますが、Vishayの係数は、RREFまたはR25(25°Cでの公称値)を基準とするRを採用しています。そのため、変換に若干の計算が必要です。
まず、対数の中の分数を取り除く必要があります。そのため、以下の恒等式を用います。
したがって、Vishayの方程式は、次式のようになります。
多項式の項を展開して全体に係数を乗じると、次式が得られます。
Vishayから定数A1、B1、C1、D1、R25が提供されるため、上式を変形して、アナログ・デバイセズのデータシート形式に合うように、In(R)、(In(R))2などを用いた式を得ることができます。新しい係数は、以下のようになります。

図14.スプレッドシートを用いて、Vishay形式のSteinhart-Hart係数をアナログ・デバイセズ形式に変換
これで新たに係数を計算してGUIに入力できます。ここでも、式を維持して基本的なテストを実行するのに、スプレッドシートが役立ちます。
係数をテストするために、新しいカスタム・サーミスタをチャンネル12に設定します。

図15. 新しいカスタム・センサーの設定ウィンドウに、既存の表データが上書きされないように必要なオフセットが表示
前述のようにチャンネル2に同じ検出抵抗を共有しています。しかし、このケースでは、位置0から始まるユーザRAMに表データが既に保管されているので、重複を避けるため新しい係数の位置をオフセットする必要があります。アドレス0から始まる表には既に34個の入力があるため、新しい係数は、図15に示すように、位置34の直後に置かれます。GUIの設定検証ツールを使用して、競合しないことを確認できます。
最後に、データシートを改めて見直して、係数の検証に使用できるR-T表(例えば、1070Ωは85°C)を確認し、袋売りの5%抵抗でベンチ・テストをセットアップして結果をチェックします。

図16. 2個のカスタム・サーミスタ - 測定された2個の有効な抵抗値を温度に変換
問題なく機能しているようです。
まとめ
本稿では、カスタム・サーミスタのデータを温度/ビット変換ファミリに入力するための2つの方法を検討しました。その結果、まず注目すべきは、抵抗-温度表を使用するやり方は、調整や入力が非常に簡単であるということです。また、Steinhart-Hart係数を使用する方法もメモリ消費が極めて少なく、使用する補間方法の効果によって、さらに良い結果が得られる可能性があります。
なお、フィッティング法を使用して、抵抗-温度表のデータからSteinhart-Hart係数を計算できることにも言及しておきます。複数タイプのカスタム・センサーを1つのシステムで用いる場合、この方法を使えばメモリを大幅に節約できるので、非常に有用と言えるでしょう。
カスタム・サーミスタのセットアップおよび温度/ビット変換ファミリに関して不明点がある場合は、お気軽にお問い合わせください。
著者について
この記事に関して
技術ソリューション
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}