STM32
直播中

蔡鼎瑾

7年用户 1040经验值
私信 关注
[问答]

关于STM32F103使用FSMC同步模式问题求解

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

回帖(1)

刘文娟

2024-4-17 15:34:45
你使用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. 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分