Hi:
硬件如图去设计:
DS90UB948 的 idx 是直接接地的:
DS90UB941 的I2C地址是 0x1a,DS90UB948 的地址是 0x2c。
Linux 上通过如下命令不能探测到 DS90UB948 的i2c地址:
1、开机探测
# i2cdetect -y 17
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- -- ds90ub941 的地址
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
2、复位
i2cset -fy 17 0x1a 0x01 0x0f b Reset DSI/DIGITLE 复位
i2cset -fy 17 0x1a 0x03 0xBA b Enable FPD-Link I2C pass through 打开透传,然后可以看到 948 的I2C地址
3、再探测
# i2cdetect -y 17
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 没有显示 ds90ub948 的地址
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
通过读取 ds90ub941 的寄存器值,DES_ID_DES_ID_1 Register (Address = 6h) [reset = 0h] 里的值是 0x58 = 0x2c 左移一位,也就是找到了 ds90ub948
通过命令对 ds90ub948 读写无效。
我不知道该怎么去做啦,请帮忙指导一下。
非常感谢

