[技术讨论] stm32F407硬件SPI和IO模拟SPI速度对比

[复制链接]
110|0
qinlu123 发表于 2025-10-29 16:50 | 显示全部楼层 |阅读模式
本帖最后由 qinlu123 于 2025-10-29 17:02 编辑

以ADC芯片AD7606为例,每个通道数据占用2字节,传输4个通道数据为一个读取周期。硬件SPI可以10M+bps的波特率稳定传输(更高波特率没有试),IO模拟SPI波特率最高只有2.5Mbps。有意思的是HAL库的“HAL_SPI_TransmitReceive”函数执行内容太多了,占用了太多时间整体通讯效率比IO模拟还低一些。AD7606读取和一些其他任务一块放在放在在大循环里,如果屏蔽AD7606读取那么大循环执行频率将近300K,如果使用硬件SPI波特率5M的话大循环执行频率和AD7606读取频率均为17K,如果使用硬件SPI波特率10M的话大循环执行频率和AD7606读取频率均为20K,如果使用IO模拟SPI的话大循环执行频率和AD7606读取频率均为25K。因为SPI总线上挂载多个设备如果用中断或者DMA传输的话处理起来非常麻烦,只能用阻塞式传输方式。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

206

主题

2272

帖子

14

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