This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DS90UB9702-Q1:如何通过9702 + FPGA + 935架构中的 FPGA 配置实现9702和935之间的 I2C 通道直通?

Guru**** 2451970 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1495908/ds90ub9702-q1-how-can-the-i2c-channel-passthrough-between-the-9702-and-the-935-be-achieved-through-fpga-configuration-in-the-9702-fpga-935-architecture

器件型号:DS90UB9702-Q1

工具/软件:

FPGA 通过 I2C 将测试板9702和935配置为实现9702和935之间的 I2C 直通、从而使 Orin 能够直接控制摄像头。 整个 FPGA 测试板可实现对 Orin 系统完全透明的无缝插入。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tianmeng:  

    您是否希望通过 Orin 控制测试板上的9702?  

    请查看以下主题、了解如何实现这一点:  DS90UB953-Q1:对多个串行器进行 I2C 控制并对其进行解串

    同样的方法也适用于 UB97xx 器件。  

    此致、

    Zoe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、

    它不是关于使用 Orin 来控制9702。 相反、我们需要通过测试板上的 I2C 总线配置测试板上9702和935之间的透明传输、以便 Orin 能够访问摄像头。

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tianmeng:  

    对于纯 I2C 直通、在寄存器0x58[7]中的两个 UB9702s 上为所选端口(在寄存器0x4C 中选择)启用 I2C 直通。  

    如果在测试板和摄像头上使用相同的 UB935搭接地址、 那么在这种情况下、无法使用所有 I2C 直通、因为摄像头的事务将由测试板串行器响应、因为这是链中的第一个串行器。  

    请参见以下示例以设置与 Orin 侧的摄像机的通信:  

    #  des addresses
    des_9702_0 = 0x7A
    des_9702_1_addr = 0x60
    des_9702_1_alias = 0x60
    # 935 addresses
    ser_935_0_addr = 0x30
    ser_935_0_alias = 0x94
    ser_935_1_addr = 0x30
    ser_935_1_alias = 0x96
    
    # 9702-0 config
    # select rx port 3
    board.WriteI2C(des_9702_0, 0x4C, 0x38)  
    board.WriteI2C(des_9702_0, 0xB0, 0x10) 
    # set 971 address/alias
    board.WriteI2C(des_9702_0,0x5B,ser_935_0_addr) #ser_addr 
    board.WriteI2C(des_9702_0,0x5C,ser_935_0_alias) #ser_alias
    # turn on i2c passthrough
    board.WriteI2C(des_9702_0,0x58,0x5E) 
    # 9702-0 target config
    # Only the devices on 9702_1 ports[0:2] are programmed due to a limit of 8 target_id/alias registers per port
    # If you need to communicate to port 3 devices, modify one of the 935 and sensor configs to include port 3
    # For example, replace target_id[3] and target_alias[3] with the 935 address/alias on port 3, and replace target_id[6] and target_alias[6] with the sensor address/alias on port 3
    board.WriteI2C(des_9702_0,0x5D, des_9702_1_addr) # target_id[0]
    board.WriteI2C(des_9702_0,0x65, des_9702_1_alias) # target_alias[0]
    board.WriteI2C(des_9702_0,0x5E,ser_935_1_alias) # target_id[1] 
    board.WriteI2C(des_9702_0,0x66,ser_935_1_alias) # target_alias[1] 
    
    # 9702_1 config
    # select rx port 0
    board.WriteI2C(des_9702_1_alias, 0x4C, 0x01) 
    board.WriteI2C(des_9702_1_alias, 0xB0, 0x04)
    #turn on i2c passthrough
    board.WriteI2C(des_9702_1_alias,0x58,0x5E) # I2C passthrough = ON
    #set 935 address/alias
    board.WriteI2C(des_9702_1_alias,0x5B, ser_935_1_addr) # ser_addr
    board.WriteI2C(des_9702_1_alias,0x5C, ser_935_1_alias) # ser_alias
    

    此致、

    Zoe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 Zoe

      在配置 IIC 器件时、这些器件的地址是否全部为8位? 我们将在下周找到一些时间进行验证!

      此致、         

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tianmeng:  

    是的、这些是脚本示例中使用的8位 I2C 地址。  

    此致、

    Zoe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 Zoe

       
      根据您所说的内容分别为 ORIN 和测试板配置9702。 ORIN 找不到测试板上任何器件的地址。 0x7A 是否为 ORIN 的 I2C 器件地址?

     此致、    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tianmeng:  

    前几行中的 IDX 值需要根据您的应用进行配置。  

    此致、

    Zoe