4.
\$\begingroup\$

我正在考虑设计一个基于微芯片/ATMEL SAM S70STM32F7/STM32H7。SAMS S70似乎是最便宜的选择,提供的服务与ST竞争对手大致相同。

我现在正试图弄清楚我能在这些MCU上附加多少SDRAM。

  1. S70的数据表没有指定什么类型的SDRAM (DDR2, DDR3)等,它可以处理。我如何知道哪些内存芯片是兼容的?

  2. 浏览digitec时,我注意到几乎所有(?)1G内存芯片都有8个存储组,这超出了SAM S70的处理能力(最多4个存储组)。我发现4家银行提供1G的所有芯片都只有DDR1。每家银行的数据量是否受到限制?

  3. 我也不确定在SAMS S70上的内存控制器可以为每个银行(行/列地址)和总多少数据地址。如果我正确地读取数据表,最大的地址是行地址的13位,列地址的11位+ 1位字节偏移量+ 2位银行地址,即总共27位地址。那是1G的1/8,也就是128M?

  4. 页面大小在其中发挥了什么作用?

我知道这是许多问题,但我相当不知所措的数量的内存配置和有限的信息在数据表没有帮助。

\ \ endgroup \美元
1.
  • \$\begingroup\$ 如果他们有一个参考设计,它将显示什么内存使用。 \ \ endgroup \美元 1月9日18日0:10

2个答案2.

7.
\$\begingroup\$

您需要的内存类型是SDRAM.与DDR SDRAM不同。我还没见过支持DDR内存的Cortex-M设备。如果你需要这种能力,你通常会选择Cortex-A家族。

你很容易找到SDRAM芯片在digikey上或任何其他分销商网站。

在这一点上,你们剩下的问题可能是无关紧要的,但让我给你们一些额外的分数。

两个芯片都支持256MB的RAM。如果你看看上面的digikey链接,单个芯片中的最大容量是512 Mbit(64 MBytes)。这就是数据总线宽度发挥作用的地方。您可以看到512Mb芯片有三种配置:

  • 16M x 32位
  • 32M x 16位
  • 64 x 8位

增加内存容量的一种方法是使用两个32M x 16位配置的512Mb设备,并将它们连接起来,如图所示应用程序说明,对于总共128MB的RAM:

在此处输入图像描述

\ \ endgroup \美元
6.
  • \$\begingroup\$ 我完全同意你关于支持SDRAM的看法,我花了很多时间。除了FPGA,我找不到解决方案。 \ \ endgroup \美元
    dsgdfg
    1月9日18日5点57分
  • \$\begingroup\$ 谢谢你的回答。如果我是正确的,由于16位数据总线的限制,无法将SAM S70的内存容量扩展到256MB以上,对吗? \ \ endgroup \美元 2018年1月9日10:44
  • \$\begingroup\$ 实际上,我不太明白怎么连256MB都能附加。对于8K行,2K列,4行和16位数据路径,我只得到128MB? \ \ endgroup \美元 2018年1月9日11:28
  • \$\begingroup\$ @Xaser我链接的应用说明声称,MCU可以处理四组32位宽的SDRAM。S70也应该能够做到这一点。否则,说明是复制粘贴错误。 \ \ endgroup \美元 2018年1月10日0:55
  • \$\begingroup\$ @Armandas是的,但是mcu只有16条物理数据线,也就是16位宽?而不一致性似乎出现在数据表本身(我的计算是128MB,但数据表是256MB)奇怪的东西。 \ \ endgroup \美元 2018年1月10日23:15
4.
\$\begingroup\$

数据表在第一页上显示:

-16位静态内存控制器(SMC),支持SRAM, PSRAM, LCD模块,NOR和NAND闪存与动态置乱

̶16位SDRAM控制器(SDRAM C),接口容量高达256 MB,并具有动态加扰功能”

值得一提的是:SAMS70只支持16位(外部)总线宽度。我更喜欢也允许32位的STM MCU。这对性能很重要:如果让代码获取,或者使用32位(int,float)甚至双字(64位),那么您只能获得1/2潜在吞吐量的一半。这取决于您使用外部内存的内容和频率(临时数据或主数据和代码?)。还应检查此MCU是否提供缓存,例如,它是否是带有缓存的Cortex-M4/M7?如果是,请正确配置MPU以使用它。我更喜欢带缓存的MCU,加上ITCM和DTCM,例如用于高性能嵌入式系统的STM32F7。我经常将外部内存用作RAM磁盘或临时缓冲区,而不是主内存。

顺便说一句:你也可以检查一下使用SDIO(SD卡)是否足够。你可以在那里有GB的空间。即使通常支持代码提取,它也会更慢(例如,4位总线)。但使用SD卡插槽(或焊接的eMMC芯片)连接和创建PCB要容易得多。

或者:SPI内存芯片(如FRAM)怎么样?

BTW2:真正的DDR内存(通常只在Cortex-A应用处理器上找到,如LP-DDR2或DDR3)很难设计为PCB:它们需要在所有线路上匹配跟踪长度、阻抗匹配,以及在末端的终端。不像静态(S)RAM或静态(S)DRAM那样简单的设计。

\ \ endgroup \美元

    你的回答

    点击“发布您的答案”,您同意我们的建议服务条款,隐私政策cookie策略

    不是你想要的答案?浏览已标记的其他问题问你自己的问题