当前位置: 首页 > biancheng >正文

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

一. 简介

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

二. 上电启动

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

欢迎关注 FPGA之旅
手册上写明白了,一共分为如下几个步骤,下面就简单的说明一下

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

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

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

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

请添加图片描述

三. 分配设备地址RCA

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

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

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

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

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

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

四. 模式选择

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

请添加图片描述

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

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

命令发送过程如下 ,下节将介绍如何编写命令发送与接收响应的代码
请添加图片描述

相关文章:

  • switch循环语句
  • 牛客练习赛#84 F 莫比乌斯反演+杜教筛+技巧+斐波那契数列和gcd的结论+矩阵快速幂
  • ZZNUOJ_用C语言编写程序实现1342:支配值数目(附完整源码)
  • java毕业设计后勤管理系统餐饮评价监督系统(附源码、数据库)
  • 前端基础学习笔记
  • 【TS】联合类型--类型断言--类型推断
  • 谈笑风声的秘密
  • QT影城网上售票系统
  • NetCDF数据在ArcMap中的使用
  • 打怪升级(考验思路)