Hallo Leute! Ich benutze den LPC2138 von Philips. Es gibt beim LPC das PCONP-Register, womit man einzelne Einheiten, wenn sie nicht benötigt werden, abschalten kann um Strom zu sparen. Hierfür habe ich einige Funktionen entwickelt, die sich in einem separaten File befinden. Die Idee die dahintersteckt - Strom sparen bei maximaler Geschwindigkeit und nur jene Einheiten einschalten, die man auch wirklich benötigt. In den ersten Zeile von Main wird eine Funktion aufgerufen, die den Namen "power_off();" trägt. Diese Funktion macht nichts anderes als PCONP=0; Somit sind alle Einheiten deaktiviert. Darunter befinden sich einzelne Initialisierungsroutinen, z.B. UART oder Timer. Diese Routinen sind so programmiert, dass sie das richtige Power-Control-Bit wieder einschalten, damit die ensprechende Einheit korrekt arbeiten kann. Zusätzlich messe ich mit einem Ampere-Meter, den Strom, der vom µC-Board aufgenommen wird. Das Witzige ist, dass es passieren kann, dass in bestimmten Befehlskonstellationen der Stromverbrauch überhaupt nicht geringer wird, die entsprechenden Einheiten aber abgeschaltet sind. Dies kann man dadurch erkennen, indem man das PCON-Register abfragt. Mit Befehlskonstellationen ist gemeint. Wenn ich die Funktion: power_off(); verwende, dann bleibt der Gesamtstrom auf 124mA. Der Stromverbrauch ist in diesem Fall so hoch, als wenn ich gar keine Einheit abgeschaltet hätte. Wenn ich diese Funktion, wo nichts anderes drinnen steht als PCONP=0; ersetze durch PCONP=0; void main(void) { //power_off(); PCONP=0; .. .. } ,dann benötigt der Prozessor plötzlich nur noch 113mA. Leider verstehe ich jetzt garnichts mehr. Gibt es irgendeinen Trick oder etwas Spezielles, dass man beachten sollte? Danke für euren Rat. Gruß, Martin
@Martin: Genau so mache ich es auch: Am Anfang: PCONP = 0; Dann je nach initialisierter Peripherie: Für Timer0: PCONP |= (0x01 << 4); Für Timer1: PCONP |= (0x01 << 5); Verwende zur Zeit LPC2129 und LPC2138. Habe sporadisch mal gemessen, und einen geringeren Strom festgestellt. Ich werde das jetzt jedoch mal weiter im Auge behalten. Sonst macht das PCONP Register sicher keinen Sinn. Übrigens: Was hast du für ne Hardware? Auf mehr als 80 mA sind wir bei cclk 60 MHz und pclk 60 MHz nie gekommen. Gruß Dietmar
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.