This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/ADS1115:OpenWRT (Glinet 6.4416万)+ I2C通信

Guru**** 2589245 points
Other Parts Discussed in Thread: ADS1115

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/639011/linux-ads1115-openwrt-glinet-64416-i2c-communications

部件号:ADS1115

工具/软件:Linux

大家好,我目前正在使用此路由器和ADS1115来读取光电二极管的输出。 我使用 此处所示的3.3V引脚 为芯片供电。 但是,由于使用dmesg命令后找不到芯片,因此似乎存在接线问题。

https://imgur.com/a/OfoUc

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    伊恩


    我不太了解OpenWRT/Linux,也不确定您使用的是哪种微控制器,所以我的帮助仅限于有关设备本身的问题。

    这看起来像是ADS1115 Adafruit板。 如果是,则应将默认地址设置为48h (不计算读/写位)。 我的建议是:

    1.检查耗材,确保设备已打开。

    2.检查I2C寻址以确保您正在读取和写入正确的地址。

    3.使用示波器或逻辑分析器确保I2C通信从主设备写入设备。 验证您编写的任何代码是否在摆弄SDA和SCL行非常重要。

    一旦您能够获得示波器,您就可以发布设备配置寄存器的读取图,我们可以对其进行查看。


    吴若瑟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Joseph:

    路由器的微处理器是Atheros 9311。 下面 技术规格的链接。

    下面是 我对I2C寻址的了解。 我已经仔细检查了我是否通电以及SDA/SCL是否正确连接。

    如何设置配置寄存器的示波器读数,以及在触碰SDA/SCL接地时应该看到什么?

    感谢您的回复并告诉我应该查找哪个地址。

    SDA和SCL上的示波器读数平坦。 我本应该看到方波的吗? 这是在使用dmesg | grep i2c命令ping sda和scl之后。

    https://imgur.com/a/TmjX2

    伊恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    伊恩

    很抱歉,但我完全不熟悉这款微型电脑。 如果你根本看不到SDA和SCL线的移动,那么你的问题可能是你如何获得微型的I2C设置。 但是,您所参考的图解却看不到任何内容。 此处仅供讨论:

    现在,您似乎正在读取3V信号(有少量噪音,这可能不是什么大问题)。 这对于在SDA上具有上拉功能的非活动I2C总线是有意义的。 但是,您的总时标仅为10us。 I2C通常是一个非常慢的协议,您可能会因为过于接近而错过整个事务。 此外,您应该同时查看SDA和SCL以获取数据事务。 作为示例,查看他们发布通信内容的此帖子:

    e2e.ti.com/.../54.0049万

    请注意,示波器画面显示总时间为250US,并且在SCL上升沿触发。

    最后,您应该会看到数据表图30中的内容:

    吴若瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 很抱歉回复太晚。 为了使其正常工作,还需要进行一些调整(forum.openwrt.org/viewtopic.php ,我在SDA和SCL示波器上获得了适当的方波。 缺点是i2cdump仅输出XXXX用于各种寄存器,即使我们有信号进入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    伊恩

    我已经浏览了您在其他论坛上的帖子,但我不确定我看到的是什么:

      0,8 ,1,9 2,a 3,b 4,c 5,d 6,e 7,f
    00:0000 8385 0080 ff7f 0000 8385 0080 XXXX
    08:0000 8385 0080 ff7f 0000 8385 0080 XXXX
    10:0000 8385 0080 ff7f 0000 8385 0080 XXXX
    18:0000 8385 0080 ff7f 0000 8385 0080 XXXX

    您能否简要说明列表示什么? 8385看起来像默认的配置寄存器8583h,所以我认为您已经对设备进行了编程,而您正在读回寄存器。

    您是否能够获得通信的一些示波器镜头?

    吴若瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Joseph:

    我是在没有连接的情况下做的,所以它只读寄存器是有意义的。 插入输入后,我是否获得了X;可能是外部设备(激光和照片拾取)未对焦,与软件无关。

     说明i2cdump的功能。 它检查通过i2c总线可见的寄存器;我正在探测它以查看我是否得到了一些东西。

    测试台附近的示波器与以前使用的示波器不同,因此我无法发布屏幕截图。 在i2cdump运行时,SCL和SDA都是方波。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    伊恩


    如果需要,请使用测试台附近的示波器,并从手机摄像头拍摄镜头。 我仍然希望查看SCL/SDA线路以确保通信正确。 如果从设备读取,请记住,它首先写入地址指针寄存器,然后从设备读取两个字节。


    吴若瑟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    伊恩


    您是否能够解决I2C通信的问题? 现在我将关闭此帖子,但如果您想继续提问,您可以添加到此帖子,或者在您被锁定时提交新帖子。


    吴若瑟