- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 7 von 7

Thema: Zwei Geräte an einem UART

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    33
    Beiträge
    460

    Zwei Geräte an einem UART

    Anzeige

    E-Bike
    Hi,

    ich verwende in einem Projekt den ATmega328 (8MHz, 3.3V) mit dem Arduino Bootloader, damit ich ihn über die serielle Schnittstelle (bzw über USB mit einem ftdi) programmieren kann.
    Das programmieren über UART funktioniert nur mit dem hardware-uart.
    Außerdem will ich das WLAN Modul ESP8266 verwenden, das ich wegen der deutlich höheren Geschwindigkeit auch am Hardware UART verwenden will.

    Funktioniert das prinzipiell? Ich habe es folgendermaßen verschalten:
    uC RX -> WLAN TX, FTDI TX
    uC TX -> WLAN RX, FTDI RX

    Das Programmieren funktioniert problemlos, mit dem WLAN Modul kann ich aber nicht kommunizieren.
    Dass sich die Kommunikation überlagert, ist ausgeschlossen. Den FTDI verwende ich nur zum programmieren, also die ersten paar Sekunden nach dem Reset des uC, während der Bootloader läuft. Wenn einmal mein Programm läuft, ist die Hardware UART Schnittstelle frei für das WLAN Modul.

    Das Problem sind wahrscheinlich die beiden parallel geschalteten TX-Leitungen von WLAN und FTDI. Ist es möglich, z.B. mit Widerständen eine Schaltung zu bauen, die das parallel anschließen erlaubt?

    lg
    Christoph

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Bei Steuerung von mehreren Geräten per eine serielle Schnittstelle habe ich immer jedem Gerät eigene Adresse verpasst und nur der zuletzt Adressierte darf antworten. Das benötigt natürlich ein komplizierteres Protokol, mir ist aber bisher keine reine Hardwaremässige Lösung bekannt.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    33
    Beiträge
    460
    Ein eigenes Protokoll kann ich leider nicht verwenden, da ich den ESP8266 nicht selbst programmiert habe, und ich auch das Protokoll, das der Bootloader zum flashen verwendet, nicht verändern kann.

    Aber ich will eh nicht gleichzeitig kommunizieren können. Während ich flashe, kann der ESP8266 ruhig mist empfangen, der wird eh resettet sobald mein Programm startet. Und während der Kommunikation mit dem ESP8266 verwende ich die serielle Schnittstelle nicht.

    lg
    Christoph

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Dann am einfachsten wären zwei getrennte bzw. multiplexte RX Leitungen am µC:

    µC RX1 -> WLAN TX
    µC RX2 -> FTDI TX
    µC TX -> WLAN RX, FTDI RX

    Im schlimmsten Fall müsste man doppelt nacheinander an beide Teilnehmer gleiches "schicken" und einzeln "anhören".
    Geändert von PICture (04.05.2015 um 13:18 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo Christoph,

    nachdem es bei dir wegen der zeitlichen Organisation eh nicht zu Kollisionen kommen kann, sollte das mit 2 Dioden und falls nötig noch einem Widerstand zu machen sein. Auswendig weiss ich jetzt aber nicht die Polarität und obs ein pull up oder down sein muss. Wichtig ist, dass sich verschiedene Pegel der Datenausgänge nicht konkurrieren und kurz schliessen.
    Geändert von vohopri (04.05.2015 um 12:27 Uhr) Grund: Unsinn gelöscht

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    Hallo,

    wie wäre es mit RS485 ?

    http://de.wikipedia.org/wiki/EIA-485

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von vohopri Beitrag anzeigen
    nachdem es bei dir wegen der zeitlichen Organisation eh nicht zu Kollisionen kommen kann, sollte das mit 2 Dioden und falls nötig noch einem Widerstand zu machen sein. Auswendig weiss ich jetzt aber nicht die Polarität und obs ein pull up oder down sein muss. Wichtig ist, dass sich verschiedene Pegel der Datenausgänge nicht konkurrieren und kurz schliessen.
    Da das UART mit negativer Logik am TTL-Ausgang arbeitet, ist der Ruhepegel eine "1".
    Man benötigt also ein AND-Gate.
    Mit Dioden:
    Anoden zusammen und ein Pull Up da dran.

    Allerdings muss man jetzt auf den 0-Pegel aufpassen!
    Der treibendes Ausgang schaltet nicht ganz auf 0V und an der Diode fällt auch eine Spannung ab (ca. 0.7V bei Si-Diode und ca. 0.25V bei einer Schottky).
    Da muss man sehen, dass der 0-Pegel des Eingangs sicher unterschritten wird.
    Genaue Angaben stehen in den Datenblättern.

    Natürlich geht auch ein AND-Logikgatter, dann stimmt das mit den Pegeln ohne nachzurechnen!

    MfG Peter(TOO)

    - - - Aktualisiert - - -

    Hallo,
    Zitat Zitat von avr_racer Beitrag anzeigen
    wie wäre es mit RS485 ?
    Das hilft auch nicht wirklich weiter.
    Man benötigt ein zusätzliches Steuersignal um die Ausgänge umzuschalten, welches scheinbar nicht vorhanden ist, andernfalls schaltet man auch hier zwei Ausgänge direkt aufeinander.

    Mit diesem Signal kann man auch jetzt das Logiksignal mit einem MUX umschalten.

    Mit RS485 verlagert man das Problem nur, löst es aber nicht.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Ähnliche Themen

  1. Ein Audioausgang, zwei Geräte anschließen
    Von Cysign im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 05.07.2013, 14:29
  2. zwei mal UART an einem AVR?
    Von Goldenflash im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 19.09.2010, 12:53
  3. Zwei Microcontroller an einem RS232
    Von fxt im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 11
    Letzter Beitrag: 25.10.2009, 01:05
  4. Zwei I2C Geräte mit gleicher Adresse am selben Bus
    Von Schockwellenreiter im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 25.08.2006, 08:23
  5. Über RS-232 abwechselnd zwei Geräte ansprechen
    Von ApfelundTomate im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 10
    Letzter Beitrag: 10.03.2006, 12:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress