|
SD card on SPI, как организовать общение c SD картой по SPI ? |
|
|
|
Aug 6 2009, 17:46
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 29-09-05
Из: Москва
Пользователь №: 9 094

|
Вопрос таков: все ли SPI у SD карт одинаковые ? Столкнулся со следующей проблемой: пытался инициализировать SD карту (взял 2 разные, как оказалось ответы на команды инициализации CMD8, ACMD41 и CMD55 у них тоже разные).
одна (от NOKIA) говорит что много ошибок а вот от Kingston на CMD55 (55+0x40) выдаёт 5 (Idle + Error Comand) так же как и на ACMD41 и CMD1
(может я что не так делаю) ?
Алгоритм инициализации следующий:
1. отправляю 16 байт 0xFF 2. отправляю CMD0 получаю 1 3. отправляю CMD1 или CMD55 + ACMD41(0xC0+41) - получаю 5 на каждую команду
при отправке всех команд CS опускается и поднимается после нескольких опытов карточка стала возвращать 0xe0 на все команды
Вопрос: может проще MMC использовать ?
|
|
|
|
|
Aug 7 2009, 06:47
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 29-09-05
Из: Москва
Пользователь №: 9 094

|
Цитата(sergeeff @ Aug 6 2009, 22:47)  Зайдите на сайт Atmel'а. Там в разделе 32-разрядных ARM'ов есть свежие библиотеки, в том числе и по работе с SD. У меня проблем с инициализацией карт не возникало. работа с картой производилась по SPI ?
|
|
|
|
|
Aug 24 2009, 15:17
|
Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706

|
Я как раз тоже занялся изучением SD и мини-SD карт. Шастаю по интернету, никак не могу найти документ с полным описанием того как они работают (одна реклама). Поделитесь подобным документом, прочитав который, можно будет освоить работу с SD-картами. Заранее спасибо.
|
|
|
|
|
Aug 24 2009, 21:09
|
Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706

|
Огромное вам спасибо. Просто опытному разработчику сразу в голову приходит нужно решение, а когда начинаешь, то так легко запутаться Можете ответить ещё на один, последний вопрос. В чем разница между SD-card и MicroSD-card? Везде пишут, что разница только в габаритах, но так ли это? Волнует вопрос поддерживает ли Micrо-SD режим SPI?? А то фраза "опционально" очень смущает. Заранее спасибо за советы и помощь.
Сообщение отредактировал petrovichs - Aug 24 2009, 21:17
|
|
|
|
|
Aug 25 2009, 05:59
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
microSD Kingston-ы на 2 Гб поддерживают SPI. Проверено. За остальных сказать не могу. Но что точно можно сказать это то, что SD карты чувствительны к целостности сигналов и как и все микрухи не любят овершутингов и фазовых сдвигов клока. Поэтому стоит тестировать всегда на минимальной скорости и с последовательными резаками. Второе это то, что даже SD карты одного производителя и типономинала но сделанные в тайване и в японии могут по разному реагировать на всякие вольности в протоколе. Был случай когда японские карты не читались к картридерах оставшихся от тайваньских. Есть другой USB кардридер, так тот тоже иные карты берет сразу как их вставишь, а для других у кардридера надо питание перетыкать. Исследования показали что вроде как некоторые карты плохо реагируют на повторную команду CMD0. Цитата(petrovichs @ Aug 25 2009, 00:09)  Волнует вопрос поддерживает ли Micrо-SD режим SPI?? А то фраза "опционально" очень смущает.
|
|
|
|
|
Aug 25 2009, 19:25
|
Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706

|
Все-таки задам маленький последний вопросик. Если у микроконтроллера нет аппаратной поддержки интерфейса SD, то сложна ли программная её реализация?
|
|
|
|
|
Aug 25 2009, 22:06
|
Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706

|
Я понял, значит если нет аппаратного SD-интерфейса, тогда только SPI остается.
|
|
|
|
|
Sep 8 2009, 14:54
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Ndf @ Sep 8 2009, 13:59)  Подскажите в чем может быть проблема? В Вашем железе и/или диаграмме.... 20MHz это вообще обыденная частота. А конкретную, Вы можете и у карточки спросить  - читайте документацию. P.S. Надеюсь, Вы не пытаетесь сразу ДО инициализации работать на мегагерцах?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 9 2009, 11:15
|
Частый гость
 
Группа: Свой
Сообщений: 101
Регистрация: 22-08-07
Пользователь №: 29 977

|
Цитата(zltigo @ Sep 8 2009, 18:54)  ...читайте документацию. P.S. Надеюсь, Вы не пытаетесь сразу ДО инициализации работать на мегагерцах? Прочитал MultiMediaCard™ User’s Manual Hitachi - нет там (или не заметил) такого регистра в котором хранилось бы заводское значение макс частоты для девайса.Единственное что нашел:"there are two communication protocol modes—MMC (MultiMediaCard™) mode and SPI mode. The maximum clock operating frequency in both modes is 20 MHz". Также сказано (ежу понятно), что после инициализации можно повысить Fclk до 20Мгц, так и делаю: CMD0->CMD1->[responce=0 - увеличиваю Fclk с 400кГц->1Мгц]->mmc_set_block_length(512)->....ошибка. Может какую команду еще пропустил? Если работать на той же скорости то все нормально.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|