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