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.

[参考译文] TDA4VM:在 R5F 和 A72内核之间共享相同的 I2C

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1523823/tda4vm-share-the-same-i2c-between-the-r5f-and-a72-cores

器件型号:TDA4VM

工具/软件:

您好:

我希望 R5F 内核和 A72内核可以共享同一条 I2C 总线。 这种做法是否可行?

首先、我在 R5F 内核 (RTOS)上使用 I2C、然后还在 A72内核(Linux)上使用 I2C。 两个测试都成功。

但是、当我首次在 A72 内核上成功使用 I2C、然后在 R5F 内核上使用 I2C 时、发生了错误。

错误日志如下所示(I2C 错误的返回值为-1)。

Enter Choice: failed to start remote service for CSI_RX!!!
[MCU2_0]    172.748271 s:  REMOTE_SERVICE_SENSOR: Failed to Set MAX96722 register 0x40b: Value:0x0 -1
[MCU2_0]    172.748350 s:  REMOTE_SERVICE_SENSOR: ERROR: Sensor(s) configuration failed !!!
[MCU2_0]    172.748728 s:  REMOTE_SERVICE_SENSOR: Received command 00001011 to configure 1 sensor(s) !!!
[MCU2_0]    172.748853 s:  REMOTE_SERVICE_SENSOR: 031: numSensors 1 portNum 1
[MCU2_0]    172.748898 s:  REMOTE_SERVICE_SENSOR: 031: Configuring MAX96722  portIdMap=1 ... !!!
failed to start remote service for CSI_RX!!!

因此、我想问 TDA4是否支持在两个内核之间共享相同的 I2C。

谢谢、

郑诺

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

    您好:

    通常、I2C 总应有一个主器件。 两个内核不应控制一个实例。 这可能会导致竞态条件。 只要有一种访问控制方法仍然可以正常工作、但建议不要在两个内核之间共享外设控制  

    此致、

    Keerthy  

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

    您好、Keerthy、

    以下是我们的测试程序和使用逻辑分析仪捕获的 i2c 波形。

    首先、在 A72内核上执行以下 i2c 读取命令、然后获得正确的值。

      i2ctransfe -y -f 3 w2@0x6b 0x00 0x00 R1

    2.在 R5F 内核上、通过调用 Board_i2c16BitRegWr 接口来执行 i2c 写入操作、返回值为-1。

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

    您好:  

    如果您没有在 Linux 中使用 I2C、而只是直接从 R5F 中使用、该怎么办?

    您能否测试一下、让我知道它是否能按预期运行?

    如果在 R5F 端发生故障后从 Linux 进行传输、也会怎么样?  

    此致、

    Keerthy