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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版