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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> SD card on SPI, как организовать общение c SD картой по SPI ?
Zlo
сообщение Aug 6 2009, 17:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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 использовать ?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 6 2009, 18:47
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Зайдите на сайт Atmel'а. Там в разделе 32-разрядных ARM'ов есть свежие библиотеки, в том числе и по работе с SD. У меня проблем с инициализацией карт не возникало.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 6 2009, 20:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Zlo @ Aug 6 2009, 21:46) *
1. отправляю 16 байт 0xFF
2. отправляю CMD0 получаю 1
3. отправляю CMD1 или CMD55 + ACMD41(0xC0+41) - получаю 5 на каждую команду

- Для SDHC перед ACMD41 обязательно должна идти CMD8
- Код ACMD41(0x40 + 41)
Между окончанием ответа на предыдущую команду и началом передачи следующей должен быть 1 пустой цикл (NRC).
Go to the top of the page
 
+Quote Post
Zlo
сообщение Aug 7 2009, 06:47
Сообщение #4


Участник
*

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



Цитата(sergeeff @ Aug 6 2009, 22:47) *
Зайдите на сайт Atmel'а. Там в разделе 32-разрядных ARM'ов есть свежие библиотеки, в том числе и по работе с SD. У меня проблем с инициализацией карт не возникало.


работа с картой производилась по SPI ?
Go to the top of the page
 
+Quote Post
petrovichs
сообщение Aug 24 2009, 15:17
Сообщение #5





Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706



Я как раз тоже занялся изучением SD и мини-SD карт. Шастаю по интернету, никак не могу найти документ с полным описанием того как они работают (одна реклама). Поделитесь подобным документом, прочитав который, можно будет освоить работу с SD-картами. Заранее спасибо.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 24 2009, 15:41
Сообщение #6


Гуру
******

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



Цитата(petrovichs @ Aug 24 2009, 17:17) *
Шастаю по интернету, никак не могу найти документ....

Как только я вижу отмазки про искал в интернете и не нашел, я сразу понимаю, что они гнилые sad.gif. Вот только поиск по этому форуму - тема поднималась несчетное число раз.
http://www.google.com/search?hl=en&cli...mp;oq=&aqi=
Учитесь пользоваться поисковиками - это много проще, нежели программировать...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
head_sk
сообщение Aug 24 2009, 20:52
Сообщение #7


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

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Держи, парень.
Прикрепленные файлы
Прикрепленный файл  ProdManualSDCardv1.9.rar ( 971.89 килобайт ) Кол-во скачиваний: 268
 
Go to the top of the page
 
+Quote Post
petrovichs
сообщение Aug 24 2009, 21:09
Сообщение #8





Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706



Огромное вам спасибо.
Просто опытному разработчику сразу в голову приходит нужно решение, а когда начинаешь, то так легко запутаться sad.gif
Можете ответить ещё на один, последний вопрос. В чем разница между SD-card и MicroSD-card? Везде пишут, что разница только в габаритах, но так ли это? Волнует вопрос поддерживает ли Micrо-SD режим SPI?? А то фраза "опционально" очень смущает.
Заранее спасибо за советы и помощь.

Сообщение отредактировал petrovichs - Aug 24 2009, 21:17
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 25 2009, 05:59
Сообщение #9


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?? А то фраза "опционально" очень смущает.
Go to the top of the page
 
+Quote Post
petrovichs
сообщение Aug 25 2009, 19:25
Сообщение #10





Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706



Все-таки задам маленький последний вопросик. Если у микроконтроллера нет аппаратной поддержки интерфейса SD, то сложна ли программная её реализация?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 25 2009, 19:28
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(petrovichs @ Aug 25 2009, 23:25) *
Все-таки задам маленький последний вопросик. Если у микроконтроллера нет аппаратной поддержки интерфейса SD, то сложна ли программная её реализация?

Не то чтобы сложна, главное, крайне неэффективна.
Go to the top of the page
 
+Quote Post
petrovichs
сообщение Aug 25 2009, 22:06
Сообщение #12





Группа: Участник
Сообщений: 10
Регистрация: 2-08-09
Пользователь №: 51 706



Я понял, значит если нет аппаратного SD-интерфейса, тогда только SPI остается.
Go to the top of the page
 
+Quote Post
Ndf
сообщение Sep 8 2009, 11:59
Сообщение #13


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

Группа: Свой
Сообщений: 101
Регистрация: 22-08-07
Пользователь №: 29 977



Есть вопрос относительно скорости записи/чтения MMC-card в SPI mode...ф. Apacer 1Гб, на карте 13 ног, название MMC mobile. Конкретно на эту карту параметров не нашел, но в документе от SanDisk "NAND MMC and SD-based Products" нашел следующее: для MultiMediaCard макс скорость обмена по SPI составляет 2,5MB/s, максимальная частота CLK=20MHz. Но на практике максимальное значение F clk=600 кГц (по осцил.), если увеличть скорость обмена появляется ошибка "Parameter error".Подскажите в чем может быть проблема?
SPI реализован на ADSP 21375, взял пример с Analog.com для ADSP 21369 + ММС и адаптировал на 75 проц. Все вроде работает, но очень медленно...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 8 2009, 14:54
Сообщение #14


Гуру
******

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



Цитата(Ndf @ Sep 8 2009, 13:59) *
Подскажите в чем может быть проблема?

В Вашем железе и/или диаграмме.... 20MHz это вообще обыденная частота. А конкретную, Вы можете и у карточки спросить smile.gif - читайте документацию.
P.S.
Надеюсь, Вы не пытаетесь сразу ДО инициализации работать на мегагерцах?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Ndf
сообщение Sep 9 2009, 11:15
Сообщение #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)->....ошибка. sad.gif
Может какую команду еще пропустил? Если работать на той же скорости то все нормально.
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 Текстовая версия Сейчас: 13th July 2025 - 02:38
Рейтинг@Mail.ru


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