1-Draht und 1 Pin

#1621115
Lesenswert?

Hallo Forum !

Für meine Applikation würde ich gerne einen Datenaustausch zwischen 
mehreren unterschiedlichen ATTinys (Slaves) und einem ATMega168 (Master) 
umsetzen. Es sollen je nach Einsatzort unterschiedliche Slaves verwendet 
werden, die kleinsten sind Tiny25.
Das Problem ist, das ich möglichst viele Port-Pins frei haben möchte. 
Deshalb möchte ich nur ein Portpin zur Kommunikation verwenden. Die 
Datenleitung wird zentral mit einem Pull-Up-Widerstand versorgt und 
jeder Slave kann die Datenleitung auf GND ziehen, wenn er Senden darf.
Das funktioniert super wenn ich das Port-Pin auf Eingang stelle und dann 
auf dem Bus zuhöre. Zum Senden wird das DDR umgeschaltet und 0 
ausgegeben.
Um die Störsicherheit zu erhöhen würde ich gerne den zentralen Pull-Up 
verkleinern. Das bedingt jedoch einen Transistor (oder Treiber), der den 
höheren Strom am Slave vertragen kann. Jedoch kann der Transistor jetzt 
nicht unterscheiden zwischen Senden und Empfangen.
Gibt es da irgend eine Schaltung oder einen Treiberschaltkeis, der 
automatisch erkennt, ob der µC-Ausgang Tristate hat und umgekehrt auch 
die Daten von aussen zum µC weiterleitet?
Randbedingungen: 5V-System, kein Stromsparen, sehr wenig Platz, Buslänge 
bis zu 3m, Datenrate 57600Baud (angestrebt, wenns nicht geht, dann muss 
es halt langsamer laufen), all zu teuer sollte es auch nicht werden

vielen Dank
#1621203
Lesenswert?

Ja, warum bin ich da nicht selber drauf gekommen. Einfach knallhart 
senden wenn man dran is. Da kann der Pull-Up relativ gross sein (1k) da 
er ohnehin nur benoetigt wird wenn keiner sonst sendet. Das Risiko einer 
Buskollision muss ich dann halt versuchen per Protokoll zuverringern.
Das werde ich mal testen und schauen wie lang und schnell mein Bus 
werden kann.
Gast #1621208
Lesenswert?

RS232 als OC mit 9bit Datenbit, wobei bit9 gesetzt = adressierung,
sowie CRC und Errorsignalisierung im Stop-Bit wie auch CSMA/CA oder
CSMA/CR. Aktiver pull-up, bei i2c kennt man sowas, mit einem 4066, der
einen stärkeren pull-up schaltet, geht recht gut und ist billig.
Ansonsten,
Use a current mirror.
Use a resistor to a higher voltage and a clamping diode to VDD 
(schottky).
LTC4311 could be used.

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