Перейти к содержанию
    

SD Card - програмная реализация интерфейса

Так надо дождаться, пока карта не будет готова, постоянно кидая ей ACMD41.

 

т.е даже несмотря на то что питание на неё было подано за пару минут до того как я послал первую команду ACMD41, она ещё не соизволила сбросить бит busy?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е даже несмотря на то что питание на неё было подано за пару минут до того как я послал первую команду 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...сбросить бит busy?

Только не сбросить, а установить - бит Busy в OCR инверсный, насколько я помню.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...сбросить бит busy?

Только не сбросить, а установить - бит Busy в OCR инверсный, насколько я помню.

 

Понятно, это заработало. А что такое за BUSY посылается (к примеру на команду CMD7 и.т.п) по линии DAT0?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что такое за BUSY посылается (к примеру на команду CMD7 и.т.п) по линии DAT0?

Сигнал BUSY посылается. Первый ненулевой бит - это END-бит ответа, как я понимаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что такое за BUSY посылается (к примеру на команду CMD7 и.т.п) по линии DAT0?

Сигнал BUSY посылается. Первый ненулевой бит - это END-бит ответа, как я понимаю.

 

Он посылается после CMD7? После команды смотрю DAT0 и там постоянно 1. Однако следущая команда уже не проходит (нет ответа).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он посылается после CMD7? После команды смотрю DAT0 и там постоянно 1. Однако следущая команда уже не проходит (нет ответа).

Напишите, какую последовательность команд (с аргументами) Вы даете до CMD7, и какую команду - после.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он посылается после CMD7? После команды смотрю DAT0 и там постоянно 1. Однако следущая команда уже не проходит (нет ответа).

Напишите, какую последовательность команд (с аргументами) Вы даете до CMD7, и какую команду - после.

 

До CMD7 всё нормально. Посылаю CMD7 c аргументом RCA (и она переходит в trans mode) и сразу за ней посылаю CMD7 с аргументом 0 (ожидая что она перейдёт в stand-by), вот на вторую CMD7 ответ и не приходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До CMD7 всё нормально. Посылаю CMD7 c аргументом RCA (и она переходит в trans mode) и сразу за ней посылаю CMD7 с аргументом 0 (ожидая что она перейдёт в stand-by), вот на вторую CMD7 ответ и не приходит.

Ответ может быть только от выбранной карты, т.е. на CMD7 с RCA=0 ответа быть не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ответ может быть только от выбранной карты, т.е. на CMD7 с RCA=0 ответа быть не должно.

 

Ах, ну да, логично. Возвращаясь к вопросу о вычислении контрольной суммы, действительно, как можно было бы попроще вычислить контрольную сумму (crc64) при четырёх линиях данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаясь к вопросу о вычислении контрольной суммы, действительно, как можно было бы попроще вычислить контрольную сумму (crc64) при четырёх линиях данных.

Хорошая задача, были идеи, подумаю и напишу потом. А пока можно решить в лоб - будет медленно, но для проверки работоспособности сгодится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаясь к вопросу о вычислении контрольной суммы, действительно, как можно было бы попроще вычислить контрольную сумму (crc64) при четырёх линиях данных.

Хорошая задача, были идеи, подумаю и напишу потом. А пока можно решить в лоб - будет медленно, но для проверки работоспособности сгодится.

 

чего то в лоб не получилось...не сошлось, как я понимаю стартовый и стоповый бит в crc не входит, считаем только по данным?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...