i.MXRT1050 EVKB USDHC1 eMMC DDR52 issue

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

i.MXRT1050 EVKB USDHC1 eMMC DDR52 issue

1,103 次查看
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 回复

981 次查看
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 项奖励
回复