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
Bitte entschuldigt mein Doppelposting. Leider muss ich noch eine Korrektur anfügen. Beim dem PIC handelt es sich um einen PIC16F687. Falsches Projekt ;-)
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.
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
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
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.