eMMC初始化命令发送流程
通过stm32单片机驱动eMMC芯片,在完成项目的过程中,命令发送和响应很令人头疼,所以整理出一篇文档供各位开发者参考。
初始化命令发送流程
1、第一步发送CMD0,让芯片进入IDLE状态。
/* CMD0: GO_IDLE_STATE */
errorstate = SDMMC_CmdGoIdleState(hmmc->Instance);
if(errorstate != HAL_MMC_ERROR_NONE)
{
return errorstate;
}
2、发送CMD1,发送主机容量信息,激活卡的初始化过程。
/* SEND CMD1 APP_CMD with MMC_HIGH_VOLTAGE_RANGE(0xC0FF8000) as argument */
errorstate = SDMMC_CmdOpCondition(hmmc->Instance, eMMC_HIGH_VOLTAGE_RANGE);
if(errorstate != HAL_MMC_ERROR_NONE)
{
return HAL_MMC_ERROR_UNSUPPORTED_FEATURE;
}
3、发送CMD2,获取卡的CID信息。
/* Send CMD2 ALL_SEND_CID */
errorstate = SDMMC_CmdSendCID(hmmc