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之旅

目录
相关文章
|
6月前
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(一)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
159 2
|
6月前
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(三)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
152 4
|
4月前
|
数据采集 计算机视觉 异构计算
FPGA进阶(2):基于I2C协议的EEPROM驱动控制
FPGA进阶(2):基于I2C协议的EEPROM驱动控制
68 0
|
4月前
|
异构计算 内存技术
FPGA进阶(1):基于SPI协议的Flash驱动控制(二)
FPGA进阶(1):基于SPI协议的Flash驱动控制
55 0
|
4月前
|
异构计算 内存技术
FPGA进阶(1):基于SPI协议的Flash驱动控制(一)
FPGA进阶(1):基于SPI协议的Flash驱动控制(一)
181 0
|
4月前
|
异构计算
FPGA强化(9):TFT_LCD液晶屏驱动
FPGA强化(9):TFT_LCD液晶屏驱动
55 0
|
4月前
|
异构计算
FPGA强化(8):HDMI显示器驱动
FPGA入门(8):VGA显示器驱动
38 0
|
6月前
|
存储 芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(二)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
145 4
|
8天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的1024QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的1024QAM调制解调系统的仿真与实现。通过Vivado 2019.2进行仿真,分别在SNR=40dB和35dB下验证了算法效果,并将数据导入Matlab生成星座图。1024QAM调制将10比特映射到复数平面上的1024个星座点之一,适用于高数据传输速率的应用。系统包含数据接口、串并转换、星座映射、调制器、解调器等模块。Verilog核心程序实现了调制、加噪声信道和解调过程,并统计误码率。
26 1

热门文章

最新文章