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.

[参考译文] TMS320F280039C-Q1:MCAN 初始化完成

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1208191/tms320f280039c-q1-mcan-init-done

器件型号:TMS320F280039C-Q1

尊敬的支持部门:

我在示例中发现 Waiting MEM_init_done!= 0是 MCAN 配置序列中最先执行的操作之一。

但我在 TRM 中找不到 MsgRam 初始化是如何启动的以及 MCAN 软复位(链接到 MCANSS_STAT.RESET)是如何启动的。

谢谢

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

    尊敬的 Davide:

    针对 MCAN 模块的初始化和复位、这些示例按照表29-4中概述的步骤来配置 MCAN。  与 DCAN 一样、消息 RAM 不会被初始化、而是被配置为发送/接收/过滤数据长度。。  消息 RAM 配置是示例中使用函数 mlan_msgRAMConfig ()的 MCANConfig()函数的一部分。  您能解释一下消息 RAM 初始化是什么意思吗?   任何 C2000外设(如 MCAN)的软复位都通过 SOFTPRESx 寄存器完成。  这在用户明确希望重置模块的情况下使用、例如当它停止响应时。  上电时、包括 MCAN 在内的所有模块被初始化、并且无需在模块(SOFTPRES10.MCAN)上执行软复位、因此表29-4中概述的初始化例程就足够了。

    此致、

    约瑟

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

    Joseph、您好!

    "您能解释一下消息 RAM 初始化是什么意思吗?"

    在 MCAN 示例中、我看到在将外设设置为初始化模式之前执行以下代码

       //
       //等待内存初始化发生。
       //
       while (false == MCAN_isMemInitDone (MCANA_DRIVER_BASE))
       {
       }

    查看驱动器、我看到了说明

    /**
     *\简短  此函数检查内存初始化是否完成
     *         MCAN 模块。
     *
     *\param  baseAddr       MCAN 寄存器的基地址。
     *
     *\retval 状态          在内存初始化完成时返回 true。
     *                         否则返回 false。
     */
    uint32_t mcu_isMemInitDone (uint32_t baseAddr);

    因此,我的问题是:

    此处检查了哪种 MCAN 存储器初始化?

    何时进行此初始化以及如何触发它?

    是用户启动的吗?

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

    Joseph、您好!

    你那有新消息吗?

    也许我的问题可以总结为:

    当 MCAN 存储器初始化发生时? 仅在唤醒/复位时?
    是 MCAN 模块的自动程序,还是由操作某个寄存器的用户启动?

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

    尊敬的 Davide:

    初始化 MCAN 模块不会初始化消息 RAM。  不过、通过设置和清零 SOFTPRES10.MCAN 来执行软复位会初始化消息 RAM。  我将与我们的设计团队进行核实、以了解这种行为是否正常、或者是否有其他方法可以初始化 MCAN 消息 RAM。

    此致、

    约瑟

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

    Joseph、您好!

    你在上一次答复中说过

    "通过设置和清除 SOFTPRES10.MCAN 来执行软复位会初始化消息 RAM"

    新问题是:

    在 TRM 中、SOFTPRES10.MCANA 字段定义为"只读"。 该位被置位和复位怎么可能发生呢?

    关于我的最初问题、关于 MEM_INIT_DONE、我可以理解关于在配置 MCAN 模块之前等待 MEM_INIT_DONE!= 0的建议、但我仍然不了解将 MEM_INIT_DONE 值从0更改为1的机制。

    是否为 MCAN 模块的自动程序?

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

    尊敬的 Davide:

    SOFTPRES10.MCANA 位的好去处。  应为 R/W  源文件已更新、这应该会反映在下一个 TRM 出版物中。  我正在等待我们的设计团队对启动消息 RAM 初始化序列的其他内容的回复。  请在几天内回复。

    谢谢。

    约瑟

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

    尊敬的 Davide:

    在上电复位(POR)或系统复位(CPU.SYSRSN)时、将发生自动存储器初始化。  MEM_INIT_DONE 的轮询目的是确保消息 RAM 在初始化 MCAN 模块之前已完成。

    此致、

    约瑟