Hallo, der PIC 16F886 hat ja einen internen Osszilator, den man auf 8MHz einstellen kann. Ich habe nun vor, diesen PIC in einer Schaltung zu verbauen, welche die Uhrzeit anzeigen soll, eine RS232 und eine I2C Schnittstelle hat. I2C dürfte ja kein Problem sein. Tests mit RS232 9600bps ergaben bisher ebenfalls keine Fehler. Aber was ist mit der Uhr? Wie genau ist der interne Osszilator? Man kann ihn ja auch noch über ein Tuningregister in gewissen Grenzen einstellen. In einer späteren Ausbaustufe soll das Gerät stündlich die Uhrzeit von einem DCF77-Empfänger erhalten. Ich würde trozdem gerne wissen mit wie vielen Sekunden/Minuten Gangabweichung ich am Tag rechnen muss. Externer Quarz ist schlecht, da ich alle Pins des PIC schon verbraten habe. Sven Ach ja, das Gerät kommt in eine Gartenlaube. Ist also Temperaturschwankungen zwischen ca. -10°C und 40°C ausgesetzt.
Der interne Oszillator ist für eine Uhr zu ungenau, ich glaube so 1%, aber wie Rumpelstilz geschrieben hat: Datenblatt. Wenn Du ein DCF77-Signal zur Verfügung hast, kannst Du dort den Bit-Takt (1 Hz) verwenden. Der ist sehr genau, und den hast Du ohnehin an einen Pin gelegt.
@Rumpelstilz: Meine schlechten Englischkenntnisse? ;-) Ne mal im ernst. Ich hab mich schon versucht durch das Datenblatt zu hangeln, hatte aber in dem Abschnitt über den Osszilator nichts dazu gefunden. Nun nochmal genau geschaut und siehe da ein Hinweis auf Figur 17-2. Demnach schwingt der Osszilator zwischen 0° und 40° mit ca. 1% Genauigkeit. Unter 0° mit 5%. Den DCF-Takt werde ich nicht in dem Gerät in der Gartenlaube zur Verfügung haben. Ich plane ein Projekt in dem Alarmanlage, Brandmelder und Fernschaltmöglichkeit von Verbrauchern alles in mehreren vernetzten Geräten zusammenarbeitet. Es wird mehrere Schalt- und Sensoreinheiten geben, welche alle von einer Hauptsteuerung aus bedient werden können sollen. Verbunden sind die Geräte über RS485 (ca. 30m Entfernung). Der DCF-Empfänger soll nur in der Hauptsteuerung sein, welche aber stündlich ein Signal an alle Scahlteinheiten schickt, welche dann ihre Uhrzeit synchronisieren. Ich wollte halt nur Erfahrungen sammeln, wie stark die Abweichung in einer Stunde bei den Schalteinheiten ist. Kommt aber auch nicht auf 2-3 Sekunden an. Gruß Sven
Wenn's drum geht die anderen einheiten solange schlafen zu legen... Ich wuerd von 2% aufgehen, und 2% vor der vollen Stunde zu warten beginnen. Eine moeglichkeit waere auch die Geraete auf gleichlauf zu pruefen. Und den Master, der mit der Uhr, auf die Uhr zu synchronisieren, heisst am Internen RC zu drehen bis der mit der Uhr uebereinstimmt, und dann mit der Uhrenabgleich-Nachricht allfaellige Aenderungen des RC zu uebermitteln, sofern alle Einheiten dieselbe Temperatur haben.
Eine Möglichkeit ist auch, die Taktfrequenzabhängigkeit von der Temperatur zu messen, einen Thermosensor anzuschließen und den Teiler für die Uhr dann abhängig davon anzupassen. Thermosensor z.B. ganz einfach an einen I/O-Pin mit Komparatoreingang einen NTC zu VCC und einen Kondensator zu VDD. Pin normalerweise als Eingang (dann fließt auch kein Strom über Widerstand und Kondensator - okay, höchsten Leckstrom). Einmal pro Messung (einmal pro Minute?) auf Ausgang schalten, Ausgang auf High setzen, lange genug warten, bis sich der Kondensator fast vollständig aufgeladen hat, dann wieder auf Eingang schalten und die Zeit bis zum Durchgang durch die Referenzspannung messen. So weit die prinzipielle Beschreibung ohne Dimensionierung. Diese Schaltung muss auch über die Temperatur kalibriert werden, weil ja nicht nur NTC sondern auch der Oszillator (und damit der Zeitmesser) sich darüber ändert! virtuPIC
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.