Всем привет!
Проблема с SD картой, работаю в режиме SPI на частоте 4MHz.
С иницилизацией как-то гладко все получилось. Шлю команды CMD0, CMD8, CMD55, ACMD41, CMD16 со всей сопутствующей логикой – читаю OCR регистр анализирую биты Busy и CCS, отличаю CDHC и SDSC, смотрю режим адресации, при необходимости выставляю 255 байт.
Проблемы начинаются при попытке прочитать сектор CMD17. Сначала вычитываю R1=00, потом жду 0xFE и читаю 255 байт.
Две карты читаются замечательно (SDHC 4Gb и SDSC 1Gb).
А две карты (SDSC 2Gb и SDSC 128Mb) возвращают полную ерунду – 99% байт не совпадают с реальным содержимым нулевого сектора, а два последних байта почему-то всегда совпадают 0x55, 0xAA.
Подобная ситуация воспроизводится и с нулевым сектором и с любым другим, т.е. режим адресации, вроде, не причем.
Может у кого-то было что-то похожее? Уже не знаю, что делать…
|