PIC und Takterzeugung

Gast #274794
Lesenswert?

Hallo!

Ich plane zwei PIC16F877 einzusetzen, die über eine längere
Datenleitung mit etwa 10-100kbit/s kommunizieren sollen. Dabei kann es
möglich sein, dass auf beiden Seiten Temeparturunterschiede von etwa
30° herrschen.

Kann ich damit zur Takterzeugung immer noch auf die interne
zurückgreifen, oder bieten externe Quarze eine höhere Genauigkeit? Als
Geschwindigkeit reichen 4MHz aus.

Gruß,
Rainer
Gast #274796
Lesenswert?

Die Quarze kriegst Du niemals synchron, egal wie die Temperatur ist. Der
Drift (Abweichungsgeschwindigkeit) ist immer zu hoch; selbst sauteure
Quarze müssen nach einer gewissen Zeit nachsynchronisiert werden. Der
interne Oszillator besteht nur aus Widerstand und Kondensator, und hat
eine sehr schlechte Genauigkeit; ist eigentlich nur für Projekte
geeignet wo das Timing nicht besonders kritisch ist. Selbst billige
Quarze sind viel genauer.

Du solltest den Takt auf jeden Fall mitübertragen. Kommt auf das
Protokoll an, welches Du verwendest; bei I2C hast Du eine separate
Taktleitung, aber es gibt auch selbsttaktende Codes, wie sie z.B. bei
Ethernet benutzt werden; da brauchst Du keine eigene Taktleitung.

Wie lang soll das Kabel denn sein? Vielleicht ist I2C durchaus
geeignet.
#274797
Lesenswert?

Hallo Kowalkowski!

Danke für die Antwort. Das mit dem Timing der Taktgeber habe ich mir
schon gedacht. Nachsynchronisieren ist auf jeden Fall notwendig.

Ich wollte nur auf den EUSART zugreifen, der im PIC enthalten ist. Auf
eine eigene Taktleitung wollte ich verzichten, da nachher die Daten
über RS-485 übertragen werden, und somit zwei Leitungen weniger
anfallen. Da bei jedem übertragenen Byte synchronisiert wird, dürfte
eine Taktabweichung nicht so ins Gewicht fallen.

Die Kabellänge soll 10m sein.

Dann werde ich auf einen externen Taktgeber zurückgreifen. Welche sind
denn gut und günstig bis 4MHz?

Gruß,
Rainer
#274800
Lesenswert?

So wie es aussieht, werde ich bei 4MHz Takt bei 19.2kbit/s landen mit
einem Fehlerprozent von 0.16. Das reicht immerhin für geplante 600
Aktualisierungszyklen pro Sekunde. Wenn es dann technisch noch
funktionieren sollte - in der Klimakammer unter der Höhensonne - dann
kann ich noch in der Übertragungsrate höher gehen.
Gast #274801
Lesenswert?

Du könntest auf einen PIC18F umsteigen, die laufen bis zu 10x schneller
(40Mhz).

Ich weiß ja nicht welche Daten Du übertragen willst, aber Du könntest
evtl. auch eine intelligente Komprimierung einbauen. Wenn sich die
Werte nicht extrem schnell ändern kann man z.B. so Sachen machen wie:
Absolut Wert übertragen (z.B. 32 Bit), danach 50x nur noch relative
Änderungen (8 Bit), dann wieder Absolut Wert usw. Wenn die Werte nicht
sehr stark schwanken, kann man mit so Verfahren die Übertragungsrate
recht einfach verdoppeln oder verdreifachen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren