[url=home.php?mod=space&uid=760190]@21小跑堂 #申请原创#[/url]
eMMC的使用现在是越来越多了.其接口组成为: 供电引脚,数据引脚:一般D0--D7;CLK:时钟引脚;CMD引脚:CMD 信号主要用于 Host 向 eMMC 发送 Command 和 eMMC 向 Host 发送对于的 Response。DS引脚和复位引脚:这里着重介绍一下DS引脚::DS是由eMMC向主控端传输,频率和 CLK 信号相同,用于同步从 Device 端输出的数据,在HS400模式下使用,在主控端实现数据同步功能。该信号在 eMMC 5.0 中引入。 这次的讨论只关注硬件时序上的问题,从规范中,可以看到对信号时序的读和写有如下要求: 针对信号时序,实际测试结果如下表所示:input timing测试也就是写操作(方向从SOC到eMMC端)无问题,output timing(读操作,方向是从eMMC到SOC端)出现fail 从结果中,写操作是PASS的, 读操作的时序是FAIL的,, 主要是上升/下降时间FAIL, 从测试的信号波形也可以看出波形的上升/下降时间很长.那么是什么导致测试FAIL呢?有几种可能,第一个是驱动能力弱,导致上升/下降时间长, 第2个是走线不好,分布电容大,影响了信号上升/下降时间.大概就是这两个原因, 于是从这两个方面进行了几种改进的尝试:
1,加强驱动,看看是否可以改善上升/下降时间呢? 于是更改软件驱动,加强“读”操作的驱动强度,驱动强度分为3种,分别为33欧姆,50欧姆,100欧姆,修改驱动为最强的33欧姆,尝试重新测试时序,结果如下:结果是有稍微改善,但改善不大,仍是fail,波形上也是如此,改善不是很大.几乎看不出来改善. 2,修改软件驱动没有作用,那么修改硬件驱动再试一下,在更改软件驱动,加强“读”的时序的基础下,更改data[0:7]上拉电阻,51k更改为33k 结果如下:这个就是继续加强驱动强度.但是从测试结果来看,改善还是不大,仍是fail.
3, 软件/硬件的驱动改善都不能解决此问题. 于是又检查了layout,按照标准要求的,优化了一些地方,线间距按照3W原则,过孔挖地也加大一些.线严格按照50ohm阻抗线管控, 又重新制作了一版,等板子出来后,再测试,结果依然FAIL, 还是没有任何改善. 问题变得更深不可测了,再回顾一下所有做的操作,软件/硬件加强驱动,几乎没有任何改善, 走线也没有任何挑剔的地方,还有什么办法呢? 经过分析,测试fail可能是测试点位距离SOC太远,需要测试距离SOC较近的点位进行测试。那么是否是这个原因呢?所以基于这方面的考虑,做了一次仿真分析因为涉及保密原因,仿真结果就不在这里展示了. 从仿真结果来看,眼图是没有问题的.那为什么实际测试会有问题呢?接下来才是真正的重点: 因为此项目用的是一个模组,SOC在模组上,因为模组上没有这些信号的测试点.所以测试只能靠近模组端测试.但模组的输入端到SOC还有比较长的一段走线.正是这段走线导致测试波形不正常的. 如果这个猜测是正确的,那么靠近SOC端的波形应该是正常的. 于是想办法在靠近SOC端测试.终于找到了一个表层的走线,可以刮开滤油层,进行测试.测试结果如下表所示. 从标中比较看出,靠近SOC端的数据是pass的,波形也是正常的. 而对比下,在走线的中间位置测试的数据是FAIL的, 波形也是不正常的. 基于这个问题的分析过,我们可以总结如下:在时序测试中,一定要遵循测试位置要在靠近终端进行.尤其针对高速信号,因为其波长比较短,如果在中间位置测试,会导致测试结果不准确,也不能反应终端的情况是否符合终端的要求. 这个测试也提醒了大家,在做设计的时候,尽量不选择模组形式的形态.对于测试生产带来比较大的困难.如果是把SOC直接设计在底板上,生产方便了,成本也增加不了多少.
|