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

 
 
> Чтение блока с SD карты, не поступает Data Token
Evgenius_Alex
сообщение Jan 23 2013, 12:41
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 373
Регистрация: 6-11-07
Пользователь №: 32 103



Добрый день!

При работе с SD картой столкнулся с проблемой чтения блока.

Карта инициализацию проходит нормально.

После команды чтения одного блока CMD17, приходит корректный ответ (0x00)
Но маркера начала данных(0xFE) не поступает.

Пробовал меня скорость SPI - не помогает

Сталкивался ли кто с таким и как бороться?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Jan 23 2013, 17:11
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



В карту при этом должны вдвигаться все "1" по SPI.
Go to the top of the page
 
+Quote Post
Evgenius_Alex
сообщение Jan 23 2013, 20:28
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 373
Регистрация: 6-11-07
Пользователь №: 32 103



Цитата(Genadi Zawidowski @ Jan 23 2013, 20:11) *
В карту при этом должны вдвигаться все "1" по SPI.


не понял насчёт выдвигания "1" по SPI. Поясните, если нетрудно.

Привожу функцию чтения сектора. Что и где надо добавить?
Мучаюсь уже второй день (((

CODE
unsigned char SD_readSingleBlock(unsigned long startBlock)
{
unsigned char response;
unsigned int i, retry=0;

//передаём в карту байты 0xFF до тех пор , пока карта не начнёт
//отвечать 0xFF, т.е. будет свободна
while(1)
{
if(SPI_transmit(0xFF)==0xff)
break;
}

// эта команда выполнятеся корректно - ответ 0x00
response = SD_sendCommand(READ_SINGLE_BLOCK, startBlock<<9); //read a Block command
//block address converted to starting address of 512 byte Block
if(response != 0x00) //check for SD status: 0x00 - OK (No flags set)
return response;

SD_CS_ASSERT; // CS опускаем в ноль

// а вот тут маркера так и не поступает
while(SPI_receive() != 0xfe) //wait for start block token 0xfe (0x11111110)
if(retry++ > 0xfffe){SD_CS_DEASSERT;
return 1;} //return if time-out

for(i=0; i<512; i++) //read 512 bytes
buffer[i] = SPI_receive();

SPI_receive(); //receive incoming CRC (16-bit), CRC is ignored here
SPI_receive();

SPI_receive(); //extra 8 clock pulses

SD_CS_DEASSERT;

return 0;
}


Сообщение отредактировал IgorKossak - Jan 24 2013, 12:25
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Evgenius_Alex   Чтение блока с SD карты   Jan 23 2013, 12:41
- - ukpyr   попробуйте увеличить время ожидания 0xFE   Jan 23 2013, 13:31
- - AndreyVN   Цитата(Evgenius_Alex @ Jan 23 2013, 15:41...   Jan 23 2013, 16:28
- - ukpyr   ЦитатаSD_CS_ASSERT; // CS опускаем в ноль SD_CS_DE...   Jan 24 2013, 07:40
- - Genadi Zawidowski   Цитатане понял насчёт выдвигания "1" по ...   Jan 24 2013, 15:13
|- - Evgenius_Alex   Цитата(Genadi Zawidowski @ Jan 24 2013, 19...   Jan 28 2013, 07:34
|- - Evgenius_Alex   Цитата(Evgenius_Alex @ Jan 28 2013, 10:34...   Jan 28 2013, 10:27
- - Genadi Zawidowski   Неиспользуемые линии данных карты подтянуты через ...   Jan 28 2013, 12:46
|- - Evgenius_Alex   Спасибо, Геннадий! Неиспользуемые линии были ...   Jan 28 2013, 15:12
- - Genadi Zawidowski   Ну так если у Вас карта на SDHC, не v2 - вполне мо...   Jan 28 2013, 20:50
|- - Evgenius_Alex   Цитата(Genadi Zawidowski @ Jan 29 2013, 00...   Jan 29 2013, 08:25
- - Genadi Zawidowski   Насчёт описания тяжело... Вот проект. Пока ничего ...   Jan 29 2013, 14:28
|- - Evgenius_Alex   Цитата(Genadi Zawidowski @ Jan 29 2013, 17...   Jan 29 2013, 20:47
|- - Genadi Zawidowski   непонятные типы - это из stdint.h - смысл типов на...   Jan 30 2013, 16:15
|- - Evgenius_Alex   Цитата(Genadi Zawidowski @ Jan 30 2013, 19...   Jan 31 2013, 07:58
|- - Genadi Zawidowski   Цитата(Evgenius_Alex @ Jan 31 2013, 11:58...   Jan 31 2013, 19:53
|- - ut1wpr   Цитата(Genadi Zawidowski @ Jan 31 2013, 22...   Jan 31 2013, 22:45
|- - Evgenius_Alex   Цитата(Genadi Zawidowski @ Jan 31 2013, 23...   Feb 1 2013, 18:53
- - Genadi Zawidowski   У HC карточек адресация не смещением, а номером бл...   Feb 2 2013, 06:27
- - МП41   Так 2Гб карточка не должа быть HC.   Feb 11 2013, 08:49
- - Genadi Zawidowski   Я видел 2GB и HC и не HC.   Feb 11 2013, 10:23


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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 07:36
Рейтинг@Mail.ru


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