Thank for looking into that issue. I implemented your suggestion to use the full duplex transfer with a write buffer filled with 0xFF.
First I thought everything is working fine, but unfortunately I ran into another problem with the Apollo 3.
The initialization works and also FatFS runs fine for a while. E.g. I can do thousands of file open, write, close calls. But then suddenly the SPI data connection gets unstable.
When I try to reinit the card it fails because the data sent by the card are not received correctly. I have verified with the oscilloscope that the card sends e.g. 0x000001AA. The data is decoded by the scope without any problems. But the full duplex transfer receives somehow corrupted data like 0x000000AA or 0xFF0000AA00. Removing the card and reinitializing the IOM doesn’t help. The only solution is to reset the Apollo 3.
Has anyone else of you experienced that the SPI behaves weird after some time? I have no clue how to resolve this, because I need the full duplex transfer to get the MOSI high during read.