Hallo, ich habe nur noch von meinem uC 1 UART-PORT frei und möchte über diesem Port mit 2 Geräte kommunizieren? wie geht das denn? (biete auch mit Schaltung wenn Möglich) MfG
musst du tatsächlich gleichzeitig mit beiden kommunizieren, oder reichts wenn du einmal mit dem einen, und dann mit dem anderen redest? dann könnstest du einfach die tx-leitung muxen(multiplexing, wenn du danach googlen möchtest) wenn du tatsächlich mit beiden gleichzeitig reden musst, ev. eine port-erweiterung, mir fällt gerade keine echt-dau-fähige lösung ein bis auf eine software-uart zu bauen. ev. einen zweiten uC nehmen, oder einfach einen größeren uC nehmen lg Azrael
Hallo, ich will nicht gleichzeitig mit den beiden Geräten Kommuzieren! ich habe mir ein Art arbitrierung gedacht, (dh im Zustand 0 ist der einer Dran und im Zustand 1 dann der anderer!) freue mich auf jede Hilfe MfG
du kannst mit dem 9. Bit (Parity) ein Adressbit basteln, also wenn dies gesetzt ist, überträgst du eine Geräteadresse. Das ganze funktioniert natürlich nur, wenn du die beiden anderen Geräte dementsprechend programmieren kannst.
Hallo, Also was meinst du KONKRETT! SO:--> ich will der 1 UART-PORT der mir noch bleibt 1x mal als Normal UART-PORT betreiben und ein anderes mal an ein USB anschließen. so daß der Anwender die beide Option über diesem einzigen PORT hat! MfG
Die einzige Möglichkeit 2 Geräte zu bedienen ist eine Umschaltung mittels MUX. 2:1 MUX an RX und an TX anschalten und mit einer Leitung steuern. Ansosnten versaust du dir die Pegel und die Kommunikation ist hin. (Pegel,Puffer,...) Alles andere ist a) zu aufwendig und b) eine Misshandlung der Schnittstelle. Die MUX-Variante (2 mal 2:1) kommt gerade mal mit 2 zusätzlichen IC's aus (z.B. 1x74LS157 und 1xMAX232 für die Pegel falls du es brauchst).
Servus, Wenn Du nur eine unidirektionale Kommunikation benötigst, ist das ganze recht einfach, indem Du irgendein Bit als Adressbit nutzt. Wenn Du eine bidirektionale Kommunikation benötigst, sollten die TX-Leitungen der Empfänger als Open Drain Ausgänge ausgelegt werden, denn sonst ziehen die sich gegenzeitig die Signale kaputt. Es gibt schon fertige Open Drain Treiber für solche Anwendungen, such mal nach 74LVC1G07. Gruß Alexander
Vom Prinzip her geht das natürlich. Da kann man auch 2 Bytes schicken 1.Byte = Adresse und 2.Byte = Daten. Doch vorsicht, keine Flusssteuerung und Fehlererkennung möglich und Werte zurückgeben geht auch nicht, was du ja sicherlich bei nem USB machen möchtest.
Hatte das Problem auch schon mal, nach etwas Überlegen bin ich mit 2 zusätlichen Pins und 2 Widerständen ausgekommen: _ UART_out-o-|___|-------o--- Out1 | | | _ | '-|___|--o----)--- Out2 | | | | Pin1----------' | | Pin2---------------' Über die Konfiguration der Pins (hochohmig/niederohmig) lässt sich festlegen welcher out angesprochen werden soll (oder sogar beide) Beim Empfang musst du dir auch noch was einfallen lassen.
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.