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.

[参考译文] DRA829J:通过直接寄存器访问设置模块时钟父级

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1554485/dra829j-set-module-clock-parent-via-direct-registers-access

器件型号:DRA829J


工具/软件:

尊敬的 TI-Team、

名为_parent_的时钟不会直接馈送到模块、而是馈入多路复用器、然后根据多路复用器的值到达模块。
请参阅常见问题解答: https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/07_03_00_07/exports/docs/pdk_jacinto_07_03_00_29/docs/userguide/jacinto/faq/faq_module_clocking.html

但是、我们希望 避免使用 Sciclient_pmSetModuleClkParent 函数来选择多路复用器的值。 我们更愿意将其直接写入 MMR 寄存器(CLK_SEL 位字段)。

假设 PLL 配置已经完成并且频率正确、我们是否需要考虑选择源时钟的任何额外步骤? (例如,触发 RST)

如果您有使用详细说明更改时钟父级的过程(包括额外步骤)、则非常合适。

提前感谢您。
António μ s

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

    尊敬的 Antonio:

    但是、我们要 避免使用 Sciclient_pmSetModuleClkParent 函数来选择多路复用器的值。 我们更愿意将其直接写入 MMR 寄存器(CLK_SEL 位字段)。

    为什么要这样做、您的原因是什么?

    此外、您尝试使用哪个内核来设置此功能、以及针对哪个外设进行设置?

    如果您有一个过程(包括额外步骤)来更改带有详细说明的时钟父级、那么这将是完美的。

    否、SDK 中没有现成的过程可用于此目的、  

    TDA4 器件是具有多个处理器的异构器件、所有时钟和器件管理都集中在由 MCU1_0 内核管理的 SciServer 下。  一些多路复用器时钟确实会驱动多个外设、如果您尝试直接修改寄存器、则 SoC 可能会因配置不正确以及状态机逻辑不匹配而挂起。  

    此致

    Suman

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

    嗨、Suman
    感谢您的快速答复。

    [报价 userid=“35368" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1554485/dra829j-set-module-clock-parent-via-direct-registers-access/5982797

    为什么要这样做、您的原因是什么?

    此外、您尝试使用哪个内核来设置此功能、以及针对哪个外设进行设置?

    [/报价]

    我们正在研究一个非常具体的项目,需要避免使用 Sciclient 函数。 目标是尽可能减少对 M3 内核的依赖。 因此、我们将重写与电路板配置相关的所有函数。

    此配置由在 MCU 内核上运行的 SBL(我们的代价引导加载程序)执行、并会影响我们计划使用的所有外设。

    TDA4 器件是具有多个处理器的异构器件、所有时钟和器件管理都集中在由 MCU1_0 内核管理的 SciServer 之下。  一些多路复用器时钟确实会驱动多个外设、如果您尝试直接修改寄存器、则 SoC 可能会因配置不正确以及状态机逻辑不匹配而挂起。[/报价]

    我们知道它。 尽管如此、我们仍想确认 SciServer 在设置新的多路复用器值时是否执行任何其他操作或验证(除了确认频率正确外)。

    下面概述了我们实现的顺序:
    1.配置 PLL 并设置所需的频率
    2.通过直接寄存器访问(CLK_SEL 位字段)设置多路复用器值来配置源时钟
    3.电源配置(设置 PD 和 LPSC)

    了解了这一点后、我们是否需要考虑选择源时钟的任何额外步骤? (例如,触发 RST)

    谢谢你。
    António μ s

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

    尊敬的 Antonio:

    我们正在开发一个非常具体的项目、该项目要求避免使用 Sciclient 函数。

    您的项目/产品面向哪个终端设备市场?

    我仍然没有 看到除你愿意避免这种情况之外的其他原因。  您是否计划根本不使用 Sciclient 库? 如果是、则 SBL 和 MCU1_0 应用程序运行时的用法会不同。

    目标是尽可能减少对 M3 内核的依赖。 因此、我们将重写与电路板配置相关的所有函数。

    TIFS (DMSC M3) 内核对于整个器件引导至关重要、需要引导该内核才能进一步进行整体引导。  TIFS 固件处理所有与安全相关的配置 — 包括处理器引导和防火墙配置。 因此、如果没有 TIFS M3 内核、甚至无法引导其他内核。

    电路板配置由 TIFS 内核(仅在处理这些请求后 TIFS 固件才准备就绪)和 SciClient 接口的 MCU1_0 SciServer/器件管理代码使用。

    请注意、TIFS 固件还会在启动期间设置一些初始防火墙、涵盖某些相关寄存器区域。   有关所涵盖的寄存器列表、请参阅 J721E 防火墙说明。

    ]此配置由在 MCU 内核上运行的 SBL(我们的代价引导加载程序)执行、并会影响我们计划使用的所有外设。

    总体时钟和 PSC 配置实际上由 MCU1_0 固件所有、SBL 和 MCU1_0 固件都使用 Sciclient_Direct 库、这是 MCU1_0 上的本机库调用。 Sciclient 库是 rm_pm_hal 库代码中实现的低级函数的包装器。

    [引述 userid=“594518" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1554485/dra829j-set-module-clock-parent-via-direct-registers-access/5983847

    下面概述了我们实现的顺序:
    1.配置 PLL 并设置所需的频率
    2.通过直接寄存器访问(CLK_SEL 位字段)设置多路复用器值来配置源时钟
    3.电源配置(设置 PD 和 LPSC)

    了解了这一点后、我们是否需要考虑选择源时钟的任何额外步骤? (例如,触发 RST)

    [/报价]

    在 SBL 代码内的 Sciclient_init 期间、PLL 已配置为默认频率。 请注意、ROM 和 TIFS 也会在其引导期间配置一些 PLL、其余 PLL 会在 SBL 代码内的 Sciclient 初始化期间进行初始化。

    总之、这些步骤与 SBL 在 Sciclient_init 中完成的步骤相同、也是任何特定的源选择。 Power Configuration 是在每个驱动程序中作为 init 的一部分处理的唯一部分(它们都使用 Sciclient API)。

    您整体重写的所有层是什么?

    此致

    Suman

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

    嗨、Suman

    请在下面找到我的答案。 请注意、我们已经开发了自己的 SBL、并在其中完成了电路板配置。

    您的项目/产品面向什么终端设备市场?

    它适用于航空航天市场。

    您是否计划完全不使用 Sciclient 库?

    是的,我们想避免这种依赖。

    您正在全部重写哪些图层?

    除了 TIFS(引导必须)外、我们还计划重写其他所有内容。
    因此、目标是尽可能减少对 M3 内核的依赖。
    因此、我们需要确认要在自定义 SBL 上实施的时钟更改过程的正确性。

    那么、您是否知道我们在选择源时钟(除了选择多路复用器值)时是否需要考虑额外的步骤?

    谢谢你。
    António μ s

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

    尊敬的 Antonio:

    负责的工程师目前不在办公室。 请预计 4 个工作 日的响应将延迟。

    此致、

    Takuma

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

    尊敬的 Antonio:

    它适用于航空航天市场。

    好的、感谢您的澄清。 我了解这种情况的原因/需求、因为这是针对航空航天市场的。

    是的、我们希望避免这种依赖性。

    Sciclient 图层的任何部分是否可以重复使用? Sciclient_Direct 是低级 rm_pm_hal 驱动程序上的包装器库。

    除了 TIFS(必须启动)、我们计划重写其他所有内容。

    SoC 有很多时钟和器件信息。 那么、您还会重写器件和时钟数据吗?

    例如、如果您还要自己重写 PLL 驱动程序代码、则需要非常仔细地编写 PLL 初始化序列。

    对于 可能在代码中引入的问题、TI 只能提供通用指南、而无法提供任何调试支持。

    因此、目标是尽可能减少对 M3 内核的依赖。

    TIFS 引导仍要求将电路板配置数据传递给它、没有这些数据、它不会处于功能就绪状态。 为了支持、您至少需要这样做

    我不知道您的软件依赖项用于配置防火墙或在多个内核之间使用 UDMA。 任何防火墙设置和处理器引导序列都需要 M3 内核。 您将使用 GP 器件还是 HS 器件、如果使用后者、这是否为 HS-Prime 器件(这可能允许您自定义 TIFS 固件)?

    那么、您是否知道我们在选择源时钟(除了选择多路复用器值)时是否需要考虑额外的步骤?

    CTRL_MMR 寄存器中的多路复用器选择寄存器可能需要您解锁分区、以便通常允许写入。 专用外设时钟选择可能是一个更简单的更改、但您需要小心更改 PLL 或 PLL 分频器时钟、因为它们可以提供多个具有不同时钟要求的外设。  

    此致

    Suman

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

    嗨、Suman

    您是否要重新使用 Sciclient 图层的任何部分? Sciclient_Direct 是低级 rm_pm_hal 驱动程序上的包装器库。

    由于 DO-178 认证、我们需要避免使用它们。

    [报价 userid=“35368" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1554485/dra829j-set-module-clock-parent-via-direct-registers-access/5998263

    SoC 有很多时钟和器件信息。 那么、您还会重写器件和时钟数据吗?

    例如、如果您还要自己重写 PLL 驱动程序代码、则需要非常仔细地编写 PLL 初始化序列。

    对于 可能在代码中引入的问题、TI 只能提供通用指南、而无法提供任何调试支持。

    [/报价]

    我们知道这一点。 我们已经重写了大部分代码。
    PLL 初始化已实现并正常运行。

    TIFS 引导仍要求将电路板配置数据传递给它、没有这些数据、它就不处于功能就绪状态。 您至少需要此功能、以便支持

    这是分析中的。 我们通过了当前的 TI 配置。 但在不久的将来、我们需要了解哪种配置是所需的/传递给 TIFS 的最小配置。

    我不知道您的软件依赖项是什么、用于配置防火墙或在多个内核之间使用 UDMA。 任何防火墙设置和处理器引导序列都需要 M3 内核。 您将使用 GP 器件还是 HS 器件、如果使用后者、这是否为 HS-Prime 器件(这可能允许您自定义 TIFS 固件)?

    它将用作 GP 器件。

    专用外设时钟选择可能是更简单的更改

    这是否意味着我们不需要任何额外的步骤来选择专用时钟源? 设置多路复用器值是否足够且安全?

    但更改 PLL 或 PLL 分频器时钟时需要小心、因为它们可以提供多个具有不同时钟要求的外设。  [/报价]

    是、正确。 我们在执行 PLL 初始化时考虑了这个限制。


    那么、您能否确认有关时钟选择的问题?

    谢谢你。
    António μ s

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

    尊敬的 Antonio:

    由于 DO-178 认证、我们需要避免使用它们。

    好的。 我知道这是航空航天行业的高级安全认证标准、但这不是它的一般要求、也不是它与汽车 ISO-26262 标准(这是我们编写 RTOS s/w 的一般要求)相比需要哪些额外细节。

    此内容正在分析中。 我们通过了当前的 TI 配置。 但在不久的将来、我们需要了解哪个是所需的最小配置/传递给 TIFS。

    主要可变性是关于对讲机管理板配置数据、同样、它主要是关于您需要如何处理不同处理内核之间的 DMA 通道分离。

    它将用作 GP 设备。

    好的。   即使在 GP 器件上、TIFS 仍将根据 J721E 防火墙说明设置初始防火墙。

    这是否意味着我们不需要任何额外步骤来选择专用的时钟源? 设置多路复用器值足够且安全?

    是的、只要多路复用器时钟不驱动多个外设、就会很简单。 希望您已根据需要在父级时钟上配置所需的时钟速率。

    同样、鉴于这只是您的全部实现以及无需重复使用 TI 时钟数据、这一切都取决于您如何处理所有叶时钟。

    此致

    Suman

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

    尊敬的 Suman:
    感谢您的答复。

    只要多路复用器时钟不驱动多个外设、

    但是、我不清楚这种情况。 “你说什么?
    这可能会产生什么影响?

    谢谢你。
    António μ s

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

    尊敬的 Antonio:

    但是、我对这种情况并不十分清楚。 您的意思是什么?

    这是一个时钟分配问题(例如,您可以通过 PLL HSDIV 时钟轻松看到这一点)。

    如果所述的时钟驱动两个不同的外设、则您需要使用两个外设都可以使用的对齐频率。

    、可能会产生什么影响?

    您无法单方面更改一个外设、并期望另一个外设继续正常工作。

    此致

    Suman

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

    尊敬的 Suman:
    感谢您的澄清。

    则需要使用两个外设都可以使用的对齐频率

    我们便知道频率对齐。
    我们的主要关注点是通过直接寄存器访问(多路复用器值)选择时钟源。

    如果您确认除频率对齐之外没有其他风险、那么我们可以关闭这个主题。

    谢谢你。
    António μ s

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

    尊敬的 Antonio:

    我们主要关心的是通过直接寄存器访问(多路复用器值)来选择时钟源。

    是的、没有相关问题。 rm_pm_hal 库中的低电平时钟驱动程序执行的操作完全相同。

    如果您确认除频率对齐之外没有其他风险、那么我们可以关闭该主题。

    是的、没有其他问题。  

    务必遵循 CTRL_MMR 寄存器的锁定和解锁操作、以便不会意外写入。  

    关闭螺纹。

    此致

    Suman