Bitte nur eine RTC Lösung!

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Bitte nur eine RTC Lösung!

Beitrag von drohne235 »

Wenn möglich empfehle ich einen Typ im DIL-Gehäuse, damit wir irgendwo beim "Küchentischdesign" bleiben können.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Janaha
Beiträge: 213
Registriert: Fr 29. Mai 2009, 08:30

Re: Bitte nur eine RTC Lösung!

Beitrag von Janaha »

TuxFan hat geschrieben:Hallo !

Sowas hatte ich auch im Auge. Nur muß man hier aufpassen wenn man eine Erweiterungsplatine am Bus anschließt und diese parallel mit Abstandshaltern (siehe die vorgegebenen Bohrungen) montiert. Nimmt man in der Hive-Platine die vorgesehene Stiftleiste für den Bus und an der Erweiterungsplatine die normale dazugehörige Buchsenleiste zum einlöten hat man ca. 8-10 mm Abstand zwischen den Platinen.

Gruß Günter

PS.:
Welche RTC wird denn genommen ?
DS1307, mit der Janaha schon Erfahrungen gesammelt hat, oder eine andere ?
Muß noch was bei Reichelt bestellen und könnte die RTC gleich mitbestellen.
Ich habe mich erst für den DS1337 Chip interessiert, weil er entgegen dem DS1307 nicht über 56 Byte Ram sondern zwei Timer mit Alarmfunktion beinhaltet. Habe dann aber doch den DS1307 Chip genommen, weil er angeblich unproblematischer sein soll. Der DS1337 braucht einen ganz bestimmten Quarz, den Reichelt wohl nicht im angebot hat. Wenn ihr euch da was bestellt, schaut unbedingt ins Datenblatt ! Diese Uhrenquarze haben da nicht nur eine Taktfrequnz angegeben, sondern auch eine Kapazität. Die muss unbedingt zu der Kapazität passen die der Uhrenchip vordert. Sonst läuft die Uhr nacher nicht genau !

Siehe da zum Beispiel:
http://www.mikrocontroller.net/topic/87691

Die Schaltung aus dem Beispiel habe ich mal eben schnell zusammen gestellt. Es handelt sich im Grunde genommen nur um eine Minimalversion der EEPROM- Adapterplatine. Bei näherem draufschauen kann man da noch einiges verbessern. Wenn man zum Beispiel den Steckplatz für den Hive- Anschluss dreht, kann man die Platine spähter besser neben dem Hive Platzieren. Für eine Monatge auf dem Hive direkt, müsste man wie Du schon schriebst die Positionen der Einzelteile über dem Hive nochmal näher untersuchen.

Grüße
Janaha
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Bitte nur eine RTC Lösung!

Beitrag von drohne235 »

Die muss unbedingt zu der Kapazität passen die der Uhrenchip vordert. Sonst läuft die Uhr nacher nicht genau !
Wieder was dazugelernt. :) Man kann auch ein wenig Platz für einen Keramik-Trimmer-C lassen, dann kann man die Frequenz noch ein wenig abgleichen.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Janaha
Beiträge: 213
Registriert: Fr 29. Mai 2009, 08:30

Re: Bitte nur eine RTC Lösung!

Beitrag von Janaha »

drohne235 hat geschrieben:
Die muss unbedingt zu der Kapazität passen die der Uhrenchip vordert. Sonst läuft die Uhr nacher nicht genau !
Wieder was dazugelernt. :) Man kann auch ein wenig Platz für einen Keramik-Trimmer-C lassen, dann kann man die Frequenz noch ein wenig abgleichen.
Ja das geht wohl. Nur leider habe ich kein Osziloskop um das Schwingen des Quarzes nachmessen zu können. Bei mir muss es da dann leider auf Anhieb richtig klappen.

Oh und da gibts noch ne schwierigkeit. Wenn man mit der Testspizte des Osizis auf einen Pin des Quarzes tipt um die Schwingung am Osziloskop zu sehen, dann verändert man damit leider auch die anliegende Kapazität und damit das Schwingverhalten. Das macht eine Abstimmung wohl ziemlich schwierig. Evtl. kann man sich am DS1307 den Taktausgang zu nutze machen, denn die abstimmung direkt am Quarz klappt bei den dort verwendeten kleinen Kapazitäten nicht bei einer direkten Messung. So hab ichs in einem der vielen "mein RTC läuft nicht genau" Threads irgendwo gelesen.
Es soll auch RTC's mit fertig abgestimmten eingebauten Quarzen geben. Die habe ich nur bei Reichelt leider nicht gefunden.

Grüße
Janaha
Janaha
Beiträge: 213
Registriert: Fr 29. Mai 2009, 08:30

Re: Bitte nur eine RTC Lösung!

Beitrag von Janaha »

Einen kleinen Vorschlag hätte ich noch anzubieten.

Dem größten Teil des Betriebssystemes sollte es nacher total egal sein, welche Art von Uhrenbaustein verbaut wird. Trennt die Ansteuerung der Hardware von der Funktion die einem beliebigen anderen Programm die aktuelle Zeit gibt und zieht dort eine einheitliche Schnittstelle zwischen dem Betriebssystem und der Hardware ein. So kann man dann spähter einfacher den Hardwaretreiber an einen beliebeigen RTC- Chip anpassen und braucht nicht gleich das halbe Betriebssystem neu schreiben.
Die Schnittstelle bräuchte in Richtung Hardware ja erstmal nur 2 wichtige Methoden zur Verfügung stellen:
- Eine Uhrzeit & Datum setzen
- Die aktuelle Uhrzeit & Datum auslesen.
Evtl. kann man noch ein paar Comfortfunktionen dazu bauen:
- Uhrzeit auslesen
- Datum auslesen
- Uhrzeit setzen
- Datum setzen
Aber im Grunde genommen kann das auch die Schnittstelle richtung Anwenung auf die ersten beiden Methoden umsetzen.

So könnte man zum Beispiel auch vor den Anwendungen verbergen, an welchem der 3 Propeller die Uhr wirklich angebunden ist. Auf den beiden Chips, wo die Uhr halt nicht ist, hat der Hardwareteiber halt nicht die Aufgabe den I2C-Bus zu steuern sondern den 3. Propeller an dem die Uhr hängt nach der korrekten Zeit/Datum etc. zu fragen.

Grüße
Janaha
Benutzeravatar
laserjones
Beiträge: 291
Registriert: Fr 19. Jun 2009, 10:38
Wohnort: Hennef
Kontaktdaten:

Re: Bitte nur eine RTC Lösung!

Beitrag von laserjones »

Trennt die Ansteuerung der Hardware von der Funktion die einem beliebigen anderen Programm die aktuelle Zeit gibt und zieht dort eine einheitliche Schnittstelle zwischen dem Betriebssystem und der Hardware ein.
Sehr guter Vorschlag. Die Zeitquelle sollte komplett transparent sein: RTC-Chip, LAN-Zeitserver, Internet-Zeitserver, DCF77-Modul, Sonnenuhr ... :lol:
Momentan ist richtig, momentan ist gut – nichts ist wirklich wichtig, nach der Ebbe kommt die Flut. (Herbert Grönemeyer)
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Bitte nur eine RTC Lösung!

Beitrag von Rainer »

Wie gesagt .. ich hatte mal den DS1340 am Hive im Einsatz. Den kann man z.B. per Software kalibrieren, hat einen eingebauten Quarz, eingebaute Ladeschaltung für Akkus .. nur wie gesagt, schwer zu kriegen (und nebenbei auch noch SMD ... was mir zwar bei einem 8-Pinner egal ist, aber durchaus Leute in den Wahnsinn treiben kann).

Hier ein paar Specs aus dem Datenblatt:


♦ Available in a Surface-Mount Package with an
Integrated Crystal (DS1340C)
♦ Fast (400kHz) I2C Interface
♦ Software Clock Calibration
♦ RTC Counts Seconds, Minutes, Hours, Day, Date,
Month, and Year
♦ Automatic Power-Fail Detect and Switch Circuitry
♦ Trickle-Charge Capability
♦ Low Timekeeping Voltage Down to 1.3V
♦ Three Operating Voltage Ranges (1.8V, 3V, and 3.3V)
♦ Oscillator Stop Flag
♦ Available in 8-Pin μSOP or SO Packages

Gruß.
Rainer
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Janaha
Beiträge: 213
Registriert: Fr 29. Mai 2009, 08:30

Re: Bitte nur eine RTC Lösung!

Beitrag von Janaha »

Oh ja ganz wichtig der Punkt hier:

♦ Three Operating Voltage Ranges (1.8V, 3V, and 3.3V)

Der I2C- Bus des Hives läuft "nur" mit den 3.3 Volt des Propellers, das muss man bei der Chipwahl unbedingt beachten !

Grüße
Janaha
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: Bitte nur eine RTC Lösung!

Beitrag von Rainer »

Zum Thema Metalayer:

Man könnte doch z.B. in das IOS JEDES Propellers einfach mal eine Routine einbauen, die den RTC abfragen KÖNNTE, wenn denn da einer angeschlossen ist.
Der, der keinen hat Antwortet halt dementsprechend, der andere liefert die Uhrzeit. Der Anfragende fragt halt jeden ab bis er ein Ergebnis kriegt (und wenn er es selber ist).

So wäre es egal, wo die RTC angeschlossen ist.

Mit der "Cog"-Anfrage mache ich es ja eigentlich fast schon so .. ich polle jeden Propeller und sammel die Werte ... würde da jetzt einer nicht reagieren, fehlt halt einfach der Wert .. die Routine und die IOS-Abfrage ist aber überall die gleiche.
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: Bitte nur eine RTC Lösung!

Beitrag von drohne235 »

und zieht dort eine einheitliche Schnittstelle zwischen dem Betriebssystem und der Hardware ein.
Das genau macht das IOS. :) Und genau da gehören deine Time-Routinen rein. So funktioniert es ja prinzipiell schon. Wenn man mit print eine Zeichenausgabe macht, kann dem Programm egal sein ob in Bellatrix der TV oder der VGA-Treiber läuft. Und genau so mit dem RTC - solange man den über die IOS-Routinen anspricht, kann es der Anwendung egal sein wo genau der Chip sitzt. Das einzige was noch zum Glück fehlt ist eine Möglichkeit zur bedingten Compilierung, aber vielleicht haben wir ja mal einen SPIN-Compiler auf dem Hive der das kann.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Antworten