Hab gerade den max1487 erfolgreich am laufen. Daher kurz folgendes
beachten:
- Wenn du den max485 auf transmit setzt, dann schicke gleich mal zwei
0x00 Bytes vorweg, damit die nachfolgenden Start/Stop-Bits korrekt
erkannt werden können. Das produziert schlimmstenfalls einen oder zwei
Frame-Error beim Empfänger, aber dafür kommt der Rest dann auch an.
z.B. bei DMX wird auch erstmal für eine bestimmte Zeit (88µS?) die
Leitung auf einen festen Pegel gesetzt, zum einen für die Startkennung,
zum anderen eben um die StartBits sauber erkennen zu können.
- Wenn du Daten in UDR raufschiebst ist die Verwendung von UDRIE
optimal, damit die nächsten Daten bereitgestellt werden noch bevor das
vorangegangene Byte abgesetzt wurde. Aber eben nicht um nach dem letzten
Byte den transciever wieder umzuschalten...
- ,denn du musst auch TXCIE nutzen um beim letzten zu sendenden Byte den
transciever auf "recieve" umzuschalten, NACHDEM das letzte Byte komplett
inkl. Stop-Bit abgesetzt wurde.
- Verdrahtung mit ordentlichem Massebezug und Terminierung (2x120Ohm)
vorrausgesetzt...
Hinweis zu TXCIE und UDRIE. TXCIE ist flankengesteuert und kommt nur
einmal nachdem ein Byte erfolgreich gesendet wurde, aber UDRIE blockiert
so lange, bis man entweder ein neues Byte in UDR schiebt oder eben UDRIE
deaktiviert.
Meine Lösung ist momentan nicht dolle und für 9Bit, aber tut. Ggf. kann
ich sie dir schicken.