Forum: Mikrocontroller und Digitale Elektronik Stromverbrauch sleep


von gast (Gast)


Lesenswert?

Ich führe den Befehl

Sleep(); aus

Während er den Befehl Sleep(); ausführt ( C18 ) benötigt der Pic 30mA 
hole ich den Pic per INT aus dem Schlaf brauch er ebenso 30mA?

Im Sleep sollte er doch nahezu nix verbrauchen. Was könnte das sein?

von ArminD (Gast)


Lesenswert?

Wo werden die 30mA denn gemessen, direkt im VDD-Pfad zum
Mikrocontroller ?

von gast (Gast)


Lesenswert?

zwischen Quelle und Versorgungspin

von Johannes S. (johanness)


Lesenswert?

Kann es sein, dass die Ausgänge so beschaltet sind, dass sie im Moment 
des Abschaltens etwas treiben müssen? Kenne zwar nicht die PICs, aber 
gewöhnlich bleiben Ausgänge beim Schlafen aktiv und treiben weiter 
fröhlich angeschlossene LEDs, Transistoren usw.

von Power (Gast)


Lesenswert?

Sleep hält (beim AVR jedenfalls) je nach Modus nur die Taktfrequenz an.
Wenn du die IO-Pins hochohmig schalten willst, dann führe einen 
Brown-Out-Interrupt aus (Flag setzen) und lege den µC in dieser ISR 
Schlafen.

von ArminD (Gast)


Lesenswert?

Welche Aussenbeschaltung hängt denn am PIC und wie ist der Zustand
der Ports vor der SLEEP-Anweisung ?

Kann es sein, dass der Controller sofort wieder aufgeweckt wird, dass
er also nur ganz kurz im SLEEP-Zustand ist ?

Kannst Du den SLEEP-Zustand erkennen ?

Um welchen Baustein handelt es sich denn genau ?

von gast (Gast)


Lesenswert?

@Armin

atm hängt nur eine LED zum testen dran.

Nein der bleibt im Sleep weil ich nach dem Sleep ein breakp gesezt habe 
und er nur das sleep verläßt nach austritt sleep

wie erkennen?

p18f

von ArminD (Gast)


Lesenswert?

Die LED wird aber vorm Schlafenlegen ausgeschaltet, oder ?

Breakpoint gesetzt ? Dein Controller hängt also am
Debugger dran, dann würde ich den Strommesswerten
keinen Glauben schenken, das sind völlig andere Rand-
bedingungen.

Flashe das Teil doch mal und lass es ohne Debugger
laufen und dann nochmal messen.

Wie den SLEEP-Zustand feststellen ? Bei externen Quarz
dürfte im SLEEP-Zustand kein Systemtakt mehr messbar sein.

von gast (Gast)


Lesenswert?

die LED wird erst bei verlassen des Sleep angeschalten davor passiert 
nix. Den Debuger habe ich auch abgezogen und dort verhält es sich 
gleich. Reicht es vor dem Sleep mode alle Pins auf Low zu setzen?

von ArminD (Gast)


Lesenswert?

Welcher Typ ist es denn genau (P18F???) und auf welche Art
und wie schnell ist er denn getaktet ?

Sind die 30mA im Normalbetrieb eigentlich ok, was sagt das
Datenblatt dazu ?

Könnte man Deinen Code sehen, habe zwar wenig mit den PICs
zu tun, aber man hätte zumindest mehr Anhaltspunkte.

von gast (Gast)


Lesenswert?

Takt 20mhz und 30mA sind im normalbetrieb okay jedoch nicht im µSleep 
bereich. Code ist etwas zu lang schon. Aber vielleicht per email?

von Power (Gast)


Lesenswert?

Hast du evtl. den Spannungsregler mitgemessen? Der 'schluckt' auch 
einiges im Leerlauf.

von ArminD (Gast)


Lesenswert?

@gast:
Um das Problem einzukreisen würde ich den Code erstmal (per
Auskommentierung) so reduzieren, dass nichts anderes passiert
als dass man definiert in den SLEEP-Modus kommt und diesen
mittels Deiner Bedingung auch wieder verlassen kann. Das sind
sicher nur ein paar Zeilen Code, die dann übrigbleiben.

Dann würde ich feststellen ob der Controller sich tatsächlich
im SLEEP-Modus befindet, z.B. mittels Messung des Taktes, und
diesen auch wie gewünscht wieder verlässt. Wenn die beiden
Zustände sicher sind, dann den Strom direkt in der VDD-Leitung
zum Controller messen, natürlich ohne angeschlossenen Debugger
und ohne externe Lasten zu treiben.

Es gibt vermutlich auch bei den PICs verschiedene SLEEP-Modi
mit unterschiedlichen Auswirkungen. Ich hätte ja gerne mal ins
Datasheet geschau, aber scheinbar willst Du den genauen Controllertyp
nicht verraten. :-)

von gast (Gast)


Lesenswert?

also ich habe jetzt nur den sleep befehl laufen lassen und an allen Pins 
gemessen. Dabei ist mir aufgefallen das am OSC Pin 20mA getrieben 
werden. Der versuch fand auf einem EV. Board statt. Also der Quarz wird 
während er sleep ausführt mit 20mA versorgt.
?

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
Noch kein Account? Hier anmelden.