TI中文支持网
TI专业的中文技术问题搜集分享网站

DS90UB964 访问多个DS90ub933 i2c 从设备地址

Other Parts Discussed in Thread:DS90UB964-Q1

TI工程师您好

我们使用一个DS90UB96 连接4路DS90UB933, 目前不知道该如何同时访问这4路933,4路933 i2c地址相同。

我参考ds90ub964-q1文档的41页8.53章节。

WriteI2C(0x58,0x58) # enable pass throu
WriteI2C(0x5c,0x18) # "SER_ALIAS_ID"
WriteI2C(0x5d,0x60) # "SlaveID[0]"
WriteI2C(0x65,0x60) # "SlaveAlias[0]"

我理解SER_ALIAS_ID的0x18是代表soc能访问的933的i2c地址, SlaveAlias[0]的0x60是代表soc能访问sensor的i2c地址。

例如同时访问多路933设备+多路摄像头,应该这样设置

WriteI2C(0x58,0x58) 
WriteI2C(SER_ALIAS_ID0,0x59) 
WriteI2C(SlaveID0,0x48) 
WriteI2C(SlaveAlias0,0x49) 

WriteI2C(SER_ALIAS_ID1,0x60) 
WriteI2C(SlaveID1,0x48) 
WriteI2C(SlaveAlias1,0x50) 

WriteI2C(SER_ALIAS_ID2,0x61) 
WriteI2C(SlaveID2,0x48) 
WriteI2C(SlaveAlias2,0x51) 

WriteI2C(SER_ALIAS_ID3,0x62) 
WriteI2C(SlaveID3,0x48) 
WriteI2C(SlaveAlias3,0x52) 

但是看ds90ub964-q1文档76页的寄存器说明,但是看寄存器说明只有一组SER_ALIAS_ID寄存器。所以我感觉我理解的还是不对。

请帮忙看下,像我这种接法,寄存器该如何配置

Kailyn Chen:

您好,可以先通过配置寄存器0X4C,选择需要配置的port,就像8.5.4.1 Code Example to Enable Interrupts这个例子一样,比如配置0x4C为0x01, enable port 0,然后按照您上面的例子配置slave ID和slave Alias ID。 然后再配置0x4C为0x12, enable port 1…………直到enable port 4为止。

,

user6600224:

感谢您的回复。

就是这个寄存器其实是个复用的,通过0x4c配置完,各路就都是通的了?

,

Kailyn Chen:

我的理解是这样的,如果只enable port 0 ,那么就只能和接port 0的UB933 或remote sensor
通信。 需要四个port 都使能的话,就像8.5.4.1的example一样,对每个port进行enable并配置。
因为我这边没有寄存器例子可以参考,您可以配置下,如果有问题,请随时反馈。

赞(0)
未经允许不得转载:TI中文支持网 » DS90UB964 访问多个DS90ub933 i2c 从设备地址
分享到: 更多 (0)