打印
[STM32F4]

SPI数据,关于传输速度的问题

[复制链接]
2384|57
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llljh|  楼主 | 2021-9-11 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;               
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;               
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;        
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;        
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;               
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;               
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;        
        SPI_InitStructure.SPI_CRCPolynomial = 7;        
        SPI_Init(SPI2, &SPI_InitStructure);
波特率设置问题,我用SPI接口传输的AD采样值,我用32分频的时候可以正常采集,数据正常。我用8分频的时候数据就乱了,这是为什么??

使用特权

评论回复
沙发
jiajs| | 2021-9-11 20:21 | 只看该作者
速度太快了,外接的AD跟不上吧

使用特权

评论回复
板凳
wuhany| | 2021-9-11 20:27 | 只看该作者
看看外设的spi速度,看看datasheet,有说的,太快了肯定不行的。

使用特权

评论回复
地板
llljh|  楼主 | 2021-9-11 20:29 | 只看该作者
有道理,那边处理不过来

使用特权

评论回复
5
llljh|  楼主 | 2021-9-11 20:31 | 只看该作者
外设是AD,采样速度是根据我的PWM控制,我可以控制这个速度

使用特权

评论回复
6
llljh|  楼主 | 2021-9-11 20:33 | 只看该作者
这个速度和我采样频率有关。。目前采样频率是我控制的。采样越快SPI速度设置高是可以得,当采样速度慢的时候SPI速度过快就会有问题!

使用特权

评论回复
7
yszong| | 2021-9-11 20:35 | 只看该作者
AD外设采样的数据是一回事,主机SPI与外设通信的速度也是另外一回事;最多你通信读太快的时候外设没还没有新的数据而已,你应该判断这个有无新数据标志才对。

使用特权

评论回复
8
llljh|  楼主 | 2021-9-11 20:57 | 只看该作者
SPI的速度受限。

使用特权

评论回复
9
xxrs| | 2021-9-11 20:59 | 只看该作者
这个是外部的ADC芯片影响的。

使用特权

评论回复
10
xxrs| | 2021-9-11 21:00 | 只看该作者

使用高速的ADC。

使用特权

评论回复
11
jiajs| | 2021-9-11 21:02 | 只看该作者
速度太快,IO跟不上速度。

使用特权

评论回复
12
xxrs| | 2021-9-11 21:04 | 只看该作者
只要你SPI的传输速率不低于ADC转换速率就不该有问题啊,也就是说每次转换的数据能及时地被取走。

使用特权

评论回复
13
jiajs| | 2021-9-11 21:11 | 只看该作者
有些芯片的SPI的通信速率有要求的,

使用特权

评论回复
14
wenfen| | 2021-9-11 21:14 | 只看该作者
你说采样速度慢的时候SPI速度过快就会有问题,那你ADC的数据提取是靠什么同步的,靠查询?靠中断?靠DMA?

使用特权

评论回复
15
llljh|  楼主 | 2021-9-11 21:17 | 只看该作者
我的AD采样速度在随着时间变化而变化,我计算过最大是300*64也就是接近20K的速度,我SPI分频32,也有1M的速度。但是从数据来看,显示SPI传输慢了,提高SPI速度就正常了。

使用特权

评论回复
16
yszong| | 2021-9-11 21:19 | 只看该作者
SPI速度慢了?还以为是快了呢

使用特权

评论回复
17
liliang9554| | 2021-9-11 21:21 | 只看该作者
1M的速度哪算快,我用的天微显示芯片都是1M速度传输,另外,adc不管你读取多快都不会乱,也不会清零,只是值更新慢一点,这是转换完成后不关闭adc的前提下,库函数是直接关闭adc的

使用特权

评论回复
18
llljh|  楼主 | 2021-9-11 21:22 | 只看该作者

只要大约AD转换速度就可以了吧。我现在用的是2M多的速度

使用特权

评论回复
19
supernan| | 2021-9-11 21:24 | 只看该作者
其实adc值是不会乱的,除非输入的电压就不稳定,单从你改小分频来看,只是提高了SPI速度,但发送数据周期还是不变(根据ADC读取周期来发送?),SPI时钟提高了4倍,就是4M,那么有可能IO配置成低速模式2M,这样数据就乱了

使用特权

评论回复
20
gongche| | 2021-9-11 21:26 | 只看该作者
ADC的数据提取是什么方法同步的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

粉丝