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

 
 
> Atmega8 и SD карта, не пишется сектор
Alex31
сообщение Feb 14 2008, 06:50
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 19-10-06
Пользователь №: 21 463



Здравствуйте.
Имеется проблема:
Atmega8L, к ней подключена SD карточка (Uпит 3,3В).
Инициализация проходит успешно, сектора читаются, но после записи сектора приходит Data Response 0хF2, хотя по описанию такого быть не может в принципе. И после этого карточка перестает читаться и писаться. Если затем сделать инициализацию, то она начинает читаться и тот сектор оказывается записанным правильно. Частоту SPI менял, не помогает. sad.gif
В чем может быть проблема?
Исходиники библиотек работы с катрой брал где-то здесь на форуме, проверял с двумя карточками SD TOSHIBA 16Mb и Kingston 1Gb.

п/п записи сектора:
Код
unsigned char MMC_WriteSector(unsigned long int sector,unsigned char *buffer)
{
char r1;
int i;

PORTC.2=0;//Активировать карту

r1=MMC_Command( CMD24 , sector<<9);//Установить номер сектора
if(r1!=0)//Если комманда не выполнена сообщить код ошибки
{
PORTC.2=1;//Освобождаем карту
return r1;
}


// пЕРЕДАТЬ ПУСТОЙ БАЙТ
spi(0xFF);
spi(0xFF);
//Передать стартовый байт
spi(0xFE);
//Записываем в карту данные
for(i=0; i<512; i++)
{
spi(buffer[i]);
}
//Читаем 2 байта CRC  
spi(0xFF);
spi(0xFF);

//Читаем ответ карты
r1 = spi(0xFF);            //---- вот здесь приходит F2 вместо 05

/*if( (r1&MMC_DR_MASK)!= MMC_DR_ACCEPT)
{
PORTC.2=1;//Освобождаем карту
return r1;
} */

// wait until card not busy
while(!spi(0xFF));
PORTC.2=1;//Освобождаем карту
spi(0xFF);

return r1;//0;
}
Go to the top of the page
 
+Quote Post



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

 


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


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