I2C无法在Raspbian中工作

时间:2016-04-28 00:57:40

标签: raspbian i2c

我通过I2C总线将RaspberryPi3连接到Adafruit MPL3115A2。我今天下载了最新版本的Raspbian Jessie。我唯一做的就是运行

sudo rasp-config

启用i2c总线,然后重启并使用

安装i2ctools

sudo apt-get install -y i2c-tools

当我跑步时

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: -- -- -- -- -- -- -- --

但是,当我尝试使用

读取WHO_AM_I寄存器时

i2cget -y 1 0x60 0x0C b

i2cget -y 1 0x60 0x0C c

当我期待0xC4时,我得到0x00。使用```sudo``运行上面没有任何区别。

如果我关闭Raspbian,请拉动SD卡,插入带有Windows IoT Core的SD卡并启动。我按预期从WHO_AM_I寄存器读取0xC4没有问题。因此,我有理由相信这不是坏硬件。

我在网上寻找帮助(相信我,我不允许发布更多链接来证明它)。我已经尝试了对/boot/config.sys的一些建议编辑,包括禁用设备树并设置波特率以匹配我们从Windows IoT Core(400kHz,Raspbian似乎默认大约64kHz)看到的使用Saleae Logic Analyzer (无法为您提供链接,谷歌)。我们可以看到的唯一区别是Raspbian似乎有一个从写入到读取的离散变化,逻辑分析器可以检测到,而我们在IoT Core上没有看到。我们被困住了,任何帮助或想法都会很棒。

编辑:我会为raspbian-jessie添加一个标签,但是我的信誉不足

刚刚在RaspberryPi2上使用相同版本的jessie(一个新的SD卡上的新img)进行验证,但失败是一样的,所以看起来像Raspbian Jessie这里是吸烟枪。

1 个答案:

答案 0 :(得分:0)

我们遇到了post中使用python传感器的答案。事实证明MPL3115A2需要重复启动事务,默认情况下在Raspbian上禁用。解决方案是在/etc/rc.local

之前的exit 0文件末尾添加以下行

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