Цитата(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;
}