-
Люди, ещё появилась проблема.
Пытаюсь отправить ACMD41. Выставляю на CS ноль. Передаю команду 55 с нулевым аргументом и нулевой КС. Ставлю CS в единицу. Делаю паузу порядка 3 мкС. Снова CS в ноль. Передаю команду 41. В ответ вместо response R3 вижу R1 = 0x01. Чё это? Что я не правильно делаю?
---------- Post added at 20:53 ---------- Previous post was at 20:28 ----------
Всё, разобрался. В SPI режиме он отвечает как R1 ...
-
Опять какая-то фигня. Пытаюсь прочитать нулевой сектор отформатированной в FAT32 SD карты 16 G. Результат чтения - 512 байт пишу в eeprom контроллера. Читаю командой cmd17. Правда, не знаю как CS делать. Пробовал по-всякому, и держать в нуле и поднимать ненадолго в 1 перед чтением самого блока данных. Результат всегда разный. Например, как во вложении. Что-то не похоже на правду ...
-
Читаю байт за байтом, последовательно 512 раз, с CS в нуле.
-
Можете посмотреть тут: http://elm-chan.org/docs/mmc/mmc_e.html
Или скачайте примеры FAT-библиотеки, там всё понятно в исходникак как и что.
-
Хорошая дока, но перевод поршивый. Даже с моими мизерными знаниями
английского оригинал читается легче.
-
подозреваю что ты стоповый бит забываешь отсылать, покажи в hex значениях что конкретно ты отсылаешь в контроллер.
вот что я отсылаю(vhdl):
SEND_CMD_00 =>
command <= X"FF400000000095";
SEND_CMD_08 =>
command <= X"FF48000001AA87";
SEND_CMD_55 =>
sd_ver_2 <= not responce(34);
command <= X"FF7700000000FF";
SEND_ACMD_41 =>
command <= X"FF69" & '0' & sd_ver_2 & "000000" & X"000000FF";
-
Да вроде разобрался, сейчас и пишу и читаю посекторно ...