Bill Greiman
Well-known member
FWIW, I noticed Adafruit just added a bunch of micro SD cards that specifically aren't SD-HC or SD-XC based,
I have lots of small cards like that. They are SD2 cards and work fine.
The problem involves SD1 cards produced with the April 15, 2001 V1.01 or October 15, 2004 V1.10 command structure. I have the V1.10 cards working and understand the V1.01 problem. V1.01 cards only support 25 MHz SDIO and both Teensy 3.6 and Teensy 4.1 need a reset when CMD6 fails.
Here is the 1.1.0 spec for the new CMD6.
This is a new feature, introduced in SD physical Layer Specification Version 1.10. Therefore, cards that are compatible with earlier versions of the spec do not support it. The host shall check the "SD_SPEC" field in the SCR register to recognize what version of the spec the card complies with before using CMD6. It is mandatory for SD memory card of Ver1.10 to support CMD6.
So I must read the SCR register. Just have not had time to finish this.
Edit: CMD8 is a nasty problem. You can't read the SCR register until you init the card so you must issue CMD8 and determine how to init the card by success or failure of CMD8. CMD6 is issued after the card is initialize so you can avoid it for V1.01 cards.
Edit: I may not allow for V1.01. I don't think any microSD cards were produced with V1.01. I have full size V1.01 16 MB cards that I use in Teensy with an adapter.
Last edited: