Согласно статье в Википедии, все семейства SD-карт поддерживают SPI, и, более того, большинство карт MMC тоже. В спецификации SD 2.00 [PDF] я не вижу ничего, что указывало бы, что это необязательно, хотя и ничего не говорило бы, что это обязательно.
Тем не менее, в спецификациях, по-видимому, разделены электрические свойства и механические форм-факторы (SD, miniSD, microSD), поэтому не должно быть никаких электрических различий между любым механическим корпусом SD-карты, если не указано отдельно (например, SD против SDHC).
Самым основным требованием стандарта SD является то, что подсистема памяти ДОЛЖНА поддерживать режим передачи SPI. Вы можете поспорить, что устройство SD будет поддерживать режим SPI (включая microSD).
Я инженер по встраиваемым системам и реализовал microSD в ряде проектов в режиме SPI.
Часть 1 " Упрощенной спецификации физического уровня " SD-карт, версия 8.00 на стр. 263 (Рисунок 7-1: Диаграмма состояния карты памяти SD (режим SPI)):
Примечание. Карта SDUC, карта может оставаться в состоянии занятости и не отвечает хосту о готовности во время ACMD41, чтобы сообщить хосту, что карта SDUC не может использовать режим SPI.
РЕДАКТИРОВАТЬ: ... и толстый и подчеркнутый на странице 262:
Режим SPI не поддерживается картами SDUC.
Так что, по крайней мере, карты Secure Digital Ultra Capacity (SDUC) (я думаю,> 2 ТБ) не должны поддерживать SPI.
Я столкнулся с тем же явлением с несколькими SDHC-картами и пытаюсь выяснить, в чем проблема на данный момент. В проекте около 5 лет назад у меня также была проблема, что с библиотекой FatFs некоторые карты просто нельзя было использовать.
В двух словах: я бы не стал на это ставить. Попробуйте разные карты, а также рассмотрите возможность использования других типов памяти.
РЕДАКТИРОВАТЬ, через несколько дней/недель: Хорошо, наконец-то заработали все три SD-карты, которые у меня были от разных производителей. Я поделился шагами инициализации здесь: Как инициализировать/использовать SD-карты с SPI?
Ник Т
Келленджб
jpc
Грант