Manchmal braucht man extrem große Widerstände. 10 MOhm sind noch leicht
zu bekommen, aber wer hat schon mal einen Widerstand mit 100 MOhm oder
mehr gesehen? Das Bild oben zeigt eine Messung an einem RC-Glied mit
3300 pF und einem unbekannten, sehr hochohmigen Widerstand, den der
CH32V003 nach dem Prinzip der geschalteten Kondensatoren gebildet hat.
Im AD-Wandler gibt es einen kleinen Kondensator, der an einem aktiven
Eingangskanal kurz aufgeladen wird. Durch Wechseln des Kanals kann man
Ladung von einem zum andren Pin transportieren.
Die Messpunkte im Plotter haben hier einen Abstand von 40 ms, sodass
das Diagramm 1 s/div zeigt. Aus dem Diagramm kann man die Zeitkonstante
ablesen, bei der jeweils 63% der Endspannung erreicht wird. Sie beträgt
hier ca. 0,3 s. Daraus kann man einen Widerstand von rund 100 MOhm
ableiten.
Rem ADCresist
0x09FF Pdir = 255
L1:
0x0331 C = 49
L2:
0x0427 D = 39
L3:
0x3D00 A = AD1
0x3C00 A = AD0
0x1901 Delay ms = 1
0x2603 D*Goto L3:
0x4200 Print A
0x2502 C*Goto L2:
0x3500 A = B
0x3300 A = Not A
0x4500 Pout = A
0x3400 B = A
0x2001 Goto L1:
Das Programm erzeugt ein symmetrisches Rechtecksignal mit einer
Impulslänge von 2 s an allen Ports. Einer davon ist an AD1
angeschlossen. An AD0 liegt nur der Kondensator mit 3,3 nF, sonst
nichts. Mit einer Frequenz von 1 kHz wird dann jeweils AD1 und AD0
gemessen. Über den internen Sample-Kondensator im ADC wird dabei Ladung
transportiert wie über einen hochohmigen Widerstand.
Für geschaltete Kondensatoren ergibt sich der erzeugte Widerstand mit R
= 1/(C * f). 1 kHz und 1 pF ergeben also 1 GOhm. Man muss also
vermuten, dass hier im AD-Wandler 10 pF beteiligt sind. Außerdem ist da
auch noch die interne Referenz-Spannungsquelle im Spiel, sodass die
untere Endspannung in diesem Fall auf etwa 0,5 V angehoben wird. Bei
andern Mikrocontrollern kann das ganz anders aussehen, denn jeder
Hersteller hat seine eignen, kaum dokumentierten Schaltungstricks.
Der erzeugte Widerstand kann also über die Wartezeit eingestellt
werden. Ich möchte gerne 1 GOhm haben und stelle die Verzögerung von 1
ms auf 10 ms um. Alles läuft nun zehnfach langsamer, und eine
Impulslänge dauert nun 20 s. Die Diagramm sieht aber genauso aus, d.h.
die Zeitkonstante ist ca. 3 s, der Kondensator ist der gleiche, und
der programmierte Widerstand beträgt tatsächlich 1000 MOhm = 1
GOhm.
Eine Anwendung: Ich möchte Ströme im Bereich Nanoampere messen. Als
Stromquelle nehme ich eine grüne LED, die schwach beuchtet wird. An AD0
bleibt der Kondensator von z.B. 3,3 nF und parallel dazu die LED als
Stromquelle. AD1 wird permanent an GND gelegt, sodass der erzeugte Widerstand parallel zur LED liegt..
Die Messung zeigt die LED-Spannung bei einer Belastung mit 1 GOhm. Bei
0,5 V liegt die gedachte Nulllinie. Die Spannung steigt bei mäßiger und
veränderter Beleuchtung um bis zu bis 1V an, sodass die LED einen Strom
von bis zu 1 nA erzeugt hat. Auch Änderungen von 100 pA sind schon klar
erkennbar.