PowerDownMode, Mega88PB

  • 1
  • 2
  • Seite 2 von 2
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 19.03.2020 - 22:02 Uhr  ·  #9
Zitat geschrieben von Mathias

Hatte einen Interrupt-Disable schon vorher eingefügt.


Das ist egal. Durch die Codesequenz
Code

sei
Sleep

ist der globale Interrupt wieder aktiv bevor Sleep aufgerufen wird, oder nicht?

Gruß
Mathias
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 24.03.2020 - 15:12 Uhr  ·  #10
Ja, muss doch auch.
Denke ich.
Aufgeweckt soll er wieder werden über "PinChangeInterupt".
Also einem Pegelwechsel (Wake-up on pin change) an einem PortPin.
Das funktioniert prima.
Oder verstehe ich etwas nicht?
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 25.03.2020 - 22:24 Uhr  ·  #11
Vielleicht habe ich auch etwas falsch verstanden oder interpretiert.

Zitat

BODS and BODSE must first be written to '1'. Then, BODS must be written to '1' and BODSE must be
written to zero within four clock cycles.
The BODS bit is active three clock cycles after it is set. A sleep instruction must be executed while BODS is active in order to turn off the BOD for the actual sleep mode


Soweit ich das verstehe stehen nach dem Deaktivieren des Brown-Out-Detektors maximal 3 Clocks zur Verfügung um den Sleep Befehl aufzurufen, damit der der Detektor sich auch wirklich deaktiviert. Das Aktivieren des Interrupts vor dem Sleep Befehl könnte jedoch dazu führen, dass vor der Ausführung des Sleep Befehls noch ein Interrupt abgearbeitet wird und somit mehr als 3 Clocks vergehen und folglich der Detektor nicht deaktiviert wird im Sleep-Modus.

Dies ist ein Dilemma, da der Interrupt für das Wake-Up benötigt wird. Daher die Idee, den Interrupt nicht global, sondern einzeln zu deaktivieren mit Ausnahme des pin-change-interrupts in deinem Fall.
Mathias
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 30.03.2020 - 00:30 Uhr  ·  #12
Im Prinzip hast Du recht, daß eventuell noch ein Interrupt dazwischenfunken kann.
Etwas weiter vorher werden Timer, usw. abgeschaltet. Die können keinen Interrupt mehr machen.
Code

  PRR:= %1110 1111;             // Power reduction: prTWI, prTIMER2, prTIMER0, -, prTIMER1, prSPI, prUSART, prADC,    0 = enable

Werde noch nach deinem Vorschlag die Interrupts einzeln deaktivieren und dann runterfahren.
Dann kann nichts mehr passieren.
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 30.03.2020 - 20:01 Uhr  ·  #13
Zitat
Dazwischenfunken

Genau das meine ich. Danke für die Antwort.
Auch an Systick denken.
Mathias
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Weingarten - Baden
Beiträge: 315
Dabei seit: 07 / 2003
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 31.03.2020 - 11:02 Uhr  ·  #14
Ich danke dir :-)
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: PowerDownMode, Mega88PB

 · 
Gepostet: 02.04.2020 - 21:59 Uhr  ·  #15
Zitat

Was sollte man noch abschalten damit im PowerDownMode so wenig wie möglich Strom gebraucht wird?
Momentan sind es 24 µA, da geht bestimmt noch was.
Bin um Tipps mit Code-Anweisung dankbar.

Hab mal gelesen, dass 0,3uA möglich sind
https://www.mikrocontroller.net/articles/Sleep_Mode
  • 1
  • 2
  • Seite 2 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   126   140 · Page-Gen-Time: 0.063384s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI