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

 
 
> Опять SD карта, проблема с CMD17
AndreyVN
сообщение Jan 26 2012, 15:38
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Всем привет!

Проблема с SD картой, работаю в режиме SPI на частоте 4MHz.

С иницилизацией как-то гладко все получилось. Шлю команды CMD0, CMD8, CMD55, ACMD41, CMD16 со всей сопутствующей логикой – читаю OCR регистр анализирую биты Busy и CCS, отличаю CDHC и SDSC, смотрю режим адресации, при необходимости выставляю 255 байт.

Проблемы начинаются при попытке прочитать сектор CMD17. Сначала вычитываю R1=00, потом жду 0xFE и читаю 255 байт.

Две карты читаются замечательно (SDHC 4Gb и SDSC 1Gb).

А две карты (SDSC 2Gb и SDSC 128Mb) возвращают полную ерунду – 99% байт не совпадают с реальным содержимым нулевого сектора, а два последних байта почему-то всегда совпадают 0x55, 0xAA.

Подобная ситуация воспроизводится и с нулевым сектором и с любым другим, т.е. режим адресации, вроде, не причем.

Может у кого-то было что-то похожее? Уже не знаю, что делать…
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jan 26 2012, 15:51
Сообщение #2


Гуру
******

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



Цитата(AndreyVN @ Jan 26 2012, 19:38) *
Подобная ситуация воспроизводится и с нулевым сектором и с любым другим, т.е. режим адресации, вроде, не причем.

Если с нулевым, то можно заподозрить путаницу с нулевым логическим/физическим. А вообще, включите CRC - все сразу станет понятно.
Go to the top of the page
 
+Quote Post
AndreyVN
сообщение Jan 27 2012, 04:12
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Цитата(aaarrr @ Jan 26 2012, 19:51) *
Если с нулевым, то можно заподозрить путаницу с нулевым логическим/физическим. А вообще, включите CRC - все сразу станет понятно.


А разве CMD17 может работать с логическими секторами??? Это же понятие структуры FAT, ни контроллер ни CMD17 понятия не имеют о FАT. Или я что-то путаю?
На отправку команды - вставлял корректный код CRC7, та-же картина, на прием - не пробовал это'ж надо код для подсчета CRC16 написать.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 27 2012, 11:19
Сообщение #4


Гуру
******

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



Цитата(AndreyVN @ Jan 27 2012, 08:12) *
А разве CMD17 может работать с логическими секторами??? Это же понятие структуры FAT, ни контроллер ни CMD17 понятия не имеют о FАT. Или я что-то путаю?

Я имел в виду путаницу в той части, в которой вы смотрите "реальное" содержимое сектора. Карта, разумеется, ничего не знает о структуре диска.

Цитата(AndreyVN @ Jan 27 2012, 08:12) *
На отправку команды - вставлял корректный код CRC7, та-же картина, на прием - не пробовал это'ж надо код для подсчета CRC16 написать.

Да что там этого кода:
Код
const unsigned short sd_crc16_table_a[16] =
{
    0x0000, 0x1231, 0x2462, 0x3653,
    0x48c4, 0x5af5, 0x6ca6, 0x7e97,
    0x9188, 0x83b9, 0xb5ea, 0xa7db,
    0xd94c, 0xcb7d, 0xfd2e, 0xef1f
};

const unsigned short sd_crc16_table_b[16] =
{
    0x0000, 0x1021, 0x2042, 0x3063,
    0x4084, 0x50a5, 0x60c6, 0x70e7,
    0x8108, 0x9129, 0xa14a, 0xb16b,
    0xc18c, 0xd1ad, 0xe1ce, 0xf1ef
};

unsigned short sd_crc16(unsigned char *buff, unsigned int len)
{
    unsigned char data;
    unsigned short crc = 0;

    while(len--)
    {
        data = *buff++ ^ (crc >> 8);
        crc = (sd_crc16_table_a[(data & 0xf0) >> 4] ^ sd_crc16_table_b[data & 0x0f]) ^ (crc << 8);
    }
    return crc;
}
Go to the top of the page
 
+Quote Post
AndreyVN
сообщение Jan 27 2012, 11:31
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Цитата(aaarrr @ Jan 27 2012, 15:19) *
Я имел в виду путаницу в той части, в которой вы смотрите "реальное" содержимое сектора. Карта, разумеется, ничего не знает о структуре диска.


Это могло-бы все объяснить! Смотрю, действительно, через карт-ридер и WinHex.

Цитата
Да что там этого кода:


Спасибо!!!

О результатах доложу.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:42
Рейтинг@Mail.ru


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