Hallo!
Bin ein Neuling bei Programmierung von µC und versuche erstmal ales
grundlegende zu verstehen.
Real Time Clock, kann mir jemand dafür allgemeine Information geben?
Worum gehts da genau "Echtzeit", wir wird dieses programmiert.
Suche jede Info, die ich über diese Funktion bekommen kann!
Danke
FG Peter
Das ist einfach ne Uhr die vom Controller ausgelesen wird. Die rennt
ohne Unterstützung von aussen und wird vom Programm des Controllers
nicht beeinflusst (ausser vielleicht zum stellen). So kann sie die echte
Zeit zählen und ist nicht auf Prozessorzeit angewiesen.
bye
Frank
Zunächst ist RTC eigentlich keine Funktion, sondern ein Baustein. RTC's
gibts z.B. von MAXIM/Dallas. Das ist ein Baustein mit einem eigenen
Quarz. Funktion: Datum und Uhrzeit aktuell zu halten. Der begriff
Real-time wird in der Elektrotechnik immer arg strapaziert. Ein
Real-Time-System ist ein System, das in der Lage ist, innerhalb einer
maximal vorgegeben Zeit immer auf externe Ereignisse zu reagieren. Statt
dessen assoziert man damit oft ein Uhren/Kalender-Bauteil. Mit einem uC
kann man auch RTC-Funktion nachbilden. Dazu schliesst man an dafür
vorgesehen Anschlüsse einen Uhrenquarz an und der Microcontroller
arbeitet an dieser Funktion auch dann, wenn er im Sleep-Modus ist.
Gerhard
RTC ist eine Funktion, damit ist Uhrzeit und Datumszählung gemeint.
Man kann diese Funktion in Software (Timerinterrupt) realisieren oder
umständlich nen extra Chip dafür anschließen.
Vorteil der Softwarelösung ist, man hat alle Werte bequem in Variablen
im SRAM.
Externe RTCs müssen erst ausgelesen werden (SPI, I2C) und haben meist
ein ziemlich vergurktes Zahlenformat, wo man die Bits erst mühsam
auseinanderfummeln muß.
Einziger Vorteil der Hardwarelösung ist, sie braucht weniger Strom bei
Batteriebetrieb.
Peter
Jörg B. wrote:
> ...weiterer Vorteil sollte sein, dass die Zeit auch bei> Neuprogrammierung oder Absturz der µC's weiter läuft und nicht neu> gestellt werden muss.
Wie mans nimmt.
Das erste wird nur sehr selten der Fall sein, das zweite sollte doch nie
der Fall sein.
Eine RTC um Qualitätsprobleme bei der Softwareentwicklung zu kaschieren,
sehe ich persönlich nicht als Vorteil.
Peter
@Peter:
Ich sehe da eher die Ausfallsicherheit bei Problemen mit der
Versorgungsspannung.Das Gerät fällt runter und die Batterien in der
billigen Halterung springen kurz.Die Spannung bricht kurz zusammen
woraufhin der uC abstürzt.Alternativ auch die Möglichkeit das jemand
ausversehen die Versorgungsspannung abzieht.Dann ist es schon
praktisch,nicht jedesmal die Zeit neu einstellen zu müssen.
Ich sehe den Vorteil auch beim Ausfall der Versorgungsspannung.
Und genau dafür sind die HW RTC´s ja auch gemacht.
Wer braucht in nem Fax Gerät schon eine DCF Uhr ??
@Peter, "aben meist ein ziemlich vergurktes Zahlenformat"
nun die meisten zählen schon in BCD.
Einfach in Nibble aufteilen 30h für LCD Display dazu und Woila.
Für LED nix weiter notwendig außer man hat 7219 oder ähnliches.
Das mit der Stromversorgung ist doch ein Grund, den man nicht anbringen
kann.
Man kann nämlich auch die Pufferung (Knopfzellen) von RTC auslaufen
lassen.
Notfalls kann man einen Controller auch per Goldcap o.dergl. puffern.
RTCs waren früher nötig, weil die Prozessoren genug mit anderen Sachen
beschäftigt waren in Zeiten von zig MIPS langweilen sich Controller
teilweise richtig. Wenn man ihnen dann noch eine RTC mitanklemmt, dann
gründen sie womöglich noch eine Gewerkschaft...
Die Anwendung muß also entweder extrem zeitkritsch sein, wobei man bei
sowas eher selten noch eine Uhr braucht, oder extrem schlecht
programmiert sein. Sonst sehe ich keine sinnvolle Verwendung von RTCs
mehr.
Fall:
Mobiles Gerät mit Akkufach für ganz normale AA Akkus, Kunde kann diese
nach belieben wechseln -> Stromunterbrechnung.
Die Knopfzelle im inneren des Gerätes aus ihrer Halterung zu holen
schafft der Kunde im Normalbetrieb nicht.
Soll der Kunde nun nach jedem wechseln der Batterien/Akkus die Zeit
neuprogrammieren?
Ausserdem haben die meisten RTCs auch noch einen nicht flüchtigen SRAM,
der als Nebeneffekt nicht zuverachten ist, da dieser Speicher sehr
"sicher" ist...
Ich glaube, ihr redet die ganze zeit von einem Timekeeper, gibt's auch
mit SRAM, das sind die Teile mit der Huckepack-Batterie (z.B. M48T02 von
ST). Die laufen erfahrungsgemäß auch nicht aus und halten 5..10 Jahre.
Eine RTC (Real-Time-Clock) ist nix anderes als eine popelige Uhr, die
die Echtzeit (Absolutzeit) anzeigt. RTC hat nix mit Bausteinen oder
sonstiger Hardware zu tun.
>Die Knopfzelle im inneren des Gerätes aus ihrer Halterung zu holen>schafft der Kunde im Normalbetrieb nicht.
Wie schon erwähnt:
Man kann den Mikrocontroller auch mit einer (oder zwei) Knopfzelle/n
puffern. Dazu kann man dann auch einen Goldcap nehmen, wenn der Kunde
die Battierien "schnell" genug wechselt.
Es geht um die Uhr, nicht um die Batterien.
>da dieser Speicher sehr "sicher" ist...
Sind (interne) EEPROMs und NVRAMS auch...
Ich bin der Meinung, die Zeit der RTCs ist abgelaufen...(Manche waren
nicht mal Jahr-2000-kompatibel...).
-> Notfalls kann man einen Controller auch per Goldcap o.dergl. puffern.
Das kommt zum Teil auch auf die Anwendung an.So ein hochgezüchteter
Rechenknecht verbraucht nunmal auch einiges an Strom.Da ist dann eine
RTC mit eingebauter Knopfzelle schon nicht schlecht.Der Prozi geht
aus,die RTC läuft munter weiter.Und wenn dann nach 10 Minuten der
Spannungsausfall behoben ist,braucht man nicht alles wieder mühsam von
Hand einstellen.
Allerdings geb ich dir Recht,die heutigen uC haben soviel
Recheneleistung das das führen einer Zeit nicht problematisch
ist.Etliche uC besitzen sogar eine interne RTC,mit eigenem Takteingang
für einen Uhrenquarz.
Roger Sterley wrote:
> Soll der Kunde nun nach jedem wechseln der Batterien/Akkus die Zeit> neuprogrammieren?
Komisch, da haben mich meine Uhrenhersteller bisher nie nach gefragt...
bis auf meinen Wecker der eine 9V Pufferbatterie hat darf ich nach einem
Stromausfall alle Uhren neu stellen die nicht DCF sind - selbiges gilt
übrigens auch bei meinen Batteriebetriebenen.
Es gibt aber doch einen Anwendungsfall für externe RTC-ICs:
Ich arbeite in einem Betrieb, der u.a. BDE bzw. Zeiterfassungsgeräte
herstellt, und bei einem Stromausfall wäre es doch sehr doof, wenn die
Uhrzeit fehlt, da dann die Zeiterfassung aus den Fugen gerät, bis jemand
die Uhr neu gestellt hat. Da macht es dann schon Sinn...
Und neuere RTCs übernehmen die Sommer/Winterzeit-Umstellung selbst...
Ralf
Nö, immer noch kein Grund für die Dinger.
Denn in so einem Kartenleser sitzt i.d.R. auch ein Mikrocontroller, den
man irgendwie puffern kann.
Ausserdem kommuniziert jeder der Kartenlese-Knoten mit der Zentrale;
wenn die Kommunikation ausbleibt, fragt die Zentrale solange nach, bis
der Kartenleser wieder antwortet (Strom hat).
Dann kann die Zentrale auch alle Terminals mit der aktuellen Uhrzeit
versorgen, was dazu führt, dass sie alle synchron laufen.
Warum sollte man RTCs nicht brauchen? Angenommen du pufferst deinen µC
statt der RTC. Klar! Geht! Aber der µC braucht ja nunmal ne Menge mehr
Strom statt RTC. Und kann der µC noch die Uhrzeit weiterrechnen, wenn er
am rumdösen (SleepMode) ist?
Zum Vergleich -> RTC DS1307 0,5µA
ATMega8 (PowerDown Mode) -> 3µA
Also immerhin das 6fache. Also 6fach kürzere Batterielebensdauer. Und
ich bezweifle, dass man den Timer weiterlaufen lassen kann im PowerDOwn
Mode.
Der mega163 im IDLE-Mode <3µA, der externe Uhrenquarz lässt den Timer2
weiterlaufen und weckt den µC jede Sekunde um die Uhr weiterzurechnen.
Nochmal: RTC ist KEINE Hardware sondern eine Funktion! Wie und wo auch
immer diese verwirklicht ist.
Henrik Jahnke wrote:
> Zum Vergleich -> RTC DS1307 0,5µA> ATMega8 (PowerDown Mode) -> 3µA
Wo ist das Problem ?
Angenommen ein Golkap (= 1F) dient zur Pufferung und der AVR kommt mit
3V aus, dann haben wir (5V-3V) * 1F / 3µA = 185h Pufferzeit.
Das sollte doch wohl dicke reichen.
Peter
@Sonic:
> Der mega163 im IDLE-Mode <3µA,...
Im Idle-Modus eher "< 3 mA". Selbst im Power-Save-Modus brauchen die
AVRs immer noch einige µA, z.B. beim Mega8 > ~8 µA. Und nur im
Power-Save-Modus läuft der asynchrone Timer weiter.
@Henrik:
Im Power-Down-Modus ist der asynchrone Timer 2 deaktiviert! Da ist nix
mehr mit RTC...
Ansonsten hat Peter recht: Für viele Anwendungen genügt die Funktion der
µCs völlig. Wenns allerdings daran geht, die RTC in einem Gerät, das die
meiste Zeit von der Spannungsversorgung getrennt ist, z.B. mittels
Knopfzellen zu versorgen, könnte das zu etwas häufigeren
Batteriewechseln führen. Ob man einen externen Baustein nimmt oder nicht
muss man im Einzelfall entscheiden. I.d.R. sind auch die in
RTC-Bausteinen verbauten Quarze etwas präziser als die handelsüblichen
Uhrenquarze, was gerade bei Langzeitanwendungen vorteilhaft sein kann.
Wow !
Erstmal danke für das große Feedback hier!
Ist ja ein richtiger Hammer...
Nun zur Technik, ich werde dann ein µC verwenden der eine integrierte
RTC hat. Im Prinzip möchte ich auch eine "Echtzeit" haben, ein DCF-Modul
anzusteuern hat allerdings auch sein Vor- und Nachteile.
Was ist Eure Meinung [DCF] dazu ?
Ich werde mal schauen, ob ich solch ein System in Gang setzen kann.
Bin weiterhin dankbar für jede gute Information!
FG Peter
Klar ist 185h ne lange Zeit. Mein Motorrad steht aber 2880h (4 Monate)
ohne Batterie in der Werkstatt.
Ich will die RTC's nicht abschreiben. Die haben sicher ihre
DaSaeinsberechtigung.
Aber der anderen "Partei" gebe ich auch recht. Für "kurze"
Überbrückungen kann auch der µC gepuffert werden. Daran hatte ich noch
gar nicht gedacht.
Oder ein anderes Beispiel aus der Praxis. Urlaub vom 18.12 bis 29.12.06
- sind 8 Urlaubstage. Aber mindestens 17 Tage, an denen ein z.B.
Laborgerät nicht an der Steckdose ist (Raum Notaus).
Das würde mit einem Controller echt heftig - mit der 1307 kein Problem.
Gruss Udo
Peter Schmidt wrote:
> Real Time Clock, kann mir jemand dafür allgemeine Information geben?> Worum gehts da genau "Echtzeit", wir wird dieses programmiert.
Real hat nix mit Echtzeit zu tun!
real ist hier eher als "wirklich, tatsächlich" zu verstehen. Also eine
Uhr nach der sich z.B. verschiedene Controller/Prozesse an der
"Weltzeit" syncronisieren können.
Echtzeit ist da eine ganz andere Sparte...
Zur Pufferung des µC: Die Stromberechnungen, die ihr da alle für den µC
aufstellt sind ja schön und gut. Aber: Ist denn so eine geringe
Stromaufnahme überhaupt realistisch? Ich nehme nur mal meine einfache
Heizungssteuerung in Betracht: da wird ein Relais mit einem Transistor
angesteuert, diverse LEDs -> da kommen schon ein paar mA (nicht µA)
zusammen.
Wie würde man soetwas lösen? Die Spannung ständig mit dem µC messen und
bei erkanntem Spannungsausfall sofort alle Ausgänge deaktivieren und nur
noch die Uhr intern weiterzählen? Sooo "out of date" sind diese
Time-Keeper Bausteine dann vielleicht doch nicht?
Gruß, Martin
Die Timekeeper sind bestimmt nicht 'out-of-date', sonst würden sie nicht
mehr produziert werden. Es ist die einfachste Art eine Uhr bei häufig
ausgeschalteter Spannung laufen zu lassen, wird heute auch noch oft
praktiziert. Man kann auch eine DCF77-Antenne an den µC mit Software-RTC
hängen, wenn's auf die Eine oder Andere Minute nicht ankommt, z.B. bei
meteorologischen Datenloggern die alle 10 Minuten messen. Dann ist die
Uhr auch nach Spannungsausfall immer genau.
Also,
wenn ich Eure Beiträge so richtig verstanden habe wird es wohl das beste
sein, ein DCF-Modul mit einer RTC zu verschalten {}. Dann würde ich mir
die Zeit, sagen wir mal jede Stunde aktualisieren lassen und das
Prinzip würde aufgehen. Das Produkt soll, mindestens 3 Jahr unabhängig,
ohne Wartung funktionieren!
Was meint Ihr?
Da hast Du recht!
Der Signalempfang stört mich auch. Der Einsatzort wird in einer
Lagerhalle sein, bestimmt mit Metall / Alu Bedachung und Außenwände !
Aber was soll man sonst machen, GSM ?
>Mit NTP kann ich jetzt ganz bequem die PC-Uhr übers Internet stellen >lassen.
Unter der Vorraussetzung von WindowsXP braucht man sich nicht mal mehr
darum kümmern: Das macht Windows ganz alleine...
Der Beitrag ist zwar schon älter, aber ich wollte mal Fragen, wie das
mit der Temperatur-Abhängigkeit aussieht? Ich sehe da beim µC +
Uhrenquarz ein Diagramm, dass bei 25°C zwar genau geht, bei 0° (Winter)
aber schon eine Recht hohe Abweichung hat. Ich hab einen DS3231 und da
ist im Diagramm quasi ein minimale Ungenauigkeit im Bereich von -40 bis
0 und von 40 bis 85 °C. Dazwischen soll er hochgenau sein.
http://www.maxim-ic.com/products/timers/DS3231_demo/
Ist das ein entscheidendes Kriterium für einen externen RTC?
Oder hat sich das in Laufe der letzten 4 Jahre auch bei den Quarzen
geändert?
>Ist das ein entscheidendes Kriterium für einen externen RTC?
Wenn man's braucht schon. Wenn du ein Gerät baust wo alle halbe Jahr
wegen Sommer/Winterzeit eh neu eingestellt wird, ist sowas hochgenaues
eher unwichtig. Vor allem wenn das Gerät sowieso im Haus bei
gleichbleibender Temperatur betrieben wird.
>Oder hat sich das in Laufe der letzten 4 Jahre auch bei den Quarzen>geändert?
TCXOs gab es auch früher schon. Gibt jetzt halt Bausteine die das alles
auf einer Chipfläche integriert haben.
@ Michael Skropski (rbs_phoenix)
>Uhrenquarz ein Diagramm, dass bei 25°C zwar genau geht, bei 0° (Winter)>aber schon eine Recht hohe Abweichung hat.
Ja. Siehe auch
AVR - Die genaue Sekunde / RTC> Ich hab einen DS3231 und da>ist im Diagramm quasi ein minimale Ungenauigkeit im Bereich von -40 bis>0 und von 40 bis 85 °C. Dazwischen soll er hochgenau sein.
Ist sicher auch so. Die Schaltung ist halt temperaturkompensiert,
sprich, durch analoge oder digitale Schaltungsmassnahmen wird der Fehler
deutlich verringert (gegengerechnet).
>Ist das ein entscheidendes Kriterium für einen externen RTC?
Ja.
>Oder hat sich das in Laufe der letzten 4 Jahre auch bei den Quarzen>geändert?
AFAIK nein.
MFG
Falk
Falk Brunner schrieb:> Ja. Siehe auch>> AVR - Die genaue Sekunde / RTC
Als ich da geguckt habe, ist mir das aufgefallen ;)
Falk Brunner schrieb:>>Ist das ein entscheidendes Kriterium für einen externen RTC?>> Ja.
Dann werde ich wohl den RTC benutzen, je genauer, desto besser.