1.はじめに

この「マイクロV電圧計」はNo.198の「マイクロV発生器」と、ほぼ同時に進めていたものです。1μVのような微小の直流電圧を測ることができれば、No.162でダイオードを使って制作した「マイクロワットメータ」の測定レベルを下げる事ができるはずです。下げられないとしてもA/D変換してCPUで読むことができれば、レンジの切り替えスイッチが不要になります。5dB間隔で切り替えをしていましたので、これが無くなれば操作性は格段に向上するでしょう。その上No.162では温度補正を省略していました。No.196と同様にHPの測定器による、50MHzの0dBm基準出力を使って校正する事が可能になります。従って温度補正は省略ではなく、不要にできるのではと期待しています。

要するに最終的な目的はひとつです。No.162No.196と同じようにデジタル化し、0dBmで校正しようという考えです。このように、ダイオードを使ったマイクロワットメータの製作を再度考えています。今回はこの流れの中の実験で作った、写真1のような「マイクロV電圧計」です。ここまでは、過去の記事の引用が多く、読みにくくなってしまい申し訳けありません。

 
写真1 このような直流電圧を測る「マイクロV電圧計」です。

2.実験・回路

微小の直流電圧を測る回路を考えた時、直接A/D変換をする方法と、オペアンプや計装アンプでレベルを上げてからA/D変換する方法があります。これは両方を試しましたが、実はどちらも今一つでした。原因は私の技術力の無さなのですが、一長一短でした。そこで、ここではA/D変換の実験に集中するようにしました。アンプについては後から付加して実験をするという、曖昧な進め方をしました。

実験としては、片側にNo.198の「マイクロV発生器」を置き、この出力をA/D変換してLCDに表示する・・という事を繰り返しました。アンプを付けたり外したりと、様々な事を繰り返しました。このような繰り返しをしていると、実験中の撮影を忘れがちです。そのため実験の様子がありません。

結果的には、どのようにしてもノイズの対策を考える事になります。特にアンプを付けた場合なのですが、ここまで来るとノイズレベルなのかオフセットのずれなのか良く解りません。両方なのかもしれません。この無信号時のレベルを測って、A/D変換値をゼロとするスイッチを付けています。更にAVR内蔵のA/D変換を用いて、手動でノイズレベルを調整する仕組みも作っています。このA/D変換は10ビットですので0~1023までとなります。半固定VRでこの値を調整する事になります。外付けで使ったA/D変換器は16ビットですので、0~65535になります。そこで、ノイズレベルとしては0~1023程度であれば十分と考えていました。ところが試してみると何故か足りなくなる事もあり、ソフトで500をプラスする事もありました。まあ完全ではありません。

このようにして作ったのが図1の回路です。このように、外付けのアンプを使わずに直接A/D変換器に入力しています。A/D変換器には16ビットのMCP3425を使いました。これは秋月電子で簡単に購入できたからです。基準の電圧については内部の2048mVを使用しています。どのようなメカニズムなのか私には良く解らないのですが、0~2048mVではなく-2048~+2048mVが測れます。内部の構造が図2のようになっており、入力にPGAがありゲインを1,2,4,8から選ぶようになっています。そこで8倍を選びましたので、入力で測れる電圧としては8分の1の-256~+256mVとなります。512mVの幅を16ビットで分割しますので65535で割ると約7.8μV間隔となります。従って最小桁は10μVとしていますが、精度としては問題があります。


図1 回路図になります。(クリックすると拡大します)
 

 
図2 MCP3425の内部構造です。(ICのデータシートより)
 

このようにμVを測る電圧計としては少々物足りないのですが、次にアンプを付加する実験に繋がる事になります。ともかく1000回ほどA/D変換した電圧を平均化して、これをLCDに表示させています。この1000回には、全く根拠がありません。表示が早くなり過ぎても読めませんので、測定間隔をみて1000回にしただけです。

3.作製

まず図3の実装図を作製しました。ハンダ面のレイヤーが図4になります。そしてジャンパーのレイヤーが図5になります。これらを元に基板を写真2のように作製しました。この写真2の基板には回路図や実装図にあるZERO ADJがまだありません。ノイズレベルを調整する半固定VRもありません。これで写真3のように実験を行い、後から追加したためです。そしてこれらを追加して、写真4のようになりました。もちろんまだ実験途上ですのでこれで「完成」と考えてはいません。


 
図3 実装図。
 

 
図4 ハンダ面のレイヤー。

 
図5 ジャンパーのレイヤー。
 

 
写真2 作製した基板です。

 
写真3 このように実験をしました。


写真4 ZERO ADJ用のスイッチとノイズレベル調整用の半固定VRを追加しました。
 

No.198ではピッタリと入るケースに入れています。しかし今回はケースには入れませんでした。これはNo.198よりも完成度が低く、標準の機器にするレベルとは思えなかったためです。従ってこの基板をアクリルの板の上に固定し「とりあえず完成」としました。

4.ソフト

A/D変換にはAVR内蔵の12ビットではなく、16ビットのMCP3425を使っています。これをI2C制御で設定しデータを読み取っています。このA/D変換した結果より電圧を計算し、LCDに表示するだけのソフトです。

MCP3425ですが、図6のようにレジスタの設定を行います。ビット4~7はデフォルトのままで良いと思います。S1,S0がサンプルレートの設定で、A/D変換を16ビットに設定するためには1,0と設定します。G1,G0がゲインの設定で、8倍にするには1,1に設定します。つまり10011011ですので、ヘキサで0x9Bとなります。このレジスタの設定用アドレスが図7のようになっています。デバイスコードの1011とR/WがWですので、これを含めて0xD0を送れば良い事が解ります。つまり図8のように0xD0と0x9BをI2C制御でMCP3425に送ります。
 A/D変換の結果を読み出す時も同様です。デバイスコードの1011は変わりませんが、R/WがRになりますので0xD1を送ります。その後で読み出します。


 
図6 MCP3425のレジスタの設定です。(ICのデータシートより)
 

図7 MCP3425のレジスタのアドレスです。(ICのデータシートより)



図8 このようにしてアドレス(0xD0)とデータ(0x9B)を連続でMCP3425に送れば設定できます。(ICのデータシートより)


MCP3425自体はプラス側もマイナス側も255mVまで測れますが、中途半端なのでプラス250mV以上は「LEVEL OVER」表示としました。マイナス側も同様にできるのですが、「-」表示が増えるために1行が8文字の字数を超えてしまいます。LCDの都合ですが、99mV以上で「LEVEL OVER」にしました。これはソフトでの味付けのひとつです。本来はプラス側だけ測れれば充分なのですが、実験をしていて不十分と気が付きました。僅かなノイズやオフセットの電圧が問題となりますので、マイナス側が測れると相当便利です。そのような意味で、マイナス側は少しだけ測れれば良いのです。

なお、PCの環境はWINDOWS XPで、BASCOM AVRの製品版 VER.1.11.9.8を使ってコンパイルしています。書き込みはAVR ISPmk2ですが、基板のISP端子との接続には自作の変換ケーブルを使っています。これ以外の環境についての確認は行っていません。

試行錯誤が多かったのですが、標準的なソフトとしてアンプを付けない状態での電圧を測るソフトを「ここ」に置いておきます。このソフトではZERO ADJとノイズレベルを調整する半固定VRは使っていません。

5.使用感

このように作ったため前回のNo.198の「マイクロV発生器」に比べて、更なる使用感もありません。一応写真5のように測る事ができます。これは10mV×0.005=0.05mVを出力したところ、0.05mVと正しく測れている様子です。0.05mVですので、一応50μVが測れている事になります。このまま更に下げると設定どおりに0.00mVまで下がりました。端子を入れ替えてマイナス側を同様に測ると、-0.05mVが-0.07mVと少々異なりました。そのまま0.00mVにしても-0.02mVとなりました。このようにクセがとても強い感じですが、一応は10μV単位で測れています。あとは10倍のアンプを付ければ1μVが測れるという計算ですが、それは簡単ではありません。
 

 
写真5 No.198の出力電圧を測っている様子です。
 

本機の目的は明確にあるのですが、他にも幅広く応用ができそうです。A/D変換器の実験と考えた方が良いもかもしれません。12ビットでは足りないような場合、このような16ビットがあると便利かと思います。測定器の実験以外にも使えそうです。マイナス側も変換できるのは意外に便利で、何かに使えそうです。

ここまでは問題ないのですが、この先にアンプを付加した場合にはノイズ対策が一番の問題になります。