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.

[参考译文] TMS320F28335:有关 TMS320F28335 中 CAN 传输 TA25 标志行为的查询

Guru**** 2693465 points

Other Parts Discussed in Thread: TMS320F28335, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1591579/tms320f28335-inquiry-regarding-can-transmission-ta25-flag-behavior-in-tms320f28335

器件型号: TMS320F28335
Thread 中讨论的其他器件: controlSUITE

您好:
我叫 Kwangsu Kim、是目前正在使用 TMS320F28335 进行开发的高级研究员。

很荣幸地获悉与 F28335 的 CAN 通信功能相关的问题。 在查看 controlSUITE (TMS320F28335、版本 142) 中包含的 eCAN_a_to_b_xmit 示例时、我遇到了源代码中的一点、我想对其进行澄清。

该示例的第 125–136 行如下所示:

ECanaShadow.CANTRS.ALL = 0;
ECanaShadow.CANTRS.bit.TRS25 = 1;       //为被测邮箱设置 TRS
ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;

应该做

  ECanaShadow.canta.all = ECanaRegs.Canta.all;
} while (ECanaShadow.canta.bit.TA25 == 0 );  //等待设置 TA25 位。

ECanaShadow.canta.all = 0;
ECanaShadow.canta.bit.TA25 = 1;        //清除 TA25
ECanaRegs.Canta.all = ECanaShadow.canta.all;

如上所示、TRS 位设置为请求传输、然后代码在 do-while 循环中等待、直到 ECanaShadow.canta.bit.TA25 变为 1、指示传输已完成。

我的质询如下:
如果由于内部 DSP 故障或任何意外的系统问题、ECanaShadow.canta.bit.TA25 标志未设置为 1、则系统是否可能陷入无限循环? 此外、您能否提供有关可能发生此情况的条件或可能阻止设置 TA25 位的任何已知原因的信息?

如果您能提供任何指导或说明、我将不胜感激。
非常感谢您的时间和支持。

 

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

    尊敬的 Kim:

     系统可能陷入一个无限循环。  

    eCAN 的每个邮箱都链接到超时寄存器。 如果发生超时事件、 则会生成邮箱超时中断。 这样可以避免 卡在无限循环中。

    当满足以下条件时、设置 TMEOUT 状态标志并生成超时中断:

    1. TSC 计数器(MOTS 寄存器)的值> MOTO 寄存器中预定义的超时值

    2.启用超时(设置 TOC)

    3.设置 TRS(仅发送)。