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.

[参考译文] TMS320F28388D:从 CPU2访问 ePWM 寄存器

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1062279/tms320f28388d-accessing-epwm-registers-from-cpu2

器件型号:TMS320F28388D

您好!

我无法从 CPU2访问 ePWM 寄存器。

例如、EPwm8Regs.TBPRD 由 CPU1设置、但我始终从 CPU2上的 EPwm8Regs.TBPRD 读取0。 即使 CPU2写入 EPwm8Regs.TBPRD、也会读回0。  EPwm8Regs.TBPRD 不受 EALLOW 保护。 我在运行时验证了 CPU2尝试访问存储器位置0x0000_4763。 使用调试器时的结果相同。

我的理解是 CPU1和 CPU2在 其存储器映射的同一存储器位置看到 ePWM 寄存器。 正确吗?

请告诉我如何从  CPU2访问 ePWM 寄存器(如果可能)。

提前感谢您。

Inno。

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

    如果要在 CPU2上使用该外设、则必须将其分配给 CPU2所有。

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

    1.您能给我一个文档(和章节编号)、在这里我可以找到如何 分配不同内核所拥有的外设?

    CPU1和 CLA1能否在 不切换所有权的情况下访问 ePWM 寄存器?

    谢谢、

    Inno。

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

    我找到了第一个问题的答案。  CPUSEL0寄存器选择 ePWM 模块所有权、其中唯一的选项是 CPU1和 CPU2 (无 CLA 选项)。 那么、我的问题是  CPU1和 CLA1是否都可以访问 CPU1拥有的 ePWM 寄存器?

    谢谢、

    Inno。

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

    在 CPU1/CPU2之间选择所有者。

    然后、您必须提供到 CPU、CLA 或 DMA 的访问控制。

    因此、一次有访问权限、但您可以在运行时更改所有者。

    NIMA

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

    好的、谢谢。

    如何在 运行时为 CPU、CLA 或 DMA 提供访问控制?

    谢谢、

    Inno。

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

    访问控制寄存器(例如 EPWM1_AC 寄存器)允许为 CLA1和 CPU1单独设置"读取和写入的完全访问"(假设所有权分配给 CPU1)。   是否有任何限制可以同时为 CLA1和 CPU1设置"读取和写入的完全访问"?

    由于存在 CLA、DMA 和 CPU 仲裁过程、   是否可以同时为 CLA1和 CPU1设置"对读取和写入的完全访问"并尝试通过 CLA1和 CPU1同时访问同一接口内的外设寄存器?

    谢谢、

    Inno。

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

    我相信情况就是这样,仲裁也会处理这件事。

    能确认 Vivek Singh 吗?

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

    您所连接的方案是指存储器访问仲裁。 它是否也适用于外设 访问仲裁?

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

    您好!

    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1062279/tms320f28388d-accessing-ePWM-register-fer-CPU2/3932624#3932624']假设访问控制寄存 器(例如 EPWU1_CPU1)已独立分配用于读取和写入 CPU1、并允许对其进行完全访问。   是否有任何限制可以同时为 CLA1和 CPU1设置"读取和写入的完全访问"?

    没有限制。

    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1062279/tms320f28388d-accessing-ePWM-register-fer-CPU2/3932624#3932624"]因为 CLA、DMA、并且   在相同的时间内尝试对 CPU 和 CPU1寄存器进行安全的读取和写入操作。]

    它是否安全取决于应用程序如何处理错误条件。 用户需要根据要求提供对每个器件的访问权限、如果安全在应用中至关重要、则确保有适当的程序来处理任何错误。

    [引用 userid="459171" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1062279/tms320f28388d-accessing-ePWM-register-fer-CPU2/3935229#3935229]\n 您所附的机制是指存储器访问仲裁。 它是否也适用于外设 访问仲裁?

    你是对的。 所分享的是 RAM、而外设仲裁方案则不同。 对于外设、仲裁基于固定优先级、DMA 具有最高优先级、而 CLA 和 CPU 的优先级最终为。 此外、写入访问的优先级高于读取。

    希望这一点很清楚。

    此致、

    Vivek Singh

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

    感谢大家的支持和澄清。 这对我有很大帮助。

    Inno。