|
|
  |
SD Card - програмная реализация интерфейса, У кого нибудь есть примеры реализации взаимодействия с SD Card? |
|
|
|
Jul 3 2007, 11:57
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505

|
Цитата(aaarrr @ Jan 9 2007, 17:59)  Да, стартует карта в SD-режиме, и последовательность инициализации будет именно такой. А какое железо используется, на борту есть контроллер SD? С программной эмуляцией SD-режима я бы не связывался. А что бы Вы посоветовали в случае EP9302? Если я правильно понял, то SD-card к нему можно только по SPI подключить, а хотелось бы по протоколу SD работать, но не реализовывать это все программно.
|
|
|
|
|
Jul 3 2007, 12:34
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Цитата(Rudolph @ Jul 3 2007, 15:57)  А что бы Вы посоветовали в случае EP9302? Если я правильно понял, то SD-card к нему можно только по SPI подключить, а хотелось бы по протоколу SD работать, но не реализовывать это все программно. Что в вашем понимании "реализация протокола"? Если прием и передача команд по SD-протоколу - то програмная реализация займет строк 30-40.
|
|
|
|
|
Jul 3 2007, 13:01
|
Частый гость
 
Группа: Новичок
Сообщений: 84
Регистрация: 24-05-07
Пользователь №: 27 947

|
Цитата(Rudolph @ Jul 3 2007, 15:57)  А что бы Вы посоветовали в случае EP9302? Если я правильно понял, то SD-card к нему можно только по SPI подключить, а хотелось бы по протоколу SD работать, но не реализовывать это все программно. В случае EP9302 я бы вообще не советовал связываться с SD: по SPI получается медленно, а преимуществ программной реализации SD-протокола через GPIO я, честно говоря, не вижу. Впрочем, про эмуляцию SD лучше спросить у Andrei..... Еще можно: - поставить внешний контроллер - подключить карту через USB адаптер - сделать свой контроллер на программируемой логике На практике годится только третий вариант: stand-alone контроллеры SD почти не встречаются, а при подключении через USB выйгрыш по скорости будет совсем небольшим по сравнению с SPI. Цитата(KAlex @ Jul 3 2007, 16:34)  Что в вашем понимании "реализация протокола"? Если прием и передача команд по SD-протоколу - то програмная реализация займет строк 30-40. Пять сотен строк минимум.
|
|
|
|
|
Jul 3 2007, 13:19
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505

|
Спасибо.
Не могли бы вы поделиться ссылками на какие-нить процессоры, где реализован SD-контроллер. Просто чтоб почитать, что он из себя представляет. Что-то не могу найти ничего.
ps: у меня есть опасение, что я не смогу воспользоваться готовыми вещами в WinCE 5.0 (в плане работы с картами SD), если буду подключать карточку по SPI.
|
|
|
|
|
Jul 3 2007, 13:50
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Цитата(a3r3 @ Jul 3 2007, 17:01)  Пять сотен строк минимум. Это полная реализация протокола. Я имел в виду "прием байта", "передача байта".
|
|
|
|
|
Jul 3 2007, 14:40
|
Частый гость
 
Группа: Новичок
Сообщений: 84
Регистрация: 24-05-07
Пользователь №: 27 947

|
Цитата(Rudolph @ Jul 3 2007, 17:19)  Не могли бы вы поделиться ссылками на какие-нить процессоры, где реализован SD-контроллер. Просто чтоб почитать, что он из себя представляет. Что-то не могу найти ничего. Можно посмотреть AT91SAM9261, но описание там довольно куцее, еще Sharp, Samsung и т.д. Но лучше почитать полную спецификацию SD, она есть на FTP. Цитата(Rudolph @ Jul 3 2007, 17:19)  ps: у меня есть опасение, что я не смогу воспользоваться готовыми вещами в WinCE 5.0 (в плане работы с картами SD), если буду подключать карточку по SPI. Вполне справедливое опасение: в WinCE BSP для ep93xx ничего подобного нет. Да и под Linux придется писать свое.
|
|
|
|
|
Jul 30 2007, 12:43
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505

|
Подскажите, плз. EP9302 работа с SD-card в SPI-mode.
CMD0 выполняется правильно - получаю 0х01.
Далее, что надо для работы SD-card в SPI-режиме?
А то в исходниках EFSL далее идет CMD1, а Тошибовском мануале, например, сказано, что DO NOT USE CMD1, а юзайте ACMD41.
|
|
|
|
|
Aug 2 2007, 08:27
|
Частый гость
 
Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405

|
Цитата(a3r3 @ Jul 3 2007, 18:40)  Цитата(Rudolph @ Jul 3 2007, 17:19)  Спасибо.
Не могли бы вы поделиться ссылками на какие-нить процессоры, где реализован SD-контроллер. Просто чтоб почитать, что он из себя представляет. Что-то не могу найти ничего.
ps: у меня есть опасение, что я не смогу воспользоваться готовыми вещами в WinCE 5.0 (в плане работы с картами SD), если буду подключать карточку по SPI. Можно посмотреть AT91SAM9261, но описание там довольно куцее, еще Sharp, Samsung и т.д. Но лучше почитать полную спецификацию SD, она есть на FTP. Вполне справедливое опасение: в WinCE BSP для ep93xx ничего подобного нет. Да и под Linux придется писать свое. А ещё есть AT32AP7000 (ядро AVR32), для которого (в том числе) есть Linux, который можно грузить как раз (и опять же в том числе) с SD-карты, поддерживаемой аппаратным модулем Multimedia Card Interface. Сам не сравнивал, но думаю, что этот модуль аналогичен тому, что в ARM9-процессоре от Atmel. Про портирование WinCE на платформу AVR32 ничего не слышал. P.S. А ветки по AVR32 всё нет
|
|
|
|
|
Aug 9 2007, 08:28
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505

|
Спасибо.
Вот тут возник вопрос по EP9302. Какие значения надо записывать в биты SPO и SPH в регистре SSPCR0 в SSP? Имеется ввиду работа с SD-card по SPI.
Сообщение отредактировал Rudolph - Aug 9 2007, 08:29
|
|
|
|
|
Aug 10 2007, 12:10
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505

|
Спасибо.
Вот что-то не могу найти в документации: при подаче ACMD41 (т.е. CMD55 + CMD41), какой ответ я должен ожидать от CMD55? 0x01?
|
|
|
|
|
Aug 10 2007, 12:54
|

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

|
Цитата(Rudolph @ Aug 10 2007, 15:10)  какой ответ я должен ожидать от CMD55? 0x01? Зависит от предыдущего состояния, посему в общем случае ожидайте любой  меньший или равный 0x01 - это наиболее правильная реализация. Цитата(a3r3 @ Aug 10 2007, 15:25)  По-идее, 0x01. В SPI режиме не обязательно использовать ACMD41, можно использовать CMD1. Если эта команда, не используется для распознавания MMC/SD, однако.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 10 2007, 12:59
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 19-02-07
Пользователь №: 25 505

|
Изввиняюсь, сразу не сказал. Подразумевается, что я подавал уже CMD0 и добился ответа 0х01. Карточка только SD.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|