ZXNet эхоконференция «hardware.zx»
тема: по поводу SD...
от: Игорь Афонькин
кому: All
дата: 05 Jun 2006
Hello, DVS
DVS> По 1-му: на SD карте Panasonic 8Mb успешно включается режим SPI, но
DVS> карта не выводиться из Idle режима. Пробовал команды CMD1, CMD5,
DVS> ACMD41. Буду копать дальше.
DVS>
алгоритм инициализации (проверен на нескольких картах):
CS=1,
выдем 10 байт #0FFh в карту,
(далее как для каждой команды)
CS=1
выдем синхро-байт #0FFh
CS=0
выдем синхро-байт #0FFh
выдаем #040h (CMD0, "go idle")
выдаем четыре #000h (параметры)
выдаем #095h (CRC7 для CMD0, можно не менять для остальных команд)
(далее опять только для инициализации)
выдаем #0FFh, при этом одновременно читается отклик,
если отклик равен #0FFh, то опять читаем отклик
если полученный отклик не равен #001h, то ошибка (входим в ступор или на начало
;))
(теперь выводим карту из IDLE)
CS=1
выдем синхро-байт #0FFh
CS=0
выдем синхро-байт #0FFh
выдаем #041h (CMD1, "card init")
выдаем четыре #000h (параметры)
выдаем #095h (CRC7 для CMD0, для остальных CMD это неверно, но игнорируется
картой...)
(ждем готовности карты)
выдаем #0FFh, при этом одновременно читается отклик,
если отклик равен #0FFh, то опять читаем отклик
если полученный отклик не равен #000h, то продолжаем читать отклик "до
победного".
при отклике =0 в данной точке можно считать карту инициализированной, и далее
работать с ней без заморочек.
PS; Hадеюсь,; кому-нибудь пригодится :)
|