打印
[STM32F4]

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

[复制链接]
7732|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiyang0725|  楼主 | 2018-1-19 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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分频的时候数据就乱了,这是为什么??

沙发
mmuuss586| | 2018-1-19 17:33 | 只看该作者
本帖最后由 mmuuss586 于 2018-1-19 17:34 编辑

速度太快了,外接的AD跟不上吧

使用特权

评论回复
板凳
fengfeng的恒| | 2018-1-19 18:24 | 只看该作者
看看外设的spi速度,看看datasheet,有说的,太快了肯定不行的。

使用特权

评论回复
地板
dongnanxibei| | 2018-1-21 19:26 | 只看该作者
有道理,那边处理不过来

使用特权

评论回复
5
feiyang0725|  楼主 | 2018-1-23 09:41 | 只看该作者
mmuuss586 发表于 2018-1-19 17:33
速度太快了,外接的AD跟不上吧

外设是AD,采样速度是根据我的PWM控制,我可以控制这个速度

使用特权

评论回复
6
feiyang0725|  楼主 | 2018-1-23 09:42 | 只看该作者
fengfeng的恒 发表于 2018-1-19 18:24
看看外设的spi速度,看看datasheet,有说的,太快了肯定不行的。

这个速度和我采样频率有关。。目前采样频率是我控制的。采样越快SPI速度设置高是可以得,当采样速度慢的时候SPI速度过快就会有问题!

使用特权

评论回复
7
fengfeng的恒| | 2018-1-23 12:00 | 只看该作者
feiyang0725 发表于 2018-1-23 09:42
这个速度和我采样频率有关。。目前采样频率是我控制的。采样越快SPI速度设置高是可以得,当采样速度慢的 ...

AD外设采样的数据是一回事,主机SPI与外设通信的速度也是另外一回事;最多你通信读太快的时候外设没还没有新的数据而已,你应该判断这个有无新数据标志才对。

使用特权

评论回复
8
fengm| | 2018-1-23 15:08 | 只看该作者
SPI的速度受限。

使用特权

评论回复
9
jkl21| | 2018-1-23 15:09 | 只看该作者
这个是外部的ADC芯片影响的。

使用特权

评论回复
10
jkl21| | 2018-1-23 15:09 | 只看该作者
使用高速的ADC。

使用特权

评论回复
11
fengm| | 2018-1-23 15:09 | 只看该作者
速度太快,IO跟不上速度。

使用特权

评论回复
12
香水城| | 2018-1-24 10:02 | 只看该作者
只要你SPI的传输速率不低于ADC转换速率就不该有问题啊,也就是说每次转换的数据能及时地被取走。

你说采样速度慢的时候SPI速度过快就会有问题,那你ADC的数据提取是靠什么同步的,靠查询?靠中断?靠DMA?

使用特权

评论回复
13
feiyang0725|  楼主 | 2018-1-25 08:19 | 只看该作者
香水城 发表于 2018-1-24 10:02
只要你SPI的传输速率不低于ADC转换速率就不该有问题啊,也就是说每次转换的数据能及时地被取走。

你说采样 ...

我的AD采样速度在随着时间变化而变化,我计算过最大是300*64也就是接近20K的速度,我SPI分频32,也有1M的速度。但是从数据来看,显示SPI传输慢了,提高SPI速度就正常了。

使用特权

评论回复
14
CaLipton| | 2018-1-25 14:28 | 只看该作者
SPI速度慢了?还以为是快了呢

使用特权

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

使用特权

评论回复
16
feiyang0725|  楼主 | 2018-1-26 08:42 | 只看该作者
sdggg 发表于 2018-1-25 21:49
1M的速度哪算快,我用的天微显示芯片都是1M速度传输,另外,adc不管你读取多快都不会乱,也不会清零,只是 ...

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

使用特权

评论回复
17
sdggg| | 2018-1-26 18:42 | 只看该作者
feiyang0725 发表于 2018-1-26 08:42
只要大约AD转换速度就可以了吧。我现在用的是2M多的速度

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

使用特权

评论回复
18
Thorald| | 2018-1-30 17:55 | 只看该作者
ADC的数据提取是什么方法同步的

使用特权

评论回复
19
ztime2000| | 2018-3-17 12:03 | 只看该作者
有道理

使用特权

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

本版积分规则

31

主题

124

帖子

1

粉丝