找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2369|回复: 9
收起左侧

如何用STM32的SPI读取16个传感器的数据

[复制链接]
ID:895436 发表于 2021-3-26 09:22 | 显示全部楼层 |阅读模式
计划实现用SPI读取由16个传感器组成的陀螺阵列的陀螺仪的数据,用SPI读取,必须得拉高拉低片选信号,时间上数据不能保证同时性,请问该怎么实现?用四组SPI同时读取可以吗?望路过的大佬指教指教
回复

使用道具 举报

ID:827243 发表于 2021-3-26 10:49 | 显示全部楼层
SPI本身是串行数据,要想保证时间一致性,只有16个SPI+DMA一起读,多个CPU用外部中断启动读写,保证时间一致性。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:807591 发表于 2021-3-26 10:56 | 显示全部楼层
要比较好的“同时”性,可以考虑用多个IO脚模拟SPI驱动

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:781556 发表于 2021-3-26 11:13 | 显示全部楼层
mcu的同時並不表示一般人所理解的同時
不管你接多少組傳感器,對mcu而言,也是一組一組讀。
對程序而言,也是一行一行的走。
先確認當前硬件系統的數據處理時效是否可以滿足設計要求。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:895436 发表于 2021-3-26 11:40 | 显示全部楼层
daemondong 发表于 2021-3-26 10:49
SPI本身是串行数据,要想保证时间一致性,只有16个SPI+DMA一起读,多个CPU用外部中断启动读写,保证时间一 ...

谢谢回复。16个CPU的成本太高了,是否能用一条时钟线上的四组SPI同时读取,一组读取四个传感器的数据,
回复

使用道具 举报

ID:895436 发表于 2021-3-26 11:40 | 显示全部楼层
szb314 发表于 2021-3-26 10:56
要比较好的“同时”性,可以考虑用多个IO脚模拟SPI驱动

谢谢回复,用IO口模拟,是不是IO占用太多了,是不是用I2C更好点,
回复

使用道具 举报

ID:895436 发表于 2021-3-26 11:42 | 显示全部楼层
mvwtest 发表于 2021-3-26 11:13
mcu的同時並不表示一般人所理解的同時
不管你接多少組傳感器,對mcu而言,也是一組一組讀。
對程序而言, ...

谢谢回复,我用的是STM32F429,因为要对比相差时间不大的陀螺仪数据,然后进行融合,请问有什么好的方法吗
回复

使用道具 举报

ID:592807 发表于 2021-3-26 13:13 | 显示全部楼层
qwe2156349 发表于 2021-3-26 11:42
谢谢回复,我用的是STM32F429,因为要对比相差时间不大的陀螺仪数据,然后进行融合,请问有什么好的方法吗

拜托STM32F4最高168M时钟,读一个传感器零点几微妙的事,你差这几微秒吗
回复

使用道具 举报

ID:781556 发表于 2021-3-26 14:00 | 显示全部楼层
qwe2156349 发表于 2021-3-26 11:42
谢谢回复,我用的是STM32F429,因为要对比相差时间不大的陀螺仪数据,然后进行融合,请问有什么好的方法吗

如對數據實時性有超常要求,建議考慮RTOS。
回复

使用道具 举报

ID:807591 发表于 2021-3-27 08:50 | 显示全部楼层
qwe2156349 发表于 2021-3-26 11:40
谢谢回复,用IO口模拟,是不是IO占用太多了,是不是用I2C更好点,

I2C模拟的话占用的IO脚16+1时钟, SPI 需要16个片选IO脚+1时钟+1数据,SPI需要16次,I2C 或许16个器件可以“同时”读
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表