Forum: Mikrocontroller und Digitale Elektronik STM32 SPI slave: wie komme ich an unvollständige Daten?


von rhrhrh (Gast)


Lesenswert?

Hallo,

ich beabsichtige, eine bidirektionale SPI Kommunikation zwischen zwei 
anderen Geräten aufzuzeichnen. Dazu benutzte ich bei STM32F215 zwei SPIs 
im Slave-Betrieb. Die erste SPI nimmt von den beiden Geräten den Master 
auf, die zweite SPI den Slave.

Das Problem ist, daß die aufzuzeichnenden SPIs sich nicht an 8- oder 
16-bit Frames halten, so daß am Ende der Aufnahme die letzten Bits zwar 
von den SPIs des STM32 empfangen wurden (also im Shift-Register), diese 
aber nicht zum Lesen (im RX-Buffer) zur Verfügung stehen. Nur komplette 
8- oder 16-Bits werden in den Rx-Buffer übernommen. Gibt es eine 
Möglichkeit, an die unvollständigen Daten zu gelangen? Kann man eine 
Datenübernahme vom Shift-Register in den RX-Buffer erzwingen, oder 
direkt das Shift-Register auslesen?

Vielen Dank für Vorschläge

von Jim M. (turboj)


Lesenswert?

IMO nein. Aber man kann oft eine andere Bitzahl als 8 einstellen.

von rhrhrh (Gast)


Lesenswert?

Hallo Jim,

danke für die Antwort,

das Problem ist, daß ich nicht vorher weiß, wieviele Bits insgesamt 
gesendet werden.

Eine Lösung ist, einen GPIO-Pin auf die SCK-Eingänge zurückzuführen und 
sich selbst noch die fehlenden Takte zu schicken. Nur hat das wiederum 
Auswirkung auf die anderen Geräte, da nun auf der SCK-Leitung etwas 
gesendet wird. Ich kann das Problem zwar mit weiteren Bauteile lösen, 
aber schön ist das nicht.

Grüße Ralph

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.