Wo geht die Energie hin?

OP #1571173
Lesenswert?

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?
#1571183
Lesenswert?

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.
Gast #1571201
Lesenswert?

>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.
Gast #1571205
Lesenswert?

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.
Gast #1571215
Lesenswert?

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.
Persönliche Seite #1571218
Lesenswert?

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
OP #1571254
Lesenswert?

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.
Gast #1571262
Lesenswert?

>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.
#1571275
Lesenswert?

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.
Persönliche Seite #1571291
Lesenswert?

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).
Persönliche Seite #1571313
Lesenswert?

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 :)
Gast #1571333
Lesenswert?

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).
OP #1579732
Lesenswert?

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
#1579801
Lesenswert?

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...
#1579878
Lesenswert?

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
#1579906
Lesenswert?

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.
#1579955
Lesenswert?

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
Gast #1580060
Lesenswert?

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)...
#1580152
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren