Forum: Mikrocontroller und Digitale Elektronik PIC und Takterzeugung


von Rainer (Gast)


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

von Rainer (Gast)


Lesenswert?

Bitte entschuldigt mein Doppelposting.

Leider muss ich noch eine Korrektur anfügen. Beim dem PIC handelt es
sich um einen PIC16F687. Falsches Projekt ;-)

von Kowalkowski (Gast)


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.

von Rainer S. (rainersp)


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

von Kowalkowski (Gast)


Lesenswert?

Da kannst Du einen gewöhnlichen Keramikschwinger von Reichelt nehmen;
wenn Du mehr wissen willst, schau mal hier:

http://www.sprut.de/electronic/pic/osc/index.htm

von Rainer S. (rainersp)


Lesenswert?

Danke! Da bin ich auch eben fündig geworden. Muss mal nur noch schauen,
bei welcher Datenübertragungsrate bei dem PIC die geringsten
Fehlerprozente vorhanden sind.

von Rainer S. (rainersp)


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.

von Kowalkowski (Gast)


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.

von Rainer S. (rainersp)


Lesenswert?

Die Daten sind nur 8 Bit groß, da lohnt sich keine Komprimierung. Die
werden 1:1 übertragen und dann direkt zur Anzeige gebracht, ohne
weitere Verarbeitung.

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.