簡體   English   中英

Beagle Bone Black I2C2 問題

[英]Beagle Bone Black I2C2 Issues

我在使用帶有 Beagle Bone Black (BBB) 的I2C 傳感器時遇到問題。 BBB 正在運行一個專門為 BBB 更新的 18.04 Ubuntu 映像。

我使用以下引腳將傳感器(VIN、GND、SCL、SDA)連接到 BBB 上相應的 I2C2 引腳(4、2、19、20)。

BBB 引腳排列 傳感器應該使用地址 0x40,但掃描 I2C2(使用i2cdetect -r 2 )不會顯示傳感器。

i2cdetect -r 2 輸出

我已經用兩個獨立的傳感器對此進行了測試,因為我一開始以為我可能以某種方式炸掉了原始傳感器,但結果是一樣的。 事實上,當根本沒有連接任何東西時,運行 I2C2 掃描命令會產生完全相同的結果。

我在很多地方都讀到過 I2C2 可能默認不啟用,但我假設它在我的情況下是啟用的,因為我可以掃描 I2C2 而不會出錯。 這個假設不正確嗎? 同樣,這是一個新刷新的 BBB,我沒有啟用/禁用任何東西 - 它應該處於默認狀態。

我還驗證了傳感器和 BBB 之間電線的連接性。 芯片上VIN和GND之間的電壓是3.3V,所以肯定是有電的。

為什么我不能使用 BBB 連接到我的 I2C 傳感器?

可能是您使用的源已過時或不適用於 i2c。

此外,您可以使用此命令來確保 i2c2 引腳可用:

config-pin p9.21 i2c

config-pin p9.22 i2c

這也可能有效。 如果這不起作用,請回復您的整個來源。

賽斯

PS 另外,如果您有時間,如果您的軟件無法設置您自己的 i2c 庫,您可能需要使用 i2c 庫。 他們有 smbus2,你可以用 pip 和其他 i2c 庫安裝。

以下是您應該檢查的一些事項(按隨機順序)。

列出所有 I2C 總線至i2cdetect -l並全部嘗試。 根據平台的不同,Linux 中的 i2c 總線編號可能與 datasheet 和 pinout 中使用的外設編號不同。 例如,“I2C2”可能是 Linux 中的總線 i2c-1 或 i2c-3)。

使用示波器或邏輯分析儀查看 SCL 和 SDA 線是否被驅動。 如果他們不檢查巴士號碼如上。 如果是,則檢查設備是否給出ACK; 如果沒有,其他任何東西都將無法工作:仔細檢查芯片從地址。 您可以購買廉價的邏輯分析儀並使用pulseview 進行使用

只需為您的芯片加載 Linux 驅動程序(請參閱內核文檔了解如何從用戶空間執行此操作以進行快速測試)。 然后查看設備是否出現或在探測時使用dmesg查看任何內核錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM