i.MXRT1050 EVKB USDHC1 eMMC DDR52 issue

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i.MXRT1050 EVKB USDHC1 eMMC DDR52 issue

1,101件の閲覧回数
yugandhar421
Contributor II

Hi,

I am using i.MXRT1050 EVKB board to test eMMC chip which is connected to micro SD slot on evaluation board with help of micro SD adapter. The micro SD slot connected to USDHC1 of i.MXRT1050.

I enabled 4bit high speed mode in eMMC chip with 52MHz clock in host using below code, I can able to read/write eMMC chip perfectly.

    if (kStatus_Success != MMC_SwitchHSTiming(card, kMMC_HighSpeedTiming, kMMC_DriverStrength0))
    {
        return kStatus_SDMMC_SwitchBusTimingFailed;
    }

    card->busTiming = kMMC_HighSpeedTiming;

    SDMMCHOST_SET_CARD_BUS_WIDTH(card->host.base, kSDMMCHOST_DATABUSWIDTH4BIT);
    card->busWidth = kMMC_DataBusWidth4bit;
    if (kStatus_Success != MMC_SetDataBusWidth(card, card->busWidth))
    {
     return kStatus_SDMMC_SwitchBusTimingFailed;
    }

    if (kStatus_Success != MMC_TestDataBusWidth(card, card->busWidth))
    {
 return kStatus_SDMMC_SwitchBusTimingFailed;
    }

    card->busClock_Hz = SDMMCHOST_SET_CARD_CLOCK(card->host.base, card->host.sourceClock_Hz, MMC_CLOCK_52MHZ);
    /* config io speed and strength */
    SDMMCHOST_CONFIG_SD_IO(CARD_BUS_FREQ_50MHZ, CARD_BUS_STRENGTH_7);‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Now my target is DDR mode, so I changed above code as below. Now I am not able to read/write correct data resulting file system crash when I connected same eMMC chip to PC.

    if (kStatus_Success != MMC_SwitchHSTiming(card, kMMC_HighSpeedTiming, kMMC_DriverStrength0))
    {
        return kStatus_SDMMC_SwitchBusTimingFailed;
    }

    card->busTiming = kMMC_HighSpeedTiming;

    SDMMCHOST_SET_CARD_BUS_WIDTH(card->host.base, kSDMMCHOST_DATABUSWIDTH4BIT);
    card->busWidth = kMMC_DataBusWidth4bitDDR;
    if (kStatus_Success != MMC_SetDataBusWidth(card, card->busWidth))
    {
     return kStatus_SDMMC_SwitchBusTimingFailed;
    }

    SDMMCHOST_ENABLE_DDR_MODE(card->host.base, true);
    card->busClock_Hz = SDMMCHOST_SET_CARD_CLOCK(card->host.base, card->host.sourceClock_Hz, MMC_CLOCK_DDR52);
    /* config io speed and strength */
    SDMMCHOST_CONFIG_SD_IO(CARD_BUS_FREQ_100MHZ1, CARD_BUS_STRENGTH_7);

Am I doing anything wrong in code? Or my micro SD eMMC adapter has insufficient pull-up/pull-down resistors/capacitors to send/receive DDR signal correctly to/from eMMC chip?

If anybody know how to enable eMMC DDR mode correctly, please reply.

Thanks

Yugandhar

ラベル(1)
タグ(2)
0 件の賞賛
返信
1 返信

979件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi Yugandhar,

It seems other people has it working in DDR mode. Please refer to https://community.nxp.com/message/1200968 

Regards,

Jing

0 件の賞賛
返信