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.

[参考译文] TMS570LC4357:外设断电机制

Guru**** 2446130 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/621111/tms570lc4357-peripheral-power-down-mechanism

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

您好!

阅读完我可以找到的所有文档和论坛主题后、我了解 PCRx PSPWRDWNCLRx 和 PSPWRDWNSETx 寄存器中的位如何工作。

对微控制器进行一些测试后、似乎即使外设的时钟处于非活动状态、我也能够写入外设寄存器(在 PCR3下)。

在我们的设计中、CPU 连接到 FPGA、FPGA 对来自 CPU 的 MibSPI2 CS0事务执行一些跟踪(相应地配置了 CPU IOMM)。 我看到的是、当我让 PSPWRDWN 寄存器处于复位状态(其中四象限2和四象限3的 PS[2]时钟处于非活动状态)时、FPGA 能够在通过 SPI 发送16位数据时查看 CPU 的事务。 数据被错误地解释、但当它检测到事务时、这意味着芯片选择被驱动为处理 SPI 事务。 我本来以为如果 MibSPI2没有按照 PSPWRDWN 配置的要求计时、那么 MibSPI2就无法输出任何信号、甚至无法访问其寄存器。

因此、我有一些与此主题相关的问题:

  • 复位时、PSPWRDWNCLR3位31-24清零(时钟有效)、但文档显示其复位值为"1"。 根据 TRM 的存储器映射表、这些位对应于作为 PCR3寄存器的 PS[31]和 PS[30]。 我尝试通过向 PSPWRDWNSET3寄存器写入0xFF000000来将时钟设置为无效、但它无效。 这是我在文档(TRM、数据表、勘误表)中遗漏的内容还是错误?
  • 将外设时钟设置为非活动时、我们应该期待什么? 将时钟设置为活动状态有何区别?
  • 如果一个模块只用于 GIO 功能(GIO、DCAN、MIBSPI、RTP、DMM、 LIN)、我们是否需要将外设时钟设置为活动状态、或者如果我们将外设时钟设置为非活动状态、TI 是否应该工作? 为什么?
  • 禁用外设时钟(例如、对于安全关键型应用分析)有哪些优势?

感谢您的支持。

此致、

盖尔

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

    首先,我对迟迟不能返回给你表示歉意。 过去一周、由于飓风 Harvey 对德克萨斯州休斯顿的影响、我们无法到达我们的办公室。 地区和我们的办公室将在9月5日下周二关闭。 这限制了我与我们的一些器件专家进行联系、以获得您问题的深入答案。

    我还记得与我们的专家讨论了如果正在进行的活动/访问导致断电请求超时、时钟门控和断电事件的取消。 然而,我对这一答复并不信心,因此需要与我们的一些专家进行核实。 如果他们还能返回工作岗位、我将在下周做这件事。 如果在这一点之后再有任何拖延,我会事先表示歉意。

    我还要感谢您在我们地区的困难时期以及我们的许多团队成员受到风暴和洪水的影响时表现出的耐心。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、

    感谢您的更新。

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

    有新消息吗?

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

    Gael、

    我对迟迟不能回来表示歉意。 不幸的是、您的问题在我们重新陷入困境时出现了裂缝。 没有、不过、我假设您仍然有相同的问题。

    [引用 USER="Gael LE Moing)]将外设时钟设置为非活动时,我们应该期待什么? 将时钟设置为活动状态有何区别?[/quot]

    为了澄清这一点、PCR 中的 PSPWRDWN 位被用来将一个模块置于复位状态。 在这种情况下、时钟将被选通至这些模块、并且不会计时。 但是、如果 CPU 对它们进行访问、它们将为奇异访问临时计时、但随后在访问后再次进行门控。 我想澄清的一点是、这些位不会禁用通过时钟域设置和清零寄存器启用/禁用的时钟域。

    对于 PSPWRDWNCLR3位31-24、这些位应在加电时禁用、但在检查它们时要小心、因为 Halcogen 的引导代码可能启用全局外设、从而使能所有外设域。 如果您实际上确认了可取消性、请使用 TRM 中的文档反馈链接来注意问题、并为我们的文档部门生成与文档相关的错误。

    [引用 USER="Gael LE Moing)]我尝试通过向 PSPWRDWNSET3寄存器写入0xFF000000来将时钟设置为无效、但它没有影响。 这是我在文档(TRM、数据表、勘误表)中遗漏的内容还是错误?

    仔细检查 PPROT 寄存器的状态、确保您能够在当前运行模式下写入 PCR3寄存器。

    [引用 USER="Gael LE Moing">如果模块仅用于 GIO 功能(GIO、DCAN、MIBSPI、RTP、DMM、 LIN)、我们是否需要将外设时钟设置为活动状态、或者如果我们将外设时钟设置为非活动状态、TI 是否应该工作? 为什么?[/报价]

    每当您在 IP 内主动使用逻辑时、应通过 PCR 寄存器启用逻辑并从复位中释放(有时在模块内以及在 PCR 寄存器的系统级)。 只能通过将引脚配置为非功能模式来在 GPIO 模式下使用该模块。 即、主功能被禁用、允许通用用作 GPIO。

    [引用 user="Gael LE Moing"]禁用外设时钟(例如,用于安全关键型应用分析)有哪些优势?

    使用系统级断电机制、甚至本地复位/断电机制的主要优势是模块可以被视为脱机、您无需证明不会干扰您的安全功能。

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

    只是为了澄清有关上下文的一些要点:我开发了代码、但它不使用 HALCOGEN 代码。 ARM 模式为监控器。

    我需要对以下几点进行一些澄清:
    -据我所知、禁用 PSPWRDWN 寄存器中外设的时钟将阻止模块自行执行任何操作(因为其时钟已选通)、但如果模块时钟已选通、CPU 仍然能够执行与模块寄存器事件的事务。 对吧?
    -对于 PSPWRDWNSET3位31-24:我知道 PPROT 和 PsxMSTID 寄存器,但在我的代码中,我让它们处于复位状态。 除非对 PCR3寄存器有限制、说明其时钟无法停用? 如果不是、这是 TMS570的问题吗?
    据我所知、禁用模块有3种方法:电源域禁用机制(通过 PMM)、系统级断电机制(通过 PCR 寄存器)和本地模块禁用(通过模块寄存器)(如果可用)。 使用一种方法或另一种方法会有什么不同? 如果一个寄存器被使用、而不是其他寄存器、那么 CPU 试图对要禁用的寄存器进行读写操作时会发生什么情况? 在每种情况下、该模块是否能够无意中执行操作?

    此致、
    盖尔