Forum: Mikrocontroller und Digitale Elektronik STM32F7: unerwarteter Fehlerinterupt bei SPI-Übertragung


von recently (Gast)


Lesenswert?

Hallo,

ich arbeitete an einem Projekt mit dem STM32F767VGtx Prozessor. Es 
sollen Daten zu einem anderen Controller (ESP-WROOM-02) per SPI gesendet 
werden, wobei der STM der SPI-Slave ist. Auf dem anderen Controller gibt 
es einen Interrupt-Eingang, der vom STM gesteuert wird. Hat der STM 
etwas zu melden, loest er einen Interrupt auf dem anderen Controller 
aus, der dann als SPI-Master einen Datenaustausch durchführt. Das ganze 
wurde mit CubeMx mit der MDK-ARM V5 Toolchain auf einem STM-Nucleo-Board 
erfolgreich unter Verwendung der DMA-Möglichkeiten entwickelt und läuft 
dort prima.

- Auf der Zielhardware wird nun statt SPI1 der Anschluss SPI4 verwendet. 
Dabei wird beobachtet, das ca. alle 100 Übertragungen die Fehlerfunktion 
HAL_SPI_ErrorCallback() aufgerufen wird.

- Habe zum querchecken auf dem Nucleo-Test-Board die SPI-Schnittstelle 
von 1 auf 4 geaendert und habe das Problem nun dort auch.

- Wenn ich das zugehörige Statusregister direkt beim Eintritt in die 
Funktion DMA2_Stream0_IRQHandler(void) debugge, sehe ich, dass dort der 
Wer 0x82 gesetzt wurde. Das Datenblatt sagt, das dies das FRE-Error-Bit 
(TI frame format error) was aber eigentlich gar nicht gesetzt werden 
darf, da ich im Motorola-Mode arbeite ... sehr merkwürdig.

- Ich habe mit Zufallszahlen und Prüfsumme getestet, das die Daten trotz 
des gesetzten Fehlers, der dann zu einem Timeout-Abbruch führt, völlig 
in Ordnung sind.

Meine Frage wäre, hat jemand eine Idee, wie das Setzen dieses Bits 
unterbinden kann ?

Vielen Dank für Ideen
recently

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.