先介绍下应用背景,主机通过host control IP间接控制emmc,所以这里所有对emmc的的配置实际上都是通过配置SDHC来间接配置emmc的。如下图所示
- 初始化过程
1、复位Host Controller IP,保证设备状态可控。
可通过配置CTRL寄存器实现
清除第0位, CTRL &= (~0x00000001);
在设置第0位,CTRL |= 0x00000001;//此操作一般在2个时钟周期完成,
2、复位FIFO
CTRL |= 0x00000002;//将在系统时钟的2个周期后复位
3、设置数据传输为1bit mode
CTYPE = 0x0;
4、对有效的store card上电
emmc下面可以挂30个store card,可通过寄存器HCON得5-1bit获取card numbers
为方便写代码,一般将所有card都上电
PWREN = 0x3fffffff;
此操作的要求的时间根据设备的不同时间不同,一般SDIO card会要求较长时间,例如等待50000个运行周期
5、关闭Raw中断
RINTSTS=0xffffffff;
6,关闭全局中断
INTMSK = 0x7b8; //为关闭全局