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.

[参考译文] TDA4VH-Q1:如何从两个不同的 R5F 内核同时控制同一 I2C 总线?

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1446264/tda4vh-q1-how-can-we-control-same-i2c-bus-from-two-different-r5f-cores-simultaneously

器件型号:TDA4VH-Q1

工具与软件:

尊敬的 TI 团队:

 我们有一种情况、即两个不同的从器件(例如两个不同的解串器)将使用同一  I2C 总线、我们需要控制来自 R5F 的两个不同处理器内核的 I2C 总线。 我们如何从软件端实现这一点?

您可以在下面看到详细信息。

  • SoC:J7 TDA4X
  • 操作系统:Linux (主)、FreeRTOS (MCU)
  • 解串器 1 ->由 Cortex R5F 内核2_0控制->与 FreeRTOS 配合运行
  • 解串器2 -->由 Cortex R5F core 3_0 --> 在 FreeRTOS 下运行

注意:主内核 A72在 Linux OS 上运行、但不使用该 I2C 总线。

1.在给定时间、我们如何使用同一总线来控制这两个解串器?

2.我们是否需要在这里启用硬件自旋锁支持来正确地利用总线?

3、是否有其他机制需要在此加以控制?

4.此处是否需要引导加载程序支持?

请指导我们讨论同一主题。 提前感谢。

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

    您好!

    我们不支持或建议同时访问同一 I2C 总线或实例(即使它们是不同的器件)。 您可以实现一个 HwSpinlock 来确保一次一个内核可以访问该实例、不过、我们在 PDK I2C 驱动程序中没有此实现的任何实现。 您需要自行实施、我们将无法提供有关此主题的支持。

    谢谢!

    Neehar

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

    好的、感谢您的响应。 但是、你会提供我可以在我的系统上尝试的 HWspinlock 示例代码吗?

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

    您好!

    您可以使用 CSL 库中的自旋锁实现([pdk_install_path]/CSL/CSL/Spinlock/V1/priv/csl_spinlock.c src)。

    以下是 API 指南: 适用于 J784S4:SPINLOCK 函数的 PDK API 指南

    谢谢!

    Neehar

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

    好的、谢谢。