LC測定器です。イタリアのTalino Tribuzioさんの情報を参考にさせていただきました。
共振周波数の差分から計算する方式です。浮遊容量の影響を最小限に抑え、かなり良い精度です。
基板はOLIMEXに発注しました。
キャパシタンス測定範囲 0.1pF - 1.5uF インダクタンス測定範囲 1nH - 45mH 電源 単三x2 消費電流 20mA以下、キャリブレーション時はリレー駆動のため100mA程度 電池寿命 2000mAH/20mA=100hour
C1は既知の精度の高いコンデンサとします。例えば、1000pF, 1%などです。
まずはL1のキャリブレーション回路をご覧ください。
共振周波数f1を測定することにより、L1を計算で求めることができます。
つまり
(1)Cx測定時
未知のCxをCx測定回路のように接続します。 このときの共振周波数f2を測定することにより、Cxを計算で求めることができます。
連立方程式を解くとCxは次のように表されます。
(2)Lx測定時
未知のLxをLx測定回路のように接続します。 このときの共振周波数f2を測定することにより、Lxを計算で求めることができます。
連立方程式を解くとLxは次のように表されます。
- 持ち運びを考え、単三電池x2動作としました。昇圧DCコンバータHT7733Aを使用して、3.3Vを供給します。
- LCDを3.3V電源で使用しているため、コントラスト不足となります。コッククロフト回路でマイナス電源を供給します。
- RA0の入力は電源電圧モニター用です。起動時に電圧表示します。
- Cxの未測定時はf1=500KHz前後です。
- Cxが0.1uF以上の場合、異常発振してしまうようです。測定原理上pFからnFのレンジを得意とし、uFは不得意です。
値 数 備考 PIC24FJ64GA002 1 IC1 マイクロチップ LM311 1 IC2 コンパレータ SC1602 1 LCD1 16x2行表示 10K 1 R1 カーボン皮膜抵抗1/4W 2K 1 R5 カーボン皮膜抵抗1/4W 100K 3 R6,R7,R8 カーボン皮膜抵抗1/4W 47K 1 R9 カーボン皮膜抵抗1/4W 1K 1 R10 カーボン皮膜抵抗1/4W 0.01uF 2 C1,C2 セラミックコンデンサ 10pF 2 C11,C12 セラミックコンデンサ 1000pF 2 C4,C5 マイカコンデンサ、精度1% 10uF 3 C3,C6,C7 縦型電解コンデンサ(耐圧16V) 47uF 2 C8,C9 縦型電解コンデンサ(耐圧16V) 1N4148 3 D1,D2,D3 汎用シリコンダイオード 1S4 1 D4 ショットキー・バリア・ダイオード、PAJIT G5V1 1 RY1 3V1接点マイクロリレーOMRON、代替品Y14H-1C-3DS 100uH 1 L1 アーキシャルリードLAL02NA101K、太陽誘電 47uH 1 L2 小型インダクタ 8MHz 1 XTAL1 HC-49/S、MEC
測定前にキャリブレーションが必要です。キャリブレーション・データはPIC内に保存されますが、適宜キャリブレーションすることをお勧めします。
- キャパシタンス測定時
何も接続せずにキャリブレーション・ボタンを押します。0pFを示すはずです。- インダクタンス測定時
測定端子をショートさせて、キャリブレーション・ボタンを押します。0nHを示すはずです。
- MPLAB C30で開発しました。
- PIC24FJは外部発振8MHzで動作しています。周波数測定はこれを基準にします。
- コントラスト用のクロックはタイマ2のPWMで10KHzを生成しています。
問題発生(C)2010 All rights reserved by Y.Onodera.原因
- PIC24FJ64GA002でADC変換を利用したところ、コンパイルに失敗する現象に遭遇しました。
- 具体的にはOpenADC10関数の参照を解決できないというものです。
解決方法
- C30のヘルプをよく読むとPIC24Fのペリフェラルを利用するときには、ライブラリを再構築する必要があるかもしれないとのことです。
- 具体的には、libpPIC24Fxxx-coff.aをリビルドする必要があります。
- これはPIC24Fのみ必要な措置のため、世界中で悩んでいる方がいます。
このリビルドにより、目的のコンパイルに成功しました。
- ソースは以下にありますので、テンポラリ・ディレクトリに展開します。
- C:\Program Files\Microchip\MPLAB C30\src\peripheral_24F\peripheral_24F.zip
- libpPIC24Fxxx-coff.mcp を起動し、Configure->Select DeviceでPIC24FJ64GA002を選択してからBuild Allします。
- (デフォルトではPIC24FJ256GB110が指定されています。確かにこの設定の場合、ADC.hを追ってみるとPIC24FJ64GA002ではOpenADC10が未定義状態になります。)
- PCの性能によりますが、5分くらいかかります。
- 生成されたライブラリで置き換えます。
- C:\Program Files\Microchip\MPLAB C30\lib\PIC24F\libpPIC24Fxxx-coff.a
詳細は以下のヘルプファイルを参照ください。
C:\Program Files\Microchip\MPLAB C30\docs\periph_lib\Microchip PIC24F Peripheral Library.chm
"Getting Started"項目です。