0

这是我的设置,Atmel 芯片(SAMD20E18A-MUT)SM 总线两个引脚通过 SMBus/USB 适配器芯片CP2112连接到主机 PC )。

在主机端,设法通过 i2c-tools 扫描 SMBus (6) 并查看从地址 0x6a 处的 Atmel 设备。

向设备发送 1 字节数据 $sudo i2cset -y 6 0x6a 0x00 0x00

检索 9 个字节的数据 sudo i2cdump -y -r 0x00-0x08 6 0x6a

它返回全零,期望得到一些数据。我的问题是我在 i2cset 中的“数据地址”应该是什么,目前我使用的是 0x00。我查看了 Atmel 数据表,但不知道正确的地址是什么。有什么我应该检查的吗?

注意:其他人设法在同一设备上获得非零响应,但他们使用的是商业 Ginkgo SMBU/USB 适配器。 在此处输入图像描述

4

1 回答 1

0

与设备供应商交谈后,要求向设备发送一个字节(无命令码)并读回指定的字节数(无命令码)。

$sudo i2cset -y 6 0x6a 0x00 #SMBus=6,设备添加=0x6a

$sudo i2cget -y 6 0x6a 0x00 c #预期“单字节”数据返回

我的问题是,i2c-tool是否支持回读指定数量的返回数据或任何其他工具支持它?根据我对 SMBus 规范的理解,这种回读 cmd 协议不受支持(不是 15x 支持协议的一部分)。

于 2018-12-13T05:29:28.457 回答