找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3801|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

如何用STM32的SPI讀取16個傳感器的數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:895436 發(fā)表于 2021-3-26 09:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
計劃實現(xiàn)用SPI讀取由16個傳感器組成的陀螺陣列的陀螺儀的數(shù)據(jù),用SPI讀取,必須得拉高拉低片選信號,時間上數(shù)據(jù)不能保證同時性,請問該怎么實現(xiàn)?用四組SPI同時讀取可以嗎?望路過的大佬指教指教
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:827243 發(fā)表于 2021-3-26 10:49 | 只看該作者
SPI本身是串行數(shù)據(jù),要想保證時間一致性,只有16個SPI+DMA一起讀,多個CPU用外部中斷啟動讀寫,保證時間一致性。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:807591 發(fā)表于 2021-3-26 10:56 | 只看該作者
要比較好的“同時”性,可以考慮用多個IO腳模擬SPI驅(qū)動

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:781556 發(fā)表于 2021-3-26 11:13 | 只看該作者
mcu的同時並不表示一般人所理解的同時
不管你接多少組傳感器,對mcu而言,也是一組一組讀。
對程序而言,也是一行一行的走。
先確認(rèn)當(dāng)前硬件系統(tǒng)的數(shù)據(jù)處理時效是否可以滿足設(shè)計要求。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:895436 發(fā)表于 2021-3-26 11:40 | 只看該作者
daemondong 發(fā)表于 2021-3-26 10:49
SPI本身是串行數(shù)據(jù),要想保證時間一致性,只有16個SPI+DMA一起讀,多個CPU用外部中斷啟動讀寫,保證時間一 ...

謝謝回復(fù)。16個CPU的成本太高了,是否能用一條時鐘線上的四組SPI同時讀取,一組讀取四個傳感器的數(shù)據(jù),
回復(fù)

使用道具 舉報

6#
ID:895436 發(fā)表于 2021-3-26 11:40 | 只看該作者
szb314 發(fā)表于 2021-3-26 10:56
要比較好的“同時”性,可以考慮用多個IO腳模擬SPI驅(qū)動

謝謝回復(fù),用IO口模擬,是不是IO占用太多了,是不是用I2C更好點(diǎn),
回復(fù)

使用道具 舉報

7#
ID:895436 發(fā)表于 2021-3-26 11:42 | 只看該作者
mvwtest 發(fā)表于 2021-3-26 11:13
mcu的同時並不表示一般人所理解的同時
不管你接多少組傳感器,對mcu而言,也是一組一組讀。
對程序而言, ...

謝謝回復(fù),我用的是STM32F429,因為要對比相差時間不大的陀螺儀數(shù)據(jù),然后進(jìn)行融合,請問有什么好的方法嗎
回復(fù)

使用道具 舉報

8#
ID:592807 發(fā)表于 2021-3-26 13:13 | 只看該作者
qwe2156349 發(fā)表于 2021-3-26 11:42
謝謝回復(fù),我用的是STM32F429,因為要對比相差時間不大的陀螺儀數(shù)據(jù),然后進(jìn)行融合,請問有什么好的方法嗎

拜托STM32F4最高168M時鐘,讀一個傳感器零點(diǎn)幾微妙的事,你差這幾微秒嗎
回復(fù)

使用道具 舉報

9#
ID:781556 發(fā)表于 2021-3-26 14:00 | 只看該作者
qwe2156349 發(fā)表于 2021-3-26 11:42
謝謝回復(fù),我用的是STM32F429,因為要對比相差時間不大的陀螺儀數(shù)據(jù),然后進(jìn)行融合,請問有什么好的方法嗎

如對數(shù)據(jù)實時性有超常要求,建議考慮RTOS。
回復(fù)

使用道具 舉報

10#
ID:807591 發(fā)表于 2021-3-27 08:50 | 只看該作者
qwe2156349 發(fā)表于 2021-3-26 11:40
謝謝回復(fù),用IO口模擬,是不是IO占用太多了,是不是用I2C更好點(diǎn),

I2C模擬的話占用的IO腳16+1時鐘, SPI 需要16個片選IO腳+1時鐘+1數(shù)據(jù),SPI需要16次,I2C 或許16個器件可以“同時”讀
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表