2016-04-28 104 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