我的 STM32F43XX 上有一个外部 SRAM,我可以使用它。我可以访问内存区域并测试它们(memtest)。
但是,我不知道我的 FMC 配置是否正确。我很难理解我的 SRAM 的数据表和 STM32F4 FMC 接口之间的关系。
我将STM32F4XX 参考手册与SRAM CY7C1051DV33 一起使用。
让我们从时序开始(参考第 1591 页,表 256 | SRAM 数据表第 6 页):
- 地址设置 <------- 地址设置写入结束?
- 地址保持 <-------- 地址更改后的数据保持?
- Data Setup <------- Data Setup to Write End?
- 巴士转弯 <-------- ?
- 时钟分频比 <-------- ?
- 数据延迟 <------------ ?
- 访问模式 <------------- ?
频率?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;