Hi auf folgender Seite wird das Thema Half-duplex mittels SPI communication angesprochen. Im dazugehörigen Video auf Udemy wird der Datenweg gezeigt, wenn der Slave als Receiver eingestellt ist. http://fastbitlab.com/spi-bus-configuration-discussion-full-duplex-half-duplex-simplex/ Was mich wundert: Im Full Duplex geschieht der Datentransfer vom LSB zum MSB. Das heißt Master LSB Bit schiebt zum Slave MSB bei jedem Clock Cycle. Im angehängten Bild bei half duplex geschieht der Datentransfer allerdings umgekehrt, also vom MSB zum LSB. Ist das richtig verstanden? Gruß,
In den Bildern wird immer aus MSB in LSB geschoben. Die Richtung ist aber einstellbar, lies mal die nächsten Kapitel.
Hallo, es gibt bei SPI kein Half/Full Duplex. Man kann manche SPI Devices, auch dein Master / Code für den Master, so schreiben/konfigurieren das man zwischen LSB oder MSB First wählen kann. Das hat aber nichts mit Half/Full Duplex.
Hi, vielen Dank. Ich habe mir mal das Datenblatt angeschaut, und folgende Info gefunden: "Programmable data order with MSB-first or LSB-first shifting" Gruß,
Alex schrieb: > Thema Half-duplex mittels SPI Wie schon gesagt, gibt es bei SPI kein Half-duplex. Hardwaremäßig wird immer gleichzeitig ein Byte über die MOSI-Leitung vom Master zum Slave übertragen und eines über MISO vom Slave zum Master. Ob die Software beide Bytes als Nutzdaten betrachten muss, hängt insbesondere von den Eigenschaften des Slave ab.
Wolfgang schrieb: > Wie schon gesagt, gibt es bei SPI kein Half-duplex. Es gibt STM32 die SPI mit Halbduplex unterstützen. Dafür werden MISO und MOSI zusammengelegt. Im Empfangsfall wird MOSI hochohmig geschaltet. Mir sind bisher noch keine Slaves untergekommen, die das benötigen bzw. unterstützen.
Hi, vielen Dank für eure Rückmeldungen. Im Datenblatt steht: "The serial peripheral interface (SPI) allows half/ full-duplex, synchronous, serial communication with external devices" Ist nun aber auch zweitrangig, weil ich im Datenblatt ebenfalls lesen konnte, dass man sowohl MSB->LSB als auch LSB->MSB schieben kann. Gruß,
Hallo, irgendwie scheint dabei STM die Begriffe falsch zu verwenden. Was soll denn bei SPI Half/Full Duplex sein? Geht doch gar nicht. Wenn der Master etwas empfangen möchte muss dieser erst Takte rausschieben. Was hat das mit Half/Full Duplex zu tun?
Alex schrieb: > Im Datenblatt steht: > > "The serial peripheral interface (SPI) allows half/ full-duplex, > synchronous, serial communication with external devices" Ganz toll. Der allgemeine Sprachgebrauch ist, dass bei duplex, egal ob voll- oder halb-, zwei Teilnehmer gleichzeitig oder abwechselnd senden. Bei SPI ist es aber so, dass immer der Master für die Übertragung verantwortlich ist, indem er den Takt vorgibt. Selbst wenn nur in eine Richtung übertragen wird, schickt oder holt der Master Daten. Der Slave kann nicht aktiv senden.
Mit der Half-Duplex-Übertragung des STM32, wird so eine Art I²C draus: Der Master gibt (wie immer) den Takt vor und vom Protokoll her wird bestimmt, ob die Daten vom Slave oder vom Master kommen.
Hallo, das hat jedoch immer noch nichts mit Full/Half Duplex zu tun. Der Master kann nur entweder senden oder empfangen und das immer nur mit einem Slave zur gleichen Zeit. Bezeichne das meinetwegen als irreführendes Half-Duplex. Irreführend deswegen, weil der Master den Slave immer noch aktiv ansprechen muss. Full-Duplex wäre theoretisch, wenn der SPI Master zur gleichen Zeit an eine Slave Daten senden und von einem zweiten Slave Daten empfangen könnte. Genau das geht aber nicht. Er muss ja mittels CS einen Slave gezielt auswählen. Das macht ja SPI so schön einfach. Ich halte den Text von STM für groben Unsinn. Gröber gehts eigentlich nicht.
Analog devices verwendet ebenfalls Full-duplex: https://www.analog.com/en/analog-dialogue/articles/introduction-to-spi-interface.html > ...SPI is a full-duplex interface; both master and slave can send data at the > same time via the MOSI and MISO lines respectively...
Bernd schrieb: > Mir sind bisher noch keine Slaves untergekommen, die das benötigen bzw. > unterstützen. Recht bekannt ist der DS1302 (RTC), da ist ein Pin DIN/DOUT. Mit dem Kommando wird die Richtung umgeschaltet. Auch viele EEPROM erlauben es, DI mit DO zu verbinden.
Hallo, der Master muss takten und dann kommen wegen dem Schieberegisterverfahren automatisch Daten vom Slave sofern er welche liefert und nicht nur empfängt. Ich halte die Begriffe in Bezug auf SPI weiterhin für Irreführend. Ob der Salve sendet oder nur empfängt hängt vom Slave ab was er kann und der Master muss immer aktiv eingreifen. Auf der Seriellen im Full-Duplex können ungefragt Daten eintreffen. Oder bei Ethernet usw. Das ist ein Unterschied wie Tag und Nacht.
Half/Full Duplex bezieht sich nur auf den Datenpfad. Ganz abstract, und so sollten die Begriffe verstanden werden, beschreibt Fulldiplex, dass zu einem Zeitpunkt Informationen in beide Richtungen gehen können. Ganz frei vom genauen Aufbau. Bei Halfduplex können Daten zu einem Zeitpunkt nur in eine Richtung gehen. Ethernet gibt es auch in Halfduplex Deshalb ist ihre Definition einfach falsch Herr devil-elec
Simplex: Kommunikation nur in eine Richtung - festgelegter Sender/Empfänger. Duplex: Kommunikation in beide Richtungen möglich. Full-Duplex: gleichzeitig in beide Richtungen. Half-Duplex: zu einem Zeitpunkt immer nur in eine Richtung - in welche, müssen sich die Beteiligten einig sein. Mit diesen Definitionen bin ich immer ohne Missverständnisse zurechtgekommen. Ich sehe da auch keine Schwierigkeit, SPI in einem Half-Duplex-Modus zu betreiben (z.B. um einen Pin/einen Leiter zu sparen), solange sich beide Seiten über das Verfahren/den Ablauf einig sind.
> Ethernet gibt es auch in Halfduplex
Full-Duplex Ethernet ist erst mit 10Base-T (Twisted Pair) eingeführt
worden - das frühere 10Base5 und 10Base2 (mit Koax-Kabel) konnte nur
Half-Duplex ;-)
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.