Can you spot the difference in the picture below?
The one on the left (without edge cut) uses a T125A, the one on the right (with edge cut) uses an LC125A. World of difference.
Overview: SPI interfaces should have the MOSI, MISO and CLK signals in common. Each device gets it's own CS line. Drive CS low on a particular device and it starts reading the CLK and MOSI lines, and responding on the MISO line when appropriate. When all devices' CS lines are high (disabled), the MISO line should be pulled up with a 10K resistor or some such, but otherwise float. No devices should drive MISO when they are disabled!
Except for SD cards apparently.
Resources: After re-re-reading the Elm-Chan SD card page again (here
http://elm-chan.org/docs/mmc/mmc_e.html), I found a little quote I forgot to read: "Therefore to make MMC/SDC release the MISO line, the master device needs to send a byte after the CS signal is deasserted." Hm. And then I went back to George Foot's SD card page again (here
https://github.com/gfoot/sdcard6502), and found this quote: "But in many circumstances, the SD card will continue to drive MISO even when CS is high (i.e. deselected). This interferes with other devices that might be sharing that data pin."
Testing: For months now, I've been using the MicroSD card adapter on the left. And had NEVER NOTICED this behavior. Ever. But on my most recent board, I used the MicroSD card adapter on the right, and it was very screwy. It does continue to drive the MISO line even when CS is high, but Elm-Chan is right in that 8 clock pulses and that's no longer the case... mostly. This particular MicroSD card adapter stopped driving the MISO line high, but started to toggle between high and low at near random it seemed. It wasn't floating, it would drive it (at least) low for some time, like a second or so between changes.
Then I would have another SPI device try to drive the MISO line, and I got: A) all $FF's, B) corrupted data, or C) good data. It was nearly random, as long as I pulsed that clock 8 times before it would *try* to work, but would only work sometimes. If I popped the SDcard out of the socket (but kept the adapter on board), it would work again... mostly. I think it would permanently drive the signal low or something, but not hard enough to force other devices off the line. Very strange activity.
Conclusion: Not all MicroSD card adapters are the same! The one of the left, using the T125A, seems to make the SD card act like an actual SPI device, releasing the MISO line when not in use (as *should* be expected). The one on the right, using the LC125A, continues to drive the MISO line as Elm-Chan and George Foot both have also witnessed.
Ponderings: So, was I just lucky in getting a 'better' version at first? Or should an SPI adapter be expected to act like an actual SPI device?
So, the research has been done. Hope that was helpful! Thanks everyone.
Chad