你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F417 如何设置 FSMC SRAM 时序

[复制链接]
maxtch 提问时间:2018-1-2 13:08 /
我自己焊了一片“正点原子 STM32F417 探索者”(买的 F407 探索者空板,套上一片 STM32F417ZGT6)这块板子有一片 IS62WV51216BLL-55TLI SRAM。我现在正在写 FSMC 初始化代码,想在代码里尽量压缩 SRAM 时序。请问我该关注 SRAM 手册里面的什么参数,如何从这些参数计算出 FSMC 的时序数值?请授人以渔,因为我还需要计算其它型号 SRAM 芯片的时序,譬如 IS61LV51216-10TLI。
收藏 评论9 发布时间:2018-1-2 13:08

举报

9个回答
wenyangzeng 回答时间:2018-1-21 10:01:05
ST官方源代码可以参考:
SDRAM_Timing.LoadToActiveDelay    = 2;
  SDRAM_Timing.ExitSelfRefreshDelay = 6;
  SDRAM_Timing.SelfRefreshTime      = 4;
  SDRAM_Timing.RowCycleDelay        = 6;
  SDRAM_Timing.WriteRecoveryTime    = 2;
  SDRAM_Timing.RPDelay              = 2;
  SDRAM_Timing.RCDDelay             = 2;


  hsdram.Init.SDBank             = FMC_SDRAM_BANK1;
  hsdram.Init.ColumnBitsNumber   = FMC_SDRAM_COLUMN_BITS_NUM_8;
  hsdram.Init.RowBitsNumber      = FMC_SDRAM_ROW_BITS_NUM_12;
  hsdram.Init.MemoryDataWidth    = SDRAM_MEMORY_WIDTH;
  hsdram.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
  hsdram.Init.CASLatency         = FMC_SDRAM_CAS_LATENCY_3;
  hsdram.Init.WriteProtection    = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
  hsdram.Init.SDClockPeriod      = SDCLOCK_PERIOD;
  hsdram.Init.ReadBurst          = FMC_SDRAM_RBURST_ENABLE;
  hsdram.Init.ReadPipeDelay      = FMC_SDRAM_RPIPE_DELAY_0; FMC_SDRAM.rar (52.32 KB, 下载次数: 8)

评分

参与人数 1蝴蝶豆 +5 收起 理由
zero99 + 5

查看全部评分

maxtch 回答时间:2018-1-21 10:55:59
wenyangzeng 发表于 2018-1-21 10:01
ST官方源代码可以参考:
SDRAM_Timing.LoadToActiveDelay    = 2;
  SDRAM_Timing.ExitSelfRefreshDelay = ...

这个代码用处不大啊:

其一,我用的是 SRAM 不是 SDRAM,时序参数都不对:我问的是 STM32 的 SRAM 时序参数怎么对应到 SRAM 数据手册里的参数。注意这里内存类型没有字母 D。
其二,我没有用 Cube 或 STL(代码太大且有暗病)而是直接操作寄存器,这些初始化结构体对我来说意义很有限。
wenyangzeng 回答时间:2018-1-21 17:37:13
maxtch 发表于 2018-1-21 10:55
这个代码用处不大啊:

其一,我用的是 SRAM 不是 SDRAM,时序参数都不对:我问的是 STM32 的 SRAM 时序 ...

ST这个代码不知道对你有否帮助:

QSPI_ReadWrite_IT.rar (52.07 KB, 下载次数: 3)
maxtch 回答时间:2018-1-21 22:53:40
wenyangzeng 发表于 2018-1-21 17:37
ST这个代码不知道对你有否帮助:

这个是 QSPI,不是 FSMC……芯片也不对……Cube 的配置参数是直接对应寄存器的,不解决问题。

我好像把问题条件在标题里面讲的很明确:
* 涉及到的外设是 FSMC 的配置寄存器怎么对 SRAM 数据手册而不是 FMC 对 SDRAM 或 QSPI;
* 用的芯片是 STM32F417 不是 F7xx,那个没有 FMC 或 QSPI 支持。

两次回答怎么都答非所问了?
nyszx 回答时间:2018-1-22 09:30:17
简单说就是要配置FSMC时序满足器件手册中要求的最低时序要求,比如IS62WV51216BLL-55TLI中,也就是要满足这些时序要求:
读时序
QQ截图20180122092122.jpg
写时序
QQ截图20180122092137.jpg
根据以上时序时间,有FSMC时钟计算出FSMC的对应时间:
333.jpg
1111.jpg
222.jpg
nyszx 回答时间:2018-1-22 09:31:44
如果楼主还不清楚怎么算,可以看看这个代码
  1.   /* Timing configuration for 90 MHz of SD clock frequency (180MHz/2) */
  2.   /* TMRD: 2 Clock cycles */
  3.   SDRAM_Timing.LoadToActiveDelay    = 2;
  4.   /* TXSR: min=70ns (6x11.90ns) */
  5.   SDRAM_Timing.ExitSelfRefreshDelay = 7;
  6.   /* TRAS: min=42ns (4x11.90ns) max=120k (ns) */
  7.   SDRAM_Timing.SelfRefreshTime      = 4;
  8.   /* TRC:  min=63 (6x11.90ns) */        
  9.   SDRAM_Timing.RowCycleDelay        = 7;
  10.   /* TWR:  2 Clock cycles */
  11.   SDRAM_Timing.WriteRecoveryTime    = 2;
  12.   /* TRP:  15ns => 2x11.90ns */
  13.   SDRAM_Timing.RPDelay              = 2;
  14.   /* TRCD: 15ns => 2x11.90ns */
  15.   SDRAM_Timing.RCDDelay             = 2;

  16.   hsdram.Init.SDBank             = FMC_SDRAM_BANK2;
  17.   hsdram.Init.ColumnBitsNumber   = FMC_SDRAM_COLUMN_BITS_NUM_8;
  18.   hsdram.Init.RowBitsNumber      = FMC_SDRAM_ROW_BITS_NUM_12;
  19.   hsdram.Init.MemoryDataWidth    = SDRAM_MEMORY_WIDTH;
  20.   hsdram.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
  21.   hsdram.Init.CASLatency         = FMC_SDRAM_CAS_LATENCY_3;
  22.   hsdram.Init.WriteProtection    = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
  23.   hsdram.Init.SDClockPeriod      = SDCLOCK_PERIOD;
  24.   hsdram.Init.ReadBurst          = FMC_SDRAM_RBURST_DISABLE;
  25.   hsdram.Init.ReadPipeDelay      = FMC_SDRAM_RPIPE_DELAY_1;
复制代码

评分

参与人数 1蝴蝶豆 +5 收起 理由
zero99 + 5

查看全部评分

nyszx 回答时间:2018-1-22 09:34:28
满足器件手册中的时序min要求就值,就是最大能压缩到的时间,否则,再短,稳定性将无法保障。
maxtch 回答时间:2018-1-22 16:22:58
nyszx 发表于 2018-1-22 09:31
如果楼主还不清楚怎么算,可以看看这个代码

这些寄存器看上去和 F407/F417 的很不一样啊。您选的芯片参数和 SRAM 数据手册对应的很好,但 F407/F417 的就只有四个时序参数且没有对应关系。
xmshao 回答时间:2018-1-22 16:49:55
ST官方有个应用笔记 AN2784 ,里面有专门讲述。搜索不难得到。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版