我用的是镁光的芯片,通过在官网查找丝印第二行的序列号D9LHR,查得芯片型号MT47H64M16HR-3:H 接下来我们通过Ti的文档来配置这个芯片,点击链接我们可以看到芯片的参数信息。
depth 64MB width x16 clock 333MHZ cycleTime 3ns CL=5
EMIF一般配置寄存器
?
SDRAM_CONFIG(0x4C000008 @) -在这个寄存器的值,将取决于很多内存配置,用于配置初始化时内存不足。它们最终被写入到存储装置的模式寄存器。这里有一些提示来配置每个值:
?
REG_SDRAM_TYPE - LPDDR1(mDDR的)= 1,DDR2=2,DDR3 = 3
REG_IBANK_POS -该寄存器设置bank内部的位置。请参阅“地址映射”部分TRM更多信息。这通常是留在bank允许的最大数量是开放的,允许它们之间的交错。
REG_DDR_TERM - DDR2和DDR3终止电阻值。请参见TRM正确的价值观。设置终止内存方面期间为ODT(在模具Termaination上)。参考ODT节以获取更多信息。
REG_DDR2_DDQS - DDR2差分DQS启用。设置为0时,使用单端DQS LPDDR(mDDR的)。差分DQS使用DDR2/DDR3时设置为1。
?
?
?
? ? ?
REG_DYN_ODT -这些位仅在DDR3模式。 REG_DDR_DISABLE_DLL -设置为0正常运行
REG_SDRAM_DRIVE - SDRAM驱动强度。LPDDR1,你通常会设置为1半驱动强度。与LPDDR有些主板可能需要全驱动强度取决于电路板尺寸和跟踪阻抗。在DDR2方面,完整的驱动强度设置为0。 REG_CWL - CAS写入延迟。这些位仅在DDR3模式下使用(对于其他类型的设备,这可以被设置为0)。此字段的值定义访问连接的DDR3器件时要使用CAS写入延迟。使用最佳的性能支持的最低值。此值应该直接从DDR3表。通常情况下,有速度斌取决于您所选择的设备上表中的数据表。每个表有几个不同的基于TCK CWL值。AM335x,选择最大3.3ns(303MHz),并选择CWL与这个频率。请注意TRM值映射关系:
? ? ?
?
CAS写延迟5:设置REG_CWL = 0 CAS写延迟6:设置REG_CWL = 1 CAS写延迟7:设置REG_CWL = 2
? ? CAS写入延迟8:设置REG_CWL的= 3 - AM335x REG_NARROW_MODE只支持16位数据总线,因此必须总是被设置为1为16位模式。 REG_CL - CAS延迟时间。此字段的值定义访问连接的SDRAM器件时要使用CAS延迟。这个值应该直接从DDR的数据表。一定要使用CAS延迟时间定义为时钟频率的DDR。请参见TRM正确的值 CL=5。
? REG_ROWSIZE -此字段仅用于当reg_ibank_pos SDRAM的配置寄存器中的字段被设置为1,2,或3,或当reg_ebank_pos = 1。应设置为在DDR数据表中定义的行地址位的数量。 #行位 REG_ROWSIZE值 9 0 10 1 11 2 12 3 13 4 14 5 15 6 16 7 ? ? ? REG_IBANK -bank内部设置。定义内多个bank连接的SDRAM器件。设置为0,1个bank,设置为1,2个bank,设置为2,4个bank。设置为3,8个bank。所有其他值被保留。请参阅内存数据表的bank数量。大多数存储器将使用8个BANK ? REG_EBANK -外部片选设置。定义SDRAM的访问是否会使用1或2个片选线。由于AM335x只有一个CS,始终设置该位为0。 REG_PAGESIZE -页面大小。定义连接的SDRAM器件的内部页面大小。应设置为在DDR数据表中定义的列地址位的数量。 #列地址位 REG_PAGESIZE值 8(256字页) 0 9(512字页) 1 10(1024字页) 2 11(2048字页) 3 ?
DDR PHY控制寄存器 ?
?
DDR_PHY_CTRL_1(0x4C0000E4 @)
REG_PHY_ENABLE_DYNAMIC_PWRDN -
? ?
REG_PHY_RST_N -设置为0的正常操作。
REG_PHY_IDLE_LOCAL_ODT -此值定义的AM335x侧终止,在空闲模式下(即,时REG_PHY_ENABLE_DYNAMIC_PWRDN断言)。通常情况下,你可以设置为00在空闲状态,以节省电力。
REG_PHY_WR_LOCAL_ODT -此值定义在写入的AM335x侧终止。终端通常是不需要的写入,所以这个值应该被设置为0。 REG_PHY_RD_LOCAL_ODT -此值在读期间定义的AM335x侧终止。使用以下值:
? ? ? ?
?
?
00:ODT关闭 01 ODT关闭 10:满负荷戴维南 11:半戴维南负载
?
REG_READ_LATENCY -此值占的往返延迟的器件和电路板。作为最低要求,它必须被设置到CAS的延迟加2。请注意,这是一个减1的寄存器,所以写入到寄存器的实际值应该是任何写入SDRAM_CONFIG.REG_CL加1。
?
例如:如果SDRAM_CONFIG.REG_CL的= 4,对应于4
的CAS等待时间(从DDR数据表获得)
然后设置REG_READ_LATENCY = 5,这对应于(CAS延时加2)的读延迟。
DDR PHY寄存器 (@ 0x44E12000 - 0x44E123FF)
有许多DDR PHY寄存器允许最大的灵活性,在配置的PHY为许多不同的模式和时序情景。每个DDR型有不同的程序,确定这些值。请参阅下面的部分DDR型。这些寄存器参考TRM解释这些寄存器。 注:由于设备中的错误,无法读取。他们是只写寄存器。
DDR PHY寄存器DDR2和LPDDR(mDDR的) 下面列出了需要配置的DDR PHY寄存器概要。未列出的所有其他的DDR PHY寄存器可以留在他们的默认状态。对于CMDX,x为0,1,2,如上所述。所DATAX,x为0或1,如上文所述。在所有情况下,程序每次迭代宏相同的值。
?
CMDx_PHY_INVERT_CLKOUT - 除了这些寄存器进行编程定义见下文,请将这个值到电子表格中得到适当的其他寄存器的值0或1
? ?
如果(DDR_CK长度)<(DDR_DQS长度),程序这些寄存器1 如果(DDR_CK长度)>(DDR_DQS长度),这些程序寄存器0
? ? ? ? ?
DATAx_PHY_RD_DQS_SLAVE_RATIO - 使用比例的的种子电子表格,以确定这些寄存器的值
DATAx_PHY_FIFO_WE_SLAVE_RATIO - 使用比例的的种子电子表格,以确定这些寄存器的值
DATAx_PHY_WR_DQS_SLAVE_RATIO - 使用比例的的种子电子表格,以确定这些寄存器的值
DATAx_PHY_WR_DATA_SLAVE_RATIO - 使用比例的的种子电子表格,以确定这些寄存器的值
CMDx_PHY_CTRL_SLAVE_RATIO - 使用比例的的种子电子表格,以确定这些寄存器的值
使用比率种子电子表格DDR2和LPDDR
比的种子电子表格
要使用DDR2和LPDDR比率种子电子表格,选择“DDR2”或“mDDR的'标签底部的电子表格。最大的DDR频率将被用于输入,输入0或1
PHY_INVERT_CLKOUT如上所述,然后每个跟踪输入的走线长度(英寸)。此跟踪对于DDR_CLK,通常是在一个“T”设计与配置为两个x8的回忆。确保您输入的走线长度AM335x每个内存。这些长度应接近相等,如果符合正确的设计指导方针。输入正确的信息后,寄存器的值将被自动计算在电子表格中。 控制模块寄存器 有些DDR配置包括了DDR控制器和DDR PHY模块之外的控制模块寄存器。这里是一个总结自己的配置。
?
?
DDR_IO_CTRL(@ 0x44E10E04) - DDR I / O的控制I / O模式。
MDDR_SEL -这使在CMOS模式(为LPDDR操作,设置为1)或STL模式(为DDR2/DDR3操作,设置为0的I / O)
? VTP_CTRL(@ 0x44E10E0C) -的解除武装,复员和重返社会的I / O控制在VTP(电压温度进程)补偿。VTP校准后应该发生的DDR PLL设置,但在此之前任何其他DDR控制器或执行DDR PHY配置。VTP校准应在加电时,每一次被重新初始化DDR控制器。下面是VTP校准的步骤来执行:
? ? ? ? ?
? ? ?
设置启用1启用VTP
将清除CLRZ为0,以清除出触发器,并开始重新计数 将设置CLRZ 1完成切换CLRZ
检查VTP就绪位的。如果为1,该训练序列完成
控制各种VREF_CTRL(@ 0x44E10E14) -参数VREF
DDR_VREF_CCAP - DDR_VREF_TAP - DDR_VREF_EN -
?
?
DDR_CKE_CTRL(0x44E1131C)
DDR_CKE_CTRL -正常操作,设置该位为1,允许CKE信号从PHY控制。
这些寄存器控制参数的宏命令和数据的I / O缓冲器。请参阅的TRM,以确定每个寄存器组信号的影响。对于编程的目的,每一个这些寄存器应被设置为相同的值。
DDR_CMD0_IOCTRL(0x44E11404) -设置为0x18B ? DDR_CMD1_IOCTRL(0x44E11408) -设置为0x18B ? DDR_CMD2_IOCTRL(@ 0x44E1140C) -设置为0x18B ? DDR_DATA0_IOCTRL(0x44E11440) -设置为0x18B ? DDR_DATA1_IOCTRL(0x44E11444) -设置为0x18B AC时序寄存器
? ?
SDRAM_TIM_1,SDRAM_TIM_2 SDRAM_TIM_3
这个电子表格将帮助您确定最佳的AC定时寄存器的值。确保你基于您正在使用的内存(mDDR的,DDR2,DDR3)在电子表格中选择正确的选项卡:
AM335x的DDR计算工具(链接)
黄色的值根据你的内存在数据表上的值,需要改变。请确保您输入您的设备的速度等级的正确值。TCK值应该代表的速度,您将运行的设备(不一定在数据表中的最低值)。AM335x AC定时寄存器的寄存器的值将被计算基于这些输入。对于较为保守的值,你可以使用+1非最优值的情况下,你怀疑的计时问题(看到这些,你可以取消隐藏行)。最终,最佳值应该工作。 设置刷新率 ?
SDRAM_REF_CTRL(0x4C000010 @) -要设置刷新频率,周期刷新间隔tREFI从内存中的数据表。请注意,这的值是typcially在我们的范围内。有些技术资料可参阅“刷新间隔时间在毫秒范围内(64ms的,例如),但是,此值必须要除以刷新周期的数目(一般为8000)。
? ?
REG_REFRESH_RATE -需要引起7.8我们或15.7我们用适当的SDRAM的刷新间隔的时钟周期数。此字段是不是可写字节,也就是说,这个领域需要的全部16位同时被写入。下面是一些例子:
对于303 MHz内存系统7.8us刷新速率:303 * 7.8us = 2363.4 或0x93B
对于266 MHz内存系统7.8us刷新速率:266 * 7.8us = 2074.8 或0x81A
?
?
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库AM335X 内存配置在线全文阅读。
相关推荐: