Forum: Mikrocontroller und Digitale Elektronik Real-Time Clock


von Flo (Gast)


Lesenswert?

Hi!

Hat von euch schon mal jemand was mit ner Real-Time Clock gebaut???

Maxim hat welche im Angebot. Dachte an MAX6900 oder MAX6902.

Ist die Ansteuerung mit SPI oder I2C leichter?


Würde mich über Infos freuen (vielleicht sogar C-Source)


Thx

von Fachberger Martin (Gast)


Lesenswert?

i2c ist leichter, weil es schon fertige libs zur anbindung gibt.
da gibts dann funktionen wie schreibei2c und lesei2c.

wenn du ein codebeispiel brauchst, ich hab mal eine anbindung gemacht

von Jens Stolinski (Gast)


Lesenswert?

Ich arbeite seit längerer Zeit mit der angesprochenen Real-Time Clock 
MAX6902. Die Ansteuerung (Schreiben und Lesen) über die 
SPI-Schnittstelle erfolgt in vier Modi:
- Single Read
- Burst Write (Multiple-Byte)
- Single Read
- Burst Read.

In allen vier Modi erfolgt im ersten Schritt die Übertragung eines 
"Address/Command Byte" vom MC -> MAX6902, wobei 8 Takte (SCLK) benötigt 
werden. Daraufhin vom Modus abhängig werden ein "Data Byte" bzw. n "Data 
Byte" vom MAX6902 -> MC gesendet. Während der gesamten Datenübertragung 
muß der /CS-Pin Low Aktiv sein. Die zurückgesendeten Daten entsprechen 
je nach "Address/Command Byte" der Sekunde bis Jahreszahl.

Die Meinung das der I2C-Bus leichter ist bzw. deren Anbindung, kann ich 
nicht teilen. Ausgehend von den MC MSP430 oder AVR die hardwaremäßig den 
I2C-Bus nicht unterstützen, ist es nicht unbedingt sinnvoll diesen über 
die Software zu simulieren, wenn die Notwendigkeit nicht besteht. Der 
SPI-Bus ist vom Hersteller in der Hardware integriert und muss nur noch 
über ein paar wenige Register eingebunden werden.

Einen Quellcode über die Anbindung des MSP430 an den MAX6902 ist unter 
meiner Email Adresse erhältlich, natürlich in C.

Bis dann Jens (www.SynaSys.de)

von Flo (Gast)


Lesenswert?

Danke für die Antworten!

Ich möchte zwei Projekte realisieren.

1. Eine Digitaluhr:
- Dafür ist die RTC ja bestens geeignet -

2. Eine Uhr die bei Tasterdruck bei 00:00 anfängt zu zählen und bei 
einem zweiten Tasterdruck aufhört und resetet.

- Da ist ne RTC doch zu aufwendig oder? Was würdet ihr mir dazu 
vorschlagen. Mit "normalen Zähler-Bausteinen" möchte ich es eigentlich 
nicht aufbauen. Eigentlich müsste dass doch mit nem AVR gehen. Er muss 
ja nur bei Tasterdruck starten und dann pro Sekunde um 1 Stelle 
weiterzählen. (also 1 Hz Takt) Die Genauigkeit spielt auch keine große 
Rolle. (Pro Stunde können es schon 5 sec. sein) Und er sollte ca. alle 
10 min - 15 min einen Summer starten.

Könnt ihr mir da ein bisserl helfen? Bin noch ziemlicher Anfänger in 
Sachen MCU. Mit Elektronik kenn ich mich aber sonst schon recht gut aus.

Schon mal Danke für weitere Beiträge

MfG

Flo

von Jens Stolinski (Gast)


Lesenswert?

Bei dem ersten Projekt (Digitaluhr) kommt man um eine RTC nicht herum. 
Zwei wesentlich Gründe sprechen einfach dafür. Erstens die Genauigkeit 
und die unproblematische Anbindung ohne unnütze Softwareklimmzüge. 
Zweitens ausgehend von der schon angesprochenen RTC MAX6902, der 
verschwindend geringe Stromverbrauch, der gerade bei einem kurzen 
Stromausfall zum tragen kommt. Wobei nur ein Stützkondensator (z.B. 0.5 
F) den MAX6902 für Stunden mit der benötigten Spannung versorgt.

Das zweite Projekt, ich nenne es einfach Stoppuhr ist am besten mit 
einem Timer (8 oder 16 Bit egal) der in jedem MC eingebaut ist, zu 
realisieren. Dieser löst z.B. bei einem Nulldurchlauf einen Interrupt 
auf der dann eine globale Variable einfach um eins addiert.

#default timeStop 100;  // 100 Interrupte bis zum Stop
extern unsigned int timeCount;
...
unsigned int timeCount=0;  // 2Byte
...
timeCount++;  // Interrupt erfolgte
if (timeCount >= timeStop) { timeCount=0; /* andere Aktionen */}
...

Dieser Wert kann den z.B. auf dem Diplay ausgegeben werden. Der 
Tastenruck startet bzw. stop den Interrupt. der Vorteil einer 
Interuptsteuerung ist, dass der MC in der Zeit des zählens für andere 
Aufgaben zur Verfügung steht und nur kurzzeitig durch die 
Interruptfunktion unterbrochen wird.

Bis dann Jens (www.SynaSys.de)

von wolli_r (Gast)


Lesenswert?

Schau mal unter
tec-shop.de
dort gibts den 8 Pinner PCF8583 (Uhr mit I2C-Bus Anschluß und RAM 
Speicher). Als besonderer Leckerbissen kann der Baustein einen Sekunden 
IRQ
auslösen...
Ansonsten reichen für die Steuerung die beiden
I2C Bus Leitungen.
Das Datenblatt des Bausteins gibts bei PHILIPS.

mfg wolli_r

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.