Hallo zusammen,
Ich habe folgenden Spannungsteiler 3 mal aufgebaut:
R1 (an V+) = 5.6Mohm
R2 (von R1 nach GND) = 6.8Mohm
Zusätzlich wurde noch folgendes dazugemacht:
R3 = 10k,vom mittelabriff der R1/R2
C1 = 100n, von R3 nach GND
D1 = MMSZ5228 (ZDiode 3.9V)
Nun sollte ich gemäss Rechung bei V+=3.3V einen Ausgang von 1.8V haben
In der Realität messe ich mit einem Multimeter nur 0.9V
Das ist bei allen 3 Aufbauten Identisch falsch (bis auf kleinste
Abweichungen von den R1 R2 Toleranzen)
Was kann das Problem sein?
Vielen Dank für die Hilfe,
Grüsse, Dani
Hallo,
Das Multimeter ist ein U1273A von Keysight
Wie finde ich den Widerstand heraus?
Was bedeuted denn das alles für den Fall, wenn statt einem Multimeter
ein Mikrocontroller (STM32F103) angeschlossen wird?
Grüsse
Dani
Danielso schrieb:> Wie finde ich den Widerstand heraus?
Mit einem zweiten Multimeter im MΩ Bereich oder durch einen Blick in die
Bedienungsanleitung.
Oder indem du damit einen hochohmigen Spannungsteiler belastest und den
Meßfehler interpretierst :-)
Ingo Less schrieb:> Es bedeutet das dein Spannungsteiler zwei Dekaden zu hochohmig ist.
Falls nicht klar ist was 2 Dekaden sind - das bedeutet Faktor 100.
Ich behaupte die Widerstände sind sogar Faktor 1000 zu hoch um direkt
mit einem Mikrocontroller genau zu messen.
Danielso schrieb:> Was bedeuted denn das alles für den Fall, wenn statt einem Multimeter> ein Mikrocontroller (STM32F103) angeschlossen wird?
Der Mikrocontroller hat intern einen Kondensator mit zweistelligen pF
Kapazität. Diese kann der hochohmige Spannungsteiler nicht schnell genug
aufladen, so dass es zu völlig falschen Messergebissen kommen wird.
Der Spannungsteiler sollte nicht mehr als 10kΩ haben, wenn du daran
einen AVR oder STM32 hängst.
Hi,
Okay, aber wenn ich den Spannungsteiler kleiner mache, verbraucht dieser
selbst viel Strom. Meine Schaltung mit dem STM32F103 benötigt aktuell
nur 4uA im nicht arbeitenden Zustand. Mache ich jezt den Spannungsteiler
kleiner, benötigt dieser selbst ein vielfaches an Strom wie die ganze
Schaltung :(
Das möchte ich nicht.
Im nicht arbeitenden Zustand schalter der MCU den Spannungswandler ab
und wird nur noch von der Batterie direkt betrieben. Der Mikrocontroller
mistt die Lithium Mangan Batterie.
Wie lösen denn "Profis" solche Probleme?
Danielso schrieb:> Mache ich jezt den Spannungsteiler> kleiner, benötigt dieser selbst ein vielfaches an Strom wie die ganze> Schaltung :(>> Das möchte ich nicht.>> Wie lösen denn "Profis" solche Probleme?
die schalten den Spannungsteiler einfach ab mit einem oder mehr FET(s)
Danielso schrieb:> Okay, aber wenn ich den Spannungsteiler kleiner mache, verbraucht dieser> selbst viel Strom.
Ja isso.
> Das möchte ich nicht.
Plan B: Du unterbrichst den Spannungsteiler mit einem Transistor, der
nur kurz für die Messung eingeschaltet wird.
Plan C: Du belässt es beim hochohmigen Spannungsteiler und stabilisierst
dessen Ausgang mit einem 100nF Kondensator. Wenn du dann mit dem ADC
misst, werden einige Elektronen von dem externen Kondensator in den
internen umgeladen. Da der externe um Faktor 10.000 größer ist, fallen
die Verluste nicht ins Gewicht. Allerdings musst du zwischen den
Messungen reichlich lange Pausen machen, damit der Spannungsteiler den
externen Kondensator wieder vollständig nachladen kann.
Danielso schrieb:> Das ist bei allen 3 Aufbauten Identisch falsch
Die sehe ich hier deutlich NICHT vor mir (leider gibt es kein etwas
leiseres NICHT ...).
Welcher Prozessor? Einige können ihre eigene Ref-Spannung messen wodurch
keine externe Beschaltung nötig ist um die Versorgungsspannung zu
bestimmen. Ein Ausgangspin kann auch einen Spannungsteiler (mit)schalten
dann weiß man gleich ob die Batterie unter Last einknickt.
Hi,
Hier das Bild zum Schaltplan.
Wie meinst du "Pausen zwischen den Messungen" ? Der ADC vom
Mikrocontroller misst doch immer, also so schnell er kann? Man kann doch
nur den Wert weniger oft abfragen? Im Mikrocontroller erhalte ich
nämlich ein Ergebnis was auch keines Wegs dem erwarteten Entspricht
Und mit "identisch falsch" meinte ich jetzt nicht das alle den selben
Wert anzeigen, aber es bewegen sich alle im Bereich, also kann es kein
Bauteilfehler oder Lötfehler sein, das wollte ich ausschliessen.
Gruss Dani
Danielso schrieb:> Der ADC vom Mikrocontroller misst doch immer, also so schnell er kann?
Nein. Du kannst selbst bestimmen, wann und wie oft er messen soll.
R3 und D1 sind überflüssig. D1 dürfte sogar störend wirken, wegen ihrem
Reverse-Current (Leckstrom).
Danielso schrieb:> Hi,>> Okay, aber wenn ich den Spannungsteiler kleiner mache, verbraucht dieser> selbst viel Strom. Meine Schaltung mit dem STM32F103 benötigt aktuell> nur 4uA im nicht arbeitenden Zustand. Mache ich jezt den Spannungsteiler> kleiner, benötigt dieser selbst ein vielfaches an Strom wie die ganze> Schaltung :(>> Das möchte ich nicht.>> Im nicht arbeitenden Zustand schalter der MCU den Spannungswandler ab> und wird nur noch von der Batterie direkt betrieben. Der Mikrocontroller> mistt die Lithium Mangan Batterie.>> Wie lösen denn "Profis" solche Probleme?
Setzte einen OPV als Impedanzwandler (Spannungsfolger) zwischen R3 und
den ADC-Eingang. Wozu R3? Ist D1 richtig herum eigebaut? Die soll den
ADC-Eingang vermutlich schützen.
hinz schrieb:> 3V/12,4MOhm solltest du nochmal nachrechnen.
Die theoretischen 1,8V passen schon.
Nach den Berechnungen auf der Zeichnung hat er eine Referenz von 3,3V?
Woher kommen die? Sollte die die Batteriespannung sein wird er immer das
gleiche Ergebnis anzeigen bis die Batterie so leer ist das er gar nichts
mehr anzeigt. Es ist zwingend eine Batteriespannungsunabhängige
Ref-Spannung nötig.
hinz schrieb:> Jörg R. schrieb:>> hinz schrieb:>>> 3V/12,4MOhm solltest du nochmal nachrechnen.>>>> Die theoretischen 1,8V passen schon.>> Schau nach dem Strom!
Sorry, ich habe nicht auf das Bild geschaut sondern die Berechnung mit
den 1,8V nach den Angaben aus dem Eröffnungsthread gemacht;-)
Danielso schrieb:> Das möchte ich nicht.
Tja, zwischen wollen und können gibt es einen Unterschied.
> Wie lösen denn "Profis" solche Probleme?
Oftmals hat es einen Grund, warum manche Geräte nicht wissen wie voll
der Akku noch ist.
Der Aufwand war zu hoch, die zusätzliche Belastung nicht tolerabel.
Es gibt natürlich extrem hochohmige nur Mikroampere verbrauchende
OpAmps, die zwischen hochohmigen Spannungsteiler und Messeingang
geschaltet werden können und mit 3.3V laufen.
Das klappt zumindest so lange, wie nicht dessen Versorgungsspannung
abgeschaltet wird.
Kein Profi verwendet eine 3.9V Z-Diode. Jeder Profi hat nämlich schon
mal in ein Datenblatt einer solchen Z-Diode geguckt.
Danielso schrieb:> aber wenn ich den Spannungsteiler kleiner mache, verbraucht dieser> selbst viel Strom.
Dann schalte den Spannungsteiler halt ab, wenn du gerade nicht mißt.
> Der Mikrocontroller mistt die Lithium Mangan Batterie.
Warum brauchst du drei Spannungsteiler, um die Spannung von einer
Batterie zu messen? Was versprichst du dir von dem 10K Widerstand, wenn
doch dein Spannungsteiler bereits einen Innenwiderstand um die 3MΩ hat?
Und welchen Zweck soll die Z-Diode erfüllen, wenn doch die Batterie nie
mehr als 3V haben kann? Kannst du 0402 Widerstände von 6.8MΩ überhaupt
so sauber verarbeiten, daß da keine Kriechströme das Teilerverhältnis
versauen? Schon mal probehalber während der Messung die Platine
angehaucht?
Danielso schrieb:> Wie meinst du "Pausen zwischen den Messungen" ? Der ADC vom> Mikrocontroller misst doch immer, also so schnell er kann?
Aber nicht so oft, wie er lustig ist. Was glaubst du denn, wie schnell
sich die Spannung deiner Batterie verändert? Und meinst du, es ist
sinnvoll, den Batteriezustand 100-mal pro Sekunde (oder noch öfter)
messen zu müssen? Würde nicht einmal alle 5 Minuten vollkommen
ausreichen?
Hi,
D1 soll dazu dienen, das wenn aus irgendeinem Grund eine zu gross ist,
das der Eingang vom STM32 nicht defekt geht. Laut Datenblatt darf er
maximal 4V sein bevor er kaputt geht. Wenn 3.9V überschritten sind,
fliesst doch der "Rest" über die Diode nach GND, oder nicht?
Die Referenz vom MCU ist 3.3V welche aus einem Spannungswandler kommen,
gemessen wird jedoch die Batteriespannung 2...3V. Beim STM32F103 ist die
Spannungsreferenz immer die Betriebsspannung. Bei Grösseren
Mikrocontrollern kann man glaubich eine externe anschliessen, bei meinem
aber nicht.
Beim Mikrocontroller habe ich den Code zwar kopiert, aber soweit ich
festgestellt habe, wird hier "dauernd" gemessen, wenn ich mir den Wert
aus dem Array entnehme ist dabei irrelevant, der ADC arbeitet doch alle
640.5 Cycles des Mikrocontroller automatisch?
sConfig.SamplingTime = ADC_SAMPLETIME_640CYCLES_5;
Ist der Spannungswandler aus, erhält der MCU nur die Batteriespannung,
das ist aber egal, da er ja dann eh nicht messen kann, wenn er sich im
Shutdown befindet.
Wieviel Strom braucht denn ein Analogpin? Könnte man nicht die
Batterispannung direkt an einen Analogpin setzen?
Der Pin ist ja entweder identisch Vbat oder hald grösser (3.3V)?
Wegen des Strom ist ein tippfehler, ich meinte 241nA also 0.241uA :)
Stefan F. schrieb:> Der Mikrocontroller hat intern einen Kondensator mit zweistelligen pF> Kapazität. Diese kann der hochohmige Spannungsteiler nicht schnell genug> aufladen, so dass es zu völlig falschen Messergebissen kommen wird.
Ein Kondensator zwischen Eingang und Gnd hilft immer, wenn es darum
geht, eine Gleichspannung zu überwachen.
Danielso schrieb:> Wenn 3.9V überschritten sind,> fliesst doch der "Rest" über die Diode nach GND, oder nicht?
Schau doch einfach mal ins Datenblatt der Z-Diode, da wirst du eine
Kennlinie finden.
Danielso schrieb:> Beim Mikrocontroller habe ich den Code zwar kopiert, aber soweit ich> festgestellt habe, wird hier "dauernd" gemessen,
Ändere den code passend zur Anwendung. Du kannst bestimmen, wann der ADC
laufen soll. Oder kannst du nur copy+paste?
> Wieviel Strom braucht denn ein Analogpin?
So viel wie ein ca 15pF Kondensator aufnimmt. Je öfter du misst, umso
höher die Stromaufnahme.
> Könnte man nicht die> Batterispannung direkt an einen Analogpin setzen?
Sinnlos weil der ADC nur Spannungen kleiner als Versorgungsspannung
messen kann.
Dann geht das.
Die Zenerdiode ist aber quatsch. Die ESD Schutzdioden werden
Überspannung schon nach VCC ableiten, sofern du sie nicht überlastest.
Ein paar mA vertragen die schon.
Danielso schrieb:> D1 soll dazu dienen, das wenn aus irgendeinem Grund eine zu gross ist,> das der Eingang vom STM32 nicht defekt geht. Laut Datenblatt darf er> maximal 4V sein bevor er kaputt geht. Wenn 3.9V überschritten sind,> fliesst doch der "Rest" über die Diode nach GND, oder nicht?
Weg mit D1. Entweder im Datenblatt den Hinweis auf Climbdioden finden
(die meisten IO-Ports haben eine Diode von Masse und zu Vcc) oder ggf.
eine Shottky-Diode vom Pin zu Vcc)
> Die Referenz vom MCU ist 3.3V welche aus einem Spannungswandler kommen,> gemessen wird jedoch die Batteriespannung 2...3V. Beim STM32F103 ist die> Spannungsreferenz immer die Betriebsspannung. Bei Grösseren> Mikrocontrollern kann man glaubich eine externe anschliessen, bei meinem> aber nicht.
Wenn die Batteriespannung kleiner ist, wozu dann der SpgsTeiler? Naja,
jedenfalls niederohmig wie schon gesagt durch OP. Oder für Transistor
als Schalter entweder ein IC, dass dir einen FET im High-Zweig schaltet
oder 2 Transistoren mit Pullup-Widerstand. Den GND kannst Du nämlich
nicht abschalten. Alternativ geht je nach Ansprüchen auch ein IC, z.B.
ein Inverter, der seine Versorgungsspannung auf den Ausgang legt (und
quasi nur bei Belastung einbricht).
Danielso schrieb:> Wie lösen denn "Profis" solche Probleme?
Die haben gelernt, wie ein belasteter Spannungsteiler zu rechnen ist
und sehen aus Erfahrung heraus, dass Dein hochohmiger Aufbau verdammt
grenzwertig ist.