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.

[参考译文] CCS/TMS320F28069:我正在使用 TMS320F28069、我需要初始化 CANopen 如何定义 LAM (本地接受屏蔽(CANLAM))

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/941168/ccs-tms320f28069-i-am-working-with-tms320f28069-i-need-to-initialize-canopen-how-ro-define-the-lam-local-acceptance-masks-canlam

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

工具/软件:Code Composer Studio

大家好

我有2个设备、两个都是从设备(因此我从显示器发送0x80心跳信号)

两个器件都发送了 Candata:Device1:0x181、0x281、0x381、0x481... Device2:0x182、0x281、 0x382 0x482

我有16个邮箱作为 RX

这是屏蔽的示例代码

/*为 Rx 邮箱定义本地接受屏蔽*/
for (i=0;<CAN_RX_MAILBOXES;i++))

P_LAM_reg =&ECanaLAMRegs.LAM0 + I;//指向每个本地接受屏蔽的指针*

(* p_lam_reg).bit.Lami = 0;//仅标准标识符(作为 MBOX 自有标识符)*/// Lami = 1;标准和11位扩展时
(* p_lam_reg).bit.LAM_L = 0x0000;
if (i > 12)/*邮箱13-15 */
(* p_lam_reg).bit.LAM_H = 0x0604;//忽略11位标识符中的位0、7和8
/*对于 ID = 0x000 (NMT)、0x080 (SYNC)和0x100 (时间戳)以及0x81状态变化*有效
否则(I > 9)/*邮箱10-12 */
(* p_lam_reg).bit.LAM_H = 0x0600;//节点99中的 TPDO1 */
否则,如果(i < 6)/*邮箱0-5 */
(* p_lam_reg).bit.LAM_H = 0x1E04;//仅此节点 ID 的消息(忽略位0)*/
else /*邮箱6-9 */
(* p_lam_reg).bit.LAM_H = 0x0C00;//仅此节点 ID 的 PDO1和2消息*/

我不明白

为什么 /*邮箱0-5 */

* p_lam_reg).bit.LAM_H = 0x1E04;……  0x1E04;0-5邮箱中的这个值意味着什么

邮箱6-9 */
(* p_lam_reg).bit.LAM_H = 0x0C00;……  0x0C00;6-9邮箱中的这个值意味着什么

邮箱10-12 */
(* p_lam_reg).bit.LAM_H = 0x0600;... 0x0600在10-12个邮箱中此值的含义是什么

邮箱13-15 */
(* p_lam_reg).bit.LAM_H = 0x0604;... 0x0604这个来自13-15个邮箱的值是什么意思

此屏蔽正在将 CANbus 数据发送到 Display  

但现在我想进行新的屏蔽以在2个器件之间进行通信、我的意思是、当 Device1发送 Candata 时、应该在器件2中接收 cantus 帧 PDOS

就像我可以从 device1读取0x181到 device2、从 device2读取0x182到 device1一样、因此我不需要进行新的屏蔽、但我想了解如何读取

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

    Janybasha、  

    请下载我的应用报告 http://www.ti.com/lit/spra876。 具体而言、IAS 是一个明确说明接受屏蔽滤波工作原理的示例。 我还敦促您查看提供的调试提示。 请注意、app.note 示例是为 TMS320F28335器件编写的。 但是、如果您要处理 SYSCLKOUT 速度的变化以及 CANBTR 寄存器保证的结果变化、则可以通过 eCAN 将它们轻松地用于任何28x 器件。

    虽然我们很乐意帮助您在我们的器件上实施 CAN、但我们很遗憾无法就您在 CANopen 上遇到的问题为您提供支持。 为此、您可能需要在线联系 CANopen 论坛。