STM32F100 и SD карта

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
stalker_radiokot
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Пт сен 18, 2009 08:38:57

STM32F100 и SD карта

Сообщение stalker_radiokot »

Добрый день!

Пытаюсь подключить к плате STM32VLDiscovery (на ST32F100R8) SD карту. Библиотеку для работы с SD картой по SPI взял отсюда - http://mycontroller.ru/old_site/stm32-r ... #more-2959 (на самом деле встречал на нее ссылки и в других местах). В саму библиотеку пришлось внести корректировку - поскольку проект, куда вставляю поддержку карт, генерировался из STM32CubeMX, и соответственно тянет за собой библиотек HAL, то функцию обмена по шине SPI переписал. было так

static BYTE stm32_spi_rw( BYTE out )
{
/* Loop while DR register in not empty */
/// not needed: while (SPI_I2S_GetFlagStatus(SPI_SD, SPI_I2S_FLAG_TXE) == RESET) { ; }

/* Send byte through the SPI peripheral */
SPI_I2S_SendData(SPI_SD, out);

/* Wait to receive a byte */
while (SPI_I2S_GetFlagStatus(SPI_SD, SPI_I2S_FLAG_RXNE) == RESET) { ; }

/* Return the byte read from the SPI bus */
return SPI_I2S_ReceiveData(SPI_SD);
}

а стало так
static BYTE stm32_spi_rw( BYTE out )
{
BYTE in;
HAL_SPI_TransmitReceive (&hspi1,&out,&in,1,0x10000);
return in;
}

В результате имею следующую проблему - при инициализации карты нормально проходит команда CMD0, потом CMD8 с параметром 0x1AA, а вот потом имею проблемы - из четырех опробованных карт
две карты принимают ACMD41 (тоже SD HC, 8GB), но на последующую команду CMD58 не дают никакого ответа. И одна на 2гига (простая SD) и еще одна на 16 гигов (SD HC) принимают команды ACMD41 и CMD58. Причем даже в случае карты SD HC на 16 гигов в ответе на команду CMD58 идет 01 00 FF 80 00, т.е. карта отчитывается что она простая, не HC...

частота проца - 8мгц, прескалер шины SPI на момент инициализации - 32 - 250кГц, пробовал снижать частоту шины вплоть до прескалера 256. Все ноги шины SPI подтянуты к 3.2вольта внешними резисторами 4.7к (внутреннюю подтяжку на единственном пине, где это возможно - MISO, я выключил)

Не могу понять, в каком месте у меня лыжи не едут...
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

Re: STM32F100 и SD карта

Сообщение RusikOk »

сектор данных или файл в таком режиме прочитать можешь?
Аватара пользователя
stalker_radiokot
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Пт сен 18, 2009 08:38:57

Re: STM32F100 и SD карта

Сообщение stalker_radiokot »

да уже поборол... даже забыл что точно было, по моему вся беда была в контактах - питание на карту не приходило. почему иногда работало - х.з.
Аватара пользователя
RusikOk
Нашел транзистор. Понюхал.
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев
Контактная информация:

Re: STM32F100 и SD карта

Сообщение RusikOk »

stalker_radiokot писал(а):почему иногда работало - х.з.
возможно паразитное питание. а какую версию FatFs Вы использовали?
Ответить

Вернуться в «ARM»