I've implemented the start-up sequence for SPI mode on MicroSD v2 cards (using the specifications), and I've found that the SD card fails initialization at different points in the process. It often fails sending the first CMD8, but then sometimes fails later at the ACMD41 or even after that. By fail, I mean it'll return 0x00 or an incorrect response.
Are there any ideas on why the initialization process can fail at different steps? It appears I'm supplying the correct power, and there are no pullup or pulldown resistors needed for SPI. I'm bare-metal coding, so there's no OS to interfere with it. Posting code here is non-trivial as every step uses callbacks (no choice, due to timing requirements). I'm coding for the nRF52840, and ARM chip.