假如你的SPI高速时接收数据异常

假如你的SPI高速时接收数据异常最近使用STM32F407SPI采集ADS1274,之前采样率600Hz左右正常采集。项目需要数据采样率达到10kHz,经计算在ADS1274相应模式下需要将输入频率提升至5.26MHz,SPI的频率也设为5.26MHz。频率升高后,计算出来的结果正负乱跳。排查发现:1,从HAL_SPI_Recieve函数读取12个字节的数据错乱,作为第一通道高位的第0字节变化频繁,而第1字节稳定不变。观察234通道同样;2,增大接收数据区,HAL_SPI_Recieve函数的接收字数增大,发现第一通道高位的

假如你的SPI高速时接收数据异常

最近使用STM32F407 SPI采集ADS1274,之前采样率600Hz左右正常采集。项目需要数据采样率达到10kHz,经计算在ADS1274相应模式下需要将输入频率提升至5.26MHz,SPI的频率也设为5.26MHz。频率升高后,计算出来的结果正负乱跳。

排查发现:

1,从HAL_SPI_Recieve函数读取12个字节的数据错乱,作为第一通道高位的第0字节变化频繁,而第1字节稳定不变。观察234通道同样;

2,增大接收数据区,HAL_SPI_Recieve函数的接收字数增大,发现第一通道高位的第0字节内容变为00,第1字节稳定不变,第12字节不为00且反复变化。考虑是所有数据向后错了一个字节的位置;

3,减小频率到一定程度此问题会消失;

4,经尝试,若将SPI的模式从“主设备只接收”改为“全双工主设备”,虽然会多占用一个MOSI,但该问题消失,5.25M的SPI频率下数据读取位置正确;

5,查看HAL函数,估计是“主设备只接收”改为“全双工主设备”两种模式的接收过程有差异。具体没弄清楚。后续待查。

今天的文章假如你的SPI高速时接收数据异常分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33967.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注