DDR硬件调试篇

前言:大家自己设计的产品出来后都有遇到一些什么样的DDR问题呢?这些问题是否为致命问题,一定要解吗?如果机器已经生产出来,却发现DDR硬件问题导致系统不稳定,机器是否作废了,有没有软件方法可以弥补?机器死机如何定位是否为DDR问题,怎么排查?

在实践过程中,设计者会遇到各种形形色色,五花八门的问题,个人遇到的只是沧海一粟,如果抛砖引玉之后,有经验的汇聚,那么DDR调试将变得不在困难。

案例一:时钟抖动问题

根据jedec规范,DDR时钟中需要测试周期抖动。在需要测试的时钟抖动中,单独把周期抖动提出来,是因为周期抖动比较容易测试fail。

在遇到周期抖动fail时,首先需要关注电源的noise问题,如果给DDR供电电源的noise过大的话,就会导致CLK的抖动过大。

其次查看DDR走线包地是否完好,参考平面是否OK,当然这些如果是参考方案供应商设计一般不会有此问题。

最后因时钟是主芯片发出,测试主芯片的晶体时钟频偏是否OK,晶体时主芯片内部时钟的基础。还存在一种可能就是DDR可能开了展频,那样时钟的抖动肯定是fail的。

如果排查了上述问题之后,测试结果还是fail,那么时钟抖动一定要测试pass吗?从个人经验看,如果把调试手段做到位之后,依然存在此问题,在保证煲老化等测试可以pass的情况下,可以不用卡住该指标不放。

案例二:电源问题。DDR供电电源如果出现噪声过大,甚至掉电drop时,系统容易出现死机重启问题,这里主要涉及测试方法的问题,将在测试篇再详细介绍。至于电源的调试,涉及DC/DC,电容,电感的选择。目前DC/DC电源方案比较成熟,调试不会太难。

案例三:EMI问题。在EMI测试时,经常会遇到DDR的辐射问题。首先需要定位辐射频点是否来自DDR。如果你得到的信息是DDR3数据速率跑1600,那么一般认为时钟频率为800M。需要注意是,DDR的实际时钟频率有可能存在偏差,不为800M的整数。如图6中的EMI测试结果:

图6

从图中频点看,第一时间想到的可能不是DDR辐射出来的频点,但是后来通过频谱仪扫频点时,在DDR区域发现有该频点,基本就可以证明该频点来自DDR。如果要进一步证明,可以和方案厂家确认或者通过修改DDR工作频率来观察辐射频点是否会偏移。

遇到DDR EMI的问题应该如何解呢?一是可以加加屏蔽罩,如果在硬件设计阶段未预留屏蔽罩,可以通过焊接铜箔纸来做实验。焊接铜箔时需要注意不要短路以及尽可能让铜箔充分接地。二是DDR开展频,这个方法需要和方案厂家确认方法是否可行,还有就是充分保证可靠性测试。三是注意结构问题,看结构上是不是有未接地的金属片,比如散热铝板或者配重铁块。有未接地的金属物及容引发EMI问题,因为金属未接地,相当于天线会把信号辐射出去。

金属未接导致EMI可以从电尺寸角度去解决。电尺寸用波长λ来衡量。当电尺寸L<λ/20时,为电小尺寸;当电尺寸L≥λ/20时,为电长尺寸,即可导致金属片相当于一个天线,会向外辐射信号。此时需要将金属接地。接地的法则:在干扰源附近接地,接地的间距原则上是间距<电长尺寸,即任意两个接地点的距离不应超过PCB内最高频率波长的λ/20。是实际调试不一定那么严格,调试至测试结果可以pass即可。记住良好的接地能缓解信号电压的瞬变,保证良好的信号回流路径。

案例四:死机问题。在DDR设计篇中讲到了, DDR设计时需要保证和参考设计叠层一致。出现叠层不一致的情况时,可能导致机器运行死机情况的出现。

死机问题排查坚持由易到难的原则:

1),可以先排除电源问题,测试level/niose/drop;

2),根据打印信息,看是否软件有问题;

3),检查叠层信息,看是否和参考设计一致,如果发现不一致,那么该如何解决该问题呢?

发生该问题一种情况是设计者按照自己经验将第三层POWER层的GND挖空,仅保留POWER走线,导致第4层的信号只能参考第二层的GND,这样阻抗偏差太大导致系统不稳定。这种情况一位高人解决方法是在第四层贴铜箔纸,然后接地,模拟GND,发现机器能够较为稳定的运行。这样方法可以用于实验手段证明系统死机问题是由挖掉第三层的GND导致的。

还有一种情况是叠层类型搞错,如表1的PP型号,如果PP类型搞错,会导致阻抗发生偏差(主要是厚度影响),那么煲机或者高频率操作UI(可编写脚本自动模拟)时容易出现死机情况。在这种情况下,可以通过软件降频来验证是否由阻抗差异导致。比如将DDR数据速率从1600降低至1333甚至更低来做实验。

案例五:wifi吞吐量低。该案例看起来似乎和DDR没有什么关系,但是最终查明导致wifi吞吐量低的源头来自DDR。

案例详情:wifi在弱信号下吞吐量低。分析发现干扰来自于DDR。DDR时钟工作在800M附近,该频率的4次谐波落在2.4G,为wifi的工作频段。wifi的天线和DDR距离很近,将wifi天线远离DDR时,吞吐量恢复正常。尝试给DDR开展频,发现不奏效,估计展频仅仅是增加的频率区间,虽然峰值有所减少,但是4次谐波依然会打在2.4G区域。修改结构,使得天线远离DDR,到PV阶段已经不可行。最终还是在DDR区域加上屏蔽罩解决。

因此在设计阶段还需要注意wifi模块最好远离DDR,如果结构不允许,那么屏蔽罩的位置就需要预留。

ddr老化测试_【鼎阳硬件智库原创︱DDR 】 DDR硬件调试篇:DDR硬件设计调试测试 之二...相关推荐

  1. mos管电路_【鼎阳硬件智库原创︱电源】 MOS管驱动电路的设计

    吴恒 鼎阳硬件设计与测试智库专家组成员 引 言 对于开关电源来说,驱动电路作为控制电路和功率电路的接口,其作用至关重要,本文就将详细探讨开关电源的驱动电路的参数设计以及驱动芯片的选型. 常用的mos管 ...

  2. 零中频接收机频率转换图_【鼎阳硬件智库原创︱测试测量 】基于全数字中频技术频谱分析仪的工作原理...

    汪进进 鼎阳硬件设计与测试智库专家组成员 频谱分析仪简称频谱仪,是射频工程师最熟悉的一种仪器.相对于示波器作为"电子工程师的眼睛",占据"时域第一仪器"甚至&q ...

  3. 已调信号波形是怎样的_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器...

    方浩 鼎阳硬件设计与测试智库专家组成员 在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分.采集仪器 ...

  4. 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...

    方浩 鼎阳硬件设计与测试智库专家组成员 传统的函数发生器可以输出正弦波.方波.三角波等标准波形,但是在实际的测试场景中,为了模拟产品在实际使用过程中的复杂情况,往往需要人为地去制造一些"不规 ...

  5. ui曲线谁是横坐标_【鼎阳硬件智库原创 | 测试测量】关于示波器的幅频特性曲线...

    关于示波器的幅频特性曲线 -- 公示鼎阳SDS3054和SDS1102E的幅频特性曲线 汪进进 鼎阳硬件设计与测试智库发起人之一 1,基于RC理论模型的示波器幅频特性曲线 示波器的带宽被称为示波器的第 ...

  6. 伏安特性曲线实验报告_【鼎阳硬件智库原创 | 测试测量】动手测量电解电容器的阻抗频率特性...

    何庆松 鼎阳硬件设计与测试智库专家组成员 众所周知,电容器的等效电路如图1所示,由电容.等效串联电感ESL.等效串联电阻ESR所构成,所以一定存在一个串联谐振点f0.其阻抗频率特性大致图2所示,谐振点 ...

  7. npn三种波形失真_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器

    方浩 鼎阳硬件设计与测试智库专家组成员 在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分.采集仪器 ...

  8. 最小采样频率计算公式_【鼎阳硬件智库原创 | 测试测量】示波器和频率计测量频率,哪个更准?...

    高学琴 鼎阳硬件设计与测试智库专家组成员 在电子技术领域中,信号频率的测量是我们经常会遇到的问题,示波器和频率计均可以实现频率测量,那么究竟哪种方法的测量结果更为准确呢?下面我们将就这两种方法的测量原 ...

  9. STC用PCA测量脉宽_【鼎阳硬件智库原创︱测试测量】基于两台SDG2000X同步功能产生同步的4路信号...

    陈滨慰 鼎阳硬件设计与测试智库专家组成员 绝大部分的函数/任意波形发生器都是两通道的,包括指标上非常卓越的鼎阳科技SDG2000X系列.如何产生同步的4路信号? 下面以SDG2000X为例来说明基于两 ...

最新文章

  1. python 天气预报 mysql_Python+PyQt5+MySQL实现天气管理系统
  2. 通过机器学习识别“迪士尼在逃公主”,程序员宠女的正确打开方式!
  3. 字节内部前端开发手册(完整版)开放下载!
  4. 如何在程序中不用加号实现加法_程序员那些事 | JavaScript基础(六)
  5. Multiple Gift(AtCoder-3731)
  6. [转]notepad++各种插件
  7. Java 8 时间日期库的20个使用演示样例
  8. nssm在服务器上的使用超详细说明
  9. java 集成pageoffice_Java集成PageOffice在线打开编辑word文件 - Spring Boot
  10. c语言 adt实验报告,Android实验报告
  11. ST集成传感器方案实现电子罗盘功能
  12. 饥饿游戏3:嘲笑鸟(上)[The Hunger Games:Mockingjay - Part 1]
  13. Opencv入门(播放AVI视频)
  14. Android开发 自定义控件 边框TextView
  15. 基于STM32的12864液晶理解
  16. Linux系统漏洞本地提权
  17. React中JSX的用法和理解
  18. AI 入行那些事儿(10)人工智能的应用领域
  19. 资深办公室人员搞定数字转换Excel的精品秘诀
  20. 自己做个U盘多功能工具

热门文章

  1. C#做的配套C做的SNIFFER(C#)--C#简单而实用
  2. android 获取wifi和移动网络信号强度
  3. 莫烦python教程部分代码
  4. 通达信指标公式常用绘图函数(3)——DRAWICON、DRAWTEXT、DRAWNUMBER
  5. 火狐firefox切换全球服务 火狐不同步问题
  6. X3850 X5安装ESXI6.0U3需要手动加载LPe11000驱动
  7. 摄像头基础知识(二):Bayer、Raw与ISP
  8. 【机器视觉基础知识整理】
  9. 函数调用function与function()的区别
  10. STK Engine二次开发-WPF方式