gpt4 book ai didi

python - I2C 工具、i2cdetect 和 i2cset 完美运行,但 i2cget 返回 'read failed'

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

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

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

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

我的硬件是 Analog Device 的 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)这是预期的。

最佳答案

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

使用 Raspbian 和 i2ctools 激活 i2c 重复启动条件的方法是这样的:

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

options i2c_bcm2708 combined=1

而且效果很好!

感谢您的帮助!

引用资料:

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

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

关于python - I2C 工具、i2cdetect 和 i2cset 完美运行,但 i2cget 返回 'read failed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44550692/

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