mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Stromverbrauch sleep


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: ArminD (Gast)
Datum:

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

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zwischen Quelle und Versorgungspin

Autor: Johannes Slotta (johanness)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:

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

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du evtl. den Spannungsregler mitgemessen? Der 'schluckt' auch 
einiges im Leerlauf.

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. :-)

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.
?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.