FPGA EMMC HS400模式verilog驱动开发

news/2025/1/14 16:12:26/

背景
前期Emmc驱动最高支持到HS200,整体的性能还有待提高,本次考虑将模式升级到HS400模式,理论最快读写速度可达400MB/S

HS400特性如下:
在这里插入图片描述

1.切换过程
在这里插入图片描述

相对之前的设计,考虑增加一个读取设备类型的操作:

可以在没有数据手册的前提下查询芯片是否支持HS400模式,HS400模式对于硬件电路有一定的要求,具体可参考标准
在这里插入图片描述

HS400写时序

在这里插入图片描述

HS400模式下,数据为时钟上升沿和下降沿都有效
在这里插入图片描述

但是只针对DAT信号,CMD还是单周期时钟。

HS400模式时序图

在这里插入图片描述

1.1读取EXT_CSD
EXT_CSD数据通过正常的数据会读,和其他数据CID不太一样,考虑复用正常读写模块,通过发送CMD8指令会读数据;
1.2 增加指令
添加对应的指令
1.3 Sampling Tuning 执行不方便
直接用DCM对时钟进行相位调节,不单独进行Tuning测试;

1.4去除总线测试指令
DDR模式下CMD16和总线测试指令不再相应,故将对应的

1.4.1无法初始化成功
由于HS400模式,采用DDR模式,加上电平形式也是LVCOMS单端线,出现初始化不过的原因大概率是由于时钟和数据稳定窗口不对,针对该问题,提供的测试demo增加一个DCM动态调相模块

可以对时钟进行最小步进为1/(FVCO*56)进行相位调节,通过遍历找到合适的窗口;

1.4.2 用户数据回读显示和写的数据不一致
用户使用过程中,可能出现回读的数据出现高低字节翻转的问题,由于DDR数据传输,可能P N出现颠倒的情况,出现这种情况可以适当选择读写模块中IDDR的工作模式

通过适当选择OPPOSITE_EDGE SAME_EDGE SAME_EDGE_PIPELINED其中一种工程模式即可;

1.4.3测试读写速度不理想
固态存储速度都是通过大容量读写平均出来的,尽量提高单次读写扇区块数据,硬件设计时,考虑前段预留DDR缓存,此外扇区数为2^N对速度也有一定的提高;

实际测试发现,时钟没必要给200M,一般给到125M,总带宽就有250M了,基本上很少有厂商的芯片可以达到此速度

读写演示视频链接
链接: https://pan.baidu.com/s/1ReZf8_cwdhzz7_1TWI1boA 提取码: tej8 复制这段内容后打开百度网盘手机App,操作更方便哦


http://www.ppmy.cn/news/337873.html

相关文章

scanf_s 用法

今天,我在使用scanf_s编写C语言程序,因为是在visual stidio 2013 只能使用建立C程序,再将后缀名改成.c来实现。 ANSI中的的scanf(),在读取时不检查边界,可能会造成内存访问越界,例如分配了5字节的空间但是读…

USB HS-PHY眼图调试

1 USB2 PHY AFE 1.1 USB 2.0 FS PHY github ultraembedded / core_usb_fs_phy NOP USB transceiver for all USB transceiver which are either built-in into USB IP or which are mostly autonomous. 1.2 电阻参数 USB host端:D和D-各接一个15kΩ的下拉电阻&#…

解决k8s访问报anonymous cannot get path的问题

k8s图形界面登录报错如下 {"kind": "Status","apiVersion": "v1","metadata": {},"status": "Failure","message": "forbidden: User \"system:anonymous\" cannot get path…

k8s部署kafka集群

前言 环境:centos 7.9 k8s集群、zookeeper集群 本篇将在k8s中部署kafka集群,kafka依赖zookeeper集群,zookeeper集群我们已经搭建好了,可以参考https://blog.csdn.net/MssGuo/article/details/127773132 制作对应版本的kafka镜像…

HS-SR04超声波模块

1.模块简介 HC-SR04超声波模块常用于机器人避障、物体测距、液位检测、公共安防、停车场检测等场所。HC-SR04超声波模块主要是由两个通用的压电陶瓷超声传感器,并加外围信号处理电路构成的。如图: 两个压电陶瓷超声传感器,一个用于发出超声波…

npm安装hs服务器

我们经常用到subilme、webstrom的内置服务器,或者wampserver,这种方式比较麻烦,这里推荐一个比较实用的方式 -----------用npm安装hs服务器 即--httpServer 1.安装: npm install http-server -g 2.启动: http-serve…

k8s下使用Ingress开启跨域(CORS)

在Ingress中,跨域(CORS)的配置如下: nginx.ingress.kubernetes.io/cors-allow-headers: >-DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorizationnginx.ingress.kubernetes.io/co…

gpib-usb-hs linux,美国NI GPIB-USB-HS+连接线GPIB转USB接口控制器高速传输

美国NI仪器National Instruments GPIB-USB-HS通过高速USB提供卓越的性能,体积小、重量轻,是不具内建I/O插槽的笔记本式计算机或其它设备实现便携式应用的理想选择,最多可控制14台可编程GPIB仪器。NI GPIB-USB-HS转换器在标准IEEE 488握手协议…