Hallo Forumsgemeinde!, spiele gerade mit dem AD Wandler eines Attiny45 herum. Hab schon sämtliche Beiträge durchgelesen, leider komme ich damit irgendwie nicht weiter. 1. Wenn ich die Referenz auf Vcc (5.00V) einstelle, kann ich am AD Eingang 0 bis 5V (0-1023 / 10bit) messen. Wenn ich jetzt die Referenz auf die internen 2.56V stelle, kann ich dann 'nur' noch 0 bis 2.56V messen (10bit)?(VCC=5V) Das gleiche bei der internen 1,1V Spannungsreferenz - Messung 'nur' noch von 0 bis 1,1V möglich? Wenn ich die 2,56V Referenz verwende, dann darf ich noch maximal 2,56V am AD Eingang anliegen haben? Wenn mehr Spannung anliegt, wird dann der AD Eingang zerstört oder bekomme ich dann ab 2.56V immer nur 1023 als Wert? Hab ich das soweit richtig verstanden? 2. Wenn ich den Attiny jetzt mit einem 7805 versorge, dann liegen natürlich nicht immer stabile 5.00V an. Gehe ich jetzt von Vcc=4.80V aus - Entsprechen dann am AD 4.80V -> 1023 (Referenz=Vcc)? Was passiert wenn Vcc=4.80V entspricht und beim AD Eingang genau 5.00V anliegen habe? Überspannung? AD Eingang zerstört? 3. Wenn ich jetzt von einer Vcc Spannung von 4.80V bis 5.20V ausgehe und trotzdem relativ genau messen möchte, kann ich da einfach am AREF Eingang eine externe Referenzspannung (z.B. LT1431 / 5.00V) anschließen? Laut Datenblatt darf AREF maximal VCC sein. Würde das dann trotzdem funktionieren? Wenn am AD Eingang 5.00V anliegen und VCC=4.80V / AREF=5.00V entspricht, bekomme ich dann als Wert 1023 bzw. 512 bei 2.50V? Vielen Dank im Voraus! Tim
Du darfst an alle Eingänge maximal 0,5V mehr als VCC anlegen. Das gilt
für digitale wie analoge Eingänge.
Messen kannst du aber nur 0V bis Vref. Spannungen über Vref ergeben den
maximalen Wert 1023. Solange du nicht über 0,5V+Vcc gehst, ist das
unschädlich.
Die Spannungsversorgung als Referenz zu verwenden bietet sich besonders
an, wenn die analoge Spannung ebenfalls zusammen mit der
Spannungsversorgung schwankt. Zum Beispiel, wenn du die Temperatur mit
einem NTC und einem Festwiderstand als Spannungsteiler misst.
Schwankungen der Spannungsversorgung sind dann völlig egal.
> Laut Datenblatt darf AREF maximal VCC sein.
Das beantwortet doch deine dritte Frage. Aref darf nicht höher als VCC
sein.
zu 1: Wert 1024 ist immer, wenn ADC-Pin == AREF ist. Falls größer, bleibt der Wert bei 1024. Zerstörung nur, wenn du die absolute Maximum Ratings in der "electrical characteristics" Sektion des Datenblatts verletzt. zu 2: 7805 sind genau dazu da, die Spannung bei stabilen 5V zu halten. Wenn die auf 4,8V sackt hast du was falsch gemacht oder der 7805 ist kaputt. Falls du doch mal ne wenig stabile Versorgungsspannung hast: Die 2,56V und 1,1V Referenzen sind genau für diesen Fall da. Die 1,1 ist ne interne Bandgap Referenz, die 2,56V wird daraus per Verstärker abgeleitet. Beide sind üblicherweise stabil genug, aber erwarte jetzt kein krass genaues Messgerät. Der AREF Pin ist auch für externe Referenzspannungen da, muss man dem Chip dann aber mit dem entsprechenen Bit sagen, siehe Datenblatt. zu 3: Vcc = 4,8 und AREF=5V verletzt, wie du ja selbst schon sagst, die Angaben im Datenblatt. Wenn man sich die Funktionsweise eines Successive Approximation ADC mal anguckt, stellt man fest dass der dann nicht mehr funktionieren kann. Welcher Wert dann genau rauskommt, ist eher ne akademische Frage.
Vielen Dank für die sehr schnellen Antworten! Hat mir schon sehr weitergeholfen! Das mit den 4.80V war vielleicht ein unpassendes Beispiel. Wenn die Versorgungsspannung (5.00V) jetzt um 20mv oder mehr schwankt (Ripple?) (Referenz=Vcc) und die AD Eingangsspannung z.B. von einem Akku (LiIon - 1 Zelle) geliefert wird, dann schwankt der Wert bei 10Bit ca. um 4 Digit (bei 20mV Ripple)? Macht es daher Sinn den Mikrocontroller mit einer höheren Spannung (z.B. 5,50V) zu versorgen und für die Referenzspannung eine Referenzspannungsquelle einzusetzen, die dann genau 5.00V liefert? Dadurch müsste doch das Schwanken der Digits doch sehr minimiert bzw. die Genauigkeit verbessert werden? Gruß Tim
Entweder nimmt man Vref = Vcc für ratiometrische Messungen, dann darf Vcc z.B. auch (stabil!) zwischen 4,8 V und 5,2 V liegen, was die übliche Toleranz der 7805-Bausteine ist. Ripple auf der Spannungsversorgung sind bei Vref = Vcc schon mal GANZ SCHLECHT. Das lässt sich bei ratiometrischer Messung aber ganz gut dämpfen, wenn man immer das Mittel aus mehreren Messungen nimmt, die in exakt 20 ms erfasst wurden. Ansonsten nimmt man einen einstellbaren Spannungsregler und gleicht Vref = Vcc auf exakt 5,00 V ab. Oder man nutzt eben die interne 1,1, oder 2,56 V Referenz. Dazu ist das Eingangssignal eventuell über einen Spannungsteiler in den erfassbaren Bereich zu bringen. UND: Diese internen Uref sind recht stabil, aber haben nicht nur 4...5% Toleranz, wie ein 7805, sondern +/- 10%. Ein Abgleich ist also Pflicht.
Vielen Dank für die zahlreichen Antworten! Es soll wie gesagt ein 1 Zellen LiIon Akku ohne Spannungsteiler (ungenau?) gemessen werden. Bei Vcc=5.00V (+/-) würde eine 5.00V Referenzspannungsquelle jetzt meines Erachtens wenig Sinn machen. Das Risiko dass Vcc unter die Referenzspannung fällt steigt ebenfalls stark an. Dies ist laut Datenblatt nicht zulässig. Wenn ich die Versorgungsspannung nicht Ripple frei bekommen, wäre das mit Vcc=5.50V und einer Referenzspannungsquelle von 5.00V eine Möglichkeit? Einen Abgleich müsste man natürlich trotzdem machen, aber die Grundgenauigkeit sollte da aber besser sein? Also das Ziel ist es wenn AD Eingang = Referenzspannung, dass als Wert 1023 angezeigt wird. Gruß Tim
Tim M. schrieb: > Macht es daher Sinn den Mikrocontroller mit einer höheren Spannung (z.B. > 5,50V) zu versorgen und für die Referenzspannung eine > Referenzspannungsquelle einzusetzen, die dann genau 5.00V liefert? Was meinst du, warum die internen Referenzen vorhanden sind und eine Spannung haben die kleiner ist als die minimale Betriebsspannung des uC ? Genau, damit ihre Spannung nicht grösser ist als die Betriebsspannung. Und weil sie stabiler sind als die Betriebsspannung und nicht so stark schwanken, sondern 1/1000 davon (allerdings sind sie nicht genauer, +(-10% Abweichungen vom Nennwert können sie je nach Exemplar schon haben). Und wenn 5V in 1024 Teile geteilt wird, sind das 5mV, teile ich aber 1.1V in 1024, ist das fast 1mV, eine Messung mit der internen Referenz kann also kleinere Signale genauer auflösend erfassen (bei grossen Signalen bringt das dann nichts, da kommt dann so oder so ein Spannungsteiler davor). Man entscheidet also: Will ich was messen, was in Bezug zur Betriebsspannugn steht, so dass Messwerte mit ihr mitschwanken sollen, oder will ich etwas messen, was absolute Spannungen erfordert, unabhängig von meiner Betriebsspannung. Und wenn man noch was anderes als Anforderung hat, z.B. eine auch ohne Kalibrierung auf 1mV genaue Auflösung, dann speist man eine entsprechend genaue externe Referenz ein, die man dann auch extra zahlen darf. Willst du etwas bis 5V messen, das aber nicht von der Betriebsspannung es uC, ob 4.8 oder 5.2V, beeinflusst wird, dann teilst du die Spannung per Spannungsteiler auf 2.2V herunter und misst sie mit der 2.54V+/-10% internen Referenz.
:
Bearbeitet durch User
Tim M. schrieb: > Vielen Dank für die zahlreichen Antworten! > > Es soll wie gesagt ein 1 Zellen LiIon Akku ohne Spannungsteiler > (ungenau?) gemessen werden. Das ginge so nur, wenn du eine stabile Versorgungsspannung hättest die gleichzeitig Vref ist und über der Li-Ion Spannung liegt (also z.B. stabile 5V). Wenn der Li-Ion auch gleichhzeitig den µC versorgt, musst du nen Spannungsteiler einsetzen und die internen Spannungsreferenzen nehmen. Spannungsteiler darf gern mehrere 100 kOhm haben solange man mit nem Kondensator am ADC Pin die Impedanz für den ADC niedrig hält.
Alles Klar! Aber wird die Messung auch mit einem Spannungsteiler aus Präzisionswiderständen nicht ungenau (Temperatur usw.)? Edit: Das was mich jetzt noch interessiert... Würde das mit den Vcc=5.50V und VRef=5.00V (extern) funktionieren? Vcc stammt z.B. von einem Netzteil. Da wäre eine Messung ohne Spannungsteiler möglich? Gruß Tim
:
Bearbeitet durch User
Tim M. schrieb: > Aber wird die Messung auch mit einem Spannungsteiler aus > Präzisionswiderständen nicht ungenau (Temperatur usw.)? Mach dir darum keinen Kopf. Nimm einen Trimmer als Spannungsteiler und die interne Referenz. Der ADC des Tiny ist kein Wunderwerk der Präzision, sondern ein besseres Schätzeisen. Insbesondere die Nichtlinearität wird dich noch vor ganz andere Herausforderungen stellen. Viel mehr als Voll, Halbvoll und Gleich Leer bei deinem Akku darfst du erstmal nicht erwarten.
:
Bearbeitet durch User
Tim M. schrieb: > Alles Klar! > > Aber wird die Messung auch mit einem Spannungsteiler aus > Präzisionswiderständen nicht ungenau (Temperatur usw.)? > > Edit: Das was mich jetzt noch interessiert... > Würde das mit den Vcc=5.50V und VRef=5.00V (extern) funktionieren? > Vcc stammt z.B. von einem Netzteil. Da wäre eine Messung ohne > Spannungsteiler möglich? > > Gruß > Tim Temperatur, Verhalten des ADC, Verhalten des zu messenden Objekts: Spielt alles eine Rolle, ja. Willkommen in der Messtechnik, wo keine Konstante konstant ist. 5,5 und 5V: Ja, aber warum so kompliziert? Ist ausserdem imho ausserhalb des empfohlenen Vcc Bereichs.
>Aber wird die Messung auch mit einem Spannungsteiler aus >Präzisionswiderständen nicht ungenau (Temperatur usw.)? Warum? Wenn Du Rs mit gleichem TK verwendest, dann heben sich ihre Abweichungen auf. Auserdem sind 10bit ja noch nicht so supergenau ...
Tim M. schrieb: > Aber wird die Messung auch mit einem Spannungsteiler aus > Präzisionswiderständen nicht ungenau (Temperatur usw.)? Ja, fürchterlich. Billige Widerstände können einem die ganze Party versauen. Die üblichen 1% Metallfilmer haben einen Temperaturkoeffizient TK von 50ppm, und angenommen der eine driftet nach oben während der andere nach unten driftet, verschiebt sich der Messwert bei 100 GradC Temperaturänderung schon um satte 0.5%. Allerdings ist nicht davon auszugehen, daß die Widerstände genau entgegengesetzt auf Temperaturänderungen reagieren, und deine bei 25 GradC eingestellte Schaltung bei 125 GradC arbeiten muss. > Edit: Das was mich jetzt noch interessiert... > Würde das mit den Vcc=5.50V und VRef=5.00V (extern) funktionieren? Super Idee, warum nicht 7V auf den Prozessor geben ? > Vcc stammt z.B. von einem Netzteil. Wozu dann die Akkus ? Strom hast du ja offensichtlich. > Da wäre eine Messung ohne Spannungsteiler möglich? Das ist interessant weil dann auch kein Strom durch einen Spannungsteiler als Dauerbelastung der Akkus abfliessen muss. Aber der übliche Weg ist andersrum: Der uC kommt mit VCC an den Akku, mit schwankenden 2.5V bis 4.2V, und misst seine Betriebsspannung in Bezug auf die interne Referenz von 1.1V. Man muss allerdings denn Messwerte ein mal kalibrieren, weil die interne Referenz absolut gesehen ungenau ist. http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/ Denn wer die Spannung von LiIon Akkus messen will, sollte das genauer als 0.5% tun, und zwar absolut genauer, anzustreben wären 0.1%. Weder dein Netzteil noch die interne Referenz sind ab Werk so genau. Und wenn du die Spannung mit einem Trimmpoti oder in Software justierst, brauchst du ein so genaues Messgerät. Also nicht eines was 3 1/2 Stellen hat, sondern eines was auch 0.1% genau anzeigt. Hast du vermutlich nicht. Blöde Sache also. Referenzspannungsquellen die ab Werk 0.1% genau sind, sind bereits teuer. Eine LP3964EMP täte es. Bei 0.2% schon eine LM4120A. Nein, Reichelt führt so was nicht. LiIon Akkus sind ein Grund, sich mal ein genaueres Messgerät anzuschaffen. Oder eben eine Referenzspannungsquelle um mit ihr die Multimeter zu kalibrieren.
Michael B. schrieb: > Denn wer die Spannung von LiIon Akkus messen will, sollte das genauer > als 0.5% tun, und zwar absolut genauer, anzustreben wären 0.1%. Völlig richtig, wenn es um das Laden des Akkus geht, bzw. das Beenden des Ladens. Um einen Unterspannungs-Alarm auszulösen, muss es nicht ganz so genau sein. Denn den löst man nicht erst bei 2,5 V aus, sondern bereits etwas oberhalb der schädlichen Grenze. Ich betreibe z.B. Modellbau-Sender (AVR, RC-Sendemodul 2,4 GHz) mit 18650er Li-Ion-Akku und Boost-Wandler auf 5 V. Der ADC misst die Akkuspannung gegen die Versorgungsspannung und lässt bei Spannungswerten unter 3,5 V eine helle LED rythmisch aufblitzen, deren Blitzabstand mit sinkender Spannung kürzer wird. Ab 3,0 V wird dann noch ein aktiver Piezo-Piepser dazu geschaltet. Der verwendete Boost-Wandler würde den Akku bis auf unter 1 V leer lutschen, deshalb der Alarm. Tim M. schrieb: > Würde das mit den Vcc=5.50V und VRef=5.00V (extern) funktionieren? Ich halte es für Unsinn, zumal es hart an der Grenze zum Zerstören des AVRs ist. ...
Guten Morgen, zu den Referenzspannungsquellen: Ich habe mich für meine HF-Messanwendung mit Atmel AVR µC für ADR421 B ! entschieden: http://www.analog.com/media/en/technical-documentation/data-sheets/ADR420_421_423_425.pdf
Vielen Dank für Eure Hilfe! Hat mehr sehr weitergeholfen! Werde jetzt die interne Referenz mit Spannungsteiler verwenden. Das ganze wird anschließend noch Linearisiert. Gruß Tim
Was willst Du überhaupt machen? Ich habe das Gefühl, dass Du an den Punkten Genauigkeit forderst, wo es nicht erforderlich ist. Ich wüsste jetzt keine Anwendung, wo höchste Präzision in allen Spannungsbereichen des Akkus erforderlich ist. Ladezustandsanzeige (in %) wird es nicht sein, denn dann würdest Du keinen Tiny45 einsetzen. Beim Laden kommt es auf den Bereich um die 4 V an. Dieser sollte hinreichend genau gemessen werden, um rechtzeitig abschalten zu können. Am unteren Ende kommt es nicht ganz so auf das Zehntel Volt an, denn dieser Bereich wird recht schnell durchlaufen. Sobald die Last abgeworfen ist, erholt sich der Akku wieder etwas. Ein Spannungsteiler am Akku kann bei unbeaufsichtigten Betrieb aber tödlich für den Akku sein. Daher würde ich darauf verzichten. Aber es ist Dein Projekt und nicht meins, also mach' was Du willst, aber mach' was (oder auch nicht)... ;-) ...
Das Ganze soll später das Entladen eines Akkus überwachen. Der Attiny wird dabei von einem Netzteil versorgt und misst permanent die Spannung. Die Messwerte sollen (später) an den PC übertragen werden. >Ein Spannungsteiler >am Akku kann bei unbeaufsichtigten Betrieb aber tödlich für den Akku >sein. Daher würde ich darauf verzichten. Ja stimmt - darum wollte ich ja ursprünglich ohne Spannungsteiler messen. >Daher würde ich darauf verzichten. Was würdest Du dann empfehlen? (VREF = Vcc?) Aber was mache ich wenn der Ripple des Netzteils (zu) hoch ist? Dann bringt mir die ganze Linearisierung nichts? >Aber es ist Dein Projekt und nicht meins, also mach' was Du willst, aber >mach' was (oder auch nicht)... ;-) Ja - Ich werde als Anfänger sicherlich noch einige Versuche starten... :) Das ganze Mikrocontroller Thema finde ich nämlich sehr interessant und möchte mein Wissen noch weiter vertiefen. :)
Was haltet Ihr von der Idee, den Akku als Referenz zu nutzen und stattdessen die Flussspannung einer Diode zu messen? Hab ich mal in nem Referenzdesign gesehen. Müsste dann natürlich entsprechend umgerechnet werden.
Akku als Referenz und Flussspannung einer Diode? Die Idee, alles auf den Kopf zu stellen, ist schon mal pfiffig! WENN da nicht die (gern genutzte) Thermometer-Eigenschaft der Uf von Dioden wäre
Tim M. schrieb: > Das Ganze soll später das Entladen eines Akkus überwachen. An einem realen Verbraucher oder an einer Dummy-Last zum Aufnehmen der Kennlinie und bestimmen der Kapazität? > Der Attiny wird dabei von einem Netzteil versorgt und misst permanent > die Spannung. Die Messwerte sollen (später) an den PC übertragen werden. Was willst Du dann mit dem Tiny45? Ich würde dafür den einfacheren Weg gehen und einen Arduino-Nano-Klon einsetzen. Der hat RS232 über USB, genügend SRAM zum Loggen einer Entladekurve und ist für unter 3 Eu zu haben: http://www.ebay.de/itm/181880014216 > Ja stimmt - darum wollte ich ja ursprünglich ohne Spannungsteiler > messen. Das kannst Du doch. > Was würdest Du dann empfehlen? (VREF = Vcc?) Ja sicher doch. > Aber was mache ich wenn der Ripple des Netzteils (zu) hoch ist? Die Spannung glätten, z.B. eine LC-Kombination (Drossel, Elko, Kerko) davor schalten. > Dann bringt mir die ganze Linearisierung nichts? Die Linearisierung hebe Dir mal für später auf. Es lohnt sich nicht, vor dem ersten Projekt darüber nachzudenken. > Ja - Ich werde als Anfänger sicherlich noch einige Versuche starten... > :) Eben, als Anfänger. Da passt Linearisierung noch nicht ganz rein. Ist nicht böse gemeint, aber bis dahin hast Du noch genug andere Fußangeln und Fallstricke zu umgehen. > Das ganze Mikrocontroller Thema finde ich nämlich sehr interessant Das ist es auch. Unbestritten. > und möchte mein Wissen noch weiter vertiefen. :) Viel Erfolg dabei. Jakob schrieb: > Akku als Referenz und Flussspannung einer Diode? Habe ich auch schon gemacht, wenn der AVR direkt aus der Li-Zelle gespeist wird. Statt einer Diode nutze ich allerdings eine (sowiso vorhandene) LED. Diese wird dann an einem analogtauglichen Eingang betrieben. Zum Messen der Spannung wird der Pin kurz auf Eingang mit aktiviertem internem PullUp geschaltet. Es fließt nur ein geringer Strom, der am LED-Vorwiderstand kaum Spannungsabfall verursacht. Dann kann der ADC die Fluss-Spannung der LED messen und daraus auf die Versorgungsspannung schließen. > Die Idee, alles auf den Kopf zu stellen, ist schon mal > pfiffig! Das ist wohl wahr, geht aber nicht immer und überall... ;-) ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.