ロックインアンプによる低抵抗計
by K.I
2012/04/08〜
Index
- CypressのPSoCのアプリケーションノート AN2207: Lock-in Milliohmmeter
- アプリケーションノートは、以下のリンクから、ソースファイルとpdfファイルをダウンロードできる。
- こちらにも、アーカイブされていました(140728追記)
- AN2207は、PSoC Designer4で作成されているので、最新のDesigner5.xでは、Openできない。
- 結局、Designer5.0と、最新のDesigner5.4ををインストールしておき、
- Designer5.0で、AN2207のプロジェクト(.SOC)をOpen、Updateして、Designer5のプロジェクト(.CMX)に変換
- Designer5.4で、改めてOpenしてコンパイル、書き込みを行った。
- LCDを接続した状態だと、Program(書き込み)時にエラーになるので、
- ブレッドボードから、LCDを抜いた状態でProgramする必要がある
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端子だけヘッダピンを立てておく。
- AN2207の回路図を、今回使う部品で書き直したもの
- ブレッドボードで配線してみた
- 部品を載せるのに、結構苦労したけど、なんとか全部載せることが出来た。
- とりあえず1.8Ωの抵抗を測ってみた。
- 1750〜1800mΩぐらいをふらふらしてるが、なんとか測れているようだ。
- 写真じゃ分かりにくいので、ブレッドボードの配線図も描いておく。
- 電源はUSBから供給する。上側の横配線はAGND、下側の横配線はGNDになっている。
→Ctrl-スクロールホイールで拡大可
- ちなみに、所々に挿してあるピンソケットは、LCDを支えるためのもので、回路的な意味は全くなし。
- 矢印でDUT1と書いてある抵抗が、測定したい抵抗。
- この配線では、4端子測定になっていないかもしれないが。
1Device Under Testの略
[top]
- 入力は、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]
[電子工作関連に戻る]