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

stm32F765的FMC使用SRAM问题

[复制链接]
a随遇而安a 提问时间:2018-2-1 15:26 /
使用MCU的FMC外扩SRAM时,对外部SRAM进行读写操作时,写操作无异常,通过寄存器均可按照手册控制。在进行读操作时,开启EXTMOD功能,即使总线周转时间设置为0,两次连续的读操作时间还为150ns。MCU主频为216M,开启了CACHE和MPU。求助各位,能否缩小两次连续读的时间,并未在手册中找到相关寄存器说明。

OE波形(总线周转0)

OE波形(总线周转0)
收藏 评论6 发布时间:2018-2-1 15:26

举报

6个回答
五哥1 回答时间:2018-2-1 18:47:55
这个官方例程拿来改下或者对比着看看

评分

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

查看全部评分

衔胆栖冰 回答时间:2018-2-1 20:20:38
看下FMC时钟分频是多少,数据时间和地址保持时间什么的调调看

评分

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

查看全部评分

a随遇而安a 回答时间:2018-2-2 10:25:29
FMC是挂在AHB上的,AHB是1分频,数据保持时间和地址保持时间这些参数配置都没什么问题,但是两次连续读的间隔时间调不小。
a随遇而安a 回答时间:2018-2-2 13:16:57
五哥1 发表于 2018-2-1 18:47
这个官方例程拿来改下或者对比着看看

官方例程也是一样的效果
dsjsjf 回答时间:2018-3-21 11:35:11
typedef struct
{
  uint32_t AddressSetupTime;             /*!< Defines the number of HCLK cycles to configure
                                              the duration of the address setup time.
                                              This parameter can be a value between Min_Data = 0 and Max_Data = 15.
                                              @note This parameter is not used with synchronous NOR Flash memories.      */

  uint32_t AddressHoldTime;              /*!< Defines the number of HCLK cycles to configure
                                              the duration of the address hold time.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 15.
                                              @note This parameter is not used with synchronous NOR Flash memories.      */

  uint32_t DataSetupTime;                /*!< Defines the number of HCLK cycles to configure
                                              the duration of the data setup time.
                                              This parameter can be a value between Min_Data = 1 and Max_Data = 255.
                                              @note This parameter is used for SRAMs, ROMs and asynchronous multiplexed
                                              NOR Flash memories.                                                        */

  uint32_t BusTurnAroundDuration;        /*!< Defines the number of HCLK cycles to configure
                                              the duration of the bus turnaround.
                                              This parameter can be a value between Min_Data = 0 and Max_Data = 15.
                                              @note This parameter is only used for multiplexed NOR Flash memories.      */

  uint32_t CLKDivision;                  /*!< Defines the period of CLK clock output signal, expressed in number of
                                              HCLK cycles. This parameter can be a value between Min_Data = 2 and Max_Data = 16.
                                              @note This parameter is not used for asynchronous NOR Flash, SRAM or ROM
                                              accesses.                                                                  */

  uint32_t DataLatency;                  /*!< Defines the number of memory clock cycles to issue
                                              to the memory before getting the first data.
                                              The parameter value depends on the memory type as shown below:
                                              - It must be set to 0 in case of a CRAM
                                              - It is don't care in asynchronous NOR, SRAM or ROM accesses
                                              - It may assume a value between Min_Data = 2 and Max_Data = 17 in NOR Flash memories
                                                with synchronous burst mode enable                                       */

  uint32_t AccessMode;                   /*!< Specifies the asynchronous access mode.
                                              This parameter can be a value of @ref FSMC_Access_Mode                      */

}FSMC_NORSRAM_TimingTypeDef;

评分

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

查看全部评分

Legolas丶 回答时间:2018-11-19 12:20:18
dsjsjf 发表于 2018-3-21 11:35
typedef struct
{
  uint32_t AddressSetupTime;             /*!< Defines the number of HCLK cycles to  ...

这里也没有关于两次读操作的间隔时间的配置啊。我在调试时也发现两次有效读操作之间的间隔都是150ns。不知用DMA是否可以解决。

所属标签

相似问题

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