www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 1-Draht und 1 Pin


Autor: Rangi Jones (rangi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rangi Jones (rangi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@docean
das war ja ma wohl nix, wa. auf die bloede idee bin ich auch gekommen. 
wie waere es denn ma mit richtigen antwort?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal die AppNotes zu 1-Wire an, da ist das diskutiert wie man 
das am besten löst.

HTH

Autor: Rangi Jones (rangi)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: alexander v. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vllt. kann man auch vom master regelmässig alle µC timen (pinchange-int) 
und dann bekommt jeder Slave (einer nach dem anderen) ein bestimmtes 
zeitfenster was zu senden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.