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

 
 
 
Reply to this topicStart new topic
> MMC Card
uzNiK
сообщение Nov 13 2008, 14:15
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 23-05-08
Пользователь №: 37 745



Здраствуйте уважаемые!
Сразу предупреждаю - я новичок!! Работаю с рха255, пробую оживить ММС-контроллер в процессоре. Немного изучил работу с флеш-картами с доступной информации с интернета, как-будто все предельно ясно, но есть некоторые нюансы. Как я понимаю рха сам виполняет некоторые операции (генерирует CRC и CMD), в итоге - команды отправляются без проблем, на CMD0 тишина полная, CMD1 получаю ответ 3f00 или 1f00 (тут я подозреваю проблема с проводниками), в зависимости от частоты и рха "ругается", что в ответе CRC неправильный. Еще запутался с задержками, в разных источниках говорят о разных значениях.
Кто нибудь может помочь мне разобратся с алгоритмом получения ответов и установкой задержек (это все делается в ручную или нужно как-то устанавливать в регистрах?)
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Nov 13 2008, 16:51
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(uzNiK @ Nov 13 2008, 20:15) *
Кто нибудь может помочь мне разобратся с алгоритмом получения ответов и установкой задержек (это все делается в ручную или нужно как-то устанавливать в регистрах?)


Осциллограф в руки, и последовательно смотреть инициализацию, команду за командой.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Nov 14 2008, 05:36
Сообщение #3


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Посмотри код (я не проверял, но должен быть рабочим)
Прикрепленные файлы
Прикрепленный файл  xsMMC.ZIP ( 6.66 килобайт ) Кол-во скачиваний: 72
 


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
uzNiK
сообщение Nov 14 2008, 07:52
Сообщение #4





Группа: Новичок
Сообщений: 9
Регистрация: 23-05-08
Пользователь №: 37 745



Цитата(Andy Mozzhevilov @ Nov 13 2008, 18:51) *
Осциллограф в руки, и последовательно смотреть инициализацию, команду за командой.


Я с помощью осциллографа как раз и смотрю, что что-то не так, на карт-ридере с компа первая команда идет через 20 мс (CMD0), следующая идет через 1 мс (кажется CMD8) и т.д. Ответ от карты приходит после 4-й команды (CMD3). Так у меня тоже ММС я попитался повторить условия - после включения клока жду ~20 мс, потом начинаю отправлять команды, но между командами получается пауза около 10 мс. И с ответом проблемы, за осциллограмой все нормально, но рха ругается - не то!!
Из даташит на рха:
"MMC_RES FIFO, contains the response after a command. It is 16 bits wide
by eight entries.The RES FIFO does not contain the 7-bit CRC for the response.
"
Вот и разберись... 01.gif

sensor_ua За архивчик спасибо, посмотрю.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Nov 14 2008, 09:41
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



После подачи CMD0 (Idle) карта начинает внутренний процесс инициализации. Время, которое для этого требуется, зависит от конкретного типа карты, но порядок - десятки мс. Поэтому после подачи CMD0 делается несколько запросов с проверкой ответа.
Команда CMD8 по моему для SDHC, и ваша карта не должна на нее отвечать, потом должен быть запрос CMD1, и если у вас MMC, то карта даст ответ регистром OCR, в котором нужно проверить бит POWER_UP_STATUS. И пока карта не закончит инициализацию, этот бит будет сброшен, соответственно нужно подавать CMD1 до тех пор, пока он не установится, после чего продолжать процесс инициализации.
А вообще, в спецификации на SD этот автомат состояний расписан более чем понятно.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Nov 14 2008, 13:36
Сообщение #6


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Может быть полезно почитать
http://www.samsung.com/global/business/sem...note_200606.pdf


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 14 2008, 20:07
Сообщение #7


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

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



У Atmel'a в последней серии примеров под sam9 серию (web-pack 1.4) есть в том числе пример по работе с SD и MMC. Можно посмотреть, там вся инициализация сделана вполне внятно.
Go to the top of the page
 
+Quote Post
uzNiK
сообщение Dec 4 2008, 07:42
Сообщение #8





Группа: Новичок
Сообщений: 9
Регистрация: 23-05-08
Пользователь №: 37 745



Ну вообщем я разобрался... Мне оказывается еще надо было включить SPI режим, я удачно включил его )), после посилки CM0 получил 0х01, а после CMD1 0х00 (ММС карта). С приемом и передачой данных тоже как-будто понятно... Но захотелось прочитать CSD и CID но столкнулся с тем, что в регистр ответа (MMC_RES) не полностью записываются данные ответа - только первые 40 бит (что соотвествует для SPI передачи 1-2-5 байтные ответы. Или это не так?), но осциллографом я проверяю (после команды CMD9), а там ответ приходит намного больше чем 40 бит!!

Как прочитать ответ? Такой обольшой ответ соотвествует SPI режиму? В разных источниках я читал что люди его считывают, но размер его не указывают.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:58
Рейтинг@Mail.ru


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