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

[复制链接]
3014|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 | 显示全部楼层
有道理,那边处理不过来
 楼主| llljh 发表于 2021-9-11 20:31 | 显示全部楼层
外设是AD,采样速度是根据我的PWM控制,我可以控制这个速度
 楼主| llljh 发表于 2021-9-11 20:33 | 显示全部楼层
这个速度和我采样频率有关。。目前采样频率是我控制的。采样越快SPI速度设置高是可以得,当采样速度慢的时候SPI速度过快就会有问题!
yszong 发表于 2021-9-11 20:35 | 显示全部楼层
AD外设采样的数据是一回事,主机SPI与外设通信的速度也是另外一回事;最多你通信读太快的时候外设没还没有新的数据而已,你应该判断这个有无新数据标志才对。
 楼主| llljh 发表于 2021-9-11 20:57 | 显示全部楼层
SPI的速度受限。
xxrs 发表于 2021-9-11 20:59 | 显示全部楼层
这个是外部的ADC芯片影响的。
xxrs 发表于 2021-9-11 21:00 | 显示全部楼层

使用高速的ADC。
jiajs 发表于 2021-9-11 21:02 | 显示全部楼层
速度太快,IO跟不上速度。
xxrs 发表于 2021-9-11 21:04 | 显示全部楼层
只要你SPI的传输速率不低于ADC转换速率就不该有问题啊,也就是说每次转换的数据能及时地被取走。
jiajs 发表于 2021-9-11 21:11 | 显示全部楼层
有些芯片的SPI的通信速率有要求的,
wenfen 发表于 2021-9-11 21:14 | 显示全部楼层
你说采样速度慢的时候SPI速度过快就会有问题,那你ADC的数据提取是靠什么同步的,靠查询?靠中断?靠DMA?
 楼主| llljh 发表于 2021-9-11 21:17 | 显示全部楼层
我的AD采样速度在随着时间变化而变化,我计算过最大是300*64也就是接近20K的速度,我SPI分频32,也有1M的速度。但是从数据来看,显示SPI传输慢了,提高SPI速度就正常了。
yszong 发表于 2021-9-11 21:19 | 显示全部楼层
SPI速度慢了?还以为是快了呢
liliang9554 发表于 2021-9-11 21:21 | 显示全部楼层
1M的速度哪算快,我用的天微显示芯片都是1M速度传输,另外,adc不管你读取多快都不会乱,也不会清零,只是值更新慢一点,这是转换完成后不关闭adc的前提下,库函数是直接关闭adc的
 楼主| llljh 发表于 2021-9-11 21:22 | 显示全部楼层

只要大约AD转换速度就可以了吧。我现在用的是2M多的速度
supernan 发表于 2021-9-11 21:24 | 显示全部楼层
其实adc值是不会乱的,除非输入的电压就不稳定,单从你改小分频来看,只是提高了SPI速度,但发送数据周期还是不变(根据ADC读取周期来发送?),SPI时钟提高了4倍,就是4M,那么有可能IO配置成低速模式2M,这样数据就乱了
gongche 发表于 2021-9-11 21:26 | 显示全部楼层
ADC的数据提取是什么方法同步的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

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