本帖最后由 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传输的话处理起来非常麻烦,只能用阻塞式传输方式。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|