Forum: Mikrocontroller und Digitale Elektronik 32Bit SPI Raspberry Pi 3


von Mampf F. (mampf) Benutzerseite


Lesenswert?

Guten Mittag,

hat jemand eine Idee, ob der Raspi 3 hardwaremäßig 32Bit SPI 
unterstützt?

Ich hab einiges an Code-Schnippseln gefunden, aber nichts scheint zu 
funktionieren.

Direkt das /dev/spidev0.0 ansprechen funktioniert, aber >8Bit kann ich 
nicht setzen.

Die bcm2835.h hat gar keine Funktion, um die Wort-Breite zu setzen.

Kann das der Raspi überhaupt?

Ich weiß, dass ich auch mehrmals hintereinander senden könnte, aber die 
Hardware verlässt sich darauf, dass vor der Übertragung CS (SS) auf 0 
und nach der Übertragung auf 1 gesetzt wird. Würde es zwischen drin 
passieren, käme es zu Fehlern.

Viele Grüße,
Mampf

: Bearbeitet durch User
von macload1 (Gast)


Lesenswert?

Genau kann ich deine Frage nicht beantworten, aber ich habe selber 
schonmal den SPI mit einem normalen GPIO als Chip Select benutzt. Den 
musst du dann natürlich manuell hoch und niedrig ziehen. Das ist 
suboptimal, aber es funktionniert (kommt ja natürlich auch auf deinen 
Anwendungsfall an, z.B. wie groß deine Übertragungsrate sein sollte). In 
dem Fall könntest du dann mehrere 8-bit Übertragungen starten.

Grüße zurück,
macload1

von Jim M. (turboj)


Lesenswert?

Mampf F. schrieb:
> Hardware verlässt sich darauf, dass vor der Übertragung CS (SS) auf 0
> und nach der Übertragung auf 1 gesetzt wird. Würde es zwischen drin
> passieren, käme es zu Fehlern.

Genau deshalb wird CS vom Master normalerweise als einfacher GPIO 
angesteuert.

Das ermöglicht dann auch die Setup- und Holdzeiten gewisser SPI Hardware 
einzuhalten, die vor dem ersten und/oder nach dem letzten Clockzyklus 
noch etwas Zeit mit CS=LOW haben wollen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Ah okay, super!

So einfach und ich bin nicht darauf gekommen :)

Vielen Dank!

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.