This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DDR3 leveing time out/filed

Other Parts Discussed in Thread: LM10010, CDCE62005, LM10011

论坛的各位,大家好

我们自己做的板子,芯片是6655(memory map和6657一样,6657两核,6655单核),最近在调DDR3,一直存在问题,leveling一直通不过,state寄存器显示timeout(6~4位为1)。

测试程序是用的论坛上提供的例程STK_C6657,见附件,因为读取出来的器件ID和6657EVM一样,所以稍微修改下程序就能用了。我的板子用的两片16bits的DDR,并成32bits,具体DQS线的长度见附件DQS&CK.xlsx。

用的DDR3 PHY Calc v10工具计算,将值写入,每次leveling都失败,ddr-state为0x40000074。现在DDR的时钟给的是150MHz,因为把PLL倍到300MHz输出的波形就不对了,板子设计是参考6657EVM的。时钟频率应该多少都可以吧?不一定必须要666.7MHz吧?如果吧leveling去掉,不做leveling,那么写0x80000000写不进去,一直为0。

请各位大神帮忙看下,我这样配的有什么问题,芯片布局是fly-by结构的。把论坛上相关的帖子都看了遍才来求助的,希望TI的工程师能帮帮忙。

STK_C6657.rar
  • 150MHz的输入时钟是可以的,不过你需要修改例程中DDR PLL的配置。

    另外,你用的DDR存储器和EVM上的一样吗?如果不是的话,例程中DDR存储器相关的配置代码也要改。

  • 已经修改了,从DSP输出的时钟也测试过了,是150M。 应该是一样的,MT41J128M16HA_15E,也按照手册对照过了,但是就是对0x80000000往后写数据一直写不进去,一直都为0(如果注销leveling程序),如果做leveling就一直是timeout,我用的是6678的PDK,因为手头没有6657的
  • "从DSP输出的时钟也测试过了,是150M"是什么意思?是说你测到的DDRCLKOUT是150MHz吗?如果你期望DDR数据速率是1333MTS的话,你测到的DDRCLKOUT频率应该是667MHz。

    请从下面网址下载包含6657 PDK的MCSDK:

    http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html

     

  • 是的,我在附件里面有DDR3 PHY CALC V1.0设置的情况,按150M设置的,不用666.7M设置的原因是DDR3的PLL倍频高时DDRCLKOUT输出的时钟为杂波。能麻烦您看看附近里我DDR3 PHY CALC V1.0设置的对不对。
  • C6657 DDR3支持的时钟频率范围是400MHz~667MHz.

    建议先解决DDRCLKOUT输出时钟的问题,需要关注两方面:

    1, DDR PLL的配置.请提供你的配置代码。

    2,输入的电源(CVDD, AVDD2, DVDD15...), 时钟(DDRCLK, CORECLK...)是否稳定.

  • 1、DDR PLL的代码就是用的附件里面的,是例程中的程序,只是改了参数。那按照您的说法,DDR3最少需要工作在400MHz吗?我另一个朋友说他在300MHz也正常工作了。

    2、CORECLK最高能稳定到800MHz,再往上CORE就会挂掉,电源方案用的LM10010,能稳定到1.04V,就算CORE挂掉后核电压也正常。最开始没在意DDR PLL,因为验证过了main PLL。DDR PLL我这种情况也是供电不足吗?

    谢谢!

  • 我在你的附近里看到以下DDR PLL配置代码,这是你用的配置吗?

      //EVM6657 with 50MHz input for DDR
      KeyStone_DDR_init (50, 26, 1, NULL);

    这里配对是50MHz输入时钟,和你说的150MHz输入时钟不符啊?

    既然你的核也不稳定,你首先需要保证核能稳定工作,再来调试DDR。重点需要关注的是CVDD,核电压值必须满足VCNTL[3:0]的要求,测试点方法是:

    1,根据data manual里的图“SmartReflex 4-Pin VID Interface Timing” 测试得到VID[5:0].

    2, 根据hardware design guide里的表"SmartReflex VID Value Mapping"查到VID值对应的电压值。

    3,用万用表测试CVDD的平均电压,看它是否满足上述电压值。注意,要在DSP电源输入管脚测电压,不要在电源模块输出点测电压,因为它们之间有压降。

    4,用示波器长时间监测CVDD的波动,建议波动范围不超过3%。

     

  • 你好,这个程序是原版没修改的,我只改了参数,把它配成150MHz 我上午测试了AVDDA2(DDR. PLL的电源)在我的DDRCLKOUT输出异常时,AVDDA2还保持为1.8V 在调试核电压时,就算MAIN PLL倍到1G的时候异常,核电压也稳定在1.04V,我如果只需要核工作在500Mhz,是不是就可以先不考虑核电压的问题了。 不知道您看了我对DDR PHY的配置吗,按我那样理解是否正确?
  • 输入给DDRCLK. CORECLK的时钟是CDCE62005芯片给的时钟正常,其中DDRCLK为50MHz差分,已用示波器测试
  • 请先按前面提到的测试方法测试CVDD,它是根本。

  • 好的,那我先测CVDD看看,到时候再跟您说测试情况
  • 你好!是曹工吗?本人也正设计一个C6657的板子,看你论坛上说是用LM10010设计的电源,能方便共享一下你的电源的设计方案吗?我的qq邮箱1011848740@qq.com,希望能与前辈多多的交流,谢谢!

  • 请参阅硬件设计指南的“2.2.1.4 LM10011 and Analog Controller Solutions”。

     

  • 您好,我也遇到和您一样的问题,DDR3 的 write leveling一直无法通过,请问您最后问题是怎么解决的呢?多谢了!