- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 8 von 8

Thema: UART vs SPI kann UART auch "echt" bidirektional üb

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416

    UART vs SPI kann UART auch "echt" bidirektional üb

    Anzeige

    Praxistest und DIY Projekte
    mir ist grad in nem anderen topic ne frage aufgekommen ... bei SPI ist es üblich, dass gleichzeitig daten gesendet UND empfangen werden ... ist es defakto möglich mit einem UART anschluss dasselbe zu machen !?

    genauso wie SPI hat UART ein datenregister zum lesen und schreiben, aber was passiert wenn cih gerade ein byte empfange und dann mittendrin das senden einleite !? ist ja alles asynchron!

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Siehe Datenblatt
    Bei allen U(S)ARTs kann vollduplex gearbeitet werden, das "Synchronous" bedeutet nur, dass dir ein Takt zur Verfügung steht (via XCK).
    Im übrigen muss beim U(S)ART nicht gleichzeitig das Antwortbyte überagen werden, wogegen bei SPI immer mit jedem geschriebenen Byte auch eins gelesen wird.

    mfG
    Markus

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    das mit dem "kann vollduplex" glaub ich aber nicht ganz ... technisch gesehen hat die schnittstelle 1 datenregister, 1 pufferregister und 1 schieberegister ... und puffer und schieberegister können ... soweit ich das erfahren habe ... nicht gleichzeitig verwendet werden ... bzw. die werden irgendwie immer durchgewechselt, und dadurch kann nur eines gleichzeitig verwendet werden ... erfahrung oder tiefenwissen wäre mir da schon lieber ... beim SPI ist es eben der TAKT der das gleichzeitige senden und empfangen ermöglicht!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Du musst es nicht glauben, nur das Datasheet lesen ...
    Das UDR wird beim Schreiben auf das Ausgangsregister gemapped, beim Lesen auf das Eingangsregister.
    Der Takt wird beim Empfangen aus dem Signal selbst regeneriert, beim Senden wird ein eigener Sendetakt in das Signal hineinmoduliert.
    SPI ist dagegen einfach nur extrem simpel, weil es Ein- und Ausgangsstufe aneinander koppelt, Empfänger und Sender beim UART sind dagegen weitestgehend unabhängig.

    mfG
    Markus

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Da stelle ich mir doch gerade die Frage welches Datenblatt man lesen soll.

    Nehme ich mir das Datenblatt vom Mega8, lese ich zwar was von full duplex, aber das bezieht sich auf die unabhängigen Sende/Empfangs-Register.
    Für full duplex braucht man mindestens 4 Leitungen, da für Sende- und Empfangsleitung je auch eine Clockleitung vorhanden sein muss.

    Betreibe ich die USART-Schnittstelle im SPI-Modus, so habe ich auch 3 Leitungen, somit ist hier full duplex möglich.

    also bitte nicht verwechseln, die USART-Schnittstelle kann sowohl über 2-Draht (RS232) im half duplex-Mode betrieben werden, als auch im SPI-Modus mit full duplex.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    ? Sag mir bitte wo beim Mega8 steht, dass ich NICHT gleichzeitig senden und empfangen kann, wenn ich den U(S)ART im ganz normalen asynchronen Modus betreibe?
    Asynchron bedeutet (zumindest hier) genau eine Leitung je Richtung, der Takt wird aus dem Signal rückgewonnen (und aus der Baudrateneinstellung ...).
    Du wirfst hier gerade Vollduplex mit synchronem Empfang durcheinander, bitte nicht verwechseln

    Nochmal in kurz: Zwei Strippen, eine je Richtung, beide unabhängig voneinander. An beiden hängen unterschiedliche Hardware-Komponenten, die Senden/Empfangen.
    Bei jedem UART kann gleichzeitig gesendet und empfangen werden, die Übertragung ist aber nicht synchron!
    Beim USART kann die Übertragung synchron erfolgen, dann gibt es eine Taktleitung, die Funktionalität ist dann SPI recht ähnlich (oder sogar gleich?)

    mfG
    Markus

    PS: Seite 133 des Datenblatts des Mega8 - Dort sieht man wunderbar, dass Sender und Empfänger getrennt arbeiten

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    verdammt .. ich hab das schaltbild total ignoriert XD da sind ja separate sende und empfangsregister ... ich muss beim lesen irgendwo was übersehen haben ... naja danke jedenfalls der hilfen .. vll. find ich die passage nochmal und melde mcih nochmal

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    stimmt, das mit dem Asynchron hatte ich vergessen.
    Da hätte ich wohl deinen 2. Post genauer lesen müssen

Berechtigungen

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

12V Akku bauen