Hallo Mein MP3-Player besteht aus ATMega32, VS1001k und nem 7414 zur Entprellung der Taster. Ich hab jetzt mal den Strommesser drangehängt. Der ist im absoluten Nullbetrieb aller Elemente bei 50 mA Das dürfte wohl zu viel sein. Aber wo geht denn da die Energie rein? Hab in der Hauptroutine nur die Initialisierung drin und dann zum Test nur ne leere for(;;)-Schleife. Der Atmega macht also nix Den VS1001 hab ich mittels power down-Signal schlafen gelegt. Und selbst wenn, dürfte er ja nich viel verbrauchen, weil nichts abgespielt wird. Der 7414 samt Beschaltung benötigt 9mA. Bleiben noch 41 mA :( Fällt euch dazu was ein?
Schaltplan! Ich denke mal du hast etwas so verbunden wie es nicht gehört. Ein Schaltplan könnte uns da helfen.
Johannes Hofmann schrieb:
> nur ne leere for(;;)-Schleife. Der Atmega macht also nix
Trugschluss: Der Atmega arbeitet mit fast maximaler Leistung um nix zu
tun, und hat demnach auch fast seinen maximalen Stromverbrauch.
schau dir lieber mal den sleep-mode an, damit wird das weniger.
>Der 7414 samt Beschaltung benötigt 9mA.
Viel zu viel falls es ein 74HC oder 74HCT ist.
Unbenutzte Eingänge auf Low oder High geschaltet?
Unnötig kleine Pullups/downs können sich auch ganz
schön addieren.
Ernst hat recht. Einen Mikrocontroller kannst du von der Auslastung nicht mit einem PC vergleichen. Der ATmega arbeitet auch die leere for schleife ab, so schnell wie er es eben kann. Der arbeitet entweder auf Volllast oder gar nicht.
sw1ft schrieb: > Einen Mikrocontroller kannst du von der Auslastung nicht mit einem PC > vergleichen. Der ATmega arbeitet auch die leere for schleife ab, so > schnell wie er es eben kann. Der arbeitet entweder auf Volllast oder gar > nicht. Das tut auch ein PC.
sw1ft schrieb: > Einen Mikrocontroller kannst du von der Auslastung nicht mit einem PC > vergleichen. Der ATmega arbeitet auch die leere for schleife ab, so > schnell wie er es eben kann. Der arbeitet entweder auf Volllast oder gar > nicht. So wie ein PC. Auch dort wird das da
1 | int main(void) |
2 | {
|
3 | while(1); |
4 | }
|
zu 100% CPU (oder heutzutage Kern) Last führen. Matthias
Der 7414 ist ja wohl auch ueberfluessig, die Entprellung kann doch die Software machen ...
Hm klingt logisch, dass der da viel verbraucht. Das Problem dabei bezieht sich nämlich auf diesen Beitrag "Re: EEPROM-Zugriff bei Spannungstrennung" Was passiert denn da intern, wenn der Interrupt ausgelöst wird? Angenommen, nach nem Interrupt ließe ich den uC einfach warten mittels Delay, wäre der Verbrauch dann geringer? Kann ich grad nich testen :) Nein, bei meinem Projekt geht das leider nicht mit Software-Entprellung, sonst hätt ich das ja schon implementiert.
> Aber wo geht denn da die Energie rein?
Die Energie wird in Wärme umgewandelt...
>Angenommen, nach nem Interrupt ließe ich den uC einfach warten mittels >Delay, wäre der Verbrauch dann geringer? Nö, und kein Arsch kann dir sagen wo du Strom verbrauchst ohne den Schaltplan zu sehen.
Johannes Hofmann schrieb: > Angenommen, nach nem Interrupt ließe ich den uC einfach warten mittels > Delay, wäre der Verbrauch dann geringer? Du hast das Prinzip immer noch nicht verstanden. Der Prozessor holt einen Befehl nach dem anderen aus dem Speicher und verarbeitet ihn. Der Stromverbrauch bleibt dabei konstant. Es sei denn, man schickt ihn schlafen, dann führt er keine Befehle mehr aus und braucht daher weniger Strom. Es ist also egal, was es für Befehle sind, egal ob leere Schleifen oder delays. Beides wird letztendlich zu Sprungbefehlen, Rechenoperationen und Vergleichen assembliert. Aus Sicht des Prozessors also nicht von einem "sinnvollen" Programm zu unterscheiden.
Noch eine Ergänzung dazu: Der Prozessor braucht natürlich mehr Strom, wenn alle möglichen Zusatzkomponenten an sind. Diese kann man abschalten oder muss sie explizit anschalten, wenn man sie braucht. Benötigst du zum Beispiel keinen Analog-Eingang (auch keinen Analogcomparator), so kannst du diese Komponenten abschalten. Ein PC-Prozessor braucht auch nur dann mehr Strom, wenn er zusätzliche Komponenten einschalten muss (mathematischer Coprozessor, Pipelines, etc). Diese Teile sind nämlich mittlerweile auf Stromsparen ausgelegt und schalten alles ab, was nicht benötigt wird. Und was die Auslastung angeht, ist ein PC-Prozessor auch immer am Arbeiten. Das was Du im Taskmanager siehst ist nur die Aufteilung der Rechenzeit auf einzelne Prozesse). Der Leerlaufprozess (den sieht man nicht bei jedem System) benötigt immer das, was andere Prozesse nicht benötigen. Zusammen sind es aber immer 100% (oder mehr bei mehreren Prozessoren, obwohl das mathematisch nicht korrekt ist). Btw: Was meinst Du, was ein Delay macht? Entweder sind das verschachtelte for-schleifen oder ein programmierter Timer. In den meisten Bibliotheken ist das ersteres. Also: Zum Strom sparen alle Komponenten abschalten, die nicht benötigt werden. Externen Interrupt aktivieren (kein Pin-Change, denn der braucht wieder mehr Strom). Dort kommt dann später das Wecksignal dran. Jetzt kann der Prozessor schlafen gelegt werden. Er wacht erst auf, wenn der Interrupt kommt (Achtung: ich meine, dass auch ein externer Quarz angehalten wird; also gegebenenfalls Einschwingzeit beachten).
Der Wanderpokal für die hilfreichste Antwort geht heute an: Christian H.! Ok, da werd ich mal schauen, was ich da so optimieren kann.
Ich hab auch mal zu diesem Problem eine Frage und vielleicht eine Ursache: Mir ist schon öfters aufgefallen, dass der Stromverbrauche meines LED-Matrix Steuerboards so um die 80mA zieht, wenn die Software drauf ist und keine Matrix angeschlossen ist. Ist der Chip gelöscht, dann verbraucht die Schaltung normale 20mA (MEGA32 auf 8MHz und MAX232). Wenn die Matrix an der Schaltung ist, verbraucht die Steuerplatine wieder normale 20mA. Woran liegt so was? Ich hab das bisher immer ignoriert :)
>Woran liegt so was? Ich hab das bisher immer ignoriert :)
Am Schaltplan.
Beim µC hilft es auch wenn man den nicht mit 5 V sondern nur mit der wirklich nötigen Spannung beteibt. Bei 2,5 V braucht man nur etwa den halben Strom und 1/4 an Leistung. Für den Mega32 gibt es auch schon einen sparsameren Nachfolger (Mega324P).
Naja die 80mA stören mich nicht. Aber ich hab mich mal gefragt woran das überhaupt liegt. Wahrscheinlich hat einer der Kupferlackdräthe einen kurzschluss... Aber die Schaltung funktioniert ja.
Ich hab jetzt mal 700uF vor den Spannungswandler gehängt. Bei Aufruf des Interrupt bei Spannungstrennung sollte dann mal ganz kurz eine LED blinken. Macht sie nicht :( Die Spannung über diesen beiden Kondensatoren liegt im Betrieb bei 4,4Volt, da 0,7 an einer Diode verschwinden. So. Beim Ausschalten. Sinkt die Spannung schlagartig auf 0,9V ab dann auch schnell auf 0,6V und ab da geht's dann langsamer nach unten. Aber was ja auch nicht gerade förderlich ist, dass die Brown-Out-Überwachung ja schon bei 2,7V die Bude dicht macht. Also macht der ATmega vielleicht schon nen Reset, bevor der Interrupt seine Aktion machen kann? Jetzt ist halt die Frage, gehören die Kondensatoren, die ja dem ATmega noch den Restsaft für die EEPROM-Speicherung bereitstellen sollen also besser vor oder nach den Spannungswandler? Danke
C=Q/U = [AS/V] Je mehr Spannung umso mehr Ladung wird im Kondensator gespeichert. Je mehr Ladung im Kondensator desto länger hält Deine Spannungsversorgung durch, bei gleicher Kapazität. Also gehört der "dickere" Kondensator vor den (Fest-)Spannungsregler. Je grösser dein deltaU am Regler desto grösser der Effekt. Allerdings konnte ich nicht rauslesen was für eine Versorgungsspannung/Regler Du benutzt...
Ja das ist ja klar. Aber es ist doch seltsam, dass die Spannung sofort von 4,4 auf 0,9V einbricht. Und dass die LED nicht mal für den Bruchteil einer Sekunde aufblitzt macht mich auch stutzig. Die wird ja sofort aktiviert, nach dem der Interrupt ausgelöst wurde.
Thomas W. schrieb: > C=Q/U = [AS/V] > > Je mehr Spannung umso mehr Ladung wird im Kondensator gespeichert. > Je mehr Ladung im Kondensator desto länger hält Deine > Spannungsversorgung durch, bei gleicher Kapazität. > > Also gehört der "dickere" Kondensator vor den (Fest-)Spannungsregler. > > Je grösser dein deltaU am Regler desto grösser der Effekt. > Allerdings konnte ich nicht rauslesen was für eine > Versorgungsspannung/Regler Du benutzt... Das macht IMHO nicht ganz so viel Sinn, vor allem nicht wenn ein Linearregler benutzt wird, der das Plus an gespeicherter Ladung dann gleich wieder in Waerme umsetzt. Abgesehen davon macht der Regler ja dicht (oder was anderes Undefiniertes) noch weit bevor sich der Elko ganz entladen hat. Zur direkten Versorgung eines µC aus dem Elko koennte es dann aber immernoch reichen. Ausserdem habe ich den Eindruck, dass ein (Elektrolyt)-Kondensator das meist ueberschaetzte Bauteil ueberhaupt ist. Man moege zum Vergleich mal einen Blick auf sowas werfen: http://www.pollin.de/shop/dt/NTA5OTgxOTk-/Bausaetze/Diverse/LED_Notlicht_B233.html und dann Kapazitaeten und Stroeme vergleichen. ;) Volker
Ich unstelle um das Prinzip zu verdeutlichen C=2200µF Fall 1. Kondensator hinter dem Regler. Nutzbarer Spannungshub für den AVR bei Ub=5V, bis zur Entladespannung von 3,3V -> 1,7V Q(5V)= 11mAS Q(3,3V)= 7,26mAS Es können also 3,74mAS entnommen werden... Fall 2. Kondensator vor dem Regler. Q(12V)=26,4mAS Q(9V)=19,8mAS Q(3,3V)= 7,26mAS Es können also zwischen 19,4mAS und 12,54mAS entnommen werden. --- Es geht mir also nicht um die höhere Spannung (und deren höhere Energie), sondern um die grössere gespeicherte Ladungsmenge. Denke die Milchmädchenrechnung verdeutlicht das schon ganz gut... --- Es kann natürlich sein das ich da einen Denkfehler drin habe, dann Entschuldigung.
Johannes, ohne einen Schaltplan kann man nur qualitative Aussagen treffen... (shit in, shit out)
@ Volker: Das was der Wandler in Wärme umsetzt ist alles andere als die Ladung... (denn die bleibt erhalten -- sie wechselt sozusagen die Seite ;))
Thomas W. schrieb: > @ Volker: > Das was der Wandler in Wärme umsetzt ist alles andere als die Ladung... > (denn die bleibt erhalten -- sie wechselt sozusagen die Seite ;)) Jaja.. ;) Aber das Grundproblem bleibt: Die Ladungsmenge (und damit die gespeicherte Energie) ist zwar proportional zur Spannung, ist die Spannung vor dem Linearregler aber doppelt so hoch wie dahinter, wandelt die Schaltung auch doppelt so viel Energie (Hab extra nicht "verbraucht" geschrieben, damit ich keinen Aerger von Thomas W. bekommen ;)). Hinzu kommt in der Tat der "Spannungshub". Nehmen wir einen 7805 an, der mit 7.5V versorgt wird, dann haben wir VOR dem Wandler einen nutzbaren Hub von nur 0.5V (da der 7805 min. 7V am Eingang braucht), hinter dem Wandler aber einen nutzbaren Hub von mehr als dem Dreifachen (wenn wir mal von einem Mikrocontroller mit 3.3-5.0 VCC ausgehen). Macht Sinn? Volker
Naja,.... Der 7805 oder was da auch immer arbeitet wird auch eine kleinere Spannung als 5V "durchlassen" (abzüglich des drop). Wenn die minimale µC Spannung 3,3V ist (WD bei 2,7... aber mit 2,7V zu rechnen ist blöd...) und er nur mit 9V reingeht, hat er immer noch einen "verfügbaren" Spannungshub von (9-3,3-1)V von gut 4,5V... Denn er hat für seine Anwendung bestimmt keinen ollen 7805 benutzt, nein er hat einen very-low-drop benutzt -- oder doch ein Schaltwandler ??? Die Energie die am Wandler verbrutzelt ist für die Ladung die ich aus der Spannungsquelle -> Kondensator für die Schaltung entnehmen kann ist dann immer noch grösser als hätte ich nur die 1,7V differenz. Du kreierst gerade einen Speziellen Fall. Unser TE gibt meiner Meinung nach zu wenig Futter... Ich konnte hier nicht einmal rauslesen wie gross sein Kondensator ist... Will aber nicht mit Dir streiten, bin doch selbst noch am lernen (von den Grundlagen)...
Streiten will ich auch nicht und auch wenn ich 'offiziell' nicht mehr
lerne, lernt man doch nie aus. ;)
Ich bin von einem linearen Wandler ausgegangen, weil das ja so schon vor
meinem Beitrag gemacht wurde. Und da steht ein Elko VOR dem Wandler im
besten Falle genausogut wie HINTER dem Wandler da, da die Ladung ja
proportional zur Spannung steigt. Ist die Eingangsspannung also doppelt
so hoch wie die Ausgangsspannung, kann der Elko doppelt so viel Energie
liefern. Davon "verbrennt" aber der Spannungswandler dann wieder die
Haelfte. Ich beweifle allerdings dass der Spannungswandler bei
geringeren Spannungen alles verlustfrei passieren laesst.
Aber Du hast Recht: Im in diesem speziellen Falle zu helfen brauchen wir
mehr Input.
Volker
P.S.: Die Groesse seines Elkos kennen wir und koennen sie in Ruhe
belaecheln:
> Ich hab jetzt mal 700uF vor den Spannungswandler gehängt.
>> Ich hab jetzt mal 700uF vor den Spannungswandler gehängt. Ich sollte lesen lernen. Da stecken doch wohl sowas um 2-5mAS drin. ...bei 50mA Last... + die LED Da ist der Daumen nach dem Pi kaputt !
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.