mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 Modes


Autor: Enno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

eine kleine Frage an alle, die sich ein bischen mit den Modes des
MPS430 auskennen:

Ich will eine extrem stromsparende Controllerauswertung machen, hab
aber mit den LowPowerModes und auch dem MSP430 noch keine Erfahrungen.

Also, ich möchte Probemessungen im Tastverhältnis 1/40 (10ms irgendeine
Pinabfrage/400ms Ruhemodus)durchführen. In den 10ms muss das Ding
active sein, da ich bei dieser Zeit eine Auswertung der abgefragten
Pins machen möchte. Im Ruhemodus soll der uC eigentlich nur die Zeit
überbrücken, und das so stromsparend wie möglich.

Also müsste ich ja sicherlich dann bloss mein Register setzen, 400ms
zählen lassen und den Registerüberlauf nutzen um das Ding wieder active
zu schalten, oder?
Mein Bild von "CPU is disabled" ist noch ein wenig schwammig.
Aber es müsste ja eingentlich möglich sein mit den Registerflags wieder
in den Active-Mode zurückzukehren, oder?

Ist schon schlimm genug, dass 160uA Dauerstrom bei mir schon zuviel
sind ;)

THX

Autor: Uwe Borowski (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab Dir mal einen kurzen Quellcode angehängt! Dabei kannst Du einfach
über die Angabe der gewünschten Wartezeit (in Takten) die Funktion
aufrufen und der Controller geht dann für diese Zeit in den Ruhemodus
(LPM0). Der Code wurde mit dem IAR-Studio erstellt und benötigt einen
eingebundenen Hardwareheader (bei mir den msp430x14x.h)!

(Die LPMs des MSP430 sind wirklich unglaublich praktisch!)

Grüße - Uwe.

Autor: Uwe Borowski (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich braucht es auch einen Interrupt für den Timer - hab ihn mit in
den Sourcefile eingefügt!

Sorry - Uwe.

Autor: Alf Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Uwe,

wenn ich das Datenblatt der MSP nicht nur überflogen habe, ist LPM0
"wach", d.h. der Prozessor arbeitet. Übliches Schlafen ist LPM3, hier
arbeitet nur noch der langsame Oszillator (32-kHz-Quarz) und kann einen
Interrupt auslösen, der dem Prozessor wieder nach LPM0 verhilft.

Gruß, ALF

Autor: Uwe Borowski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein – das ist nicht richtig. Habe hier mal aufgelistet, was die
Low-Power-Modi bewirken:

#define LPM0 = (CPUOFF)
#define LPM1 = (SCG0+CPUOFF)
#define LPM2 = (SCG1+CPUOFF)
#define LPM3 = (SCG1+SCG0+CPUOFF)
#define LPM4 = (SCG1+SCG0+OSCOFF+CPUOFF)

Der Stromverbrauch sinkt von LPM0-LPM4 – allerdings werden auch die
möglichen Interruptquellen eingeschränkt und die Wakeup-Time steigt.

Der Stromverbrauch im laufenden Betrieb ließe sich beim MSP430 auch
senken, indem ein entsprechend langsamerer Quarz (z.B. 32kHz) verwendet
würde – sofern dies für die Anwendung ausreichend ist. Im Standby-Mode
(LPM3) verspricht TI (laut Datenblatt) eine Stromaufnahme von 1,6µA und
eine Wakeup-Time von 6µs! Doch auch bei LPM0 sinkt die Stromaufnahme
noch deutlich (sorry – hier fehlen mir grade die genauen Zahlen). Durch
die extrem schnellen Wakeup-Zeiten bietet es sich auch an, den
Controller bei jedem Warten in den Low-Power-Mode zu versetzen.

Grüße – Uwe.

Autor: Enno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, vielen Dank, das hilft mir ordentlich weiter.

Die verlängerten Aufweckzeiten im LP-Modus kommen bei mir nicht so zum
Tragen.
Wirklich nützlich werden diese ja auch nur, wenn man etwas längere
Pausen einlegen möchte um z.B. den Stromverbrauch gleich drastisch zu
senken. Und dann machen ein paar µs Aufweckzeit nicht sehr viel aus;
notfalls kann man sie ja mit einrechnen.

Es macht sich aber in jeder Batterie betriebenen Schaltung doch sehr
stark in der Laufzeit bemerkbar, wenn man die Stromaufnahme für
bestimmte Ruhephasen um den Faktor 100 senken kann.
Meine Schaltung soll höchstens 2 mal in der Sekunde erwachen und nach
seinem Wakeup-Siganl suchen.

Danke nochmal

Enno

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.