mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Akkumessung mit AVR


Autor: Mcunoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Ich bin neu in der Materie und wollte mal die Profis fragen. Ich habe 
einen AVR, mit dem ich die Spannung von 2 Akkus messen möchte. Nicht in 
Reihe, sondern einzehln, also je ca 2.5-4.7V. Es sollte schon auf min 
0.1V genau sein. Je genauer, desto besser natürlich. Der AVR läuft mit 
5V und ich habe noch eine 2.5V Referenz (Lm336).
Jetzt habe ich die Frage : Ist es genauer den lm336 zu nehmen oder 
sollte ich aref vom avr nehmen (1.1V) ? Ich habe hier irgendwo gelesen, 
dass die 1.1V auch schon mal  nur 1.0 oder gar 1.2V sein können und man 
jede MCU kalibrieren müsste. Umgehe ich beim lm336z25 das Problem und 
kann davon ausgehen, dass er recht genau 2.5V liefert ?
Zweite Frage die ich habe hat was mit dem Spannungsteiler zu tun. Ich 
habe ihn mit 1:2 Dimensioniert. Der Gedanke dahinter war, dass ich 2,5V 
ref habe und bis 4.7V messen möchte. Also Teile ich die 4.7V durch 2 und 
bin wieder in meinem Messbereich. Oder habe ich das falsch verstanden ?

Danke euch
Mike

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Ich habe hier irgendwo gelesen, dass die 1.1V auch schon mal  nur 1.0
> oder gar 1.2V sein können und man jede MCU kalibrieren müsste
Richtig. Das steht im Datenblatt des entsprechenden µC.

> Umgehe ich beim lm336z25 das Problem und kann davon ausgehen, dass
> er recht genau 2.5V liefert ?
Ja. Und auch dessen Werte stehen in seinem Datenblatt.

> Also Teile ich die 4.7V durch 2 und bin wieder in meinem Messbereich.
Ja, passt: 4,7/2 = 2,35
BTW: du solltest den Spannungsteiler nicht unnötig hochohmig machen 
(<10kOhm). Oder wenn schon hochohmig, dann einen Pufferkondensator (ca. 
100nF) vom Analogeingang zu GND schalten. Aber auch das steht im 
Datenblatt...

: Bearbeitet durch Moderator
Autor: Carsten R. (kaffeetante)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder du nimmst Vcc als Referenz. Für deine Anforderungen sollte das 
reichen sofern die Spannungsversorgung einigermaßen stabilisiert ist. 
Bei 2,5 bis 4,7 Volt je Zelle bin ich neugierig um was für einen Akkutyp 
es sich handelt.

Autor: Mcunoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte einen Zahlendreher im Kopf. Es handelt sich um LiPo Zellen, 
also 4.2V, nicht 4.7V.
VCC als Referenz ist nicht so dolle, da hängt auch noch ein Raspberry Pi 
Zero dran und abhängig von seiner Auslastung geht VCC hoch und runter.
Eine letzte Frage hätte ich noch zum Spannungsteiler : Da er ja hinter 
dem Akku liegt, möchte ich natürlich möglichst wenig an Energie 
verschwenden und den Akku nicht unnötig entladen, gleichzeitig aber auch 
meine Messungen nicht beeinflussen. Der Pufferkondensator vor dem ADC, 
welche Art am besten ? Keramik ? Inwiefern beeinflusst er die Messung ? 
Muss ich das Kompensieren ? Meine ersten Tests zeigten recht grosse 
Streunung der Messwerte. Sollte ich da vll noch einen Filter benutzen 
oder eher öfter Messen und dann digital die Mittelwerte bestimmen ?

Danke euch

Autor: Urban (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
@ Mcunoob

Zwei Tipps:

1. Verwende die interne Referenz ist stabil. Du kannst sie mit einer 
bekannten Spannung (z. B. Labornetzteil) bestimmen.

2. Das 11. Gebot beachten. Du sollst nicht Plenken.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Es handelt sich um LiPo Zellen, also 4.2V.
> VCC als Referenz ist nicht so dolle, da hängt auch noch ein Raspberry Pi
> Zero dran und abhängig von seiner Auslastung geht VCC hoch und runter.

Der Bereich bis 4,2 V passt doch bestens zu 5 V Referenz. In dem Fall 
kannst Du den Akku direkt an einen Analogeingang packen, vielleicht mit 
einem Angstwiderstand um 2 kOhm - das erspart Dir den Querstrom eines 
Teilers.

Wenn Du 5 Volt nicht hinreichend stabil halten kannst, hast Du einen 
grundlegenden Fehler im Design, wo kommen die 5 V her, im Zweifel eben 
mit einem eigenen Spannungsregler erzeugen?

Ich habe gerade den Entwurf für eine ähnliche Sache gemacht, da werde 
ich den Teiler zur Messung mit einem PhotoMOS-Relay oder FET nur so 
lange an die Batterie schalten, wie ich messen will - denke da an an 
alle 5 Minuten.

Die interne Referenz des AVR ist sehr stabil, hat aber, wie Du richtig 
erkannt hast, eine breite Serienstreuung. Das zu kalibrieren, halte ich 
bei Einzelstücken für durchaus zumutbar.

Autor: Mcunoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 5V kommen von einem Schaltnetzteilmodul und sind eher 5.17V. 
Allerdings ist ja das Problem, dass ich nicht von der Spannung ausgehen 
kann. Unter Volllast sind es ca 4.95V und alles wie LDOs oder sonstige 
Stabilisierung fallen aus, da der Dropout immer zu hoch ist.
5V wäre super, aber eben schwer machbar.
Die Idee die Messung schaltbar zu machen ist super. Werde ich mal 
versuchen, so wird der Akku noch weniger belastet.
Was ist mit einer 5V Referenz ? Lm336z5 oder sowas. Spätestens wenns 
unter 5V geht würde das nicht mehr funktionieren, oder ?

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm die 5V-Versorung als Referenz.
Um deren Schwankungen zu komensieren kannst du vor jeder Messung eine 
Messung der Spannung des LM 336 durchführen und so vor jeder Messung die 
5V kalibrieren.

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wo ist da der Vorteil gegenüber einer Vref die er gleich vom LM336 
nimmt?
Und was macht er gegen Schwankungen die nach der Vergleichsmessung 
austreten?
Da ist die interne Vref sinnvoller, die muß nur einmal abgeglichen 
werden und nicht bei jeder Messung.

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen schrieb:
> Und wo ist da der Vorteil gegenüber einer Vref die er gleich vom LM336
> nimmt?

Er spart sich den Spannungsteiler aus seine 5% Wiederständen die er 
bestenfalls rumliegen hat.

Wenn die Versorgungsspannung innerhalb von 2 ms die die Referenz + 
Probemessung benötigt Signifikant schwankt hat er ganz andere Probleme 
als eine genaue Akkumessung.
Alternativ kann man auch Die Batteriespannung als Referenzspannung 
nehmen. Dann spart man sich sogar den Umweg über die 5V was aber den 
Nachteil hat das man nur einen Akku jeweils messen kann.

Autor: doitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard schrieb:
> Er spart sich den Spannungsteiler aus seine 5% Wiederständen die er
> bestenfalls rumliegen hat.

Und morgen bittest du mal deinen deutschleerer um hilfe und korrecktuhr 
deines tekstes :-(

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Was ist mit einer 5V Referenz ? Lm336z5 oder sowas. Spätestens wenns
> unter 5V geht würde das nicht mehr funktionieren, oder ?

Ernstgemeinte Frage?

Du hast keine (stabilen) 5 Volt, also kann Deine Referenzspannung nur 
deutlich tiefer liegen.

Du willst Strom sparen, eine externe Referenz ist diesem Wunsch nicht 
zuträglich. Schalte die interne Referenz des AVR ein, lege einen 
Spannungsteiler 3k3 || 1k an den Akku und fertig.

Autor: Jakob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du auf's Kalibrieren verzichten willst, brauchst du eine
externe Präzisionsreferenz. Und einen Spannungsteiler.

Wenn du den aus 2 * 100 k (Mittelabgriff an In-ADC und 100 nF
nach Masse) zusammenstellst, wird die theoretische Genauigkeit
hauptsächlich von den Teilerwiderständen bestimmt.

Belastung = 4,2 V / 200 k = 21 µA

Vielleicht kanns du das mit 2 * 220 k auf ca. 10 µA drücken,
man darf aber auch die Leckströme des Input-Pins nicht
vergessen!


Überlegenswert wäre auch eine Präzisionsversorgung des µCs!
Lässt die sich nicht aus der Spannung speisen, die dem
5 V Regler des Raspi angeboten wird?

Dann mit <= 10 k auf ADC-In und 100 nF nach Masse.
Belastung der Batterie = Leckstrom des Input-Pins.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jakob schrieb:
> Belastung = 4,2 V / 200 k = 21 µA
> Vielleicht kanns du das mit 2 * 220 k auf ca. 10 µA drücken,
> man darf aber auch die Leckströme des Input-Pins nicht
> vergessen!

An dieser Stelle bin ich etwas unsicher und habe deswegen einen Teiler 
im einstelligen kOhm-Bereich benannt.

Das Datenblatt nennt fuer den AT328 am Analogport Eingangsleckströme max 
50nA @ 2,5V - also kann man wohl hochohmig dram.

Bleibt natürlich die Kasperei mit der Referenz, aber dazu ist ja wohl 
alles gesagt worden.

Autor: Carsten R. (kaffeetante)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist der eigentliche Zweck? nur die Spannung überwachen? 
Ladestandsanzeige? Tirefentladeschutz? Ladeschaltung? die beisen Zellen, 
wie sind die verschaltet? Getrennt, parallel oder in Reihe?

Autor: Mcunoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung soll als Tiefentladeschutz dienen, Ladeanzeige ist ein 
netter Beieffekt. Beide Akkus sind parallel.
Ich habe jetzt alles mit der internen Referenzspannung und einem 
Spannungsteiler gelöst und kalibriere das ganze zuerst. Es ist genau 
genug, um die Akkus zu schonen und im sicheren Bereich abzuschalten.
Danke für eure Hilfe.

Autor: Ralph S. (jjflash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Ich hatte einen Zahlendreher im Kopf. Es handelt sich um LiPo Zellen,
> also 4.2V, nicht 4.7V.

... 4,2V entspricht der maximalen Ladespannung, die ein LiPo haben darf 
(viele auch nur 4,1V) !

Wenn du durch den MC die Spannung begrenzen magst, ist eine Genauigkeit 
von 0,1V schon zu wenig. Eine LiPo Zelle die für 4,2V Ladespannung 
ausgelegt ist, kann bei 4,25V schon deutlich Schaden nehmen und darüber 
kann es sogar gefährlich werden. Höhere Genauigkeit als 0,1V wäre 
angesagt.

0,05V bei einem Meßbereich von 5V entspricht 1%.

Wenn du "nur" sehen magst wie sich ein LiPo auflädt, siehst du bei 0,1V 
Genauigkeit nicht sonderlich viel: Nach dem Starten des Ladens steigt 
die Spannung relativ schnell auf die 4,1V / 4,2V und verharrt dann dort 
sehr lange. Eine Anzeige des Ladestroms wäre für diesen Fall deutlich 
besser 1

(aber ich habe keine Glaskugel und weiß nicht, was du machen möchtest)

Gruß,

Ralph

Autor: Boris O. (bohnsorg) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Nach dem Starten des Ladens steigt
> die Spannung relativ schnell auf die 4,1V / 4,2V und verharrt dann dort
> sehr lange.

Meine Ladekurven zeigen bei Konstantem Strom von ca. 0,5C eine 
Anstiegszeit von 1-2h bis auf 3,8V. Wenn das schnell ist, sollte ich mit 
der Wahrnehmungsgeschwindigkeit auf Hühnerfänger umschulen. Bis 4,1V 
fällt der Ladestrom dann auf 40mA und bei Unterschreitung dessen oder 
Überschreitung des Timers oder Überschreitung von 4.2V oder mehr als 
60°C am NTC im Akkupack ist Ladeschluss. Langes verharren ist da nicht 
vorgesehen. Hast du genauere Informationen?

: Bearbeitet durch User
Autor: bianchifan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Umgehe ich beim lm336z25 das Problem und
> kann davon ausgehen, dass er recht genau 2.5V liefert ?

Ich hatte seinerzeit das "Glück", aus einer Handvoll 336 einen mit 
2,500V herausfischen zu können um dann im AVR-TT-Wurm lesen zu müssen, 
dass die Firmware auf 2.495V eingestellt ist, dem typ. Wert lt. 
Datenblatt...
Der Häufungspunkt meiner sammlung lag übrigens bei 2.494V ;)

Zum Theme AVR und Spannungsmessung..
Das Hauptproblem ist die überschaubare Auflösung des ADCs, für eine 
gescheite Auflösung muss daher in die Trickkiste gegriffen werden.., 
künstliches Rauschen, Oversampling..
Zu dem Thema gibt es diverse Annotations von Atmel.

Für die kommerziellen Hobbylader Imax B6 & Co. gibt es eine OpenSource 
Firmware "ChealiCharger", wo mit eben diesen Tricks gearbeitet wird.
Es wird die interne Ref verwendet und via Vergleichsmessung kalibriert.

Autor: Ralph S. (jjflash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Boris O. schrieb:
> Meine Ladekurven zeigen bei Konstantem Strom von ca. 0,5C eine

Dass das bei 0,5C dauert wundert mich nicht. Ich habe ein paar (wenige) 
Ladeteile überprüft und einige laden zu Beginn mit 2C und eines sogar 
(das Übelste) sogar mit 3C.

Bei Laden mit 2C sind die 4,1V nach ca.20 - 30 Minuten erreicht.

Bei Erreichen von 4,1V sinkt dann der Strom logischerweise, die Spannung 
wird konstant gehalten und bei den gemessenen wird der Ladevorgang bei 
0,1C bis 0,2C abgeschalten.

Boris O. schrieb:
> oder mehr als
> 60°C am NTC im Akkupack

... oder eben genau das ! (hab ich mit Heißluftföhn und Temperatursensor 
bearbeitet).

Kurz im Ganzen:

Laden des Akkus mit konstantem Strom von 0,5C (wohl am schonensten) bis 
2C

bei Erreichen von 4,1V (je nach Akku 4,2V) tritt 
Konstantspannungshaltung ein und bei Unterschreiten von 0,1C oder 
Überschreiten der max. Temperatur abschalten.

Grundsätzlich ging es dem T0 aber "nur" um Spannungsmessung an LiPo und 
ich ging davon aus (mangels mehr Informationen) dass damit die Spannung 
beim Eintritt in die "Konstantspannungsphase" kontrolliert werden 
sollte.

Hier wären 0,1V Genauigkeit meiner Meinung nach zu wenig .

Ralph

Autor: Carsten R. (kaffeetante)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Die Schaltung soll als Tiefentladeschutz dienen, Ladeanzeige ist ein
> netter Beieffekt. Beide Akkus sind parallel.

Wenn da nur was angezeigt werden soll ist die Genauigkeit nicht soooo 
kritisch. Die ganze Diskussion um die 4,1 bzw 4,2 Volt und hohe 
Genauigkeit entfällt. So gesehen ist da alles im grünen Bereich.

Als Tiefentladeschutz sollte man sich aber Gedanken machen wie die Last 
komplett und zuverlässig getrennt wird. Wenn der Akku leer ist und deine 
Schaltung eine Tiefentladung anzeigt, stellt der Spannungsteiler alleine 
schon eine "Bedrohung" für den Akku dar. Man sollte diese Konstruktion 
also umgehend wieder aufladen und nie lange weglegen.

Ich nehme an die Schaltung wird selbst auch aus den Zellen versorgt 
(Step-up?). Sollte das der Fall sein, sollte man das Thema noch weiter 
vertiefen.

Da die Akkus parallel angeschlossen sind, verhalten sie sich wie eine 
größere Zelle. Da gibt es eine Alternative zur Messung, je achdem was 
die Schaltung sonst noch zu tun hat und welchen AVR genau man benutzt. 
Du kannst auch die Akkuspannung als "Referenz" nehmen und damit dann die 
interne Referenz vermessen. Das ist zwar etwas ungewohnt und fordert 
etwas gerechne, erfüllt aber ansonsten auch seinen Zweck mit ein paar 
Vorteilen wie z.B. daß der Spannungsteiler entfällt. Auf diesem Wege 
kann man auch die "Referenz" (Akkuspannung) immer wieder neu 
kalibrieren, so daß man auch noch weiterhin andere Sachen Memessen 
könnte, je nach Bedarf. Für diesen Weg it es also entscheidend, was die 
Schaltung und insbesondere der ADC sonst noch tun soll.

: Bearbeitet durch User
Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> (aber ich habe keine Glaskugel und weiß nicht,
> was du machen möchtest)
Lesen und Verstehen der vorhergenden Beiträge genügt auch. Die 
ursprüngliche Frage ließ ein paar Dinge offen, aber im Verlauf des 
Threads wurde klar, was er will.

bianchifan schrieb:
> Das Hauptproblem ist die überschaubare Auflösung des ADCs,
Was soll das denn bitte? Der AVR hat 10 Bit, damit kann man 4,irgendwas 
Volt mit besser 5 mV Schrittweite auflösen.

Wenn Zeit vorhanden ist, tendiere ich dazu, mehrere Messungen zu machen, 
sagen wir mal 10 Messungen mit je 1 ms Pause, und daraus den Mittelwert 
zu nehmen.

In dem gegebenen Szenario reicht das allemal hin - er will doch nur das 
Entladeende erkennen. Hier wuerde ich dann noch mit Flag und Zeiten 
arbeiten, z.B. nach 5 Sekunden erneut messen, um nicht jedem Pfurz 
aufzusitzen und falsch abzuschalten.

Autor: Mcunoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, also. Die 4,1V oder 4,2V sind für mich völlig uninteressant. Ich 
lasse die Akkus von einem LadeIC laden, der begrenzt den Ladevorgang von 
alleine.
Für mich ist es nur wichtig die Akkus nicht zu stark zu entladen und da 
habe ich das Problem der Ungenaugkeit so gelöst, dass ich nie bis zur 
kritischen Grenze entlade, sondern immer schon 0,2V vorher aufhöre. 
Damit nutze ich den Akku zwar nicht ganz, aber gehe auf Nummer sicher.
Der Spannungsteiler ist auch nicht das Problem für den Akku, da ich ihn 
wie schon ober vorgeschlagen nur für die Messung einschalte. Um 
brauchbare Werte zu erhalten messe ich dann 1s lang und schalte den 
Spannungsteiler wieder aus, bis in 1min wieder gemessen wird. Die 
Messwerte sind allerdings recht stark gestreut. Ich überlege tatsächlich 
einen Tiefpassfilter einzubauen, mal sehen ob die Messungen dann viel 
konstanter werden.

Autor: B.A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> du solltest den Spannungsteiler nicht unnötig hochohmig machen
> (<10kOhm).

Wenn er sein System mit dem 5V Netzteil betreibt zieht der Controller 
zwar keine Energie aus den Zellen, aber der 10k Ohm Spannungsteiler 
zieht etwas Strom. Er kann also einen 3.6V / 1000mAh Akku innerhalb von 
115 Tagen leer ziehen.

Entweder er schaltet den Spannungsteiler über einen MosFET vor jeder 
Messung ein oder er nutzt einen Spannungsteiler mit sehr großen 
Widerstandswerten und direkt am ADC-Pin einen 1nF bis 100nF Kondensator.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Der Spannungsteiler ist auch nicht das Problem für den Akku, da ich ihn
> wie schon ober vorgeschlagen nur für die Messung einschalte.
Anlässlich dieses Threads hatte ich mir das Datenblatt vom AT328 
angeguckt, der Teiler könnte deutlich hochohmiger werden und eine 
Abschaltung vmtl. entbehrlich machen. Das werde ich demnächst mal 
versuchen, zu messen

> Um
> brauchbare Werte zu erhalten messe ich dann 1s lang und schalte den
> Spannungsteiler wieder aus, bis in 1min wieder gemessen wird. Die
> Messwerte sind allerdings recht stark gestreut. Ich überlege tatsächlich
> einen Tiefpassfilter einzubauen, mal sehen ob die Messungen dann viel
> konstanter werden.

Aus dem Bauch heraus scheint der AVR 2 Bit zu rauschen. Gehe Dein 
Problem per Software an, wie ich es weiter vorne beschrieben hatte. Und 
gucke Dir an, wie Dein erster Messwert aussieht.

Ich habe es mit dem A-Nano so gebaut, dass ich den Wert hole und 
verwerfe. Dann setze ich eine Variable auf Null, hole mir 10 Messwerte 
mit je 1 oder 2 Millisekunden Pause dazwischen, addiere die auf und 
teile anschließend durch zehn - damit bin ich kurze Störungen 
hinreichend genau los.

Wenn Du einen Tiefpaß = RC-Glied machst, musst Du einschalten und lange 
warten, ich denke da an 10 x Zeitkonstante.

B.A. schrieb:
> oder er nutzt einen Spannungsteiler mit sehr großen
> Widerstandswerten und direkt am ADC-Pin einen 1nF bis 100nF Kondensator.

Bei 100k - 100nF würde ich mindestens 100ms warten, bevor ich messe.

Autor: Mcunoob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Manfred,
Ich mache das Filtern in der Software für und warte erstmal einen Delay 
ab. Desweiteren verzögere ich auch die Messungen um einige ms. Jetzt 
sind die Werte ganz ok. Da ich immer wieder aber totale Ausreisser habe, 
berechne ich erstmal den Mittelwert und schneide alle Werte raus, die 
mehr als 20% daneben liegen (so kriege ich die Spitze und Nullen weg, 
die es leider manchmal gibt, keine Ahnung as da das Problem ist). Die 
verbliebenen n-Werte werden Addiert und durch n geteilt. Funtzt ganz 
gut, muss aber noch ein paar Testreihen mehr machen.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mcunoob schrieb:
> Danke Manfred,
> Ich mache das Filtern in der Software für und warte erstmal einen Delay
> ab. Desweiteren verzögere ich auch die Messungen um einige ms. Jetzt
> sind die Werte ganz ok. Da ich immer wieder aber totale Ausreisser habe,
> berechne ich erstmal den Mittelwert und schneide alle Werte raus, die
> mehr als 20% daneben liegen

Danke -

endlich mal ein Thread, wo ich eine positive Rückgabe bekomme!

Beruflich komme ich aus dem Bereich Meßtechnik und würde natürlich gerne 
wissen, wo es klemmt. In der realen (bezahlbaren) Umsetzung muß ich den 
Weg finden, der den Ansprüchen genügt - ich glaube, den hast Du nun 
gefunden.

Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das meiste wurde ja schon gesagt, hier noch meine Erfahrungen.

Manfred schrieb:
> Die interne Referenz des AVR ist sehr stabil

Stimmt nur unter den richtigen Randbedingungen. z.B. ist Vref relativ 
stark abhängig von Vcc, und das leider bei jeden AVR-Typ unterschiedlich 
(siehe Datenblätter). Ich betreibe viele Schaltungen direkt an einem 
LiIon-Akku. Dazu nehme ich eine getrennte Kalibrierung für Ladeschluss 
und Unter-Spg.

Mcunoob schrieb:
> immer wieder aber totale Ausreisser

Das deutet auf schlecht gefilterte Vcc hin. Die 1. Tests nach 
Programmierung mache ich oft mit Vcc aus der USB-Buchse des 
Programmierers. Die analog-Messungen sind dabei sehr unstabil mit großen 
Ausreißern. Mit vernünfigem Aufbau (sauberer Massepunkt) und stabiler 
Versorgung ist dann alles super stabil.

Mcunoob schrieb:
> Ich mache das Filtern in der Software

Mache ich auch schon seit langem so. Also Überabtastung mit einem 
Software-PT1-Filter zur Erhöhung der Auflösung. Das notwendige Rauschen 
ist wohl automatisch gegeben, da die letzten 1 (2) Bit ohnehin klappern. 
Wenn du die Mess-Spg einschaltest mußt du natürlich zu Beginn 
(1.Messung) den Integrator des PT1-Gliedes vorsetzen.
Den Spg-Teiler der Mess-Spg mache ich sehr hochohmig zum Stromsparen und 
stabilisiere ihn mit ca. 100nF.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hermann schrieb:
> z.B. ist Vref relativ stark abhängig von Vcc,
> und das leider bei jeden AVR-Typ unterschiedlich

Bezogen auf den AT328, dem Standard der Arduinos, halte ich das für ein 
Märchen. Bei einigen Tinys sieht das anders aus, da würde ich sie nicht 
verwenden.

> Software-PT1-Filter

Der Begriff sagt mir nichts.

Autor: Hermann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kann sein, dass Atmel in seinen Datenblättern Märchen erzählt.
Das habe ich auch nachgemessen, die Werte von Atmel sind typische Werte 
- real sind sie noch ganz anders.

Mit Software-PT1-Filter meine ich ein digitales Tiefpass-Filter. Mit der 
Rechnung X[n] = X[n-1]*(1-Ta/Ti)+Y[n]*Ta/Ti
mit X[n]= neuer Ausgangs-Wert und X[n-1]= vorhergehender Ausgangs-Wert
Y[n] = neuer Messwert  Ti = Zeitkonstante   Ta = Abtastzeit

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hermann schrieb:
> Kann sein, dass Atmel in seinen Datenblättern Märchen erzählt.
> Das habe ich auch nachgemessen, die Werte von Atmel sind typische Werte
> - real sind sie noch ganz anders.

Die Kurven sind ja mal doof, gerade im Bereich 4,5 - 5,5 V recht 
deutlich. Andererseits sind das 2 mV / gerade mal knapp 2 Promille, über 
alles (temp + voltage) sehe ich rund 1 Prozent. Für viele Anwendungen 
gut genug, dennoch danke für die Kurven.

Wo hast' die her - im Datenblatt finde ich das nicht?

Autor: Carsten R. (kaffeetante)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die interne Referenz mag mit der Versorgungsspannung schwanken, aber 
normalerweise hat man eine geregelte Versorgungsspannung wenn das Gerät 
nicht direkt ungeregelt von einem Akku versorgt wird.

Zudem ändert sich die interne Referenz pro Prozent Änderung von Vcc um 
deutlich weniger als einem Prozent. Grob aus der Grafik herausgelesen 
ändert sich die Referenz bei 10 % Änderung von Vcc (in der 
empfindlichsten Zone von 4,5 bis 5 Volt) um weniger als einem Promille. 
Sie ist also um mehr als Faktor 100 stabiler als Vcc selbst wenn man 
eine Temperaturkompensation verwendet. Es ist also schon deutlich 
genauer, wobei oftmals Vcc selbst schon stabil genug ist.

Ohne Temperaturkompensation liegt die Abweichung in der Regel unter 
einem Prozent. Auch das ist oftmals je nach Anwendung genau genug. So 
schlecht ist das Teil also nicht. Es ist halt immer die Frage wie genau 
es denn wirklich sein muß für die jeweilige Aufgabe.

Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf S.485 im Datenblatt von 10/2014. Man findet das Diagramm meistens 
bei "Typische Werte/BOD Threshold" unterhalb der Threshold-Werte.
Ja, die angegebene typische Vcc-Abhängigkeit ist beim Mega328 nicht 
hoch.
Beim Tiny 85 geben sie typisch 20mV @4,5 bis 5,5V an und beim Tiny84 
0mV.

Aber wie gesagt: verwenden kann man die Werte nicht - wenn man 
nachmisst, kommt etwas ganz anderes heraus. Auch die 
Temperaturabhängigkeit hat machmal entgegengesetzten Verlauf.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hermann schrieb:
> Auf S.485 im Datenblatt von 10/2014

Hermann - ich danke Dir, sind gleich mal 200 Seiten mehr als das, was 
ich mir abgelegt habe.

Hermann schrieb:
> Aber wie gesagt: verwenden kann man die Werte nicht - wenn man
> nachmisst, kommt etwas ganz anderes heraus. Auch die
> Temperaturabhängigkeit hat machmal entgegengesetzten Verlauf.

Hoffen wir einfach, dass selbst bei abweichendem Verlauf die Grenzen 
eingehalten werden. Interessant ist, dass es bei anderen Typen abweicht, 
aber das hatte ich schon einmal anderweitig erfahren.

Zumindest für mich, wo die Ub aus dem Netz kaum schwankt und Betrieb bei 
Raumtemperatur vorgesehen ist, nehme ich mit, dass das genau genug ist. 
Wenn Du natürlich Automotive-Applikationen machst, na ja - dann eben die 
Abschätzung, ob es reicht oder nicht.

Autor: Hermann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Manfred schrieb:
> wo die Ub aus dem Netz kaum schwankt und Betrieb bei
> Raumtemperatur vorgesehen ist, nehme ich mit, dass das genau genug ist

Wenn man die Randbedingungen im Griff hat, ist das OK. Die Schaltung 
sitzt aber meist im Gehäuse und liegt vielleicht in der Sonne ... und 
direkte Versorgung an LiIon ist ja auch ganz praktisch.
Ich habe eine Messung mit 2 Tiny85 wiedergefunden und zur Info 
angehängt.
Ein Tiny84, der im Datenblatt 0mV/V hat, hatte bei meiner Messung 
-4,5mV/V.

Und zur Ergänzung noch die gemessene Temperaturabhängigkeit beim 
Tiny861. Die Temperatur ist mit dem internen Temp-Sensor gemessen 
(TempRoh):
'Vref=2,5523, TempRoh=308 bei 19°Cel und Vcc=4,968;
'Vref=2,5516, TempRoh=312 bei 25°Cel und Vcc=4,960;
'Vref=2,5510, TempRoh=328 bei 37°Cel und Vcc=4,961(intern 39°Cel)
--->Vref sinkt mit TempAnstieg, d.h. gegenteilig zum Datenblatt 
S.273<---
'Egebnis: Vref -25ppm/K (Datenblatt ca. +120ppm/K)

Noch mal eine Frage: man kann ja einfach Vref auf dem Pin Aref ausgeben 
und messen. Das ist aber meistens Vref=2,56V. Wenn man nun Vref=1,1V 
wählt, ist die aus der selben Bandgap abgeleitet und hat also die selbe 
Charakteristik? Ich habe das einfach mal angenommen und direkt 
umgerechnet.

Autor: Dieter D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die interne Referenz schwankt zwar mit der Genauigkeit des 
Produktionsprozesses des IC, ist aber im dynaischen Verhalten deutlich 
genauer als die Versorgungsspannung und etwas stabiler im Vergleich zu 
einer Referenzspannungsschaltung mit Zenerdioden und Widerstand. Wenn 
noch höhere Genauigkeit und Temperaturstabilität gewünscht wird, dann 
würde ich erst zur externen Referenzquelle greifen oder 
Band-Gap-Referenzquellen.

Mit einem ausreichend genauem Multimeter sollten die Spannungen 
(Ladungsende) unbedingt nachgeprüft werden. Mein Atmega88 hat 8 Eingänge 
mit 10bit Auflösung. Wenn die Teilung geschickt dimensioniert wird, sind 
5 bis 10mV Auflösung noch gut drin. Den Teiler würde ich so aufbauen, 
dass ein Spindelpotentionmeter die Feineinstellung ermöglicht 
(4,2....4,0). Als Fail-Safe-Lösung diesen so einbauen, dass wenn der 
Schleifer ein Kontaktproblem hätte, bei niedrigerer Spannung die Ladung 
endet.

Falls der Atmel versagen sollte, dh sich aufhängen sollte, sollte eine 
analoge Schutzschaltung immer noch den Li-Akku zusätzlich schützen.

Bei Li-Akkus trifft zu, wenn man die Grenze von 4,2 oder 4,1 nicht ganz 
ausreizt, zwar etwas an Kapazität verschenkt, aber der Akku länger hält. 
Die Spannungsteilerwiderstände hochohmig genug wählen, so dass diese 
keine Rolle bei der Entladung der Zelle spielen, aber der Fehler am 
Meßeingang gering bleibt. Ein Kondensator sollte die Spannung noch 
glätten (keramisch, nF).

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hermann schrieb:
> Noch mal eine Frage: man kann ja einfach Vref auf dem Pin Aref ausgeben
> und messen. Das ist aber meistens Vref=2,56V. Wenn man nun Vref=1,1V
> wählt, ist die aus der selben Bandgap abgeleitet und hat also die selbe
> Charakteristik? Ich habe das einfach mal angenommen und direkt
> umgerechnet.

Mir ist nicht bekannt, dass man die interne Vref umschalten kann, 
lediglich ein oder aus. Beim 328 sind es eben die bekannten 1,1 Volt, 
bei anderen die von Dir genannten 2,56 V.

Gucken wir Seite 243 vom Datenblatt: "VREF can also be measured at the 
AREF pin with a high impedance voltmeter. Note that VREF is a high 
impedance source, and only a capacitive load should be connected in a 
system."

Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred schrieb:
> Mir ist nicht bekannt, dass man die interne Vref umschalten kann

Bei vielen AVRs schon.
Vielleicht hast du mich auch missverstanden. Wenn man Vref auf den 
Aref-Pin legt, ist das beim Tiny85 und Tiny861 immer 2,56V. In diesem 
Mode kann man die Abhängigkeit von Vref direkt messen. Trotzdem kann man 
später Vref=1,1V für den ADC wählen. Welche Charakteristik hat jetzt 
Vref(1,1V)? Die gleiche wie bei der gemessenen Vref(2,56V)?
Ich gehe davon aus, dass für Vref(1,1V) das gleiche gilt, nur mit dem 
Faktor 1,1/2,56 umgerechnet. Ich würde mich aber nicht wundern, wenn für 
beide Vref nicht des gleiche gilt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.