Hi,
ich hab noch nie vorher mit mikrokontrollern gearbeitet und soll jetzt
rausfinden, wie man am besten zeitstempel erzeugt. es geht darum, dass
ein smartphone mit dem MSP430 verbunden wird und der msp daten an das
phone schickt. diese sollen jedoch mit einem zeitstempel versehen
werden. es gibt, wie ich das verstanden habe, im msp mehrere uhren und
man kann dafür den DCO verwenden, oder hab ich da was missverstanden?
also müsste ich beim verbinden der geräte die zeit synchronisieren und
dann mit der weiter arbeiten. gibt es noch einen anderen weg, eine
persistente zeit zu erzeugen auf dem msp? das ziel ist, dass das phone
nicht immer verbunden sein muss und der msp hin und wieder aus geht und
wenn ich das nicht falsch verstanden habe, "stirbt" damit ja auch die
uhr?
vielen dank im voraus
Ginbak
Ginbak schrieb:> es gibt, wie ich das verstanden habe, im msp mehrere uhren und> man kann dafür den DCO verwenden, oder hab ich da was missverstanden?
Da hast Du was missverstanden. Der englische Begriff "clock" steht
nicht für Uhr, sondern für Takt, resp. Taktgenerator.
Das, was wir "Uhr" nennen, heißt im englischen "real-time clock" (RTC),
und wird gerne (albernerweise) als "Echtzeituhr" übersetzt.
Eine RTC aber enthält ein msp430 nicht. So etwas kann man als Software
implementieren (ein von einer der Taktquellen des MSP430 zyklisch
ausgelöster Interrupt zählt einen Sekundenzähler hoch, aus dem beim
Auslesen die Uhrzeit berechnet wird), oder als separaten
Hardwarebaustein hinzufügen.
In beiden Fällen aber ist eine dauerhafte Stromversorgung erforderlich,
entweder des MSP430, damit der seinen Sekundenzählerstand nicht verliert
und beständig weiterzählt, oder der RTC, damit die ihre
Zeitinformationen aktualisieren kann.
Wobei die Spromversorgung auch eine Knopfzelle sein kann. So was füttert
in einer änhlichen Anwendung hier einen MSP430F2012 seit mehreren
Monaten.
"Ausgehen": der MSP430 geht dann in den Low Power Mode und braucht nur
noch ein paar µA Strom. Ganz aus ist er aber da nicht.
Max
hey,
danke erstmal für die schnellen antworten.
ja, das mit der "clock" hatte ich schon richtig verstanden, hatte es nur
nicht richtig ausgedrückt. kommt denn der klassische msp mit einer
knopfzelle?
über die RTC programmierung habe ich schon ein paar foreneinträge
gelesen, die aber mehr fragen aufgeworfen haben als sie beantwortet
haben.
wenn ich es richtig versteh zähle ich ja einfach die takte hoch. dazu
wurde oft der DCO verwendet und man hat zb. 1 signal jede sekunde
gesendet. wenn ich aber genauer werden will, kamen diskussionen über
delays usw auf, wenn ich da nicht was falsch verstanden habe. kann man
so etwas irgendwie umgehen? ein Zeitstempel sollte ja schon recht
akkurat sein. :/
Ich mach hier eine kostenpflichtige Anfängerschulung auf...
- Der MSP430 hat keine Knopfzelle dabei. Die musst du schon selbst
kaufen.
- Es gibt (ich hätte es nicht geglaubt) tatsächlich noch RTCs mit
integrierter Batterie: DS12CR887
- Beschäftige dich mal mit dem Thema Interrupts und Low Power Mode beim
MSP430 - steht im Family User´s Guide.
- Das ez430 ist nicht teuer und ermöglicht (auch dank Demos) einen
relativ einfachen Start.
Max
Wenn Du einen von diesen hier benutzt:
MSP430F665x, MSP430F645x, MSP430F565x, MSP430F535x Mixed Signal
Microcontrollers
bekommst Du gleich einen mit Echtzeituhr und Batteriepufferung für die
Uhr.
GB schrieb:> bekommst Du gleich einen mit Echtzeituhr und Batteriepufferung für die> Uhr.
Aber ohne Batterie, und ohne Batteriehalter. Die müssen schon noch
selbst drangebastelt werden.
Hi Ginbak,
für Deine Aufgabe ist es unerläßlich, daß Du Dich in die Thematik
Mikrocontroller einarbeitest. Der kleinste MSP430 ist hervorragend für
die genannte Aufgabe geeignet, sofern nicht noch Anforderungen unerwähnt
blieben. Du solltest einen 32.768kHz-Quarz einsetzen und einen Timer
programmieren, der - wie oben schon vorgeschlagen - jede Sekunde einen
Interrupt erzeugt, der die Sekunden hochzählt und Überläufe abfragt. Der
Strom beträgt dann für >=99,9% der Zeit weniger als 1uA(!). Nur zur
vollen Sekunde wird für einige Mikrosekunden <100uA benötigt. Damit ist
die Betriebszeit mit einer Knopfzelle schon sehr groß.
Eine Einführung in die MSP430-MCs findest Du hier:
http://unidsp56.de/misc/MC-KursH13_130623a.pdf
Im Workspace für die Entwicklungsumgebung (Code Composer Studio) zum
Kurs findest Du u.a. eine funktionierende Uhr:
http://unidsp56.de/misc/workspaceMCcourseH13_130623.zip
Wenn Du nun noch eine UART einbindest (späteres Beispiel im Workspace)
und da ein kleines Bluetooth-Modul (Ebay 7€) dranhängst, kannst Du sogar
drahtlos mit dem Smartphone reden.
Viel Erfolg!
Gerrit, DL9GFA
Hallo,
vielen Dank für eure Antworten. Den Bedarf eines 32.768 kHz-Quarz hatte
ich auch schon in bei meiner Recherche gefunden. Leider bin ich nicht in
der Postion, mich intensiv in die Mikrokontroller-Programmierung
einzuarbeiten, da es nur Teil eines größeren Projektes ist und ich nur
wenig Zeit dafür erübrigen kann, daher auch so "dumme" Fragen wie "hat
der MSP eine Knopfzelle". Auch bin ich mir nicht sicher, in wie fern es
gewünscht ist, eine große Menge an weiteren Peripherieteilen
anzubringen. Als Alternative dazu steht, das Phone selbst die Timestamps
erstellen zu lassen, was aber somit zu einem gewissen Delay führt
(Übertragungszeit ans Phone, eventuelle Fehlübertragungen usw usf).
Daher ging es darum, den Aufwand abzuwägen, den es benötigt, eine RTC zu
programmieren oder anzubringen. Auch sollten die Timestamps nicht nur
Sekunden-genau sondern auch Millisekunden-genau und schon da sehe ich
schwierigkeiten. Gehen wir mal davon aus, dass wir nur die erste
Kommastelle nach der Sekunde (also alle 100 ms senden) wollen, kostet da
der Interrupt nicht recht hohe Rechenleistung?
Danke für eure Antworten
Ginbak schrieb:> Kommastelle nach der Sekunde (also alle 100 ms senden) wollen, kostet da> der Interrupt nicht recht hohe Rechenleistung?
Mir ist nicht klar, was du exakt damit meinst.
Aber:
Der MSP macht problemlos mindestens 1 Million Befehle in der Sekunde.
Was denkst du, wie Schwierig es für den ist, alle 0.1 Sekunde mal ein
paar 100 Befehle (in Wirklichkeit sind es sogar weniger) zwischendurch
einzuschieben.
Das viel größere Problem besteht darin, dass die Übertragung des
Timestamps ja auch Zeit kostet. Das eigentliche Problem besteht in der
exakten Synchronisierung eines Ereignisses mit der dann gültigen Zeit.
Was benötigt werden würde ist zum Beispiel ein Eingang am MSP, mit dem
man dem MSP mitteilt: ich brauche die exakte Zeit genau zu diesem
Zeitpunkt. Der MSP speichert die aus seiner intern geführten Uhr weg und
danach kann man diesen Timestamp 'gemächlich' über die vorhandenen
Kanäle auslesen.
Für den MSP ist das immer noch pipifax.
Mir scheint du hast da einen Trugschluss, den so viele haben. Nur weil
dein Telephon einen Gigaherz getakteten Prozessor hat und sich trotzdem
zäh anfühlt, bedeutet das nicht, dass der Computer im Telephon per se
langsam wäre. Der hat einfach nur viel zu tun mit der ganzen
Pixelschieberei und den zig anderen Dingen, die 'gleichzeitig' ablaufen
sollen.
All das hat aber der MSP nicht. Seine einzige Aufgabe ist es in deinem
Fall eine Uhr weiterzuählen - eine wahrlich triviale Aufgabe. Der MSP
kann seine ganzen verfügbaren 1 Millionen Befehle pro Sekunde auf diese
Aufgabe einsetzen, für die er gerade mal ein paar tausend braucht. Den
Rest der Zeit kann er vor sich hindösen.
hey,
erstmal danke für die antwort.
ok, ich habe mich mal wieder nicht richtig ausgedrückt. nebenbei laufen
noch weitere berechnungen auf dem msp. zb. werden messwerte empfangen
für die ich eben diese timestamps brauche. das heißt nicht nur, dass er
beschäftigt ist, messwerte zu empfangen, zu verarbeiten und diese dann
noch an das phone zu senden, sondern dauernd noch die interrupts von der
zeit bekommt und ich mich frage, wie hoch ich die kosten für diese
ansetzen muss, wenn ich in den millisekundenbereich gehe. aber ich
glaube ich bespreche erstmal mit meinem professor wie hoch die
auslastung des msp mit den restlichen berechnungen ist, bevor ich mich
frage, ob die rtc probleme macht. ich danke euch erst einmal.
lg
Gnibak
Ginbak schrieb:> zeit bekommt und ich mich frage, wie hoch ich die kosten für diese> ansetzen muss, wenn ich in den millisekundenbereich gehe.
So ca. im zwei-stelligen Promille Bereich.
Um das nochmal deutlich zu sagen: Der MSP430 lacht über diese Aufgabe,
das ist nicht deine Baustelle der kann das locker und mit links.
Dein Problem wird folgendes sein:
Ginbak schrieb:> ich hab noch nie vorher mit mikrokontrollern gearbeitet
Entweder du findest jemanden der das für dich macht oder du musst dich
da einarbeiten. Die Zeit die du brauchst liegt je nach Motivation und
Talent zwischen einem Wochenenden und ein paar Wochen.