Forum: Mikrocontroller und Digitale Elektronik ATSAMD51: Wie mehr Strom einsparen im Sleep-Mode?


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Max (mythbu2)


Lesenswert?

Hi,

wenn ich meinen ATSAMD51J19A (TQFP-64) in den Schalf-Modus versetze 
mittels `PM->SLEEPCFG.bit.SLEEPMODE = STANDBY; // 0x4` (Datenblatt: 
"18.8.2 Sleep Configuration", S. 211), dann kann ich den Stromverbrauch 
schon mal gut verringern auf rund 2.7 mA (genau: 2735 uA). Ein tieferer 
Schlaf geht nicht, weil ich den Pin-Interrupt brauche zum wieder 
aufwachen.

Allerdings ist das noch viel zu viel. Im Datenblatt steht unter "Table 
54-7. Current Consumption - Active and Idle Mode" (Seite 1843), dass man 
für LDO mit 3.3V und FDPLL 120 MHz auf Typ. 43uA - Max. 870uA kommt für 
STANDBY. Dass das vielleicht etwas Wunschdenken ist ist klar, aber 
trotzdem weit weg von meinen 2.7 mA. Dabei steht noch:

 - Fast wake-up disabled (`PM.STDBYCFG.FASTWKUP = 0x0`) --> habe ich 
gemacht **
 - No System RAM retained (`PM.STDBYCFG.RAMCFG = 0x2`). 8 KB backup RAM 
retained --> habe ich gemacht **
 - no peripheral running  --> Keine Ahnung wie man Peripherals 
abschaltet; ich habe nur `MCLK->AHBMASK.reg = ...` gefunden aber das 
ändert nix so richtig

Hat jemand eine Idee wo dran ich noch drehen könnte?

Testweise habe ich mal für alle Ports `DIR = 0x000000` und `PINCFG = 0` 
gesetzt, d.h. alle Pins als Input und den Input-Buffer aus aber das hat 
irgendwie nur 200 uA Ersparnis gebracht (und deaktiviert auch den 
Pin-Interrupt).

**) Unter der Annahme, dass man die "PAC Write-Protection" über 
`PAC->WRCTRL.reg = PAC_WRCTRL_PERID(ID_PM) | PAC_WRCTRL_KEY_CLR;` 
abschaltet. Sicher bin ich mir dabei nicht aber es scheint zu 
funktionieren (also dass man dann das Register beschreiben darf)

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hast Du den auch die CPU schlafen gelegt (`_WFI`)?

von Adam P. (adamap)


Lesenswert?

Könntest auch mal probieren die einzelnen Clocks (Peripherie) die du 
verwendest herunter zu drehen.
Hab irgendwo mal gesehen, dass es da Grenzen gibt die du beachten musst.

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.