Hallo Forumsteilnehmer, ich vermute schon, das wird ein paar aufgerollte Fussnägel verursachen :-) Egal, ich stell die Frage mal. Direkt dazu gefunden habe ich jetzt nichts per Suche. Im Vorfeld möchte ich bitten, einmal die bekannten Lösungen ala RS485 und I2C ausser acht zu lassen. Betrachtet das einfach bitte einmal als Machbarkeitsüberlegung. Folgendes Szenario: - 8-10 uC's (Atmega 16, 32, 644p) möchten miteinander in einem 19 Zoll-Gehäuse reden (kurze Wege) - Kontext ist Hausautomatisierung, d.h. Geschwindigkeit ist kein Thema, auch die Häufigkeit hält sich damit sehr in Grenzen. Sagen wir mal 9600Bd. - TX und RX aller uC's hängen einfach parallel an EINER einzigen Leitung - Zwischen TX Pin und der EINEN Leitung ein 1k (o.ä.) Ohm Widerstand für den Fall einer Kollision (welche sehr unwahrscheinlich sein soll). - PIN TX wird auf hochohmig geschaltet, wenn die uC's nichts zu sagen haben. RX soll aber schon noch zuhören (hmm, geht das? Im Bitbang Falle sicher, aber auch bei Benutzung USART .. muss mal schauen). - Kollision wird per Protokoll abgefangen. - Multimaster Betrieb, d.h. jeder uC mag mal was von sich aus sagen wollen. Müsste doch gehen in diesem Szenario, oder mache ich hier irgendwo den entscheidenden Denkfehler? Wie gesagt, klar gibts bessere Lösungen - aber usart ist eben so schön einfach. Bitte um Euere Kommentare (bitte nett sein) ! Grüsse Axel
Multimaster schreit nach I2C oder CAN, die sind dafür gemacht. Aber wenn Du Dir unbedingt am Protokoll die Zähne ausbeißen willst, bitte. Es sind ja dann Deine grauen Haare. Für UART-TXD parallel schalten nimm besser wired AND (Dioden + Pullup). Dann hast Du einen dominanten Pegel und kannst eine Arbitrierung vornehmen. Ich hab sowas schonmal gesehen, da werden dann die Adreßbits als ganze Bytes übertragen (1 = 0xFF, 0 = 0x00) und der unterliegende Master bricht nach dem ersten falschen Adreßbit ab. Peter
Hallo, klar geht das, je nach Umgebung direkt angeschlossen oder auch mit Leitungstreiber für was auch immer, in dem Fall brauchst du halt noch einen Pin fürs Tristaten. Die meisten seriellen Schnittstellen sind allerdings bloss UARTs, besonders die im PC. Ich würde mich daher mit synchronen Protokollen garnicht erst abgeben, die machen die Sache bloss kompliziert - angefangen damit, dass du zum Mithören einen entsprechenden Analysator brauchst, für asynchron reicht Hyperterminal. Gruss Reinhard
>... in dem Fall brauchst du halt noch einen Pin fürs Tristaten. Nicht einmal das! AVRs können den TX-Ausgang intern abschalten. Schöner sind allerdings CAN-Bus Treiberbausteine zur Entkopplung, die auch nicht deaktiviert werden müßten und kollisionsfest sind. µC-Pins dirket zu verbinden, würde ich nur auf einer Leiterplatte ohne Steckkontakte machen: Stichwort ESD.
@Peter - hat sich erledigt, "wire-and" gefunden und verstanden. Danke und Gruss an alle. Axel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.