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并配置。
因为我这边没有寄存器例子可以参考,您可以配置下,如果有问题,请随时反馈。