Hallo, ich habe mir ein Projekt gebaut mit einem Mega48 (weil günstig). Jetzt möchte ich das Projekt antstatt mit 3 Batterien mit 3 Akkus betreiben. Die geringere Versorguntsspannung spielt hierbei keine Rolle. Kann ich irgendwie die Spannung direkt, ohne Port, im Mikrokontroller ermitteln? Der MC kann ja das auch siehe Brown-our-detection... Geht das irgendwie? Grüße Ralf
Man könnte die interne 1.1V Referenzspannung mit dem ADC und AVCC als Referenz messen. Der Rest ist Dreisatz.
:
Bearbeitet durch User
Hier ist erklärt, wie das geht: https://www.sciencetronics.com/greenphotons/?p=1521 Im Prinzip geht es darum, die internen 1,1V relativ zu VCC zu messen. Der ATmega48P kann das, der ATmega48 nicht.
Stefanus F. schrieb: > Der ATmega48P kann das, der ATmega48 nicht. oder der 48A, ob's den alten 48'er überhaupt noch neu gibt - irgendwer hat aber sicher noch Lagerbestände. Sascha
Stefanus F. schrieb: > Im Prinzip geht es darum, die internen 1,1V relativ zu VCC zu messen. > > Der ATmega48P kann das, der ATmega48 nicht. Auch der ATmega48 kann das. MUX3..0 auf 1110 und REFS1..0 auf 01 oder 00 (bei 00 ist eine äußere Verbindung zwischen Vcc und AREF nötig). Der Trick ist: man muss einfach nur die Formel für die Auswertung umstellen, denn die Referenzspanung ist hier die veränderliche Größe, die gemessen werden soll. Das ist schon alles.
Hallo, > Ralf Röder schrieb: > > Kann ich irgendwie die Spannung direkt, ohne Port, im Mikrokontroller > ermitteln? Der MC kann ja das auch siehe Brown-our-detection... Was ist den "die Spannung" -> Betriebsspannung des uC? Wozu, die ist doch eh stabilisiert -> Akkuspannung (vor Regler)? Natürlich nicht, wie auch? Letzteres wära ja interessanter, weil du dann reagieren kannst, bevor die stabilisierte Betriebsspannung einbricht oder Akkus tiefentladen werden. Gruß Öletronika
U. M. schrieb: > -> Betriebsspannung des uC? Wozu, die ist doch eh stabilisiert Nicht notwendigerweise. Gute µC (wie halt die meisten AVR8) sind in der Lage, über einen recht breites Spannungsintervall hinweg stabil zu arbeiten. Da braucht dann nix stabilisiert werden. Genau das ist ja deren Hauptvorteil im Batteriebetrieb. Man braucht keine Reglerverluste in Kauf zu nehmen, weil man schlicht keinen Regler braucht. > -> Akkuspannung (vor Regler)? Natürlich nicht, wie auch? Auch das ginge. Dafür wäre dann im konkreten Fall REFS1..0 = 00 zu setzen und statt der Verbindung von AREF zu Vcc eine zu einem Spannungsteiler herzustellen, dessen oberes Ende halt direkt am Akku hängt. Den Spannungsteiler kann man zwar ziemlich hochohmig auslegen, er zieht aber eben doch dauerhaft einen Querstrom. Der Hauptnachteil einer solchen Lösung ist allerdings: der ADC ist dann für nix anderes mehr zu gebrauchen.
c-hater schrieb: > Genau das ist ja deren Hauptvorteil im Batteriebetrieb. Man braucht > keine Reglerverluste in Kauf zu nehmen, weil man schlicht keinen Regler > braucht. > Sieh dir http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48P_88P_168P-DS40002065A.pdf Figure 30-2 an und überleg dir den Satz noch mal. Das Gegenteil ist der Fall.
:
Bearbeitet durch User
Dieter R. schrieb: > c-hater schrieb: > >> Genau das ist ja deren Hauptvorteil im Batteriebetrieb. Man braucht >> keine Reglerverluste in Kauf zu nehmen, weil man schlicht keinen Regler >> braucht. >> > > Sieh dir > > http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48P_88P_168P-DS40002065A.pdf > > Figure 30-2 > > an und überleg dir den Satz noch mal. Das Gegenteil ist der Fall. ??? 1) Das ist das Datenblatt des M48P. Es ging aber um den M48. Spielt aber weiter keine Rolle, denn für beide gilt (abgesehen von den konkreten Nummern der Diagramme): 2) Das genannte Diagramm beschäftigt sich mit der Stromaufnahme in Abhängigkeit vom Systemtakt. Ist also vollkommen irrelevant für's Thema. 3) Das richtige Diagramm im DB für den M48P wäre 29-1 oder 29-2 gewesen, denn das beschäftigt sich mit dem Stabilitätsthema bei unterschiedlichen Spannungen und Taktfrequenzen. 4) Und dieses Diagramm bekräftigt, was ich sagte: die Dinger sind über einen weiten Spannungbereich hinweg stabil. Der ist typisch umso breiter, je geringer der Takt ist.
DEIN Thema war ein anderes, nämlich Reglerverluste. Es ist für den TO uninteressant, aber so wie von dir dargestellt falsch, und das wollte ich nicht stehen lassen. Faktisch sind die Reglerverluste negativ. Darauf hatte ich hingewiesen. Aus welchem Atmel-Datenblatt die Grafik ist, ist dabei irrelevant. Es ist bei allen gleich.
Ralf Röder schrieb: > Kann ich irgendwie die Spannung direkt, ohne Port, im Mikrokontroller > ermitteln? > Geht das irgendwie? Wie Dir andere geschrieben haben, geht das schon. Allerdings kannst Du von der gemessenen Spannung nicht auf den Ladungsinhalt schliessen. Nickelakkus halten ihre Spannung recht lange konstant. Der Abfall zum Schluss kommt dann recht plötzlich.
c-hater schrieb: >> Der ATmega48P kann das, der ATmega48 nicht. > Auch der ATmega48 kann das. MUX3..0 auf 1110 Bist du Dir da ganz sicher? Laut "meinem" Datenblatt hat der Multiplexer gar nicht so viele Bits, dass man da den Wert 1110 hinein schreiben könnte.
Dieter R. schrieb: > DEIN Thema war ein anderes, nämlich Reglerverluste. Nein. Mein Thema war, dass Reglerverluste eben keine Rolle spielen, weil man durch die Eigenschaften der AVR8 auch bei Betteriebetrieb oft schlicht überhaupt keinen braucht. > Faktisch sind die Reglerverluste negativ. Ja klar... Du hast überhaupt nicht verstanden, was das von dir genannte Diagramm eigentlich zeigt. Das ist kein Diagramm irgendeines Reglers... Und im Übrigen: ein Regler, der negative Verluste produziert, heisst: "perpetuum mobile". Und nein, so gut die AVR8 auch sind, so ein Ding dort einzubauen ist auch Atmel nicht gelungen. Das mag daran liegen, dass sie in unserem Universum leider völlig unmöglich sind...
c-hater schrieb: > Das mag daran liegen, > dass sie in unserem Universum leider völlig unmöglich sind... Völlig unmöglich?! Das bist Du doch selbst auch.
Das http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48_88_168_megaAVR-Data-Sheet-40002074.pdf scheint mir das aktuelle Datenblatt zu sein (?) Der kann das.
>> Genau das ist ja deren Hauptvorteil im Batteriebetrieb. Man braucht >> keine Reglerverluste in Kauf zu nehmen, weil man schlicht keinen Regler >> braucht. Dieter R. schrieb: > Sieh dir Figure 30-2 an ... Das Gegenteil ist der Fall. Ich denke, dass du das Diagramm falsch interpretierst. Es soll lediglich die Stromaufnahme bei unterschiedlichen Spannungen und Frequenzen darstellen. Niemand verlangt, dass du dich für genau eine dieser Spannungen entscheidest. Lediglich die maximal mögliche Taktfrequenz ist von der Spannung abhängig , aber es hat ja niemand verlangt, den Chip mit z.B. 20MHz zu takten. Kleiner Hinweis: Auch die internen Referenzquellen des ADC stellen Anforderungen an die Spannung. mit 2,5V Versorgungsspannung kann man logischerweise intern keine 2,56V Referenz-Spannung erzeugen.
Stefanus F. schrieb: > Bist du Dir da ganz sicher? Laut "meinem" Datenblatt hat der Multiplexer > gar nicht so viele Bits, dass man da den Wert 1110 hinein schreiben > könnte. Mein DB (allerdings schon recht betagt) sagt ja. Siehe Anhang.
c-hater schrieb: > Du hast überhaupt nicht verstanden, was das von dir genannte Diagramm > eigentlich zeigt. Das ist kein Diagramm irgendeines Reglers... Du bist wortgewaltig wie immer, aber hast weder meinen Post noch die Grafik noch die Schlussfolgerung daraus verstanden. Weniger "hate" könnte helfen. Ist aber auch egal. Lass gut sein, dann kann sich der TO auf seine eigentliche Frage konzentrieren und die Diskussion ufert nicht aus.
Dieter R. schrieb: > Das > http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48_88_168_megaAVR-Data-Sheet-40002074.pdf > scheint mir das aktuelle Datenblatt zu sein (?) > Der kann das. Woran erkennst du das? Ich schaue in Table 23-1 und sehe auch dort, dass es nur drei MUX Bits gibt (nicht vier, wie bei der P-Version) und keine der 8 möglichen Werte misst die interne Bandgap Referenz.
c-hater schrieb: > Mein DB (allerdings schon recht betagt) sagt ja. Siehe Anhang. Ist ja bescheuert, es darf nicht sein, dass die Datenblätter sich da so eindeutig widersprechen. Wenn ich kommerzieller Anwender wäre, würde ich jetzt Microchip um Stellungnahme bitten.
Stefanus F. schrieb: > Woran erkennst du das? Ich schaue in Table 23-1 und sehe auch dort, dass > es nur drei MUX Bits gibt (nicht vier, wie bei der P-Version) und keine > der 8 möglichen Werte misst die interne Bandgap Referenz. Ich schaue auf S. 269.
Jetzt habe ich es geschnallt: In dem Datenblatt gibt es zwei Tabellen, die ADMUX darstellen. Und zwar zuerst eine für den Komparator und ein paar Seiten weiter unten noch eine für den ADC. Und dort gibt es plötzlich ein Bit mehr. Das ist ja echt fies.
U. M. schrieb: > -> Betriebsspannung des uC? Wozu, die ist doch eh stabilisiert > > -> Akkuspannung (vor Regler)? Natürlich nicht, wie auch? Ich hab den blanken uC ohne Regler. Wozu auch? Wenn es an 4,5V hängt wozu dann regeln? > > Letzteres wära ja interessanter, weil du dann reagieren kannst, bevor > die stabilisierte Betriebsspannung einbricht oder Akkus tiefentladen > werden. Genau das will ich ja machen. Hab nur keinen freien ADC und es ist alles bereits verlötet. Grüße Ralf
Ralf Röder schrieb: > Ich hab den blanken uC ohne Regler. Wozu auch? Wenn es an 4,5V hängt > wozu dann regeln? Das hängt von der Applikation ab und ob man die Leistungsaufnahme minimieren will. Bei Batteriebetrieb will man das meistens. Wenn man nicht die maximale Taktfrequenz benötigt, dann ist eine niedrigere Betriebsspannung eine einfache Möglichkeit, die Stromaufnahme herabzusetzen. Die bessere, aber aufwändigere Lösung ist, höheren Takt zu verwenden, aber die CPU häufiger zwischendurch schlafen zu legen. Auch dabei kann der beste oder softwaretechnisch einfachste Kompromiss bei niedrigerer Betriebsspannung liegen.
Hallo, > c-hater schrieb: > Du hast überhaupt nicht verstanden, was das von dir genannte Diagramm > eigentlich zeigt. Das ist kein Diagramm irgendeines Reglers... Nein, 30-1 und 30-2 zeigen den Stromverbr. als Funktion der Frequenz.... aber mit der Betriebsspannung als Parameter! > Und im Übrigen: ein Regler, der negative Verluste produziert, heisst: > "perpetuum mobile". So ist das sicher nicht gemeint. > Und nein, so gut die AVR8 auch sind, so ein Ding > dort einzubauen ist auch Atmel nicht gelungen. Das mag daran liegen, > dass sie in unserem Universum leider völlig unmöglich sind... Die "negativen Reglerverluste" ergeben sich doch aus der Differenz des Betriebes mit und ohne Regler. Und da ist es doch tatsächlich so, dass ein Regler faktisch keine "Verluste" verursacht sondern "Einsparungen". Das ist das Gegenteil von Verlusten, sozusagen "neg. Regler-Verluste"! Bei 3 NimH Akkus mit Entladeschlusspannung von angenommen 0,9V hat man mit Regelung auf angenommen 2,8V stabilisierte Spannung bei z.B. 1 Mhz Takt über die gesamte Betriebszeit ca. 0,5mA Stromverbrauch (Fig. 30-1). Ohne Regler wird aber über die längste Zeit mit Akku-Spannung um 3,6...3,8V der Stromverbrauch um 0,7...0,8mA liegen! Also hat der Regler hat zwar Verluste über seine Regelstrecke, verursacht aber bezogen auf das Gesamtsystem rein mathematisch "neg. Verluste" (man kann es auch "Einsparung" nennen. Mit "perpetuum mobile" hat das in dem Fall auch gar nix zu tun, weil es um eine Differenz zwischen verschiedenen Zuständen geht und nicht um einen Wirkungsgrad an sich. Gruß Öletronika
:
Bearbeitet durch User
Bei Mikrocontrollern, die viel Zeit im Tiefschlaf verbringen, bewirken die allermeisten Spannungsregler eine Erhöhung der Gesamtstromaufnahme. Eine TV Fernbedienung wäre z.B. so ein Kandidat.
U. M. schrieb: > Bei 3 NimH Akkus mit Entladeschlusspannung von angenommen 0,9V hat man > mit Regelung auf angenommen 2,8V stabilisierte Spannung bei z.B. 1 Mhz > Takt über die gesamte Betriebszeit ca. 0,5mA Stromverbrauch (Fig. 30-1). > > Ohne Regler wird aber über die längste Zeit mit Akku-Spannung um > 3,6...3,8V der Stromverbrauch um 0,7...0,8mA liegen! Jetzt verstehe ich, worauf du (bzw. Dieter R.) hinaus wollen. Mit eine Step-Down-Wandler könnte man so u.U. tatsächlich einen Vorteil in der Energiebilanz erzielen. Dazu müßte aber der Takt des µC ziemlich hoch sein und der Wirkungsgrad des Wandlers ebenfalls. Außerdem dürfte das recht stark vom "Duty-Cycle" des µC abhängen, also vom Verhältnis der Zeit, die er im Tiefschlaf verbringt zu der Zeit, die er aktiv ackert. Die ist allerdings tendenziell umgekehrt zum Takt. Also würde ich mal behaupten: Wirklich Energie sparen kann man mit diesem Ansatz nur in einer sehr begrenzten Zahl von Fällen, nämlich dann, wenn der µC praktisch durchläuft und dies obendrein bei einem recht hohen Takt. Also irgendwie nicht gerade die typische Batterieanwendung. Aber klar: es kann Anwendungen geben, die ein derartiges Profil erfordern und die halt trotzdem auf Batteriebetrieb angewiesen sind. Dann mag das sinnvoll sein.
c-hater schrieb: > Dazu müßte aber der Takt des µC ziemlich hoch > sein und der Wirkungsgrad des Wandlers ebenfalls. Es reicht ein Linearregler und die Energieersparnis ist bei jeder Taktfrequenz gegeben. Richtig ist, dass mit hoher Taktfrequenz und maximiertem Tiefschlaf die Energiebilanz besser ist. Bei der erwähnten Fernbedienung hat man klare Prioritäten, da ist Tiefschlaf die einzige Lösung. Das ist allerdings softwaretechnisch nicht immer so einfach hinzubekommen. Herabsetzen der Betriebsspannung kann da die einfachere Lösung sein. Macht Intel auch so.
Dieter R. schrieb: > Es reicht ein Linearregler und die Energieersparnis ist bei jeder > Taktfrequenz gegeben. Nein und nein.
Dieter R. schrieb: > Es reicht ein Linearregler und die Energieersparnis ist bei jeder > Taktfrequenz gegeben. Nur mal so zum Nachdenken: Dem ESP8266 wird nachgesagt, nur wenige 10µA im Deep Sleep Modus aufzunehmen. Doch immer wieder beklagen sich Anfänger darüber, dass ihre NodeMCU Module stattdessen mehr als 1mA aufnehmen. Warum wohl? Wegen dem Spannungsregler! (Je nach Modell auch wegen dem USB-UART Chip.) AVR Mikrocontroller sind dafür bekannt, mit CR2032 Knopfzellen locker 5 Jahre (eher noch länger) betriebsbereit zu schlafen. Deswegen steht bei einigen AVR Modellen auch der nette Ausdruck "Pico Power" im Datenblatt. Doch immer wieder fragen verwirrte Anfänger nach, warum ihre Arduino Nano Module sehr viel mehr aufnehmen, wo doch weniger als 0,0001mA erwartet wurden. Warum wohl? Wieder wegen dem Spannungsregler! (Je nach Modell auch wegen dem USB-UART Chip.) Die meisten Spannungsregler nehmen 0,5mA oder mehr schon im Ruhezustand auf. Wenn du mit Hilfe eines Spannungsreglers Strom sparen willst, muss es auch ein speziell sparsamer sein. Leider haben die besonders sparsamen Modelle schlechtere Eigenschaften, als die normalen. Die meistens sind z.B. Damit überfordert, die stark schwankende Stromaufnahme von Funkmodulen aus zu regeln. Ein guter wäre z.B. der HT7833, der hat 4µA Ruhestromaufnahme, wenn man einen guten erwischt hat. Im Vergleich zu den 0,1µA eines ATtiny13 sieht er aber immer noch blass aus. Finde mal einen Spannungsregler, der weniger als 0,1µA Ruhestromaufnahme hat und damit klar kommt, wenn sich die Stromaufnahme der Last plötzlich von 0,1µA auf 10000µA (10mA) erhöht. Oder gar 400mA, falls ein Funkmodul beteiligt ist.
c-hater schrieb: > Nein und nein. Überleg dir deine Neins noch mal genau und mach dann Jas draus. Es ist eigentlich ganz einfach, aber "Hate" vernebelt manchmal das Denken. P = U * I mit U = Batteriespannung bzw. Gesamt-Versorgungsspannung. I = Stromaufnahme des Prozessors, Vorausssetzung: groß gegen Ground-Current des Reglers, siehe Äppel. Sollte dir zu denken geben. @Äppel: dass die Überlegung nicht für spezielle Low-Power-Applikationen im Sub-Mikroamperebereich gilt, wurde nun mehrfach erwähnt und sollte eigentlich klar sein. Gegen Lastsprünge helfen Kondensatoren. Was nötig ist, steht jeweils im Datenblatt des Reglers. Bei typischen Linearreglern meist zwischen 0,1uF und 10uF.
Dieter R. schrieb: > dass die Überlegung nicht für spezielle > Low-Power-Applikationen im Sub-Mikroamperebereich gilt, wurde nun > mehrfach erwähnt und sollte eigentlich klar sein. Einverstanden. Aber in nicht-low-power Anwendungen brauchen wir nicht um ein paar Milliwatt mehr oder weniger zu diskutieren. > Gegen Lastsprünge helfen Kondensatoren. Ja bedingt. Diverse (nicht nur meine) Erfahrungen mit ESP8266 bestätigen das. Wenn du es mit allzu dicken Elkos verschlimmbesserst, versagt wieder der Spannungsregler oder der Kriechstrom durch den Elko ist wieder höher, als die Ruhestromaufnahme des Mikrocontrollers. Die obige Empfehlung, bei Langzeit-Batteriebetrieb möglichst auf Spannungsregler zu verzichten, halte ich für durchaus angebracht.
Stefanus F. schrieb: > Wenn du es mit allzu dicken Elkos verschlimmbesserst ... Hätte ich vielleicht erwähnen sollen. Ich bin davon ausgegangen, was für mich Stand der Technik ist: SMD-Keramikkondensatoren. Wir sollten es aber dabei belassen. Der TO hat eine ganz andere Frage gehabt. Ich wollte nur nicht die Falschaussage zur Leistungsaufnahme des Systems stehen lassen.
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.