【发布时间】:2016-06-17 19:43:42
【问题描述】:
我的 STM32F43XX 上有一个外部 SRAM,我可以使用它。我可以访问内存区域并对其进行测试(memtest)。
但是,我不知道我的 FMC 配置是否正确。我很难理解我的 SRAM 的数据表和 STM32F4 FMC 接口之间的关系。
我使用STM32F4XX reference manual 和SRAM CY7C1051DV33。
让我们从时序开始(参考第 1591 页,表 256 | SRAM 数据表第 6 页):
- 地址设置
- 地址保持
- 数据设置
- 公交车转弯
- 时钟分频比
- 数据延迟
- 访问模式
频率? 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;
【问题讨论】:
标签: memory microcontroller stm32 stm32f4