首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >i2cdetect不识别TCA9548A I2C复用器后面的VL6180X传感器

i2cdetect不识别TCA9548A I2C复用器后面的VL6180X传感器
EN

Stack Overflow用户
提问于 2020-02-12 14:57:05
回答 2查看 963关注 0票数 1

我有两个VL6180X距离传感器正确连接到一个TCA9548A复用器,但是它只识别复用器本身,而不是像你可以看到的0x70那样的两个传感器。有任何方法来配置i2c附件吗?

代码语言:javascript
复制
i2cdetect -y 1

给出以下输出

代码语言:javascript
复制
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- -- 

Ofc,我已经在网上找到了一个解决方案:

我安装了

代码语言:javascript
复制
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

我在内核中启用了i2c (https://raspberrypi.stackexchange.com/questions/66145/raspberry-pi-3-not-detecting-i2c-device)

将所有内容添加到config.txt中,如此处所示:I2C检测不到吗?硬件或其他方面的问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-13 08:00:52

为了在Linux中的mux后面正确实例化VL6180X,您应该在设备树中描述它们。看一看I2C MUX文档

因此,您应该像下面这样描述整个设置(I2C mux + 2x VL6180X):

代码语言:javascript
复制
&i2c1 { // the SoC bus controller
    mux@70 {
        compatible = "nxp,pca9548";
        reg = <0x70>;
        #address-cells = <1>;
        #size-cells = <0>;

        i2c@3 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <3>;

            gpio1: gpio@29 {
                compatible = "st,vl6180";
                reg = <0x29>;
            };
        };

        i2c@4 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <4>;

            gpio1: gpio@29 {
                compatible = "st,vl6180";
                reg = <0x29>;
            };
        };
    };
};

这将实例化两个新总线(用i2cdetect -l列出它们),每个总线下将出现一个vl6180传感器,并将其描述为常规的IIO设备。

上面的代码是用于i2c-muxVL6180X传感器的设备树绑定文档的简单组合,可以在内核源代码中获得。

票数 3
EN

Stack Overflow用户

发布于 2020-02-12 15:24:05

卢卡的回答比这更好,尽管这仍然有效。

不是那样的。你不能通过复用器“看到”附加的设备。

相反,您打开复用器并向其写入一个“控制字节”,以告诉它应该将以下数据转发给哪个设备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60191137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档