【问题标题】:I2C tools, i2cdetect and i2cset works perfectly, but i2cget returns 'read failed'I2C 工具、i2cdetect 和 i2cset 运行良好,但 i2cget 返回“读取失败”
【发布时间】:2017-06-26 08:51:34
【问题描述】:

我对 I2C 协议很陌生,但我设法写入了我的设备。我买了ADV7630评估板,这是一个I2C控制的HDMI开关。

我可以使用 I2c 写入寄存器,i2cDetect 也可以显示所有设备。我也尝试读取寄存器内容,但无论我尝试读取什么,我总是得到“读取失败”。 i2Cdump 也得到所有 'XX'。

我在某处读到的连接错误,所以我仔细检查并焊接了连接器,但这没有帮助。

我的硬件是 ADI 公司的 ADV7630 评估板,以及使用 raspbian 最新发行版的 Raspberry Pi。

任何有关这方面的线索将不胜感激。

谢谢。

使用的命令:

i2cdetect -y 1

我只有0x74设备(根据adv7630数据表这是正常的)

i2cset -y 1 0x58 0xff 0xff  # reset device
i2cset -y 1 0x58 0x0c 0x40  # disable chip powerdown
i2cset -y 1 0x58 0xea 0xc8  # set TXB main map address
i2cset -y 1 0x58 0xeb 0x80  # set TXB packet map address
i2cset -y 1 0x58 0xec 0x8e  # set TXB EDID map address
i2cset -y 1 0x58 0xed 0x8c  # set TXB Test map address
i2cset -y 1 0x58 0xee 0xb8  # set TXA main map address 
i2cset -y 1 0x58 0xef 0x70  # set TXA packet map address
i2cset -y 1 0x58 0xf0 0x7e  # set TXA EDID map address
i2cset -y 1 0x58 0xf1 0x7a  # set TXA test map address
i2cset -y 1 0x58 0xf9 0x64  # set repeater map address
i2cset -y 1 0x58 0xfa 0x6c  # set EDID map address
i2cset -y 1 0x58 0xfb 0x68  # set HDMI rx map address


i2cget -y 1 0x58 0xe1

错误:读取失败

i2cdetect -y 1

我检测到了设备编号:(在本例中:38,3d,3f,40,46,47,64,74)这是预期的。

【问题讨论】:

  • 包括您正在使用的实际代码。这将使诊断问题更容易。
  • 我正在使用 i2ctools 包,所以没有源代码。我正在使用的命令是 i2cget -y 1 0x58 0xe1 正在读取设备 0x58 寄存器 0x​​e1
  • 我的意思是你包括那些命令或设置信息。一些东西可以让那些可能回答这个问题的人确切地知道你做了什么,并可以帮助找出问题所在。
  • 谢谢你帮助我。我编辑了我的原始帖子以包含我使用的所有命令。我希望这更完整。
  • 我想知道您是否想从0x58 读取,因为此地址不在检测到的设备列表中。你试过没有数据地址的i2cget -y 1 <chip-address>

标签: python i2c


【解决方案1】:

我知道发生了什么。实际上我的设备需要一些名为 i2c 重复启动条件的东西。由于在 i2ctools 上默认情况下未激活此功能,因此它不适用于我的设备。

使用 Raspbian 和 i2ctools 激活 i2c 重复启动条件的方法如下:

/etc/modprobe.d/i2c.conf 创建一个文件 并将内容设置为此:

选项 i2c_bcm2708 组合=1

而且效果很好!

感谢您的帮助!

参考资料:

https://ez.analog.com/message/77452

http://rabbit-note.com/2015/02/15/raspberry-pi-i2c-repeated-start/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多