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

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, 下载次数: 9)

评分

参与人数 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, 下载次数: 5)
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版