【发布时间】: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 寄存器 0xe1
-
我的意思是你包括那些命令或设置信息。一些东西可以让那些可能回答这个问题的人确切地知道你做了什么,并可以帮助找出问题所在。
-
谢谢你帮助我。我编辑了我的原始帖子以包含我使用的所有命令。我希望这更完整。
-
我想知道您是否想从
0x58读取,因为此地址不在检测到的设备列表中。你试过没有数据地址的i2cget -y 1 <chip-address>。