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:我对使用 TMS 28335 DSP 的 eCAN 有疑问

Guru**** 2524550 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1048224/tms320f28335-i-have-a-question-about-ecan-with-tms-28335-dsp

器件型号:TMS320F28335
主题中讨论的其他器件:C2000WARE

你(们)好

当我使用28335 DSP 的 eCAN 函数时、我需要使用32个邮箱、但是如果邮箱编号超过16、Rx 函数停止工作。


当我检查手册时、已确认如果 ECanaShady.CANMC.bit.SCB 设置为1、它将设置为 eCAN 模式、并且所有32个邮箱都可以使用。


使用邮箱0~15时、设置为 RX 的邮箱0和其他邮箱也可以工作。 但是、如果寄存器设置为使用邮箱0至16、则 Rx 不起作用。


当它停止工作时、mailbox0的使能信号被更改为0。 (当使用0~15时、它保持1、但是如果你将邮箱增加到0~16、它会自动更改为0。 我没有直接更改代码)


除了 SCB 寄存器、我想知道是否有任何其他寄存器限制邮箱的数量。 如果不是、如果您能让我知道导致这种情况发生的原因、我将不胜感激。


这是一个非常紧迫的问题,因此,如果你能给我一个快速的答案,我将非常感激。

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

    您好、Ingwon、

    抱歉、一个基本问题- 您是否具有用于初始化 CAN 模块的不同功能、或者您是否在 C2000Ware 中使用 CAN 初始化功能?  我要求的原因是 C2000Ware 中的 CAN 初始化会将模块设置为 eCAN 模式。  默认情况下、SCC 模式为默认模式。  只需确保在您的 CAN 初始化函数中完成此操作即可。

    此致、

    Joseph

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

    我在  C2000Ware 中使用 CAN 初始化函数。

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

    您能否在将邮箱0-16分配为 RX 对象之前以及将邮箱0-16配置为 RX 对象之后立即监视 SCB 位的状态?  模块通过分配邮箱进入 SCC 模式是很不寻常的。  清除 SCB 位是从 eCAN 切换到 SCC 的唯一方法。  可能是部分代码无意中写入 CANMC 寄存器?  

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

    写入 CANMC 寄存器代码 只能执行初始化功能。 (搜索项目)

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

    您是否按照上面的请求监视 SCB 位的状态:

    "在将邮箱0-16分配为 RX 对象之前以及将邮箱0-16配置为 RX 对象之后、您能否立即监视 SCB 位的状态?"

    这可能会缩小从 eCAN 切换到 SCC 模式的范围。