21
\$\begingroup\$

Have you ever encountered an SD card which does not support the SPI mode?

I read microSD are not required to but I believe all do support SPI.

EDIT: The information about optionality of SPI seems to come from Wikipedia and was recently removed (here and here).

\$\endgroup\$
4
  • \$\begingroup\$ Could you provide some citation to your knowledge that microSD cards aren't required to support SPI? \$\endgroup\$
    – Nick T
    Mar 22, 2011 at 15:14
  • \$\begingroup\$ I feel like the guy who was editing it wasnt sure himself based off of the wording and changes made. \$\endgroup\$
    – Kellenjb
    Mar 22, 2011 at 16:32
  • \$\begingroup\$ OTOH the guy adding this information did not back it up in any way (it appeared in one big edit to the whole article). Quick google searching also did not reveal anything that would support the optionality of SPI. \$\endgroup\$
    – jpc
    Mar 22, 2011 at 16:34
  • \$\begingroup\$ Even if the standards require it, I wouldn't expect some of the cheap direct from china cards to meet the standards... \$\endgroup\$
    – Grant
    Aug 30, 2012 at 12:24

3 Answers 3

11
\$\begingroup\$

According to the Wikipedia article, all families of SD cards support SPI and furthermore, most MMC cards do as well. In the SD 2.00 specification [PDF], I don't see anything that states that it's optional, though nothing says it's mandatory either.

However, the specifications seem to keep separate the electrical properties and mechanical form factors (SD, miniSD, microSD), so there should be no electrical difference between any SD card mechanical package unless mentioned separately (e.g. SD vs. SDHC).

\$\endgroup\$
1
  • \$\begingroup\$ I added the source of the SPI optionality information. So you are probably right. I would like to wait a few days before accepting the answer (if you don't mind) in case someone finds more information. \$\endgroup\$
    – jpc
    Mar 22, 2011 at 15:27
7
\$\begingroup\$

The most basic requirement of the SD standard is that the memory subsystem MUST support the SPI mode of transfer. You can bet your tushy that an SD device will support SPI mode (that includes the microSD too).

I am an embedded engineer and have implemented microSD in a number of designs all in SPI mode.

\$\endgroup\$
1
  • \$\begingroup\$ By the way, any pointers to the well described initialization process and possible errors? For example, Linux kernel driver does some things which are not precisely described in the documentation for microcontrollers. \$\endgroup\$
    – 0andriy
    May 26, 2021 at 20:56
3
\$\begingroup\$

Part 1 of the "Physical Layer Simplified Specification" of SD Cards, Version 8.00 on page 263 (Figure 7-1: SD Memory-Card State Diagram (SPI mode)):

Note: SDUC card, card can stay at busy status and does not reply ready to host during ACMD41 to let host know SDUC card cannot use SPI mode.

EDIT: ...and thick and underlined on page 262:

SPI Mode is not supported by SDUC cards.

So at least Secure Digital Ultra Capacity (SDUC) cards (that is > 2TB I think) do not have to support SPI.

I experienced the same phenomenon with several SDHC cards as well and try to figure out what's the issue at the moment. In a project about 5 years ago, I also had the problem that with a FatFs library, some cards simply couldn't be used.

In a nutshell: I wouldn't bet on it. Try different cards and also consider using other types of memory.

EDIT, a few days/weeks after: Ok, finally got all of the three SD cards I had from different manufacturers working. I shared the initialization steps here: How to initialize/use SD cards with SPI?

\$\endgroup\$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.