Forum: Mikrocontroller und Digitale Elektronik Baudrate Fehlerbetrachtung - weniger anfällig wenn langsamer?


von schalt (Gast)


Lesenswert?

Ich möchte gerne Daten zwischen 2 AVRs übertragen und die UART 
verwenden, auch ohne Pegelwandler, einfach RX mit TX verbinden.

Nun die Frage: an beiden ist keine Quarz - der Takt kann also leicht 
abweichen. Hilft es mir, eine langsame Baudrate zu verwenden, oder 
wandert der Fehler mit?

Was kann ich alternativ tun? UART deswegen, weil ich mich durch den 
Eingangspuffer während der Übertragung softwareseitig nicht darum 
kümmern muss..

von Fietz (Gast)


Lesenswert?

schalt schrieb:
> Hilft es mir, eine langsame Baudrate zu verwenden, oder
> wandert der Fehler mit?

Der Fehler wandert mit.

schalt schrieb:
> Was kann ich alternativ tun?

Wenn Dein Taktgenerator zu instabil ist, kannst Du z.B. beide µCs mit 
einem gemeinsamen Takt versorgen.

von Stefan (Gast)


Lesenswert?

Für den Fehler ist die Baudrate egal. Eine Taktdifferenz bis 1.5%, ev. 
auch 2% toleriert der Uart. Je nach AVR wird das sehr knapp. Theoretisch 
ist es möglich, die AVRs zu synchronisieren (über die Zeitmesung eines 
definierten UART-Signals), aber nicht ganz untrivial.

Gruß, Stefan

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Du kannst Takt und Daten synchron übertragen. Dann holt sich der 
Empfänger den Takt aus der Schnittstelle. Eine asynchrone Übertragung 
(RS-232 über UART z.B.) setzt einfach eine Stabilität des Taktsignals 
auf beiden Seiten voraus.

von schalt (Gast)


Lesenswert?

Fietz schrieb:
> Wenn Dein Taktgenerator zu instabil ist, kannst Du z.B. beide µCs mit
> einem gemeinsamen Takt versorgen.

Ja, geht theoretisch, aber den muss ich dann immer laufen lassen. Ist 
eher eine Lösung, wo 3 verschiedene AVRs einem vierten (Empfänger) etwas 
sagen sollen, ohne dass der Empfänger dauernd abfragt.

Ich würde einfach mehrmals senden, und im Empfänger vergleichen, ob 
mehrmals das Gleiche angekommen ist, falls sich die Sender überschneiden 
(unwahrscheinlich).

Evtl. ist SPI sogar besser geeignet, dann brauche ich auch eine Leitung 
mehr, aber es gehen nur bei Aktivität Daten über die Leitung.

von Marian (phiarc) Benutzerseite


Lesenswert?

schalt schrieb:
> Evtl. ist SPI sogar besser geeignet, dann brauche ich auch eine Leitung
> mehr, aber es gehen nur bei Aktivität Daten über die Leitung.

SPI / synchroner UART vermeiden durch die Übertragung des Takts v.a. 
Probleme mit ungenauen Systemtakten.

von Fietz (Gast)


Lesenswert?

schalt schrieb:
> Ich würde einfach mehrmals senden, und im Empfänger vergleichen, ob
> mehrmals das Gleiche angekommen ist, falls sich die Sender überschneiden
> (unwahrscheinlich).

Das sollte gut funktionieren. Deine UART muss dann aber mit Verletzungen 
des Übertragungsrahmens klarkommen.

Der gemeinsame Takt kann ja auch von Deinem Empfänger kommen, der 
vielleicht immer läuft.

von Pandur S. (jetztnicht)


Lesenswert?

Ich wuerd alle AVR synchron laufen lassen, dh gemeinsamer clock

von H.Joachim S. (crazyhorse)


Lesenswert?

Gab hier mal Peter Daneggers one-wire-Bus, finde es gerade nicht. 
Benötigt nur einen Timer und einen beliebigen Pin.

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.