sd和emmc如何进行tuning

这篇具有很好参考价值的文章主要介绍了sd和emmc如何进行tuning。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么需要tuning

sd和emmc如何进行tuning

1、主机有一个时钟发生器,它提供 SDCLK到卡

2、在写操作时,时钟和数据方向是一致的,因此写数据可以由 SDCLK 同步进行传输而不用关心传输线延时

3、在读操作时,时钟方向和数据方向是相反的,主机接收的读数据被往返延时(round-trip delay) ,输出延时以及卡和主机的延时所延迟。

所以主机关键之处在于数据的接收,主机需要具有一个采样时钟发生器,用来接收响应, CRC 状态以及读数据块

二、sd卡tuning原理

通过前面的描述知道,在接收数据的时候,clk和数据之间有延时,所以需要调整这个延时,获取到最佳的采样点

方法1:

sd和emmc如何进行tuning

1、主机使用一个可变采样时钟发生器来决定采样点。主机可以通过 CMD19 tuning 命令读取预先定义并保存在卡中的 tuning block,用来辅助找到采样点。

2、该方法可以用于所有频率范围。当频率为低于 25MHz 的低频时,主机不需要 tuning 就可访问卡。

方法2:

sd和emmc如何进行tuning

1、需要额外2个pin实现clk的loopback

一般应该都是使用的方法1,而且方法1紫色的延时是自动调整的,不需要软件干预

三、sd卡的turning过程

流程框图

sd和emmc如何进行tuning

软件流程:

1、SDR104需要进行tuning

2、SDR50可以选择是否进行tuning,通过SRS17.UTSM50(use tuning for SDR50)进行确认是否需要tuning(1需要,0不需要)\

3、cdns的ip没有SRS12_RETUNING_EVENT这个功能,通过看rtl该功能被屏蔽,12bit没有使用,文档上确实也没有

sd和emmc如何进行tuning

 4、正式流程:

(1)SRS15.SCS(Sampling clock select)清0

该bit为1代表tuning流程成功完成,否则流程失败,并且tunling逻辑的clk会关闭

写0会复位并且关掉tuning模块

(2)SRS15.EXTNG(Execute Tuning) 置1

SCS = 0, EXTNG = 0 - Reset and disable clock tuning logic

SCS = 0, EXTNG = 1 - Reset and restart tuning process

SCS = 1, EXTNG = 0 - Stop tuning procedure

SCS = 1, EXTNG = 1 - Start retuning (without clock tuning logic reset)

配置为0,1即Reset and restart tuning process

(3)

判断SRS15.EXTNG的值是否为1,如果为1,循环执行40次,每次发送CMD19命令,判断CMD19是否执行成功

如果40次完成或者CMD19失败,或者SRS15.EXTNG为0,均会退出40次的循环

如果40次成功执行,并且SRS15.SCS为1,则sd卡的tuning成功,否则失败

注意:

CMD19需要在1.8V的transfer状态下且卡处于unlock状态下发送,其他情况下是非法的。

卡应该在150ms内完成40次CMD19命令

(4)CMD19

sd和emmc如何进行tuning

sd和emmc如何进行tuning

sd和emmc如何进行tuning

疑问:

通过上面的流程,phy是怎么调整采样点的?自动调整的吗?上面的流程看软件并没有修改phy寄存器

sd和emmc如何进行tuning

四、emmc tuning

流程框图

sd和emmc如何进行tuning

软件流程:

(1)HS200,HS400需要进行tuning,HS400ES不需要tuning

(2)HS400当需要tuning是需要调用mmc_hs400_to_hs200切换到hs200进行tuning

执行完成后再调用mmc_hs200_to_hs400进行恢复

(3)从cdns的寄存器看,tuning主要是配置dqs的延时,但是HS200和HS400并没有strobe信号,是怎么生效的呢?

从phy手册看,DQS有3种来源,1是外部strobe,2是phony dqs, 3是lpbk_dqs(推荐),如果没有strobe信号,可以使用另外两个内部的信号,所以HS200和HS400应该调整的是内部的延时,个人理解在tuning只在read的时候才需要,因为read的时候数据和cmd是dvice发送过来的,clk也是参考的device,所以对host来说data和cmd跨时钟域了,所以需要调整内部的lpbk_dqs去适配clk

但是调整之后,host和device的clk可能有偏移,所以需要定时的tuning才行

(4)如何判断最佳采样点

发送40次后,会参数40个结果,1代表成功,0代表失败,找到1最多的地方,并且取中间值,对应的pos就是最佳参数,把该参数进行赋值到对应的寄存器中

sd和emmc如何进行tuning

(5)CMD21

sd和emmc如何进行tuning

sd和emmc如何进行tuning

sd和emmc如何进行tuning文章来源地址https://www.toymoban.com/news/detail-505396.html

到了这里,关于sd和emmc如何进行tuning的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么越来越多大型企业使用SD-WAN专线

    基于SD-WAN技术的专线网络,也称为SD-WAN专线,是一种高度灵活且可定制的企业专线网络解决方案。它使用软件定义网络(SDN)技术来将企业分支机构的多个网络连接整合在一起,从而实现更高的网络带宽、更好的网络性能和更强的网络安全性。 与传统的专线网络不同,SD-WA

    2024年02月08日
    浏览(44)
  • 为什么需要uboot?

    bootROM: 一种固化在芯片内部的只读存储器(ROM),用于启动和初始化系统。BootROM 中通常包含了一些预先编写好的代码,用于完成系统启动前的基本初始化和配置, 例如初始化时钟、GPIO控制器、中断控制器、存储设备(SD卡、NAND Flash、SPicy Flash)等硬件资源, 检测启动设备

    2023年04月23日
    浏览(61)
  • 为什么需要超时控制

    本文将介绍为什么需要超时控制,然后详细介绍Go语言中实现超时控制的方法。其中,我们将讨论 time 包和 context 包实现超时控制的具体方式,并说明两者的适用场景,以便在程序中以更合适的方式来实现超时控制,提高程序的稳定性和可靠性。 超时控制可以帮助我们避免程

    2024年02月03日
    浏览(52)
  • 为什么需要websocket?

    前端和后端的交互模式最常见的就是前端发数据请求,从后端拿到数据后展示到页面中。如果前端不做操作,后端不能主动向前端推送数据,这也是http协议的缺陷。        因此,一种新的通信协议应运而生---websocket,他最大的特点就是服务端可以主动向客户端推送消息,客

    2024年02月12日
    浏览(56)
  • 为什么需要数据仓库

    为什么不在OLTP环境下分析?  OLTP环境也会存储历史数据,但这些历史数据并不是业务运行所需的,这些历史数据需要经常归档到数据仓库,并且在OLTP数据库中删除。 相比之下,事务环境适用于连续处理事务,通常应用于订单录入以及财务和零售事务。它们并不依赖历史数据

    2024年01月25日
    浏览(61)
  • 为什么需要单元测试?

    为什么需要单元测试? 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言,功能测试和系统测试以及其他性能测试等等对测试

    2024年02月12日
    浏览(64)
  • 爬虫为什么需要ip

    爬虫需要使用爬虫ip主要是为了解决以下问题: 1、反爬虫机制:许多网站会设置反爬虫机制来防止爬虫程序的访问,例如限制IP地址的访问频率、检测访问来源等。使用爬虫ip可以绕过这些限制,使得爬虫程序更难被检测到。 2、访问限制:有些网站可能会对某些地区的IP地址

    2024年02月02日
    浏览(55)
  • 爬虫时为什么需要代理?

    我们都知道爬虫时是需要代理地址介入的。使用代理可以隐藏你的真实IP地址,防止被网站封禁或限制访问。此外,代理还可以帮助你绕过地理限制,访问被封锁的网站或服务。但是请注意,使用代理也可能会带来一些风险,例如代理服务器可能会记录你的访问数据,或者代

    2024年02月06日
    浏览(52)
  • 为什么自动驾驶需要5G?

    什么叫自动驾驶? 自动驾驶分为6个等级: Level 0: 人工驾驶,无驾驶辅助系统,仅提醒。 Level 1: 辅助人工驾驶,可实现单一的车速或转向控制自动化,仍由人工驾驶(如定速巡航、ACC)。 Level 2: 部分自动驾驶,可实现车速和转向控制自动化,驾驶员必须始终保持监控(

    2024年02月08日
    浏览(61)
  • 为什么需要对相机标定?

    以下内容来自系统教程如何搞定单目/鱼眼/双目/阵列 相机标定? 点击领取相机标定资料和代码 为什么需要对相机标定? 我们所处的世界是三维的,而相机拍摄的照片却是二维的,丢失了其中距离/深度的信息。从数学上可以简单理解为,相机本身类似一个映射函数,其将输

    2024年02月06日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包