Ich verwende einen STM32L073RZ auf einem bloßen Board mit nur der CPU und den Entkopplungskappen. Ich versorge das Board direkt über einen Otii Arc mit Strom und messe den Stromverbrauch. Ich verwende MbedOS 5.11.2.
Wenn ich die sleep()
Funktion aufrufe, wechselt die CPU in einen Energiesparmodus mit einem gelegentlichen Anstieg des Stromverbrauchs um 5 mA ungefähr jede Sekunde (siehe Abbildung unten):
Was ist die Ursache dafür? Ich versuche, die CPU bei laufender RTC in den STOP-Modus zu versetzen - dies sollte laut Datenblatt einen Strom von 1 µA ziehen.
Wie kann ich außerdem feststellen, welchen Energiesparmodus die sleep()
Funktion gewählt hat? Ich versuche, mich von der HAL fernzuhalten, weil ich viele Probleme beim Konfigurieren von Interrupts und dergleichen hatte.
Der Vollständigkeit halber ist hier der Code, der auf der Platine ausgeführt wird:
#include "mbed.h"
int main() {
sleep();
}