Questions tagged «sdram»

2
终端电阻:是否需要?
对于我正在设计的项目,我使用带有LPC1788(QFP)微控制器的IS42s32800(TSOP)SDRAM 。在PCB上,我有4层,其接地层位于顶部信号层的正下方,而VDD层位于底部信号层的正上方。CPU和RAM之间的平均走线长度为60毫米,最长走线为97毫米,时钟线为53毫米长,且未安装终端电阻。我很好奇的是,是否绝对有必要在DRAM线上配备终端电阻。如果没有它们,这种设计是否可以工作?如果没有电阻,我什至不应该去尝试吗?

9
8位处理器如何支持超过256字节的RAM?
如果32位处理器可以处理大约4 GiB的RAM(即字节),为什么我的Arduino Mega 2560具有8 KiB的SRAM,如果是8位处理器则允许它仅处理256个字节(2 ^ 8)?还是我阅读以下页面有误?232= 4 294 967 296232=42949672962^{32} = 4 294 967 29628282^8 http://www.atmel.com/devices/atmega2560.aspx?tab=参数

3
SDRAM原型与生产困境
我有一个使用LPC1788和ISSI(IS42S32800D)的SDRAM模块的设计。这是一个32位接口。 我已经把这种设计排除在外了,并有一个由PCB制造商制造的原型,该原型制造6层原型。原型PCB可以正常工作。然后,我以为我可以从通常的PCB供应商那里小批量(100)批量生产PCB。我给了他们我的原型用来确保不会出现问题的堆栈信息。 然而!我的生产板有很多问题。最初,我无法使用原型板中使用的相同代码来提高SDRAM的响应能力。前一块板的工作频率为120Mhz,所以我确定这个新板有问题。然后,我发现了一个帖子,有人建议在SDRAM数据线上使用“转发器模式”(我以前没有使用过),这引起了SDRAM的响应,但是它并不稳定。我可以写入16个左右的地址,但是随后的读取操作(每个地址处)返回的数据就是我最后写入的数据(可能是由于Repeater Mode)。当我禁用中继器模式时,返回的数据为0xFFFFFFF。我现在正在尝试以48Mhz的速度连接,这是我有时间限制的最低配置。 我在两块板上都使用相同的22Ω终端电阻(数据线上),数据线平均长3厘米。时钟线长2.4厘米。地址线平均长3.8厘米。 这是否太不合规格,如果时钟明显缩短,我应该延迟更长的时间吗?我真的被困在这里,因为我对设计的任何改变都没有改变,我希望可以无缝制造这些板。 Maximum Data Line Length: 59mm (Although this includes the branch to the NAND Flash) Minimum Data Line Length (Ctrl to Res): 18mm Maximum Address Line Length: 44mm Minimum Address Line Length: 24mm CLK: 24.5mm CKE: 25mm CAS: 28mm RAS: 28.7mm 这是原始(工作中)原型的PCB堆栈配置: 这是用于生产(非工作)PCB的PCB堆栈配置 这是SDRAM的路由:

3
选择SDRAM pcb布局
我正在使用带有LQFP208封装的全新STM32F429的项目进行开发。 由于预算低,我需要自己焊接前几个原型。我选择此包装,以便检查是否是布线/固件问题还是焊接问题。 在该项目中,有LCD,CAMERA,ULPI和32b SDRAM总线以及其他一些较慢的接口。 FMC BUS仅用于SDRAM,项目不需要其他存储器。 PCB堆叠是标准的4层S-GND-VCC-S。 我需要有关路由SDRAM / MCU接口的最佳方法的建议。 这里有两种可以完成的设计: 左迹线的走线最好是短的,但最好不要留出太多的长度,因为短走线的传播延迟很低,因此不需要。LCD / ULPI / CAMERA总线可能在外部路由很多问题。 正确的选择可能会更好,走线稍长,但长度匹配的空间很大,而且仍然不需要终止。LCD / ULPI / CAMERA总线将在外部布线,但它们将在很多方面满足SDRAM总线的要求,因此这些总线上的通孔数将增加,并且布局将更加复杂! 编辑: 由于其他一些因素,双方组装都是必须的。 您能解释一下选择哪一个,为什么吗? 编辑2: 在填充pcb之后,我选择了左边的那个,所以右边的没有太多的空间。 这是初步结果。 仍接受建议以改善布局: 编辑3: 增加了电源和接地过孔: 谢谢!
10 pcb  stm32  layout  sdram 

1
SDRAM初始化问题(Freescale iMX31)
我正在尝试修改现有的初始化序列(SDRAM的低级初始化)以适应硬件配置的更改:我的iMX31上的现有SDRAM被替换为不同的大小,否则使用相同的类型/制造商/布局/引脚/时序。根据规格。 简要的设置场景和错误行为:我设法使板启动(顺序是这样的:从NAND执行引导加载程序,将“ step2引导加载程序”复制到RAM,从RAM执行“ step2引导加载程序”)。但是我似乎有些设置错误,因为从RAM执行(跳转到步骤2之后)始终失败。 我进行了大量的深入测试以识别错误的参数,结果如下:-从NAND或JTAG执行时,单字节/字读取/写入工作-从NAND执行时,按块/突发写入似乎有效( JTAG也有意思):-逐块写入后,我需要在任何SDRAM地址上进行多次读取才能读取正确的字节/字(!)-如果将列设置修改为仅使用较高的(+1)列用于“加载模式”,而不是预充电/刷新,则它起作用,但是不一致(根据我的理论,它对于较低的地址范围可靠地起作用,在这里,丢失的列无关紧要)。 要了解一下我的配置:RAM中的设置与该问题中的设置几乎相同。这并不奇怪,因为它们是由Freescale提供的,除了RAM时序之外: 在Freescale iMX31上,如何将SDRAM地址转换为CPU地址? 我的原始设置是相同的(链接中也是64MB SDRAM),我的新RAM是128MB。所有参考板均提供64MB或128MB,因此iMX31及其衍生版本支持这两个值。 我必须进行的更改(注意:假设!)仅在RAM的COLUMN配置中(多一栏)。RAM的大小是原来的两倍,但规范要求时机完全相同,等等。由于它只有一列(请参见上面的链接,因此,新RAM的预充电,刷新和加载模式寄存器从0x92100000变为0x92200000,例如)没有其他改变。 问题1:我的假设是否有意义,如果所有时序和物理芯片特性(影响驱动强度,时序和功耗)都相似,则列数的更改可能是“本地的”(不影响其他设置)?有趣的是,我将自己的设置与其他许多在线可用设置(U-Boot,Red-Boot的128MB)进行了比较,除了板级特定设置(例如驱动器强度)之外,我看不出有什么不同。 问题2:我上面的错误行为(写工作,只读部分错误)可能是RAM的某些无效设置所独有的。有谁能给我建议以更详细地了解哪种设置?也可以设置“安全”参数,以便即使性能降低,该系统也可以使我缩小罪魁祸首。
10 sdram  imx31 

3
RAM的随机存储器如何工作?
HDD以部分顺序的方式工作。但是,RAM用于随机存储器访问是众所周知的,它允许每次在每个位置进行相同速度的存储器访问。那么,什么使RAM如此特别?随机存储器访问如何工作?(我知道DRAM并非完全是随机访问,而是以突发方式工作。我不确定这也意味着什么。)
10 memory  sdram 

1
冻结DRAM以进行取证(冷启动)
我已经了解了Coldboot技巧有一段时间了,但是从未真正考虑过它背后的物理原理。我已经读过这篇论文,但是并没有真正涵盖它为什么起作用。 物理上将RAM棒冷却到非常低的温度如何使存储在其中的数据即使没有电源也能长时间保持? 我知道DRAM IC本质上是一大堆晶体管电容器存储单元,但是我不知道为什么温度会有所不同。 它还提出了进一步的问题: 设备的衰减特性是否足以在正常温度或较低温度下测量电池的“先前”值? 这是否与导致位腐烂(即计算机内存中的随机翻转位)的现象相同? 这是否适用于其他情况,例如更改微处理器的状态或更改晶体管在分立电路中的开关方式? 如果极端寒冷导致充电状态衰减更慢,是否意味着加热RAM会擦除其中存储的任何数据?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.