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.

IPNC_DM385的DDR3设置



我在使用IPNC_DM385时关于DDR3方面的设置遇到问题了,软件版本是RDK_V3.2.。根据BOM,IPNC使用了2片型号为K4B2G1646C-HCH9的DDRIII组成了32位宽的存储空间,查阅该芯片的数据手册,发现U-BOOT里及GEL文件里对DDRIII的初始化与DDRIII数据手册中描述不符合:

1 U-BOOT和GEL文件对DDRIII存储空间大小的设置均为1-GB section(DMM_LISA_MAP_0-DMM_LISA_MAP_3->SYS_SIZE),而2片K4B2G1646C-HCH9总容量的大小为2Gb*2/8 = 512MB,这个容量设置是否有错?

2 U-BOOT和GEL文件对DDRIII的ROWSIZE设置均为12 Rows bits(SDRCR->ROWSIZE),而DDRIII数据手册中清楚表明Row Address为A0 - A13,应该有14 Rows bits啊?假若只使用12 Rows bits,2片K4B2G1646C-HCH9的总容量仅为128MB,与1-GB section相去甚远,ROWSIZE设置究竟应该设多少?

3 SDRCR寄存器的CL字段为13-10bit,这个数值最大可以到0xF,但如果要把CL设置为CAS latency of 11时,此字段的值应为0x14,这样就超过字段范围影响到NARROW_MODE字段的设置了,这个字段的范围是否有误?

  • 你好,

    1. 目前的配置是正确的。请仔细阅读一下http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map,了解为什么会把512M的空间,map为1G的system space。

    2.的确目前配置有误,会在下个版本的软件修改。但是你所的14bit raw是从哪里看看到的? 我在DDR数据手册里面看到的是Row Address是A0 - A12,是13 bit的。

    3. 是14,不是0x14,是0x0E.

  • 感谢您的回复,我再仔细学习一下。

    我看的K4B2G1646C的DATASHEET的版本是Rev. 1.11, Nov. 2010,在其中的第9页上关于2Gb的表格上注明Row Address为A0 - A13。

     

  • 你好,

    DDR的型号你看错了,请再对比一下原理图。

  • 原理图里标注的是K4B1G1646E ,而BOM里U5、U6的用料为K4B2G1646C-HCH9 ,2者的型号并不一样,应该是那一个啊?

    另外,我想把CL的设置核对清楚。我使用的DDRIII的规格是2Gb/1600MHz的,CL-nRCD-nRP为11-11-11。实际设置系统跑DDR3_400MHz,数据通讯速率800MHz。我把CL字段设置成了0xE,但DDR访问依然有问题,原来设置为0x14时循环读写测试偶尔还能通过,现在没一次通过。DM385手册里的CL设置截图如下:

    这里的参数值的尾部都带个“h”,含义应该是16进制的意思,14h应该等于0x14吧?但如果是0x14,显然挤占到下一个字段了。

  • 我们的软件默认DDR是512MB,这样算下来每片1Gb。

    由于你使用的DDR频率是400Mhz,在配置寄存器时,请使用能满足该频率的最小的CL,而不是最大值。

  • 1 DM385_IPNC的原理图里仅设计了2片DDRIII,型号为K4B1G1646E,2片1Gb的DDRIII的容量加起来仅128MB;而IPNC的BOM里注明的型号为K4B2G1646C-HCH9,这样2片2Gb的DDRIII的容量加起来才能达到512MB,不知究竟是哪种?

    2 我们选用的DDRIII型号为IS43TR16128A -125KBLI(11-11-11),最高Data Rate为1600MT/s。我们现在刚开始调试以稳定为主,先在DDR频率是400Mhz的情况下验证基本功能,后期追求性能会跑到1600MT/s,到时CL值必须设为11,那寄存器这个字段的值我们该设为oxE还是0x14呢?