|
|
  |
Микроконтроллер STM32 и uSD карта в SPI режиме, проблема |
|
|
|
Feb 21 2014, 11:18
|
Знающий
   
Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594

|
Сразу приношу извинения, что тема несколько косвенно связана с микроконтроллером, но для памяти отдельной ветки не нашел. Проблема следующая. STM32 и uSD карта коммуницируются по SPI. Проекту лет 5, последнее время юзаю SDIO порт, отказавшись от SPI, и очень рад такому переходу, так как: оказалось, что карты SanDisk в большинстве не работают в этом режиме. А именно, команды CMD0 (перевод в режим SPI) CMD8 CMD58 отрабатывают штатно а далее следует связка из CMD55/ACMD41 котоые собственно не включают карту, она продолжнает находиться в IDLE остоянии. Повторы ничего не дают. Проект мелкосерийный и карты попадлись не сандиск и о проблеме даже не знал никто. А тут вот открылся сюрприз. Карт уже куплено много, не хотелось бы их выкидывать, так что если у кого то имеется опыт работы с ними, прошу поделиться.
|
|
|
|
|
Feb 22 2014, 16:37
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(kan35 @ Feb 21 2014, 16:28)  SanDisk попался 8G, потом попробовал 2G, потом даже 128Mb Да, интересно, надо будет тоже где-нить откопать и проверить свои творения Помнится когда-то давно тоже что-то не работало - пришлось отлаживать покомандно,долго мучался, но получилось. Кстати,а на своем сайте у них нет каких-либо ограничений? Не смотрели?
Сообщение отредактировал mantech - Feb 22 2014, 16:37
|
|
|
|
|
Feb 22 2014, 21:48
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Вероятно, проблема именнов в микроSD картах. Так как знаю про массовое использование обычных SD карт сандисков (конкретно- 2-гиговой SD Sandisk копплектуют один прибор, а там SPI) - проблем не возникало. Еще возможно, что просто какой-то параметр на грани допустимого или не соблюден, а в разных фирмах по разному оно на это реагирует. Ну, например, инициализируете на 2 мегагерцах тактовой. Ну и классика жанра: линии притянуты, в воздухе не болтаются? Питание в норме, ток не сильно зажимаете? Инициализация соответствует спецификации? "Работает с ZZZ "- не аргумент, гляньте по исходникам, или лучше осциллографом/логанализатором реальную картинку. Чудес не бывает (почти не бывает
|
|
|
|
|
Feb 22 2014, 22:58
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(kan35 @ Feb 21 2014, 15:18)  ... CMD58 отрабатывают штатно а далее следует связка из CMD55/ACMD41 котоые собственно не включают карту, она продолжнает находиться в IDLE остоянии. Именно idle, или inactive? И как соотносится прочитанное содержимое OCR и аргумента ACMD41 (собственно OP_COND)? Есть еще различия в разных версиях стандартов. Например, по версии 1.0 при чтении регистров CSD и CID блок данных отстоит от ответа как минимум на один байт (Ncr и Nac соответственно), а уже в версии 1.01 этот период может быть и нулевым (переименован в Ncx). Подавляющее большинство карт работают по правилам более ранней версии, но есть и такие, что передают CID/CSD сразу после R1.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|