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:msgid 和 LAM 设置

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1566925/tms320f28335-msgid-and-lam-setup

器件型号:TMS320F28335


工具/软件:

大家好、

我必须收到这些 CAN ID 组

-组 1 CAN ID:0x510、0x511、0x512、...、0x519

-组 2 CAN ID:0x520、0x521、0x522、...、0x529

-组 3 CAN ID:0x530、0x531、0x532、...、0x539

我设置三个邮箱、如下所示:

- MSGID (1、2 和 3) 用于接收不同的 CAN ID 组。   

ECanbMbox.MBOX1.MSGID.all = 0x54400000;//邮件箱 ID = 0x510
ECanbMbox.MBOX2.MSGID.all = 0x54800000;//邮件箱 ID = 0x520
ECanbMbox.MBOX3.MSGID.ALL = 0x54C00000;//邮件箱 ID = 0x530

- 本地 — 接收-掩码寄存器

ECanbLAMRegs.LAM1.bit.lami = 1;         //这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM1.bit.LAM_H = 0x1470;//这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM1.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧

ecanbLAMRegs.lam2.bit.lami = 1;         //这允许接收标准帧和扩展帧
ECanbLAMRegs.LAAM2.bit.LAM_H = 0x14B0;//这就允许接收标准帧和扩展帧
ecanbLAMRegs.lam2.bit.lam_L = 0xFFFF;//这允许接收标准帧和扩展帧

ECanbLAMRegs.LAM3.bit.lami = 1;         //这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM3.bit.LAM_H = 0x14F0;//这允许接收标准帧和扩展帧
ECanbLAMRegs.LAM3.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧

当我运行程序时、所有 CAN ID 帧都由 mailbox3 接收。

如果我注释掉这些行的话

// ECanbLAMRegs.LAAM2.bit.lami = 1;         //这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAAM2.bit.LAM_H = 0x14B0;//这就允许可以接收标准帧和扩展帧
// ECanbLAMRegs.LAAM2.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧
//
// ECanbLAMRegs.LAM3.bit.lami = 1;         //这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_H = 0x14F0;//这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧

我可以在 mailbox1 中接收所有 CAN ID (0x510 到 0x519)。

如果我注释掉这些行的话


// ECanbLAMRegs.LAM3.bit.lami = 1;         //这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_H = 0x14F0;//这允许接收标准帧和扩展帧
// ECanbLAMRegs.LAM3.bit.LAM_L = 0xFFFF;//这允许接收标准帧和扩展帧

我可以在 mailbox2 中接收所有 CAN ID (0x510 到 0x519 和 0x520 到 0x529)。

这意味着较高的邮箱数接收消息的优先级较高。   

我的问题:是否可以设置每个邮箱以接收一组上述 CAN ID?

非常感谢您的帮助。  

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

    您好、

    LAM 用于屏蔽不应比较的消息 ID 位。 LAM 寄存器中的“1"值“值表示“无关“或接受该位位置的“0"或“或“1"。“。  “0"值“值意味着传入位值必须与消息 ID 中的相应位匹配。

    请尝试以下 LAM 配置:

    Lami = 0

    LAM1 = 0x00F << 28

    LAM2 = 0x00F << 28

    LAM3 = 0x00F << 28

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这意味着较高的邮箱号码接收邮件的优先级较高。   [/报价]

    传入消息存储在编号最大的邮箱中、并具有匹配的标识符。