|
|
  |
SD Card - програмная реализация интерфейса, У кого нибудь есть примеры реализации взаимодействия с SD Card? |
|
|
|
Jan 11 2007, 09:48
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 10 2007, 18:31)  Так надо дождаться, пока карта не будет готова, постоянно кидая ей ACMD41. т.е даже несмотря на то что питание на неё было подано за пару минут до того как я послал первую команду ACMD41, она ещё не соизволила сбросить бит busy?
|
|
|
|
|
Jan 11 2007, 10:57
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404

|
Цитата(Andrei.... @ Jan 11 2007, 09:48)  т.е даже несмотря на то что питание на неё было подано за пару минут до того как я послал первую команду ACMD41, она ещё не соизволила сбросить бит busy? Да, мне такое часто встречалось.. А если за пару минут то может она перешла уже в automatic sleep режим К примеру вот что сказано про SanDisk: Upon completion of an operation, the SD Card will enter the sleep mode to conserve power if no further commands are received within 5msec.
|
|
|
|
|
Jan 12 2007, 15:55
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 11 2007, 11:20)  Цитата(Andrei.... @ Jan 11 2007, 09:48)  ...сбросить бит busy?
Только не сбросить, а установить - бит Busy в OCR инверсный, насколько я помню. Понятно, это заработало. А что такое за BUSY посылается (к примеру на команду CMD7 и.т.п) по линии DAT0?
|
|
|
|
|
Jan 12 2007, 16:54
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 12 2007, 16:07)  Цитата(Andrei.... @ Jan 12 2007, 15:55)  А что такое за BUSY посылается (к примеру на команду CMD7 и.т.п) по линии DAT0?
Сигнал BUSY посылается. Первый ненулевой бит - это END-бит ответа, как я понимаю. Он посылается после CMD7? После команды смотрю DAT0 и там постоянно 1. Однако следущая команда уже не проходит (нет ответа).
|
|
|
|
|
Jan 12 2007, 18:22
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 12 2007, 17:06)  Цитата(Andrei.... @ Jan 12 2007, 16:54)  Он посылается после CMD7? После команды смотрю DAT0 и там постоянно 1. Однако следущая команда уже не проходит (нет ответа).
Напишите, какую последовательность команд (с аргументами) Вы даете до CMD7, и какую команду - после. До CMD7 всё нормально. Посылаю CMD7 c аргументом RCA (и она переходит в trans mode) и сразу за ней посылаю CMD7 с аргументом 0 (ожидая что она перейдёт в stand-by), вот на вторую CMD7 ответ и не приходит.
|
|
|
|
|
Jan 15 2007, 16:19
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 12 2007, 18:32)  Ответ может быть только от выбранной карты, т.е. на CMD7 с RCA=0 ответа быть не должно. Ах, ну да, логично. Возвращаясь к вопросу о вычислении контрольной суммы, действительно, как можно было бы попроще вычислить контрольную сумму (crc64) при четырёх линиях данных.
|
|
|
|
|
Jan 15 2007, 18:05
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 15 2007, 16:48)  Цитата(Andrei.... @ Jan 15 2007, 16:19)  Возвращаясь к вопросу о вычислении контрольной суммы, действительно, как можно было бы попроще вычислить контрольную сумму (crc64) при четырёх линиях данных.
Хорошая задача, были идеи, подумаю и напишу потом. А пока можно решить в лоб - будет медленно, но для проверки работоспособности сгодится. чего то в лоб не получилось...не сошлось, как я понимаю стартовый и стоповый бит в crc не входит, считаем только по данным?
|
|
|
|
|
Jan 16 2007, 16:21
|
Частый гость
 
Группа: Новичок
Сообщений: 104
Регистрация: 20-03-06
Пользователь №: 15 402

|
Цитата(aaarrr @ Jan 15 2007, 18:34)  Да, только по данным. всё равно не сходится.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|