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.

[参考译文] TMS320F2.8035万:标准标识符的CAN设置

Guru**** 2589300 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/659436/tms320f28035-can-setting-for-standard-identifier

部件号:TMS320F2.8035万

你好  

  如何使用标准标识符读取邮箱? 我使用以下ID寄存器设置将邮箱设置为接收框

 ECanaMMboxes.MBOX26.MSGID.bit.STDMGID = 0x061;

 ECanaMbboxes.MBOX26.MSGID.bit.ide = 0;

但是,我无法读取CAN总线中带有标准标识符的消息。 但是,如果我将CAN总线中的消息更改为扩展标识符,并使用以下设置

 ECanaMbboxes.MBOX26.MSGID.ALL = 0x061;

 ECanaMbboxes.MBOX26.MSGID.bit.ide = 1;

我没有问题阅读CAN总线中的信息。 我 使用CANalyzer生成总线CAN信息。 是否有人可以帮助我了解我的设置或我是否需要设置更多的寄存器(MSGID除外)?

 谢谢!

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

    请澄清您所说的"我无法读取CAN总线中带有标准标识符的消息"。 您是否说您无法读取带STD标识符的接收帧的MSGID? 是否通过内存浏览器验证MSGID是否正确存储在MBX RAM中?

     

    另外,请注意,在标准标识符模式下,消息标识符存储在位28:18中,而不是位10:0中。 在这种情况下,位ID.17:0没有意义。 在扩展标识符模式中,消息标识符存储在位ID.28:0中。 您是否考虑过这一点?

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

    Hareesh,您好!

       感谢您的快速回复。 我 使用CAnalyzer发送CAN消息。 如果邮件是带有标准标识符的邮件。 2.8035万 DSP邮箱( 例如邮箱26) 即使设置了邮箱26,也无法从CANalyzer接收消息内容

      

    ECanaMMboxes.MBOX26.MSGID.bit.STDMGID = 0x091;  // UINT16 STDMSRGID:11;// 18:28

    ECanaMbboxes.MBOX26.MSGID.bit.ide = 0;

     如果我将CANalyzer消息更改为扩展标识符,则还  会将邮箱设置为类似

     ECanaMbboxes.MBOX26.MSGID.ALL = 0x091;   

    ECanaMbboxes.MBOX26.MSGID.bit.ide = 1;

    这样,Mailbox 26就可以从CANalyzer消息接收消息内容。

    我检查RAM,ID已写入正确的位置(位28:18)。根据上述信息,您能否让mew知道什么是问题? 对于2.8035万,如果我要使用STD标识符(注册MSGID除外),我是否需要设置任何其它注册?

     感谢你的帮助。

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

    您从CANalyzer传输的帧是否具有STD-ID或EXT-ID? 将ST-ID写入Rcv邮箱时,是否传输STD-D帧?

     

    在执行这两个指令后,您能否向我发送CAN邮箱RAM的屏幕截图?

     

    ECanaMMboxes.MBOX26.MSGID.bit.STDMGID = 0x091;  // UINT16 STDMSRGID:11;// 18:28

     

     ECanaMbboxes.MBOX26.MSGID.bit.ide = 0;

     

    和这2个说明?

     

    ECanaMbboxes.MBOX26.MSGID.ALL = 0x091;

     

    ECanaMbboxes.MBOX26.MSGID.bit.ide = 1;

     

    在收到带扩展ID的MSG之后?

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

    Hareesh,您好!

      您是否有直接电子邮件以便我可以发送您的屏幕截图? 我无法插入snip文件。

      谢谢!

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

    您可以将图像保存到文件中,然后使用回形针图标将文件附加到帖子中。 请参阅附件。 更重要的是,我需要回答以下问题:

    您从CANalyzer传输的帧是否具有STD-ID或EXT-ID? 将ST-ID写入Rcv邮箱时,是否传输STD-D帧?

     


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

    e2e.ti.com/.../MBOX26_2D00_Screen.pptxHiHareesh,

     我从CanaLyzer传输的帧,如果我使用标准邮箱(IDE=0),则它具有STE-ID。 如果我设置IDE=1,则使用扩展ID

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    寄存器值显示为"正常"。 作为健全性检查,请打开邮箱RAM区域的内存浏览器窗口,并将该值与您在“表达式”窗口中看到的内容交叉检查。 您是否可以尝试另一个邮箱,例如,STDID为0x1的Mailbox0? 设置dlc=8并从CANalyzer传输简单模式,如00 FF 00 FF 00 FF 00 FF 00 FF。

    由于EXTID工作正常,请勿再尝试使用EXTID传输帧。 有关调试的一些提示,请参阅我的app.note SPRA876B。 它还包含一个名为RXLOP.c的示例代码,您可以将其用作参考。

    这是您自己的硬件吗? 您是否可以尝试其他主板? 如果EXTID帧接收正确,则必须接收STDID帧。 这是不可能奏效的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hareesh,您好!
    我仍在处理该问题,发现我可以接收具有标准标识符但具有不同ID的消息。 例如,我可以使用邮箱26接收标识符为0x50的邮件。但是。 我仍然无法接收标识符为0x91的消息。 我尝试更改本地验收过滤器寄存器LAM26的值,全部给0或全部给1。 我还更改了全局滤波器CANGAM位28-0,给全0或全1。 但是,我得到了同样的结果。 我的意思是使用0x50的消息正常,但使用ID 0x91的消息不正常。 您是否知道为什么会发生这种情况?
    感谢你的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不,我不知道为什么会发生这种情况。 我建议您根本不使用筛选。 只需将ID 0x91写入MBX26,然后在总线上传输相同的ID。 必须收到。 在了解情况之前不要使用LAM。

    我强烈建议您尝试app.note SPRA876中的接收示例代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我有一段时间没有收到您的回复,我认为您能够解决问题。 如果情况并非如此,请告诉我。 我将关闭此线程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉未回复您。 问题已解决。可能是硬件问题。 该代码适用于另一组硬件。
    谢谢!