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

STM32F103 使用FSMC同步模式问题

[复制链接]
西祠响马 提问时间:2019-9-27 17:37 /
大家好,我现在正在使用STM32F103的FSMC同步模式。
需要读取高速ADC数据,ADC是8位并口,但需要一个时钟去触发转换,在时钟上升沿读取数据,速度20M,
我看FSMC的同步模式正好有这个CLK,所以就想通过FSMC去读取,数据我已经读取回来了,但是有点疑问,及时每次读取ADC的数据都必须发送一次地址,然后等待2个时钟周期才有数据,并不是每个时钟上升沿一个数据,所以几乎就是速度很慢。本以为每发1个时钟出1个数据,但实际上发多个时钟才出1个数据。
例程的FSMC大多是异步模式的,因此现在想请教下各位高手,有没有使用过这个功能的,谢谢

收藏 1 评论4 发布时间:2019-9-27 17:37

举报

4个回答
西祠响马 回答时间:2019-9-28 10:39:44
顶一下,让更多高手看到
xmshao 回答时间:2019-10-12 16:43:17
你使用FSMC的同步模式,并通过该同步时钟触发你的ADC,然后读取ADC数据 原理上是没有问题的。

同步时钟过来后,FSMC硬件至少要等待两个CLK后才去读取并行数据。这个等待时间我们可以从 2-17CLK进行配置。  
DATLAT: Data latency for synchronous burst NOR Flash memory
For NOR Flash with synchronous burst mode enabled, defines the number of memory clock
cycles (+2) to issue to the memory before getting the first data:
0000: Data latency of 2 CLK clock cycles for first burst access
1111: Data latency of 17 CLK clock cycles for first burst access (default value after reset)

你期望每个上升沿出现就读取数据,这个不太现实。
你要知道。该时钟同时又做了触发信号,你的ADC受触发后再进行转换,之后才将数据送到总线上,这都是要时间的。

如果说即使这样还嫌慢无法满足要求,那就再想想别的办法。比较换个速度更高点的STM32.
aiherong 回答时间:2019-10-18 22:20:05
手册和库对FSMC寄存器定义方式不同,看看手册里的BCR,BTR和BCTR寄存器描述,那里有建立数据,保持数据的时钟周期设置,还有各种模式选择;
但连续读ADC转换数据为什么不用DMA(可设成循环方式,又能中断处理每次发来的数据)
西祠响马 回答时间:2019-10-30 15:44:59
aiherong 发表于 2019-10-18 22:20
手册和库对FSMC寄存器定义方式不同,看看手册里的BCR,BTR和BCTR寄存器描述,那里有建立数据,保持数据的时 ...

您好,谢谢回复。我现在用的是ADC芯片AD9280,芯片本身需要一个时钟出发ADC采样。如果我使用DMA的MEM  to MEM 模式,貌似不可以循环读。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版