最近使用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