STM32F4 - 可能配置外部SRAM

时间:2016-03-04 06:56:29

标签: memory microcontroller stm32 stm32f4

我的STM32F43XX上有一个外部SRAM,我可以使用它。我可以访问内存区域并测试它们(memtest)。

但是,我不知道我的FMC配置是否正确。我很难理解SRAM的数据表和STM32F4 FMC接口之间的关系。

我将STM32F4XX reference manualSRAM CY7C1051DV33一起使用。

让我们从时序开始(参考页1591,表256 | SRAM数据表第6页):

  • 地址设置< -------地址设置写入结束?
  • 地址保持< -------地址变更数据保留?
  • 数据设置< -------数据设置写入结束?
  • 巴士转弯< --------?
  • 时钟分频率< --------?
  • 数据延迟< -----------?
  • AccessMode< -------------?

频率? SRAM的定义是由我的HCLK除以时钟分频比? 因此,如果我的HCLK为100 MHz且时钟分频为2,则得到50 Mhz(20 ns)。所以我的STM32F4延迟总是大于SRAM的延迟(最大10 ns)。那么,允许的最低值是否合适呢?

提前感谢您的帮助!

我的NORRAM INIT看起来像这样:

init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE;
init.MemoryType = FMC_MEMORY_TYPE_SRAM;
init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16;
init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE;
init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW;
init.WrapMode = FMC_WRAP_MODE_DISABLE;
init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS;
init.WriteOperation = FMC_WRITE_OPERATION_ENABLE;
init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE;
init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE;
init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE;
init.WriteBurst = FMC_WRITE_BURST_DISABLE;
init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ASYNC;

1 个答案:

答案 0 :(得分:1)

地址设置在地址总线上。 ram显示地址已经稳定(不再变化)和/或来自前一个时钟的时钟前多少时间。保持是时钟后多久保持稳定。

数据设置是时钟在数据稳定之前的时间。

ram和微控制器数据表应该有时序图。对于您选择的时钟速度,您是否满足时序和/或必须设置一些参数以满足时序要求。