реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> SD card on SPI, как организовать общение c SD картой по SPI ?
Ruslan-maniak
сообщение Feb 19 2016, 11:03
Сообщение #31


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Команды отправляются правильно. Так как инициализация проходит успешно. Вопрос именно в том почему карта отвечает 0х05.
Go to the top of the page
 
+Quote Post
Ruslan-maniak
сообщение Feb 20 2016, 06:17
Сообщение #32


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Взял библиотеку от Техасов (на их отладке с разъёмом под карту всё норм работает), переношу библиотеку на отладку STM с внешним SD card адаптером и абсолютно такой же код не инициализирует карту.
Инициализация следующая:
1) 74 импульса SCK
2) Отправка CMD0, ответ 0x01
3) Отправка CMD8 с аргументом 0x01AA, ответ 0x01 и 0x000001AA
4) Отправка CMD55 (ответ 0х01) и CMD41 c аргументом 0x04000000, И ВОТ ТУТ на STM всё время приходит ответ 0x01, а ожидается 0х00.
Хотя на техасе всё проходит нормально. Осцилограммы SPI буквально идентичны на 2 отладках. В чём причина - ума не приложу.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 20 2016, 08:17
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Ruslan-maniak @ Feb 20 2016, 09:17) *
CMD41 c аргументом 0x04000000

Это неверно. Посмотрите внимательно аргументы команды ACMD41.

Цитата
Followings are general rules of the argument of ACMD41:
(1) If the voltage window field (bit 23-0) in the argument is set to zero, it is called "inquiry CMD41" that
does not start initialization and is use for getting OCR. The inquiry ACMD41 shall ignore the other
field (bit 31-24) in the argument.
(2) If the voltage window field (bit 23-0) in the argument is set to non-zero at the first time, it is called
"first ACMD41" that starts initialization. The other field (bit 31-24) in the argument is effective.
(3) The argument of following ACMD41 shall be the same as that of the first ACMD41.

При нулевом OCR инициализация не должна стартовать.
Нулевой OCR можно использовать для получения правильного OCR.
Go to the top of the page
 
+Quote Post
Ruslan-maniak
сообщение Feb 24 2016, 03:26
Сообщение #34


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Почему-то все остальные источники, например Чэн также используют этот же аргумент:
"And then initiate initialization with ACMD41 with HCS flag (bit 30)."
Go to the top of the page
 
+Quote Post
p_kav
сообщение Jul 28 2016, 17:17
Сообщение #35


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 5-08-14
Из: Ярославль
Пользователь №: 82 466



Здравствуйте.

Чтобы не плодить темы, напишу сюда. Второй день пытаюсь завести SD-карту на SPI и не получается. Всё делаю по инструкции, но карта на CMD0 отвечает не 0x01.
Вот скриншот логического анализатора, микроконтроллер принимает те же данные, что и на картинке. Прошу пояснить в чём я неправ.



Нашел причину, прошу прощения за глупый вопрос, не увидел, что CS падает на середине посылки, проверялся не то флаг в SPI периферии.

Сообщение отредактировал p_kav - Jul 28 2016, 20:41
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th July 2025 - 20:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016