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:在运行时将 GPIO/CAN 功能从 MCAN 交换到常规 CAN、反之亦然

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1579670/tms320f28388d-swapping-gpio-can-functionality-from-mcan-to-regular-can-and-vice-versa-during-runtime

器件型号: TMS320F28388D

您好:

我们的应用需要在同一组 GPIO 上支持 MCAN 或 DCAN、以便在运行时功能可以相互交换。 交换只会在启动后发生一次、具体取决于程序分支、因此无需反复重新启动。 我能够独立设置 MCAN 或 DCAN 之一并使其运行、但我无法确定如何在无需对器件进行电源复位的情况下将引脚从 MCAN 切换到 DCAN(或从 DCAN 切换)。  


您能否列出关断一个连接到一对 GPIO 的 CAN 控制器、然后将 GPIO 重新初始化到另一个 CAN 控制器所需的步骤。 例如、GPIO 8、10 最初设置为 MCAN TX、RX、并切换到 CANB TX、RX。

一切都在 CPU1 上、而不是通过 CM 实现。  

谢谢、
Jason

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

    尊敬的 Jason:

    无需关断 DCAN 或 CAN-FD 模块、因为这些模块是 F28388 器件中的独立 IP。 您可以独立初始化这些 CAN IP、就像在示例中完成这些 CAN IP 的过程一样、但还不会启动通信。  在 DCAN 中、不要执行 API can_startModule ()、也不要定义 CAN GPIO 函数。  在 CAN-FD 中、按照与 MCAN 示例相同的初始化步骤操作、但不要通过未执行 MCAN_setOpMode (BASE、MCAN_OPERATION_MODE_NORMAL) 使 MCAN 退出 SW 初始化模式、也不会定义 CAN-FD GPIO 功能。

    当您进入已准备好决定运行哪个模块的应用部分后、接下来应该定义 CAN GPIO 功能、然后启用 CAN 模块以进行正常运行。  在 DCAN 中、您可以遵循以下代码:

      GPIO_setPinConfig (DEVICE_GPIO_CFG_CANRXA);
      GPIO_setPinConfig (DEVICE_GPIO_CFG_CANTXA);
      can_startModule (cana_base);
    在 MCAN 中、可以具有以下序列:
      GPIO_setPinConfig (DEVICE_GPIO_CFG_MCANRXA);
      GPIO_setPinConfig (DEVICE_GPIO_CFG_MCANTXA);
      MCAN_setOpMode (MCANA_DRIVER_BASE、MCAN_OPERATION_MODE_NORMAL);
    您可以像 if-else 语句一样实现此语句、因此一次只启用一个 CAN 模块和 GPIO 集。
    另一种选择是直接使用 MCAN。  MCAN 能够与传统 CAN 一样通过 FDOE 位运行。  如果要查看此特性、请参阅示例 mcan_ex7_classive_transmit。
    希望上面的指示将有所帮助。
    此致、
    Joseph
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Joseph:

    很抱歉耽误你的时间。 感谢您的实施步骤。  

    为了完整起见、在设置一组 GPIO 并启动模块后是否有办法交换功能(MCAN -> DCAN,反之亦然)、或者通常是否需要下电上电?

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

    尊敬的 Jason:

    否、无需下电上电。  关键是在需要相应地使用通道时、向 MCAN 或 DCAN 配置 GPIO 功能。

    此致、

    Joseph