ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

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

[复制链接]
661|48
 楼主 | 2019-9-15 14:16 | 显示全部楼层 |阅读模式
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分频的时候数据就乱了,这是为什么??

使用特权

评论回复
| 2019-9-15 14:19 | 显示全部楼层
速度太快了,外接的AD跟不上吧

使用特权

评论回复
| 2019-9-15 14:26 | 显示全部楼层

看看外设的spi速度,看看datasheet,有说的,太快了肯定不行的。

使用特权

评论回复
 楼主 | 2019-9-15 14:31 | 显示全部楼层
有道理,那边处理不过来

使用特权

评论回复
 楼主 | 2019-9-15 14:35 | 显示全部楼层
外设是AD,采样速度是根据我的PWM控制,我可以控制这个速度

使用特权

评论回复
 楼主 | 2019-9-15 14:38 | 显示全部楼层
这个速度和我采样频率有关。。目前采样频率是我控制的。采样越快SPI速度设置高是可以得,当采样速度慢的时候SPI速度过快就会有问题!

使用特权

评论回复
| 2019-9-15 14:42 | 显示全部楼层
AD外设采样的数据是一回事,主机SPI与外设通信的速度也是另外一回事;最多你通信读太快的时候外设没还没有新的数据而已,你应该判断这个有无新数据标志才对。

使用特权

评论回复
 楼主 | 2019-9-15 14:46 | 显示全部楼层
SPI的速度受限。

使用特权

评论回复
| 2019-9-15 14:51 | 显示全部楼层

这个是外部的ADC芯片影响的。

使用特权

评论回复
| 2019-9-15 14:55 | 显示全部楼层
使用高速的ADC。

使用特权

评论回复
| 2019-9-15 14:58 | 显示全部楼层
速度太快,IO跟不上速度。

使用特权

评论回复
| 2019-9-15 15:01 | 显示全部楼层
只要你SPI的传输速率不低于ADC转换速率就不该有问题啊,也就是说每次转换的数据能及时地被取走。

使用特权

评论回复
| 2019-9-15 15:02 | 显示全部楼层
有些芯片的SPI的通信速率有要求的,

使用特权

评论回复
| 2019-9-15 15:05 | 显示全部楼层
你说采样速度慢的时候SPI速度过快就会有问题,那你ADC的数据提取是靠什么同步的,靠查询?靠中断?靠DMA?

使用特权

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

使用特权

评论回复
| 2019-9-15 15:13 | 显示全部楼层
SPI速度慢了?还以为是快了呢

使用特权

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

使用特权

评论回复
 楼主 | 2019-9-15 15:23 | 显示全部楼层
只要大约AD转换速度就可以了吧。我现在用的是2M多的速度

使用特权

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

使用特权

评论回复
| 2019-9-15 15:33 | 显示全部楼层

ADC的数据提取是什么方法同步的

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表