www.mikrocontroller.net

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


Autor: stepp64 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rumpelstilz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht gegen einen Blick ins Datenblatt ?

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: stepp64 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rumpelstilz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.