Forum: Mikrocontroller und Digitale Elektronik Int. Osszillator bei PIC16F886: Genauigkeit?


von stepp64 (Gast)


Lesenswert?

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.

von Rumpelstilz (Gast)


Lesenswert?

Was spricht gegen einen Blick ins Datenblatt ?

von Severino R. (severino)


Lesenswert?

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.

von stepp64 (Gast)


Lesenswert?

@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

von Rumpelstilz (Gast)


Lesenswert?

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.

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

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
Noch kein Account? Hier anmelden.