AM335X 内存配置
来源:互联网 发布:天刀捏脸数据女妩媚 编辑:程序博客网 时间:2024/06/16 00:43
我用的是镁光的芯片,通过在官网查找丝印第二行的序列号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_SDRAM_TYPE -
- 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数据表中定义的列地址位的数量。
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)的读延迟。
- 例如:如果SDRAM_CONFIG.REG_CL的= 4,对应于4的CAS等待时间(从DDR数据表获得)
- REG_PHY_ENABLE_DYNAMIC_PWRDN
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)
- MDDR_SEL
- 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_VREF_CCAP
- DDR_CKE_CTRL(0x44E1131C)
- DDR_CKE_CTRL
-正常操作,设置该位为1,允许CKE信号从PHY控制。
- DDR_CKE_CTRL
这些寄存器控制参数的宏命令和数据的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 -
对于333 MHz内存系统7.8us刷新速率:333 * 7.8us = 2957.4 或0xA25
电源管理控制寄存器
如果你不执行任何电源管理,该寄存器设置为0x00000000。有3个级别的电源管理,你可以设置这个寄存器时钟停止,自刷新和掉电。该寄存器还为您提供了灵活设置定时器,显示器EMIF空闲时间。到期时,EMIF将指定模式把外部存储器。有些电源模式仅支持某些回忆。
对于这些寄存器的更多详细信息,请参阅的AM335x TRM的。
- PWR_MGMT_CTRL(0x4C000038)
- REG_PD_TIM -电源管理计时器。EMIF后进入省电模式前的闲置等待的时钟周期数。时有效REG_LP_MODE的= 4。
- REG_DPD_EN -该位只是使深度掉电模式LPDDR设备提供。
- REG_LP_MODE -自动电源管理启用。0 =禁用自动PWR MGMT; 1 =时钟停止;自刷新2 = 4 =电源掉电
- REG_SR_TIM -电源管理计时器自刷新模式。这是时钟周期数后等待EMIF是空闲才进入自刷新模式。有效的当REG_LP_MODE = 2。
- REG_CS_TIM -电源管理定时器时钟停止模式。这是时钟周期数后等待EMIF进入时钟停止模式之前处于闲置状态。时有效REG_LP_MODE的= 1。
影子寄存器
该的AM335x设备支持智能节能空闲模式。回国后,从智能怠速模式,影子寄存器被装入的EMIF寄存器。
- SDRAM_REF_CTRL_SHDW -刷新控制影子寄存器。确保具有相同的值作为SDRAM_REF_CTRL寄存器,该寄存器被写入。
- SDRAM_TIM_1_SHDW -
SDRAM时序1影子寄存器。确保具有相同的值作为SDRAM_TIM_1寄存器,该寄存器被写入。 - SDRAM_TIM_2_SHDW
- SDRAM的时序影子寄存器。确保具有相同的值作为SDRAM_TIM_2寄存器,该寄存器被写入。 - SDRAM_TIM_3_SHDW
- SDRAM的时序影子寄存器。确保具有相同的值作为SDRAM_TIM_3寄存器,该寄存器被写入。 - PWR_MGMT_CTRL_SHDW -电源管理控制影子寄存器。确保具有相同的值作为PWR_MGMT_CTRL寄存器,该寄存器被写入。
- DDR_PHY_CTRL_1_SHDW
- :DDR PHY控制1暗影注册。确保该寄存器被写入相同的值DDR_PHY_CTRL_1。
初始化序列
- 正确的初始化序列的最佳来源是SPL的源代码,可以发现从AM335x TI的Linux软件开发工具包。
片上端接(ODT)的DDR设备的控制
- ODT是支持DDR2和DDR3
- 驱动从外部信号(DDR_ODT)AM335x和控制DDR2内存并行终止实施。该终止值定义SDRAM_CONFIG.REG_DDR_TERM的。
- ODT(注册的)使内部终端电阻的DDR2 SDRAM。当启用时,ODT适用于每个DQ,DQS,DQS,DM信号。
- 总是切换将DDR_ODT信号。
- SDRAM_TIM_2 [27-25]:ODT的M_CLK周期从最低数量使数据写入驱动DDR2。(TRM)
- [26:24]寄存器(REG_DDR_TERM)的的DDR2 EMRS寄存器编程通过SDRAM_CONFIG中的值。
- SDRAM_CONFIG.REG_DDR_TERM(这些值应该对应DDR表)
- 设置为0以禁用终止。
- 对于DDR2
- 1 = 75欧姆
- 2 = 150欧姆
- 3 = 50欧姆。
- 对于DDR3
- 1 = RZQ / 4
- 2 = RZQ / 2
- 3 = RZQ / 6
- 4 = RZQ/12
- 5 = RZQ / 8
- AM335X 内存配置
- AM335x内存映射查找
- AM335x内存映射查找
- am335x uart5配置
- am335x uart5配置
- am335x配置修改
- am335x mux配置
- AM335x DDR3配置
- am335x otg配置
- am335x mux 引脚配置图
- AM335x关于LCD屏幕的配置--TI--Sitara AM335x系列
- ti-sdk-am335x-evm 配置nfs
- AM335X / BBB Usb 配置设备 RNDIS
- zz-am335x时钟clock寄存器配置141214d
- AM335x关于LCD屏幕的时钟PLL配置
- PDK AM335x LCD驱动的移植,DTS配置
- AM335x bootloader
- AM335x SPL
- 查看linux系统信息
- 常用抓包命令
- 使用CAS框架快速实现单点登录
- QT实现Word读写
- 深入浅出学习cocoapods
- AM335X 内存配置
- ftp --tip
- 客户端应用系统开发中的全局数据对象容器
- Bitmap和Canvas的平移、缩放、旋转
- PDU编码
- Different timers in .net
- 不用第三方软件 Windows 7中直接刻录ISO镜像文件指南
- JSON 日期处理
- JavaSE_IO流_文件+递归+Properties