My understanding is, SPI modes 0 and 3 do the same things on clock edges: master and slave both shift on the falling edge and sample on the rising edge. Where they differ is the idle clock state (i.e. the state of the clock when there is no SPI bus activity.) SPI mode 3 idles the clock high but SPI mode 0 idles it low. That means an SPI mode 0 slave connected to an SPI mode 3 master will see an extraneous falling clock edge at the beginning of a packet and an extraneous rising clock edge at the end of a packet.
My guesses as to why this works are A) software is timing the lowering and raising of the chip select line such that it looks to the slave as though the clock is low when idle, i.e. SPI mode 0 and/or B) that (some?) SDCARDs are robust enough to ignore invalid clock transitions.
I have a related question. I also want to put multiple devices on an SPI bus, one being an SDCARD. My design is 3.3V throughout (built around 3.3V 8051 variant MCU.) Aside from a concern that some SDCARDs might not tristate their MISO line, I was also concerned that some might not respect their chip select and execute commands intended for other SPI devices on the bus. Has anyone seen anything like that or am I just being paranoid!?
Al