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.

[参考译文] TMS320F28P650DK:与 MCAN 发生 SCI 自由打开冲突

Guru**** 2528160 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1547309/tms320f28p650dk-sci-freopen-conflict-with-mcan

器件型号:TMS320F28P650DK


工具/软件:

客户 MCAN 可以正常独立工作、但从 SCI 示例中添加以下代码后遇到问题。

执行以下代码后、MCAN 将将 INIT 位保持为 1 并且无法工作、需要再次运行 MCAN 配置、然后恢复工作。  

感谢专家建议以下代码给 MCAN 可能导致哪些冲突?

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

    您好、Terry、

    调用 init_stdout_and_stdin () 之前是否已配置 MCAN 模块并将其设置为正常模式?  init_stdout_and_stdin () 是否会发出任何软件重置? MCAN INIT 可通过软件复位进行设置。 当 在消息 RAM 中检测到未校正的位错误时、也可以通过进入 Bus_Off 状态来设置 INIT。

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

    嗨、Qingjun

    init_stdout_and_stdin ()  不会导致重置,我们调试固件它可以 完成运行和 SCI 工作良好,只是 MCAN 必须再次执行启动配置才能恢复 MCAN 工作。  

    我想知道   init_stdout_and_stdin () 中的 freopen 或 setvbuf 函数 在做什么,为什么它们可能导致消息 RAM 中的 ECC 错误或让 MCAN 进入总线关闭状态  

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

    您好、Terry、

    SCIB 中断和 MCAN 中断都分配在同一 PIE 组中、但 SCIB (TX 和 RX) 位于较低的通道。 首先为 SCIB 中断 (TX 或 RX) 提供服务。

    如果启用了 SCI 中断和 MCAN 中断、而 SCI 中断可能会阻止 MCAN 消息的 TX 和 RX。 您可以尝试使用 SCI TX/RX 的轮询模式。