我有一個RaspberryPi3通過I2C總線連接到Adafruit MPL3115A2。我今天下載了Raspbian Jessie的最新版本。我做的唯一的事情是運行I2C不能在Raspbian工作
sudo rasp-config
使用
sudo apt-get install -y i2c-tools
當我運行,使I2C總線然後重新啓動並安裝i2ctools
i2cdetect -y 1
我看到地址爲0x60的設備,我希望它是。
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
然而,當我嘗試讀取使用
i2cget -y 1 0x60 0x0C b
或
i2cget -y 1 0x60 0x0C c
我得到0×00,當我期待0xC4的WHO_AM_I寄存器。用```sudo``運行上面的代碼沒有區別。
如果我關閉Raspbian,請拉SD卡,插入帶有Windows IoT Core的SD卡並引導。按預期從WHO_AM_I寄存器中讀取0xC4,我沒有任何問題。因此,我相當確定這不是硬件壞。
我在網上尋找幫助(相信我我不允許發佈任何更多的鏈接來證明它)。我已經嘗試了幾次對/boot/config.sys的建議編輯,包括禁用設備樹並設置波特率以匹配我們從Windows IoT Core(400kHz,Raspbian似乎具有約64kHz的默認值)使用Saleae Logic分析儀(不能給你一個鏈接,谷歌它)。唯一的區別是,Raspbian似乎從寫入到讀取有一個獨立的變化,即邏輯分析器可以檢測到,而我們在IoT Core上沒有看到這種變化。我們被困住了,任何幫助或想法都會很棒。
編輯:我想補充一個標記爲raspbian,傑西但可惜我沒有足夠的信譽
只是證實在RaspberryPi2使用相同版本的傑西的(在新的SD卡一個新的IMG)和失敗是一樣的,所以看起來Raspbian Jessie是這裏的抽菸槍。
什麼是I2C頻率之前以下行添加到您
/etc/rc.local
文件的結尾? – user3528438您是否在使用sudo來運行i2c命令? –
'sudo'似乎沒有區別。Saleae表示Raspbian的默認頻率約爲64kHz,而IoT Core則使用400kHz,但匹配頻率無效。 – LetTheBeatingBegin