Hi,
no, each of the issues is separate.
The sdmmc library does not support the SD card properly.
Yet another SD card initialization (Sandisk microSD 2GB card) fails on SD_SelectBusTiming() in the file sdmmc/src/fsl_sd.c.
Here is a workaround but I didn't investigate a real reason:
@@ -1058,6 +1058,9 @@ static status_t SD_SelectBusTiming(sd_card_t *card)
{
card->currentTiming = kSD_TimingSDR25HighSpeedMode;
card->busClock_Hz = HOST_SET_CARD_CLOCK(card->host.base, card->host.sourceClock_Hz, SD_CLOCK_50MHZ);
+ } else {
+ /* workaround for Sandisk microSD 2GB card */
+ return kStatus_Success;
}
}
Moreover sdmmc library examples seem not to be robust enough for SDIF + SD cards:
sdmmc/port/fsl_host.c
@@ -150,7 +150,7 @@ static status_t SDIF_TransferFunction(SDIF_Type *base, sdif_transfer_t *content)
do
{
error = SDIF_TransferNonBlocking(base, &g_sdifHandle, &dmaConfig, content);
- } while (error == kStatus_SDIF_SyncCmdTimeout);
+ } while (error == kStatus_SDIF_SyncCmdTimeout);//why hangs forever in the loop in some cases?
if ((error != kStatus_Success) || (false == EVENT_Wait(kEVENT_TransferComplete, EVENT_TIMEOUT_TRANSFER_COMPLETE)) ||
(!g_sdifTransferSuccessFlag))
Do you happen to know whether sdmmc library upgrade is planned in a next SDK version?
best regards
J.