AVR UART als 1-Wire-Bus missbrauchen, Bustreiber?

OP #3168628
Lesenswert?

Hi,

um mehrere kleine Geräte miteinander zu verbinden und zu synchronisieren 
möchte ich diese mit einem kleinen Multimaster-Bus vernetzen, welchen 
man über Klinkenkabel miteinaner verbinden kann. Klinkenkabel sind zwar 
nicht optimal aber die Steckverbindung ist einfach, klein und 3-polig, 
und sie sind schweinegünstig.

Da ich CSMA/CD realisieren möchte verbinde ich die Busleitung mit einem 
1k-Pull-Down und lege den TX-Pin meines AVR µCs über eine Diode da 
drauf. Der RX-Pin wird direkt verbunden und hört einfach mit.

Da Klinkenstecker beim Einstecken einen Kurzschluss verursachen kann es 
natürlich passieren, dass der TX-Pin über die Diode einfach mal auf GND 
liegt. Ich nehm mal stark an, das ist dem UART-Interface von meinem AVR 
nicht so besonders arg zuträglich. Ein Widerstand zur strombegrenzung 
ist zwar ganz nett aber auch nicht so das wahre, da er mir auch die 
Anstiegszeit von den Schaltflanken auf dem Bus begrenzt. Besser wäre so 
eine Art Konstantstromquelle oder eben ein Bustreiber der 50mA treiben 
kann und ansonsten kurzschlussfest ist.

Gibts da was passendes, das ich verwenden kann? Oder wäre sogar ein 
J-FET-Konstantstromzweipol geeignet? Oder soll ichs doch mit dem 
Widerstand versuchen? Die Baudrate wird nicht hoch sein.. 32kBaud 
sollten locker reichen.

lg
Gast #3168751
Lesenswert?

Dein Hauptproblem schien der Kurzschluss gegen GND beim einsteckem zu 
sein, das drehen der diode löst dieses Problem vollständig. Die 
Triebfähigkeit sollte bei moderaten Kabellängen eigtl. kein problem sein 
(der PP haut eben doch 40 mA raus) und der 1k Pullup kann bei bedarf ja 
noch etwas reduziert werden (500 Ohm geben 10 mA). Eine ksq ist glaube 
ich etwas overkill für so einen UART bus (I²C geht mit pullups ja auch 
bis 400 kHz)...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren