Auf UART Port zugreifen

Gast #347363
Lesenswert?
• ▲
▼
Hi.
Möchte das in C schreiben also bitte keine ASM Tipps.
Arbeite mit AVR ATMegas.
Ich möchte eigentlich einen Bus der über eine Leitung mit sovielen
Mastern wie benötigt funktioniert.

Kann ich dafür nicht die schon bestehende UART Schnittstelle zu hilfe
nehmen?
Meine eigentliche frage ist ob ich den UART Empfangs PIN per PINX
trotzdem noch abfragen kann obwohl ich die UART Schnittstelle schon
initialisiert hab? Ausserdem müsste ich wenn ich z.B. bei einem
ATMega16 die UART RX und TX zusammen auf eine Leitung lege die Leitung
auf RX dann abschalten wenn der µC selbst sendet bzw. diese Daten
einfach ignorieren.

Hat jemand damit schon erfahrung oder ist so ein Protokoll vielleicht
schon vorhanden und ich  kann mir die ganze Arbeit sparen?

Ziel ist es z.B. "innerhalb eines Gerätes" mehrere µCs miteinander zu
verbinden (z.B. einen für LCD Dislplay, einen für Berechnung und einen
für IN unt OUTs). Auch mein Haus möchte ich damit vernetzen, also nicht
nur innerhalb eines Gerätes. Ausserdem (und deswegen möchte ich nur
einen Draht) sollte es auch per Funk übertragbar sein.
#347367
Lesenswert?
• ▲
▼
So einfach nur mit UART klappt das nicht, denn das ist erstmal kein
Bussystem. Man könnte für so etwas z.B. einen i2C Bus benutzen. Deine
Anforderungen sind aber auch sehr ausgeweitet, denn für die
Hausvernetzung und Funk nutzt man ganz andere Techniken als in der
Kommunikation zwischen Bauteilen, die nahe beieinander sind.

Übrigens hat auch der UART 2 "Drähte", nämlich Senden und Empfangen.
Gast #347368
Lesenswert?
• ▲
▼
Jap ich weiß das UART 2 Drähte hat. Deswegen meine Frage ist es möglich
das ich RX und TX zusammenschalte oder mach ich mir dabei den µC
kaputt? So könnte ich ganz leicht alles über eine Leitung machen.
Vielleicht eine Diode vor den TX des µC schalten. Wenn der µC selber
Sendet dann wird der UART Interrupt einfach ignoriert bzw. für die Zeit
ausgeschalten. Wenn nicht dann bleibt er an und kann so etwas empfangen.
Ausserdem meine Frage und wäre super wenn sie mir jemand beantworten
würde ob ich auf den PIN des RX (per C Code PINx) zugreifen kann obwohl
ich UART schon aktiviert habe? So kann ich eine Kollissionsüberprüfung
realisieren. Das heisst wenn ein anderer sendet muss der µC eben warten
(das würde ich mit nem PIN Befehl realisieren).
Bitte dringend um die Antworten.
Gast #347369
Lesenswert?
• ▲
▼
Man kann natürlich einen Eingang mit einem Ausgang zusammenschalten.
Deine 1-Wire-UART könnte man auch dadurch realisieren, indem man einen
Open-Kollektor-Treiber benutzt und den H-Pegel durch einen
Pull-up-Widerstände erzeugt.
Der Treiber sollte aber keine invertierende Funktion haben, weil sonst
der Empfang nicht mehr klappt. Ich habe sowas mit einem 75sz125 mal
gemacht.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.