Forum: Mikrocontroller und Digitale Elektronik Verständnissfrage SPI


von Tungsten (Gast)


Lesenswert?

Hallo,

ich bin derzeit daran mich mit SPI zu beschäftigen. Allerdings habe ich 
noch nicht genau herausgefunden wie ich das am besten anstelle wenn ich 
32bit über die SPI Schnittstelle senden will.

Vom Prinzip:

1. Den Empfänger über eine leitung anwählen (der wird bereit fürs 
empfangen)

2. Daten der Reihe nach mit dem Schiebetakt rüber schieben. So wie es im 
Datenblattcode von Atmel beschrieben wird.

3. Die Auswahlleitung wieder umschalten.

So das wäre das grobe bei 8 bit.

Wenn ich jetzt aber 32 bit übertragen muss habe ich eine Variable mit 32 
bit länge. Muss ich die jetzt auf vier mal 8 bit aufteilen und separat 
übertragen. Gibt es da was zu beachten oder ist die SPI Schnittstelle da 
eher unempfindlich und großzügig?

Wie würdet ihr das machen?

Freue mich auf eure Antworten
Danke

von Johannes M. (johnny-m)


Lesenswert?

SPI sendet immer 8 Bit pro Frame. Also musst Du die 32-Bit-Variable in 4 
Frames nacheinander verschicken. Das hat nichts mit einer wie auch immer 
gearteten "Großzügigkeit" der SPI-Schnittstelle zu tun...

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

deine 32 bit in 8 bit blöcke teilen und dann nacheinander (in der 
richtigen reihenfolge) senden ohne das cs wieder auf 1 gezogen wird cs 
darf erst wieder 1 werden wenn die 32 bit über den bus geschoben wurden.

dein slave wird aller wahrscheilicheit den befehl abbrechen wenn du 
zwischen den einzelnen 8 bit cs auf high ziehst

von Tungsten (Gast)


Lesenswert?

Hey danke für die schnellen Antworten!


Dann ist es wirkklich so wie ich es mir gedacht habe.

Also die 32bit in 4 blöcke aufteilen und die dann schön der reihe nach 
übertragen.

Ich war mir nicht ganz sicher wie es mit dem Timing ist. Ob es ein 
Problem ist wenn zwischen den 8 bit eine Pause ist.


Danke für die Hilfe

von Falk B. (falk)


Lesenswert?

@ Tungsten (Gast)

>Ich war mir nicht ganz sicher wie es mit dem Timing ist. Ob es ein
>Problem ist wenn zwischen den 8 bit eine Pause ist.

Nein, denn SPI ist synchron zum Takt.

MFG
Falk

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.