CrazyEngineer
Sep 17 2012, 19:33
Использую: отладочную плату Altera со встроенным SD интерфейсом, плис - Cyclone 2, карта SDHC 10 класс 8 gb, режим SPI. После удачно посланной команды cmd17, т.е. приходит респонс от карты 0x00, карта отказывается посылать данные, ничем не аргументируя(ошибки не шлёт).
Обрисую, как я к этому пришел:
1) Втыкаю карту, смотрю CS(жду пока устаканится напряжение), после чего жду еще 1.2 мс, и начинаю давать clk 80 тактов частотой где-то 350 kHz.
2) Следующем шагом опускаю CS в ноль, и шлю команду CMD0-----> карта отвечает, что всё хорошо, т.е. 0x01.
3) Шлю команду CMD8 ---> получаю ответ, т.е. карта поняла команду, а значит, что она 2-ой версии.
4) Потом шлю команды CMD55 и ACMD41(с установленным флагом HCS), до тех пор пока она не ответит 0x00---> ответила.
5) Меняю делитель частоты, подняв его до 20 Mhz и шлю ему CMD16 (блок 512 байт)---> отвечает 0x00.
6) Шлю CMD17 (c нулевым адресом) ---> ответ 0x00 и всё....
Карты пробывал разные, везде одно и тоже, только чуть изменял инициализацию. Думаю, что ответ где-то рядом...Может кто-то сталкивался с такой проблемой?
Цитата(CrazyEngineer @ Sep 17 2012, 23:33)

4) Потом шлю команды CMD55 и ACMD41(с установленным флагом HCS), до тех пор пока она не ответит 0x00---> ответила.
А CMD58 не подаете? В протоколе указано CMD58 (Get CCS), после ACMD41.
Кстати, а если частоту не менять, то работает?
CrazyEngineer
Sep 19 2012, 17:29
Ну как я понял cmd58 не обязательно подавать, тем более результат я знаю: отвечает исправно на все команды, которые касаются регистров. На счет изменения частоты, пробовал не менять вроде работает, но опять же только до cmd17, а потом тишина. Вот прикрепил временные диаграммы, это во время cmd16 и cmd 17.
Цитата(CrazyEngineer @ Sep 19 2012, 20:29)

Ну как я понял cmd58 не обязательно подавать, тем более результат я знаю: отвечает исправно на все команды, которые касаются регистров. На счет изменения частоты, пробовал не менять вроде работает, но опять же только до cmd17, а потом тишина. Вот прикрепил временные диаграммы, это во время cmd16 и cmd 17.
Я когда-то давно делал корку для работы с SD. Только не по SPI интерфейсу(там немного другая инициализация). Да и на форуме где-то было. Посмотри файл - может поможет.
А ответа ждете достаточно долго? Эти флешки тормозные штуки.
CrazyEngineer
Sep 27 2012, 16:35
Долго, 1-2 минуты, огорчает, что многие производители недостаточно соблюдают официальную спецификацию