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:写入 MCAN 寄存器时出现问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1534985/tms320f28388d-problem-with-writing-to-mcan-registers

器件型号:TMS320F28388D

工具/软件:

尊敬的专家:

当 MCAN 外设向寄存器写入值时、我遇到了相关问题。

我 配置了 CPU1 SYSCLK、而不是连接管理器的 Syslock(使用 EALLOW)、并按照 TRM 中的步骤从 TRM 初始化 MCAN 、如下所示。

当我在“Register"视“视图中打开调试器时、可以看到 INIT 位仍然设置、尽管我在代码中将其清除、此外我尝试向 NBTP 寄存器写入一个值、但看起来我从 TRM 寄存器中看到了该值示例:

我自己设置的值被完全忽略、CCE 位也未像我从调试器中看到的那样被设置。

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

    尊敬的 Caspar:

    在 F28388D 中、MCAN 外设可由 C28x CPU1/CPU2 或 CM 内核控制。  如果模块所有权配置不正确、则从没有访问权限的内核写入 MCAN 寄存器将不会产生任何影响。  检查以确保您正在运行 API SysCtl_allocateSharedPeripheral (SysCtl_PALLOCATE_MCAN_A、ALLOCATE);ALLOCATE 将为 0 或 1;0   允许 MCAN 模块访问 C28x CPU1/CPU2、1 允许 MCAN 模块访问 CM 内核。

    此致、

    Joseph  

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

    您好、Joseph:

    在我的示例中、我已经将 MCAN 位上的 PALLOCATE0 寄存器配置为 0、但它仍然不允许我对 MCAN 寄存器进行写入、我使用了 CPU1 作为 MCAN。

    我认为可能存在唤醒使能位的问题、当我通过调试器将 AUTOWAKE 位写入 1 时、我可以使用调试器写入 MCAN 寄存器。 我没有真正了解如何使用 Wakeup 位、也许您可以更详细地解释一下。

    提前感谢。

    Caspar

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

    尊敬的 Caspar:

    您能否检查是否设置了 MCAN 的时钟使能位?  您可以监控 PCLKCR10 寄存器。  特别需要检查是否设置了 MCAN_A(位 4)。  如果未设置该位、则无法更新 MCAN 寄存器。

    此致、

    Joseph

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

    您好、Joseph:

    可以看到在  PCLKCR10 寄存器内设置了 MCAN_A 位。 另外、通过 设置 ClkCfgRegs.CLKSRCCTL2.bit.MCANABITCLKSEL = 1、我现在可以使用寄存器视图从 IDE 复位 INIT 位、但不能使用我的代码。

    我有 CCS 的 12.7.1 版本、不知道原因、但 CCS 的寄存器视图不会在寄存器中显示该 MCAN_A 位

    只有在将寄存器添加到“Expressions"窗口“窗口中时、才能看到该寄存器的值、您知道为什么吗?

    此外、“Expressions"(“(表达(表达式)窗口不会让我的 RESET INIT 位、但“Registers"(“(寄存(寄存器)视图会显示、这两个窗口之间的一些值甚至有所不同。 在 结果正确的情况下、两个视图中最好使用的是什么?

    此致、

    Caspar

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

    您好、

    我 发现了这个问题、我使用了较旧的库标头、那里的一些寄存器地址不同