www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Auf UART Port zugreifen


Autor: Markus N. (Gast)
Datum:

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

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann man ganz einfach mit RS485- oder CAN-Transceivern machen.
Bei den meisten (allen?) RS485-Transceivern kann man den Sende- und den
Empfangskanal einzeln freigeben.

Autor: Markus N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ich will das halt am besten direkt mit nem µC machen ohne noch ein
extra Bauteil.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wirst du alles (wirklich alles) zu Fuß machen dürfen.
Lass nur mal zwei Master unterschiedliche Pedel auf die Leitung geben:
da raucht es!

Autor: Daniel M. (usul27)
Datum:

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

Autor: Markus N. (Gast)
Datum:

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

Autor: Rahul (Gast)
Datum:

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

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.