请问F429中提高通信速度后SPI+DMA接收AD芯片数据不对是什么原因?

2019-07-14 18:32发布



总体描述:      利用STM32F429中的SPI通信方式,来为AD7357芯片提供采样时钟,并且获取采集的数据,SPI配置为只接受模式,再加上DMA方式存储SPI获得的数据。(测试信号100KHz正弦信号,代码后面贴出来)请大家帮我看看,谢谢
问题:当SPI使用32分频(1.4MHz的sck)的时候能够采集到正确的信号,但是16分频(sck=2.8MHz)就不能采样到准确的信号?





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
wang222221
1楼-- · 2019-07-15 12:09
 精彩回答 2  元偷偷看……
htxk
2楼-- · 2019-07-15 14:15
wang222221 发表于 2018-8-16 08:13
板子上这 SPI 的三个高速信号有没有做等长线处理?如果 SCK 的长度和 MISO、MOSI 差的太多,在这么快的速度下也是会有问题的。别忘了光速有限。

这个以前倒是没有考虑到。我看了看,SCK和MISO长度差不多,而且较短,但是CS有些长。在程序中本来加入了delay(),所以应该不是这方面的问题。

疑虑:会不会是DMA取数据过程中发生了覆盖之类的
htxk
3楼-- · 2019-07-15 18:20
keji730 发表于 2018-8-16 08:03
请问楼主,使用的这个调试软件是什么工具?

程序用的就是KEIL5,波形用的示波器
keji730
4楼-- · 2019-07-15 20:17
htxk 发表于 2018-8-16 08:33
程序用的就是KEIL5,波形用的示波器

这个波形工具觉得不错,哈哈
wang222221
5楼-- · 2019-07-15 21:18
htxk 发表于 2018-8-16 08:18
这个以前倒是没有考虑到。我看了看,SCK和MISO长度差不多,而且较短,但是CS有些长。在程序中本来加入了delay(),所以应该不是这方面的问题。

疑虑:会不会是DMA取数据过程中发生了覆盖之类的

CS 不是高速信号,长一点无所谓,不加 delay 应该也是没有问题的。DMA 溢出是有可能,这么快的速率 DMA 缓冲区要大一点才行,这只能估算一下 DMA 用量,对照着检查代码了。
cknz
6楼-- · 2019-07-15 21:36
 精彩回答 2  元偷偷看……

一周热门 更多>