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

 
 
> LPC2478+SD/MMC card interface, не получается произвести чтение/запись с microSD
LiloQQ
сообщение Mar 26 2011, 11:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-09-08
Пользователь №: 40 218



Доброго дня!

Нужен совет по использованию периферийного модуля LPC2478 для работы с SD/MMC картами.
Ситуация такова: используется microSD QUMO 2Gb, карта исправно проходит инициализацию и нормально отвечает на любые команды, но чтение/запись произвести не удаётся. Фактически после посылки CMD17 и перевода модуля на приём получаю MCISTATUS -> RXOVERRUN, при этом MCIFIFOCNT = 0, MCIFIFO0-MCIFIFO15 = 0.

Последовательность инициализации: CMD0 -> ACMD41 -> CMD2 -> CMD3 -> CMD9 -> CMD7 -> ACMD6(на этом этапе включается 4х битный интерфейс) -> CMD16(блок 512 байт) -> CMD17 на этом этапе приходит подтверждение, что команда получена и карта находится в TRANSFER STATE, но вцелом тишина и переполнение очереди в MCISTATUS.

За основу взят популярный пример из состава Keil переложенный в IAR. DMA пока не использую.

CODE

// Чтение одного блока
uint32 MCI_Read_Block(uint32 blockNum)
{
uint32 i;
uint32 DataCtrl = 0;

MCICLEAR = 0x7FF;
MCIDATACTRL = 0;

for (i = 0; i < 0x10; i++);

if (MCI_CheckStatus() != TRUE)
{
MCI_Send_Stop();

return(FALSE);
}


MCIDATATIMER = DATA_TIMER_VALUE;
MCIDATALENGTH = BLOCK_LENGTH;

if (MCI_Send_Read_Block(blockNum) == FALSE)
{
return (FALSE);
}

DataCtrl |= ((1 << 0) | (1 << 1) | (DATA_BLOCK_LEN << 4));


MCIDATACTRL = DataCtrl;

for (i = 0; i < 0x10; i++);

return (TRUE);
}

int main()
{

...

if (MCI_FullCardInitialization())
{


if (MCI_Read_Block(1))
{
while (!(MCISTAUS & MCI_RX_HALF_FULL)) {}; // зацикливает
}
else
{
// fatal error
}

}

}



Сообщение отредактировал LiloQQ - Mar 26 2011, 11:18
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:02
Рейтинг@Mail.ru


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