Forum: Mikrocontroller und Digitale Elektronik SPI LSB first


von Jan (Gast)


Lesenswert?

Hallo,
mal (wieder) eine ganz dumme Frage. Wenn ich ein SPI Slave habe, der das 
LSB zuerst sendet und ich bei meinem Mega 8 das DORD-Bit entsprchend auf 
1 setze, bekomme ich denn beim Auslesen des SPDR ein verdrehtes Byte 
oder bekomme ich es richtig? Habe leider keine entsprechenden Bauteile 
zum Testen hier.

von Falk B. (falk)


Lesenswert?

@  Jan (Gast)

>LSB zuerst sendet und ich bei meinem Mega 8 das DORD-Bit entsprchend auf
>1 setze, bekomme ich denn beim Auslesen des SPDR ein verdrehtes Byte
>oder bekomme ich es richtig?

Wenn es immer noch verdreht wäre, wäre das Bit sinnlos.

von Kaj (Gast)


Lesenswert?

Wenn Du ins Datenblatt schauen würdest, würdest Du sehen, dass Dich das 
DORD-Bit nur interessiert, wenn der µC SENDEN soll!

>Bit 5 – DORD: Data Order
>When the DORD bit is written to one, the LSB of the data word is transmitted 
>first.
>When the DORD bit is written to zero, the MSB of the data word is transmitted 
>first.

Da Du aber empfängst, erübrigt sich die Frage von alleine.

von spess53 (Gast)


Lesenswert?

Hi

>Da Du aber empfängst, erübrigt sich die Frage von alleine.

Wieso erübrigt sich die Frage? Zum Empfangen eines Bytes vom Slave muss 
der Master ein (Dummy)-Byte senden.

MfG Spess

von Jan (Gast)


Lesenswert?

Okay, das beudeutet also es ist verdreht und ich muss es nach dem 
auslesen umsortieren. Ich wusste halt das datenblatt nicht zu deuten. 
Hätte ja auch sein können , dass bei gesetztem Bit automatisch die 
richtige Reihenfolge zurückgeliefert wird. Ist das so abwegig.

spess53 schrieb:
> Wieso erübrigt sich die Frage? Zum Empfangen eines Bytes vom Slave muss
> der Master ein (Dummy)-Byte senden.

Nagut ...aber Dummy ist Dummy und von daher kann es ruhig verdreht sein 
:)

von spess53 (Gast)


Lesenswert?

Hi

>Hätte ja auch sein können , dass bei gesetztem Bit automatisch die
>richtige Reihenfolge zurückgeliefert wird. Ist das so abwegig.

Klar wird das richtig zurückgeliefert. 'DORD' bestimmt die 
Schieberichtung im Shiftregister. Und die ist für Senden und Empfangen 
gleich.

MfG Spess

von Jan (Gast)


Lesenswert?

Also wenn der Slave vorgibt LSB first und ich das  DORD Bit setze, denn 
kann ich das Datenrigister einfach auslesen ohne dass ich mich um die 
reihenfolge kümmern muss.
Also
Senden:
SPDR = x

Empangen

X= SPDR

Tut mir leid aber Kaj hat mich mit seiner Antwort etwas durcheinander 
gebracht

von spess53 (Gast)


Lesenswert?

Hi

>Also
>Senden:
>SPDR = x

>Empangen

>X= SPDR

Ja.

MfG Spess

von Jan (Gast)


Lesenswert?

Danke ;)

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
Noch kein Account? Hier anmelden.