Gast
#2424140
Hallo! Besteht die Möglichkeit über eine evtl. zusätzlich erforderliche externe Beschaltung und/oder Steuerleitungen 3 Mikrocontroller über 1 UART miteinander kommunizieren zu lassen? Gruß Max
|
Anzeige
|
3 Mikrocontroller, 1 UART
Gast
#2424140
Hallo! Besteht die Möglichkeit über eine evtl. zusätzlich erforderliche externe Beschaltung und/oder Steuerleitungen 3 Mikrocontroller über 1 UART miteinander kommunizieren zu lassen? Gruß Max Kommt darauf an... "horchen" können alle gleichzeitig, nur wer senden darf, darauf müssen die drei sich einigen. Wenn die µCs z.B. nur auf Anforderung senden, ist das kein Problem. Alternativ: Daisy-Chain. Ja, wenn dir Halbduplex reicht und du bereit bist, mit allen Vor- und Nachteilen zu leben. Du kannst alle RX miteinander verbinden und die TX-Leitungen per Vorwiderstand an den "Bus" ankoppeln. Ist dann prinzipiell wie der 1-Wire-Bus von Maxim.
Gast
#2424162
Eine möglichkeit wäre auch daisychain... Das du Daten in uc 1 schickst und der an u2 weitersendet usw. Alle in serie.. @ Max (Gast) >Beschaltung und/oder Steuerleitungen 3 Mikrocontroller über 1 UART >miteinander kommunizieren zu lassen? Nennt sich Bus, gibt es in Dutzenden Varianten, z.B. RS485. Wenn die uCs auf einer Platine oder nah beieinander sitzen, reicht auch was mit CMOS-Pegel ohne Treiber. MfG Falk
Gast
#2424971
Falk Brunner schrieb: > Nennt sich Bus, gibt es in Dutzenden Varianten, z.B. RS485. Wenn > die uCs auf einer Platine oder nah beieinander sitzen, reicht auch was > mit CMOS-Pegel ohne Treiber. Ist mir bekannt. Aber ich will die UARTs direkt verbinden, ohne Umsetzung der Physik. Und Unabhängig von der Halbleitertechnik, habe ich CMOS wie auch TTL Kurzschlüsse, wenn ich die Datenleitung einfach zusammenschließe. uartlover schrieb: > Eine möglichkeit wäre auch daisychain... Das du Daten in uc 1 schickst > und der an u2 weitersendet usw. Alle in serie.. Technisch leider nicht Umsetzbar und zweitens erhöht das die Latenz. Chris R. schrieb: > Du kannst alle RX miteinander verbinden und die TX-Leitungen per > Vorwiderstand an den "Bus" ankoppeln. Was für ein Wert ist da geeignet? 10k? Max schrieb: > Chris R. schrieb: >> Du kannst alle RX miteinander verbinden und die TX-Leitungen per >> Vorwiderstand an den "Bus" ankoppeln. > > Was für ein Wert ist da geeignet? 10k? Dann hängt der Pegel aber von der Anzahl der Teilnehmer und deren Ausgangspegel ab. Ich würde hier eher die Entkopplung über Dioden (mit einem Pulldown-Widerstand) ansetzen:
Oder halt über handelsübliche OR-Gatter...
Gast
#2425056
Mir kommt da gerade eine Idee! - Besser als Widerstände und Dioden: "Bus Buffer Gates", wie ein SN54HC125 @ Max (Gast) >Umsetzung der Physik. Und Unabhängig von der Halbleitertechnik, habe ich >CMOS wie auch TTL Kurzschlüsse, wenn ich die Datenleitung einfach >zusammenschließe. Für sowas gibt es Open Drain Ausgänge ala I2C. Oder halt mit Dioden und Widerstand. Wobei die Schaltung vom Volkmar bei RS232 nicht funktioniert. Das STOP-Bit ist HIGH, muss aber rezessiv sein. Dioden drehen und Widerstand gegen VCC statt GND, dann passt es, logisches UND. MfG Falk
Gast
#2425095
Max schrieb: > 3 Mikrocontroller über 1 UART > miteinander kommunizieren zu lassen? Definiere erstmal, was du genau willst: 3 Mikrokontroller irgenwohin senden lassen, oder jeweils einen an die anderen beiden? Das ist schliesslich ein Unterschied, auch wenn dir das offensichtlich nicht klar ist. Gruss Reinhard Volkmar Dierkes schrieb: > Ich würde hier eher die Entkopplung über Dioden (mit > einem Pulldown-Widerstand) ansetzen: Im Prinzip richtig, aber genau andersrum. Die Dioden umdrehen und den Widerstand nach Vcc schalten. Denn Rx/Tx sind im Ruhezustand "high". Bertram schrieb: > Mir kommt da gerade eine Idee! - Besser als Widerstände und Dioden: > "Bus Buffer Gates", wie ein SN54HC125 Gibt einen Kurzen und undefinierte Pegel, wenn mehrere gleichzeitig senden. Falk Brunner schrieb: > Wobei die Schaltung vom Volkmar bei RS232 nicht > funktioniert. Das STOP-Bit ist HIGH, muss aber rezessiv sein. A. K. schrieb: > Im Prinzip richtig, aber genau andersrum. Die Dioden umdrehen und den > Widerstand nach Vcc schalten. Denn Rx/Tx sind im Ruhezustand "high". Ja, Ihr habt Recht, ich hatte das Start- und Stop-Bit von den Pegeln her vertauscht. Danke fürs Korrigieren. Volkmar D. schrieb: > Max schrieb: >> Chris R. schrieb: >>> Du kannst alle RX miteinander verbinden und die TX-Leitungen per >>> Vorwiderstand an den "Bus" ankoppeln. >> >> Was für ein Wert ist da geeignet? 10k? > > Dann hängt der Pegel aber von der Anzahl der Teilnehmer und deren > Ausgangspegel ab. Ich würde hier eher die Entkopplung über Dioden (mit > einem Pulldown-Widerstand) ansetzen: > TX1 ---|>|--+----- TX-Out > | > TX2 ---|>|--+ > | > TX3 ---|>|--+ > | > - > | | > | | > - > | > GND > Oder halt über handelsübliche OR-Gatter... Mir ist klar, dass der Beitrag alt ist. Aber könnte mir bitte jemand erklären welche Funktion die Dioden an der Stelle erfüllen. Finde den Aufbau sehr interessant, nur verstehe leider nicht warum man die Dioden braucht. Vielen Dank
Gast
#5963187
Markus E. schrieb: > Finde den Aufbau sehr interessant, nur verstehe leider nicht warum man > die Dioden braucht. Damit man trotz Push-Pull Ausgangsstufen eine wired-or Verknüpfung der Signale realisieren kann. Bei Open-Source Ausgangsstufen könnte man sich die sparen. Markus E. schrieb: > Mir ist klar, dass der Beitrag alt ist. Aber könnte mir bitte jemand > erklären welche Funktion die Dioden an der Stelle erfüllen. Das ist ein Wired-AND, also eine UND-Veknüpfung. Beitrag "Re: 3 Mikrocontroller, 1 UART" Erstmal ist die Polarität der Dioden falsch. So ist es korrekt.
Im Ruhezustand haben alle TX-Ausgänge HIGH-Pegel (Stop Bit). Fängt einer an zu senden, sendet er ein Start-Bit mit LOW. Das zieht über eine Diode den Ausgang auf LOW. Das HIGH der anderen Sender stört dabei nicht, die Dioden sperren (HIGH an Kathode, LOW an Anode). Wenn der Sender fertig ist, geht auch er wider auf HIGH. Sprich, LOW wird immer aktiv (dominant) über einen TX-Ausgang und eine Diode erzeugt, high passiv (rezessiv) über den Pull-Up Widerstand. Das ist wie ein Open Drain Bus bei I2C, nur hier mit normalen, Push-Pull Ausgängen und Dioden emuliert. https://www.mikrocontroller.net/articles/Ausgangsstufen_Logik-ICs Wolfgang schrieb: > Damit man trotz Push-Pull Ausgangsstufen eine wired-or Verknüpfung der Nö, es ist Wired-AND. LOW ist dominant. >Bei Open-Source Ausgangsstufen könnte man sich >die sparen. Soso, Open Source Ausgangsstufen. Ich dacht immer, die gibt es nur in der Software . . .
Gast
#5963195
Markus E. schrieb: > Aber könnte mir bitte jemand erklären welche Funktion die Dioden an der > Stelle erfüllen. Die Dioden dienten zur Entkopplung der High-Pegel. Damit können die Ausgänge (Tx) keinen High-Pegel mehr liefern aber sehrwohl einen Low-Pegel. Der High-Pegel kommt jetzt nur noch vom gemeinsamen Pull-Up Widerstand. Der Ruhepegel bei RS232 ist High. Wenn jetzt eine Schnittstelle sendet und denn Bus auf Low zieht, braucht deren Ausgang nur den Strom für den Pull-Up Widerstand zu ziehen, die High-Pegel der anderen Ausgänge sind Dank Dioden entkoppelt da diese in Sperrichtung liegen. Herzlichen Dank @Falk für die tolle Erklärung. Hat mir sehr geholfen es zu verstehen.
Gast
#5963332
Falk B. schrieb: > Nö, es ist Wired-AND. LOW ist dominant. Bei deiner Schaltung schon. Ich bezog mich auf diese: Volkmar D. schrieb: > Ich würde hier eher die Entkopplung über Dioden (mit > einem Pulldown-Widerstand) ansetzen: Wolfgang schrieb: > Falk B. schrieb: >> Nö, es ist Wired-AND. LOW ist dominant. > > Bei deiner Schaltung schon. > Ich bezog mich auf diese: > > Volkmar D. schrieb: >> Ich würde hier eher die Entkopplung über Dioden (mit >> einem Pulldown-Widerstand) ansetzen: Welche beim UART nicht funktioniert. Jaja, der oberschlaue Wolfgang mal wieder. Bring mal in Erfahrung ob Du bei allen 3 Controllern * den UART-TX Pin als Open-Drain konfigurieren kannst * der UART einen Single-Wire-Modus unterstützt (RX = TX). Wenn beides der Fall ist wird die Hardware ganz simpel. GEKU schrieb: > Der Ruhepegel bei RS232 ist High. Nitpick: Der Ruhepegel bei UART ist high. Bei RS232 sind die Signale invertiert gegenüber UART, damit wäre das die negative Spannung... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|