2016-04-28 70 views
2

我有一個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是這裏的抽菸槍。

+0

什麼是I2C頻率之前以下行添加到您/etc/rc.local文件的結尾? – user3528438

+0

您是否在使用sudo來運行i2c命令? –

+0

'sudo'似乎沒有區別。Saleae表示Raspbian的默認頻率約爲64kHz,而IoT Core則使用400kHz,但匹配頻率無效。 – LetTheBeatingBegin

回答

0

我們在使用python傳感器時遇到了埋在post中的答案。原來MPL3115A2需要在Raspbian上默認禁用的重複啓動事務。該解決方案僅僅是exit 0

echo -n 1 > /sys/module/i2c_bcm2708/parameters/combined