首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >I2C tools、i2cdetect和i2cset运行良好,但i2cget返回“read”

I2C tools、i2cdetect和i2cset运行良好,但i2cget返回“read”
EN

Stack Overflow用户
提问于 2017-06-14 17:00:31
回答 1查看 8.9K关注 0票数 3

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

我可以使用I2c写入寄存器,也可以使用i2cDetect显示所有设备。我也试着去读注册内容,但是不管我想读什么,我总是会被“阅读失败”。i2Cdump也能得到所有的'XX‘。

我在某个地方读到的是连接不好的地方,所以我检查了一下,并焊接了连接器,但这并没有帮助。

我的硬件是来自模拟设备的ADV7630评估委员会,和一个使用raspbian最新发行版的Raspberry。

任何关于这方面的线索都会很感激的。

谢谢。

使用的命令:

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

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

代码语言:javascript
复制
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

错误:读取失败

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-26 00:51:34

我发现了发生了什么。实际上,我的设备需要一些有规模的i2c重复启动条件。由于在i2ctools上默认不激活这一点,所以它不能使用我的设备。

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

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

选项i2c_bcm2708 combined=1

而且效果很好!

谢谢你的帮助!

参考文献:

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

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

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

https://stackoverflow.com/questions/44550692

复制
相关文章

相似问题

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