Ich schreibe eine einfache Softwareimplementierung von UART für mein ATtiny. Meine CPU ist nicht schnell, also sollte ich eine niedrige Baudrate wählen. Trotzdem möchte ich eine möglichst hohe Baudrate verwenden. Und ich kann die Ungenauigkeit einer Baudrate in meiner Implementierung abschätzen.
Was ist die maximal mögliche relative Ungenauigkeit einer RS-232-Baudrate für eine korrekte Kommunikation mit anderen Geräten? Definiert es der RS-232-Standard?
Ich weiß nicht, ob es eine formale Definition gibt. Aber bedenke Folgendes:
Ein RS232-Zeichen ist etwa 10 Zeichen lang (Start, 8 Bit, Stop ).
Wenn Sie nach der Hälfte eines Symbols mit der Dekodierung beginnen und Ihre Uhr um 5 % abweicht, sind Sie nach 10 Symbolen um 50 % einer Symbolbreite vom Ziel abgedriftet; dh 5 % ist der maximal mögliche tolerierbare Fehler. Und das setzt voraus, dass das andere Ende richtig getaktet ist; Wenn es einen Fehler in der anderen Richtung hätte, würden Sie es falsch decodieren.
Ein Fehler von 2,5 % in entgegengesetzte Richtungen an jedem Ende wäre also ebenfalls kurz vor dem Versagen.
Signalintegritätsprobleme, die durch die Kabellänge verursacht werden, verschlimmern dies nur noch.
Praktischerweise funktioniert also ein Fehler unter 5 % mit einer "guten" Uhr am anderen Ende und einem sehr kurzen Kabel; Für eine robuste Kommunikation benötigen Sie einen Taktfehler von weniger als 2 % und besser als diesen, um lange Kabel zu unterstützen.
Finden Sie jetzt heraus, was Ihr ATTiny kann, bei unterschiedlichen Baudraten und CPU-Takten...
geometrisch
Wouter van Ooijen
Jippie