ロックインアンプによる低抵抗計
by K.I
2012/04/08〜
Index
概要
開発環境と書き込み
部品について
回路図
ブレッドボードで配線
回路について
基準抵抗との比較
ロックインアンプ
まとめ
概要
CypressのPSoCのアプリケーションノート AN2207: Lock-in Milliohmmeter
ロックインアンプによる低抵抗計を作ってみる。
アプリケーションノートは、以下のリンクから、ソースファイルとpdfファイルをダウンロードできる。
AN2207
an2207.pdf
→上はリンク切れなので、PDFだけ置いておきます(140727追記)
こちら
にも、アーカイブされていました(140728追記)
an2207.zip
→ソースファイル
開発環境と書き込み
AN2207は、PSoC Designer4で作成されているので、最新のDesigner5.xでは、Openできない。
Designer4プロジェクトについて
を参照
結局、Designer5.0と、最新のDesigner5.4ををインストールしておき、
Designer5.0で、AN2207のプロジェクト(.SOC)をOpen、Updateして、Designer5のプロジェクト(.CMX)に変換
Designer5.4で、改めてOpenしてコンパイル、書き込みを行った。
LCDを接続した状態だと、Program(書き込み)時にエラーになるので、
ブレッドボードから、LCDを抜いた状態でProgramする必要がある
部品について
基本的にブレッドボードを使って作ることにする。
LCDは ブレッドボードには使いやすい
SD1602HU
という1列のピン配置になっているものを使う。
LCD端子番号
14
13
12
11
10
9
8
7
6
5
4
3
2
1
16
15
LCD端子名
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
E
R/W
RS
Vo
Vdd
Vss
K
A
この中で必要な、DB7,DB6,DB5,DB4,E,R/W,RS,Vo,Vdd,Vssの10端子だけヘッダピンを立てておく。
それからシリアルインターフェースは、
秋月のUSBシリアルモジュール
AE_UM232R
を使う
回路図
AN2207の回路図を、今回使う部品で書き直したもの
ブレッドボードで配線
ブレッドボードで配線してみた
部品を載せるのに、結構苦労したけど、なんとか全部載せることが出来た。
とりあえず1.8Ωの抵抗を測ってみた。
1750〜1800mΩぐらいをふらふらしてるが、なんとか測れているようだ。
写真じゃ分かりにくいので、ブレッドボードの配線図も描いておく。
電源はUSBから供給する。上側の横配線はAGND、下側の横配線はGNDになっている。
→Ctrl-スクロールホイールで拡大可
ちなみに、所々に挿してあるピンソケットは、LCDを支えるためのもので、回路的な意味は全くなし。
矢印でDUT
1
と書いてある抵抗が、測定したい抵抗。
この配線では、4端子測定になっていないかもしれないが。
1
Device Under Testの略
[top]
回路について
AN2207の回路について、考えてみる。
基準抵抗との比較
入力は、AMUX4を使って、測定対象のRtと、基準のRrefの両端の電圧を選択するようになっている。
まず、基準抵抗Rrefと測定対象の抵抗Rtを直列に接続して、電流を流しておく。
AMUX4で、P0-0をOPアンプの+に、P0-1をOPアンプの-に接続、Rrefの両端電圧Vref'を求める
次に、ColumnのMUXを切り替えて、Vzeroを求め、Vref'-VzeroをVrefとする。
同様にAMUX4で、P0-6をOPアンプの+に、P0-7をOPアンプの-に接続、Rtの両端電圧Vt'を求める
そして、ColumnのMUXを切り替えて、Vzeroを求め、Vt'-VzeroをVtとする。
自分の理解したところでは、たぶんこんな理屈だと思う。ColumnMUX以降の回路による誤差分を相殺するということかな。
目的のRtは、RrefにVt/Vrefの電圧比を掛けたものになる。
また、これは抵抗に電流を流しておいて、その両端の電圧を測定する4端子測定になっている。
測定回路の抵抗が誤差になるが、測定回路に流れる電流より抵抗に流している電流が十分大きければ、無視出来るというわけ。
Vref,Vtの切替えは、AMUX4モジュール2個を使用
ColumnMUX切替えは、ABF_CR0レジスタのACol1Muxビットの切替えで行なっている。
ロックインアンプ
抵抗の測定のために、微小電圧をOPアンプで増幅しているが、増幅率が大きいので、
このままでは、ノイズも増幅してしまうので、実際の値を安定して読み出すのは難しい。
それで、抵抗に流す電流をバルス駆動にして、増幅した信号に同じ周波数の波形を掛け算する
言い換えると、増幅した信号をパルス駆動と同じ周波数で正転、反転を切り替える
これにより、その周波数成分だけの信号が得られる
切替えによる高周波成分を、最後にLPFでで除去すれば、ノイズの影響を小さくすることが出来る。
これがロックインアンプで、狭帯域のBPFを通したのと同じことになる。
たぶんそんな感じだろうと、自分は理解したつもりになってるけど、合ってるかな?
AN2207のロックインアンプでは、ASCブロックのモジュレータ機能で、パルス駆動の周波数を乗算している
これは、AMD_CR1レジスタの設定で、GOE[0]をモジュレータ入力に設定することで行っている。
乗算の前にBPFを通してから入力しているけど、その方が良いんだろうか。
ロックインアンプ自体がBPFだから、必要ないような気もするんだけど。
[top]
まとめ
というよりも、ひとりごとかな。
このアプリケーションノートの、AMUXを使った信号の切替えによる基準電圧との比較や、
ロックインアンプによる測定は、いろいろ応用が効きそうだ。
何より、この回路がプログラムによる切替えだけで構成出来るというのは、
このPSoCというデバイスは、なかなか良く出来ているなぁ。と思いました。
あと、ちょっと分からないのは、ロックインアンプは位相が合っていないと、ちゃんと出力がとれないはずだけど、
AN2207では、パルス駆動の信号をそのまま乗算しているが、これで良いのかなぁ。
まぁ、実際に出力されているから良いんだろうけど、間に入れる回路によっても変わってくるんじゃないだろうか?
AN2207には、位相に関する記述が無いみたいだ。
PSoCはSCFだから、出力はクロックに同期してるとは思うけど、
そういう理解で良いんだろうか。
[top]
[電子工作関連に戻る]
コメント欄の表示/非表示
⇒ Disqusの広告がうるさすぎるので基本は非表示にしました
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus