Ich habe hier zwei augenscheinlich identische Boards mit einem STM32F407. An diese Boards kann ich einen SPI-Slave anstecken. Bei Board A funktioniert alles wie erwartet und ich kann mit dem SPI-Slave kommunizieren. Bei Board B erhalte ich nur 0 zurück, obwohl der Code identisch ist. Mit dem Oszilloskop habe ich direkt am Chip gemessen und sehe auf MISO das Signal vom Slave.
Nun hatte ich einen defekten SPI-MISO-Pin in Verdacht. Daher habe ich separate Testprogramme geschrieben. Das Ergebnis: der Pin funktioniert als Input und der Pin funktioniert auch als Output korrekt. Er will nur nicht, wenn er als MISO für die SPI im Alternate-Funktion-Modus konfiguriert ist.
Auf dem zweiten System funktionieren alle Programme wie erwartet. /CS, CLK, MOSI und MISO sehen bei beiden Systemen auf dem Oszilloskop identisch aus.
So langsam gehen mir die Ideen aus, wo der Fehler liegen könnte. Vielleicht habt ihr ja noch Vorschläge, was ich prüfen/testen/ändern könnte.