Das LC-Meter Projekt

von Rudolf Drabek


 aus ELO 2009
Elektronik-Labor  Labortagebuch  ELO  

1

Vor Jahren, als uC's für mich noch ein spanisches Dorf waren, habe ich auf der Aade.com Seite so einen Bausatz um 60 US$ entdeckt. Inzwischen kann man es auch in Deutschland auf funkamateur.de bestellen. Man findet dort auch einen Testbericht von Klaus Raban, DM2CQL. So ein Ding muss jeder haben.

Ich habe nun eine nachbausichere Lösung entwickelt. Als Referenz möchte ich noch die Seite http://home.ict.nl/~fredkrom/pe0fko/LCMeter/ angeben, von der ich einen Teil der Mathematikroutinen verwendet habe, die in Assembler geschrieben sind. Ebenfalls dort sind viele Links über LCmeter eingetragen, sodass man ein Bild über die Szene bekommt.

Meine Ziele waren:

Auflösung 1 pF 1nH ( ist 2 nH)
Messbereich : 1 pF bis theor. 99 uF wenns der Oszillator mitmacht.
2 nH bis 99 mH , mit der Oszillatoreinschränkung
Genauigkeit 1% oder besser +- 1 digit.

Auf die Genauigkeit gehe ich noch im Detail ein. Ausgabe der Ergebnisse am Displaymodul von mir in ELO. Selbstkalibrierend, genauer gesagt die Nullpunktdrift wird eliminiert durch geeignete Software. Eine Kalibrierung im Sinn des Wortes wird nicht durchgeführt. Man muss, wer es wünscht, einen genaue(n) Bauteil(e) besorgen und die Abweichung feststellen. Die Software ist aber leicht anzupassen für den der es kann. Mir reicht es so, es ist genau genug. Aber auch fast alle anderen LCmeter sind nicht „kalibrierend" im Sinn des Wortes, sondern vergleichen nur 2 Bauteile gleicher Art. Meine Lösung vermeidet jede Nullpunktdrift dadurch und das ist neu, soweit ich sehen kann, indem abwechselnd eine fo Messung und eine fx Messung durchgeführt wird. Daraus errechnet sich dann der Cx bzw. Lx Wert. Erklärung folgt. Es gibt einen einzigen Schalter, der zwischen L und C umschaltet. So sieht es aus:

2

Bitte anklicken für volle Bildauflösung

 

Da das LCmeter ist ein SpinOff des 120 Mhz Frequenzzählers und man sieht noch den Platz für den 16er Teiler 74F161 mit der Brücke Eingang/Ausgang.

Software

Viele der LCmeter verwenden ein Floating Point Mathepaket, was natürlich beeindruckend ist. Man muss aber überlegen wie denn der Input für die Mathe aussieht und besser wird das Ergebnis nicht durch FLT. Darüber muss man sich klar sein. Ich war deshalb froh zuerst bei Fred Krom ein Integermathepaket zu finden. Inzwischen habe ich es auch noch an anderen Stellen im Internet gefunden.

Basis für alle Berechnungen ist die Formel f*2PI = 1/ Wurzel( LC ) (1)

Oder C = (Cx + Co) = 1/ ( Lo ( 2PI*fx)²) (2)

Zuerst wollte ich eine Konstante k = 1/ ( Lo*4*PI²) verwenden, weil dann die nötige Mathematik ein Minimum wird.

Die Formel wäre dazu Cx = k/fx² -Co aus (2) folgt (3)

Nun, wäre schön, wenn k über die Zeit konstant bliebe. Aber stellen sie sich vor dass sie einen 1 pF Kondesator bestimmen wollen. Die Gleichung sieht dann wie folgt aus:

1 = 1021 - 1020 (4)

Man sieht die Problematik. Bei kleinen Meßwerten spielt die Konstanz von k als auch Co eine maßgebende Rolle. Die Drift ist in etwa 3-5 pF, an sich nicht viel, aber meine Ziele erreiche ich damit nicht. Also Strategie umstellen auf folgendes.

Messe zuerst fo, dass heißt ohne Cx, also nur Co. Dann die Messung Co+Cx .
Ich bekomme also 2 Frequenzmesswerte. Die Formel ist dann

Cx = Co*fo² / fx² -Co (5)

in FLT wäre es:

Cx = Co(fo²/fx²2 -1) (6)

Sie muss, bei Integermathematik von links nach rechts in der gezeigten Schreibform durchgeführt werden. Bei FLT ist dies keine Anforderung, ich werde noch zeigen warum.

Ich muss jetzt etwas ins Detail gehen mit der Frequenzmessung. Verwendet wird Timer1, ein 16 bit Counter, der nur bis 65536 zählen kann, wenn man keinen Software Counter anhängt. Die höchste Frequenz des Bauteiloszillators habe ich mit 600 kHz festgelegt. Werte siehe Schaltbild. Damit liegt auch die Gatezeit des Frequenzzählers fest mit .1/10 sec. Das Zählergebnis ist also maximal 60000. Das heißt auch gleichzeitig: egal welche Grundfrequenz Sie planen, Sie müssen immer darauf achten innerhalb der 16 bit zu bleiben. Damit wird FLT ziemlich entzaubert. Messen sie 1 pF dann sinkt der Zählerstand auf 59970.

Würden sie (6) verwenden sieht das Ergebnis wie folgt aus:
Nun, 60000/59970 in Integermathe ist 1, ob Quadrat oder nicht. Das Rechenergenis für Cx ist NULL. Thema verfehlt!

Nicht so wenn Sie (5) verwenden: Wieder messen Sie 60000 und 59970

Cx = 1020*60000² / 59970² -1020 = 1 nun, so einfach ist es.

Für Lx Messungen ergibt sich die min. Auflösung mit 2,3 nH = 2 nH. Bei Integer oder Fixkommamathe muss man sehr genau aufpassen was man tut und so kommt man drauf, dass Auflösungen von gar 0,01 pF nur math. Werte sind die nicht der Realität entsprechen und nur durch FLT zusammenkommen. Man denkt einfach weniger nach mit FLT.

Co ist angegeben mit 1020 pF. Bei kleinen Messwerten, wo eine Differenz von großen Werten den größten Einfluß hat ist die Toleranz ziemlich egal, ob sie 10 pF +- 1% messen. Bei großen Werten z.B 100 nF ist die Toleranz so genau wie die Toleranz des 1020 pF Referenz C's. Auch ob sie von 100000 pF 1020 oder 1021 abziehen spielt keine Rolle. Die niedrigste fx Frequenz bei, sagen wir 1 uF wäre 19160 Hz, der Zählerstand 1916. Das ist eine Auflösung von 0,05 %. Bei 99 uF 0,5%. Das reicht.

Die Bauform der Referenzinduktivität ist sehr wichtig. Ringkerne oder gewöhnlich Drosselspulen haben einen großen Temperaturkoeffizienten. Ich habe eine Toko ZF-Spule aus einem alten MW- Radio umgewickelt, die ist am stabilsten.

Der Rest des Projektes, die Software finden sie im asm-Listing.Das LCmeter ist nachbaufest und stellt keine besonderen Anforderungen.
Im Displaymodul ist an der 1. Stelle ein „C" oder „L" zu sehen, damit man weiss wie der Schalter steht. Das war übrigens der Grund, warum ich das Display mit 7-Segment auf alfa-numerisch, „-„ und „@" umgestellt habe. Die führenden Nullen habe ich nicht unterdrückt, ebenso werden alle Stellen und nicht nur die 4 wesentlichen angezeigt. Im Vergleich zum Aade-LCmeter ist zu sagen, dass man sofort nach dem Einschalten messen kann und keinerlei WAIT CALIBRATING etc. abwarten muss.

Es sind noch genug I/O pins frei für ein LCD Display, wenn jemand das tun will. Es sind ja über 60% des FLASH frei, dank Fixkommaarithmetik. Vielleicht macht jemand eine PCB, was mich freuen würde, wenn er mir einige zukommen ließe via ELO.

Download: Firmware und Eagle-Schaltbild


Mögliche Erweiterungt: Wenn man die fo² und fx² Variablen auf max 40 bit erweitert, der SW counter ist ja nach wie vor in Betrieb, so ergäbe sich die Variante die L Auflösung locker auf <1 nH zu reduzieren. Habe irrtümlich eine 170 uH spule statt C eingesteckt und bekam ein 3020 pF Resultat. Wenn man nachrechnet stimmt das.