Forum: Mikrocontroller und Digitale Elektronik MSP430: temperatur komp. real time clock & 10ms Interrupts


von Jürgen R. (duke)


Lesenswert?

Hallo,

bin auf der Suche nach folgender Lösung:
MSP430 (F449)
+ real time clock
+ temperatur kompensiert
+ alle 10ms soll ein Interrupt ausgelöst werden, um einen Eingang
abzufragen
+ und das ganze in C

Wer hat eine Idee?

Grüße

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Jürgen

bei der Frage "Wer hat ne Idee" wirst du dir hier die Zähne
ausbeissen. Auf dieser Page gibts nen Link zu MSP430. Schau da wenn dir
Grundlagen feheln. Dann kenn ich noch:
http://www.mathar.com/msp430.html

Dann: was meinst du mit temperaturkompensiert ? Wenn du für den Takt
einen Quarz oder einen Oszillator verwendest hast du minimale
Temperaturabweichungen. Was hast du denn für Vorstellungen zur
Abweichung bei Tempertauränderungen und welchen Temperaturbreich
stellst du dir vor ?

Gerhard

von Peter D. (peda)


Lesenswert?

Programmtechnisch ist Temperaturkompensation keine Kunst, einfach nen
Sensor (DS18B20) ran und dann aus ner Tabelle die Reloadwerte für die
RTC auslesen.

Das Problem ist aber ein meßtechnisches, d.h. überhaupt erstmal die
Temperaturkennlinie mit hoher Genauigkeit auszumessen.

Daher ist es ökonomischer, fertig temperaturkompensierte Oszillatoren
zu kaufen, z.B. den DS32kHz von Maxim.

Alternativ nimmt man Quarze im MHz-Bereich (z.B. 11,0592MHz), denn die
sind prinzipiell temperaturunempfindlicher und stabiler als Uhrenquarze
(32kHz).
Da reicht es dann völlig, einmal den Fehler auszumessen (z.B. über
einen Monat) und dann die exakte Quarzfrequenz in die Formeln für die
Reloadwerte einzutragen.
Wenn die Stromaufnahme nebensächlich ist, sind MHz-Quarze den
kHz-Quarzen immer vorzuziehen.


Wie man nen 10ms Timerinterrupt aufsetzt, sollte man bequem den
Beispielen des Compilers entnehmen können (einfach mal im Verzeichnis
"Example" stöbern).


Und wie man nun in nem 10ms Timerinterrupt ne RTC zählen läßt, sollte
jeder leicht können, der weiß, daß 1min = 60s, 1h = 60min, 1d = 24h
hat.


Peter

von Jürgen R. (duke)


Lesenswert?

Temperaturkompensation:
-----------------------
Der MSP430 (MSP430x43x MSP430x44x, MSP430FG461x) besitzt einen
Internal Integrated Temperature Sensor im
ADC12, SD16, SD16_A

Dieser könnte doch dazu verwendet werden um die Uhrenquarz (32kHz)
Ungenauigkeiten über Temperatur auszugleichen?


10ms Interrupts / RTC:
----------------------
Hier gibt es viele Möglichkeiten
Basic Timer
Timer A, B
...
Jeder scheint hier seinen Favorit zu haben.

Welche Variante ist zu empfehlen, um den meisten Strom zu sparen
(2x Mignon, LR6,AA), also in den LPM3 zu kommen,
jedoch die RTC so exact wie möglich zu halten.
Parallel muss noch ein Eingang alle 10ms abgefragt werden.
Die RTC kann jede Stunde neu synchronisiert werden.
Infos werden via LCD ausgegeben.

Die RTC zu zählen (100 x 10ms = 1sec) ist nicht das Problem,
mir geht es vielmehr um das richtige Setup.

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.