PowerDownMode, Mega88PB

  • 1
  • 2
  • Page 2 of 2
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: PowerDownMode, Mega88PB

 · 
Posted: 19.03.2020 - 22:02  ·  #9
Quote by 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
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: PowerDownMode, Mega88PB

 · 
Posted: 24.03.2020 - 15:12  ·  #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
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: PowerDownMode, Mega88PB

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

Quote

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
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: PowerDownMode, Mega88PB

 · 
Posted: 30.03.2020 - 00:30  ·  #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
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: PowerDownMode, Mega88PB

 · 
Posted: 30.03.2020 - 20:01  ·  #13
Quote
Dazwischenfunken

Genau das meine ich. Danke für die Antwort.
Auch an Systick denken.
Mathias
Benutzer
Avatar
Gender: n/a
Location: Weingarten - Baden
Posts: 310
Registered: 07 / 2003
Subject:

Re: PowerDownMode, Mega88PB

 · 
Posted: 31.03.2020 - 11:02  ·  #14
Ich danke dir :-)
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: PowerDownMode, Mega88PB

 · 
Posted: 02.04.2020 - 21:59  ·  #15
Quote

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
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   126   140 · Page-Gen-Time: 0.028216s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI