Цитата(skripach @ Apr 8 2008, 15:38)

1)Как посчитать CRC для разных команд? или где взять посчитаные?
Код
unsigned char calc_crc7(unsigned char *ptr, signed char count ){
char crc=0;
unsigned char i,data;
while (count--) {
data=*ptr++;
for (i=0;i<8;i++) {
crc <<= 1;
if ((data & 0x80)^(crc & 0x80)) crc ^=0x09;
data <<= 1;
}
}
return((crc<<1)|1);
}
Цитата(skripach @ Apr 8 2008, 15:38)

2)И команды и ответы на команды по линии CMD?
Да.
Цитата(skripach @ Apr 8 2008, 15:38)

3)В SD-mode данные поступают по 4-м линиям, порядок бит? Как распазнаётся первый байт данных?
Всегда старшим вперед. При 4-линиях старшая тетрада вперед.
После отсылки команды на чтение данных ждем(не забывая CLC) "0" на DAT0 - это стартовый бит. Далее пошли данные.