Ребята коты, у меня беда : карта памяти инициализируется отсылает 0x01 потом 2 раза молчит на 0x41(вывод из ожидания) и 0x58(запись одного блока) а после отсылки блока не выдает ответ и пишет не те данные что я подаю вот код отправки байта и код отправки кодов отправки байтов, может кто - то обосрет норм и мы придем к истине?
******** ОТПРАВКА БАЙТА *******
void SD_give(char tor)
{
for (int s=0;s<8;s++)
{
if ((tor&0x80)==0x80)
{PORTB|=0x08;}
else
{PORTB&=0xF7;}
tor=(tor<<1);
_delay_us(100);
PORTB|=0x20;
_delay_us(100);
PORTB&=0xDF;
}
PORTB&=0xF7;
}
********" ОТПРАВКА ОТПРАВОК БАЙТОВ "*******
SD_give(0xfe); // token для команды типа 0x58
for (int p=0;p<514;p++)//514 байт (512 данные и 2 произвольная CRC)
{
SD_give(0xf2);
}
PS так при отправке 0xf2 в хекс редакторе наблюдаются 0xcb
прилагаю диаграмму из протеуса c SCK и DataO
******** ОТПРАВКА БАЙТА *******
void SD_give(char tor)
{
for (int s=0;s<8;s++)
{
if ((tor&0x80)==0x80)
{PORTB|=0x08;}
else
{PORTB&=0xF7;}
tor=(tor<<1);
_delay_us(100);
PORTB|=0x20;
_delay_us(100);
PORTB&=0xDF;
}
PORTB&=0xF7;
}
********" ОТПРАВКА ОТПРАВОК БАЙТОВ "*******
SD_give(0xfe); // token для команды типа 0x58
for (int p=0;p<514;p++)//514 байт (512 данные и 2 произвольная CRC)
{
SD_give(0xf2);
}
PS так при отправке 0xf2 в хекс редакторе наблюдаются 0xcb
прилагаю диаграмму из протеуса c SCK и DataO
- Вложения
-
- Безымянный.png
- (102.81 КБ) 355 скачиваний
