|
|
  |
Промлема инициализации SD-card в SD mode, Промлема инициализации SD-card в SD mode |
|
|
|
Nov 4 2011, 11:29
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590

|
возникло вот такое затруднение: при инициализации в SD-режиме посылаю CMD0 (0x40, 0, 0, 0, 0, 0x95), реакции карты никакой. После шлю еще 40 пустых клоков и после в цикле выдаю команду CMD55 (0x77, 0, 0, 0, 0, 0x65). После опять реакции ноль. При посылке CMD0 для сброса в SPI (при CS = 0) карта высылает 0x01 (что верно). Не понимаю, почему в SD-режиме тишина. Все командные ноги и клок подтянуты 10кОм к +3.3В. Работаю по заднему фронту клока (по переднему не работает даже в SPI). После включения питания шлю около 160 пустых тактов, частота 200 кГц. Поделитесь мыслями, у кого есть.
Сообщение отредактировал toretto - Nov 4 2011, 11:52
|
|
|
|
|
Jan 31 2012, 08:03
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590

|
приведу осцилограмки ниже команда cmd8:
посылка cmd0 и после 10 байтной паузы cmd 8:
|
|
|
|
|
Feb 9 2012, 12:32
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590

|
карту проинициализировал, видимо была нестыковка по фронтам. Можно ли отключить командой CMD59 CRC_ON_OFF проверку контрольной суммы? или команда только для режима SPI?
|
|
|
|
|
Feb 29 2012, 05:40
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590

|
Цитата(toretto @ Nov 4 2011, 14:29)  возникло вот такое затруднение: при инициализации в SD-режиме посылаю CMD0 (0x40, 0, 0, 0, 0, 0x95), реакции карты никакой. После шлю еще 40 пустых клоков и после в цикле выдаю команду CMD55 (0x77, 0, 0, 0, 0, 0x65). После опять реакции ноль. При посылке CMD0 для сброса в SPI (при CS = 0) карта высылает 0x01 (что верно). Не понимаю, почему в SD-режиме тишина. Все командные ноги и клок подтянуты 10кОм к +3.3В. Работаю по заднему фронту клока (по переднему не работает даже в SPI). После включения питания шлю около 160 пустых тактов, частота 200 кГц. Поделитесь мыслями, у кого есть. проблема оказалась в емкостях линий, добавив несколько десятков пФ об землю на линиях CLK, CMD проблема пропала.  вот такой интересный нюанс. по непонятным причинам после посылки CMD7 SELECT/DESELECT_CARD карта отвечает (hex) 07 00 00 07 00 75 и после молча терпит все следующие команды (на cmd13, cmd55, cmd7 ответов нет). если я правильно расшифровал, 7 => карта перешла в program state (в DSh сказано, карта должна послать сигнал busy,повесив "0" на DAT0, у меня как висела "1", так и висит). в чем может быть трабл? повторный сброс CMD0 работает
Сообщение отредактировал toretto - Feb 29 2012, 06:25
|
|
|
|
|
Feb 29 2012, 09:54
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(toretto @ Feb 29 2012, 09:40)  проблема оказалась в емкостях линий, добавив несколько десятков пФ об землю на линиях CLK, CMD проблема пропала.  вот такой интересный нюанс. Скорее всего, у вас наводка идет с линии CLK. Цитата(toretto @ Feb 29 2012, 09:40)  по непонятным причинам после посылки CMD7 SELECT/DESELECT_CARD карта отвечает (hex) 07 00 00 07 00 75 и после молча терпит все следующие команды (на cmd13, cmd55, cmd7 ответов нет). если я правильно расшифровал, 7 => карта перешла в program state (в DSh сказано, карта должна послать сигнал busy,повесив "0" на DAT0, у меня как висела "1", так и висит). в чем может быть трабл? повторный сброс CMD0 работает Карта была в состоянии stby, вы выполнили SELECT, после чего она должна перейти в tran.
|
|
|
|
|
Mar 1 2012, 06:37
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590

|
1. 100 клоков 2. CMD0 0x40, 0, 0, 0, 0 0x95 -> ответа нет 3. 80 клоков 4. CMD8 0x48, 0, 0, 1, 0xAA, 0x87 -> 0x08, 0, 0, 1, 0xAA, 0x13 5. CMD55 0x55, 0, 0, 0, 0, 0x65 -> 0x55, 0, 0, 1, 0x20, 0x83 6. CMD41 0x69, 0, 0xFF, 0x80, 0, 0x80, 0x85 -> 0x3F, 0, 0xAA, 0x80, 0, 0xFF ........... 5-6 в цикле до получения бита busy status "1" ................. 7. CMD55 0x55, 0, 0, 0, 0, 0x65 -> 0x55, 0, 0, 1, 0x20, 0x83 8. CMD41 0x69, 0, 0xFF, 0x80, 0, 0x80, 0x85 -> 0x3F, 0x80, 0xAA, 0x80, 0, 0xFF 9. CMD2 0x42 0, 0, 0, 0, 0x4D -> длинный ответ, просто фиксирую факт, что он есть 10. CMD3 0x43 0, 0, 0, 0, 0x4D -> 0x03, 0x02, 0x60, 0x05, 0, 0x5D 11. CMD3 0x43 0, 0, 0, 0, 0x4D -> 0x03, 0x02, 0x61, 0x07, 0, 0x2F -- вот тут уже 7 в ответе - prg state .... пауза 600 мкс...... 12. CMD7 0x47 0x02, 0x61, 0, 0, 0x7B -> 0x7, 0x0, 0x0, 0x7, 0x0, 0x75 13. CMD55 0x55, 0, 0, 0, 0, 0x65 -> и тишина.....
Сообщение отредактировал toretto - Mar 1 2012, 08:05
|
|
|
|
|
Mar 12 2012, 07:26
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 14-03-11
Пользователь №: 63 590

|
del
Сообщение отредактировал toretto - Mar 12 2012, 07:57
|
|
|
|
|
Mar 27 2012, 16:05
|
Группа: Новичок
Сообщений: 5
Регистрация: 27-03-12
Пользователь №: 71 035

|
Здравствуйте! Дабы не плодить новую ветку по работе с SD картой, напишу здесь. Помогите, пожалуйста, с записью на SD-карту в режиме SD. Инициализация проходит успешно, чтение так же корректно (совпадает с тем что я вижу на осциллографе). Последовательность команд, которую я отправляю:
CMD0, CMD8, CMD55, ACMD41,CMD2,CMD3,CMD9,CMD7,CMD55,ACMD6, далее пишу CMD24 и читаю CMD17
Считаю CRC для данных правильно, подтвержением тому - совпадение вычисленной моей CRC и полученной от карты при чении. Частота тактирования 257 КГц, слот SD карты общается с FPGA. При записи на карту, на середину данных приходится фронт клока (данные изменяю от спада до спада).
Большое спасибо!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|