PICマイコンでの温度測定の話。
と言っても、PICを使って電子温度計を作るということではありませぬ。
PIC16F1938等、一部のPICマイコンには温度インジケーターという機能が内蔵されてます。
これはCPUのダイ上に実装されているダイオードを使って、
PIC自身の温度を測定できるという代物。
用途は限られるかもしれませんが、簡易的にPICの周辺温度を測定するには便利かと。
実は現在手がけている案件で、まさにこの温度測定を行いたいと思いまして、
PICの内蔵インジケーターを調べてみることにした次第。
基本的な仕様はPICのデーターシートに記載されておりますし、
マイクロチップからは更に、AN1113というアプリケーションノートも配布されております。
なかなかに 至れり尽くせり。
とは言え重要なのは実用性。
いくら資料が充実してても使い物にならなければ無意味なわけです。
というわけで、早速資料を読んでみると・・・・・・・
うーーーん、基本構成に怪しい点が見受けられます。
結論から書いてしまうと、ちと使い物にならないかも・・・・・・・
詳細はデータ-シートを見てもらうとして、
インジケーター用の温度測定ダイオード、VDDとVSS間に接続されております。
この、VDDに繋がっているというのが最大の問題。
VDDの電圧変動が、温度測定値にダイレクトに影響するのです。
これが、微妙な誤差で済むのなら、目をつぶるところですが、
実際にどれくらいの誤差になるか、計算してみました。
すると・・・・・・・・・
VDDが0.1V変動すると、測定温度が10℃以上ズレちゃう。!!
なお上記の前提条件として、VDDは3.3V。
A/DコンバーターのVref+はVDD、Vref-はVSSで、
温度インジケーターのレンジはLOWです。
一般的にA/Dコンバーターのリファレンス電圧には、基準電圧源を使うもんですが、
前述したように測定ダイオードがVDD接続なもんで、
基準電圧を使うと逆に誤差が大きくなるという困った事態になるんですね。
VDDの変動の影響を少しでも吸収する為、Vref+はVDDを使う必要があるというわけ。
そうしたとしても、VDDの電圧変動が完全に吸収されるわけではないので、
測定値に影響してしまうんですね。
ハード的に対処する方法は無いこともなくて、
Vref-にVDDから一定電圧をシフトさせた電圧を供給してやればいいんですね。
たとえば、1.5Vシフトさせたとすると、VDD=3.3VならばVref-=1.8V。
こうするとVDDが変動した分、Vref-も変動するので、誤差はかなり少なくなります。
もうほとんどゼロに近いくらいまでね。
じゃーこの回路を作ればいいかと言うと、これを組むくらいなら
温度センサーICを追加した方がベター。
コストは そう極端に変わらない上に、測定精度と分解能は圧倒的に上ですから。
かくして、PIC内蔵の温度インジケーターの出番は ほとんど無くなってしまいました。(;;
しかしほんと、なんでこんな設計にしたんでしょうねぇ?
ダイオードをVDD寄りではなく、VSS寄りに入れれば、
こんな問題は発生しなかったのに・・・・・・・・
0 件のコメント:
コメントを投稿