FPGA驱动eMMC系列(二)-------上电初始化

简介: 笔记

一. 简介


本篇文章将介绍eMMC如何上电启动,并且初始化进入到我们所需要的模式当中去,同样只介绍相关的内容,一些无关却重要的知识点,可以自行查看手册。


FPGA驱动eMMC系列(一)-------简介


二. 上电启动


手册上面有对这部分的描述,可惜的是,这部分内容在手册的末尾,约278页,看完前面大部分,可能还是云里雾里。


欢迎关注 FPGA之旅

回复eMMC代码V1 获取完整工程,目前支持高速和HS200.HS400有点问题,可能是我PCB的问题。


手册上写明白了,一共分为如下几个步骤,下面就简单的说明一下


**2.**上电的时候,时钟频率不能超过400KHZ,可以设置为200KHZ


**3.**然后是延时1ms以及74个时钟周期,延时个1.5ms或者更久就可以了


**4.**重复发送CMD1命令,并且携带0xC0FF8080参数(容量一般是大于2G的),直到响应中的OCR寄存器为0xC0FF8080


上电启动,就这几点,时钟频率和延时需要注意

25.png



三. 分配设备地址RCA


在使用eMMC的时候,需要主机为分配eMMC分配地址,然后选择对应的eMMC设备,也就是说一个主机可以挂载多个eMMC存储器,有点像IIC。


所以在上电后,就需要分配地址。分配地址也很容易,只需要依次发送四个命令即可。


CMD2 : 广播,eMMC发送其CID的值给FPGA,


CMD3 : 携带16bit的RCA地址,发送给设备


CMD9: 携带16bit的RCA地址,发送给设备,如果设备的地址与接收到的一致,那么设备将会放回其CSD的值,用来确定CMD3是否分配地址成功


CMD7:携带16bit的RCA地址,选择该RCA地址的eMMC设备,完成后,就可以进行读写操作了


四. 模式选择


上电后,默认为兼容模式,且数据线为1bit。一般都不是我们所需要的,所以需要进行模式切换

26.png



模式切换以及数据位宽选择都是通过CMD6来实现的,CMD6命令非常重要的,需要好好研究一下,后面会详细讲解。


整个上电初始化的过程就是这样子的,完成后,就可以进行读写操作了。


命令发送过程如下 ,下节将介绍如何编写命令发送与接收响应的代码

27.png

公众号:FPGA之旅

目录
相关文章
|
8月前
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(一)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
236 2
|
8月前
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(三)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
179 4
|
6月前
|
数据采集 计算机视觉 异构计算
FPGA进阶(2):基于I2C协议的EEPROM驱动控制
FPGA进阶(2):基于I2C协议的EEPROM驱动控制
88 0
|
6月前
|
异构计算 内存技术
FPGA进阶(1):基于SPI协议的Flash驱动控制(二)
FPGA进阶(1):基于SPI协议的Flash驱动控制
70 0
|
6月前
|
异构计算 内存技术
FPGA进阶(1):基于SPI协议的Flash驱动控制(一)
FPGA进阶(1):基于SPI协议的Flash驱动控制(一)
241 0
|
6月前
|
异构计算
FPGA强化(9):TFT_LCD液晶屏驱动
FPGA强化(9):TFT_LCD液晶屏驱动
73 0
|
6月前
|
异构计算
FPGA强化(8):HDMI显示器驱动
FPGA入门(8):VGA显示器驱动
53 0
|
8月前
|
存储 芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(二)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
198 4
|
1天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
95 74

热门文章

最新文章

下一篇
开通oss服务