gpt4 book ai didi

raspbian - I2C 在 Raspbian 中不工作

转载 作者:行者123 更新时间:2023-12-02 10:23:11 27 4
gpt4 key购买 nike

我有一个 RaspberryPi3 连接到 Adafruit MPL3115A2通过 I2C 总线。我有最新版本的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 abcdef
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 的一些建议编辑,包括禁用设备树并使用 Saleae Logic 设置波特率以匹配我们从 Windows IoT Core 中看到的波特率(400kHz,Raspbian 似乎有大约 64kHz 的默认值)分析器(无法给您链接,请通过谷歌搜索)。我们可以看到的唯一区别是,Raspbian 似乎具有逻辑分析仪可以检测到的从写入到读取的离散变化,而我们在 IoT Core 上没有看到这种变化。我们陷入困境,任何帮助或想法都会很棒。

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

刚刚在 RaspberryPi2 上使用相同版本的 jessie(新 SD 卡上的新 img)进行验证,失败是相同的,因此看来 Raspbian Jessie 就是这里确凿的证据。

最佳答案

我们发现了隐藏在 post 中的答案。关于将传感器与 python 一起使用。事实证明,MPL3115A2 需要重复启动事务,而 Raspbian 上默认禁用该事务。解决方案是将以下行添加到 /etc/rc.local 文件末尾 exit 0

之前


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

关于raspbian - I2C 在 Raspbian 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36903419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com