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.

[参考译文] TMS320F28379D:如何在 CANMessageGet 函数中更新接口寄存器(IF)?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1079369/tms320f28379d-how-interface-registers-if-are-getting-updated-in-canmessageget-function

部件号:TMS320F28379D
“线程:C2000WARE”中讨论的其它部件

您好,

我 正在尝试使用'CAN.c'中的“CANMessageGet”函数来了解接收邮件的功能,该函数使用 IF2寄存器来读取邮箱邮件 RAM。

我知道 CPU 将写入 IF2CMD 寄存器。

问题1. 我们是否应该根据 CCS 寄存器窗口中邮箱的消息 RAM 更改 IF2ARB 和 IF2CTL 寄存器(如果未使用验收过滤)?

问题2. 如果是,那么这些寄存器是否会根据 该邮箱的消息 RAM 来反映这些值?

 

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

    Dhanashree,

      CAN.C.中没有名为“CANMessageGet”的函数 请仔细检查函数名称并提供文件的完整 C2000ware 路径吗?  

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

    我 正在使用 controlSUIT。 文件的完整路径为'\ccontrolSUIT\v3.3.9\device_support\F2837xD\v190\F2837xD_common\driverlib\can.c'

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="439648" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1079369/tms320f28379d-hero-interface-regner-if-ge-gette-update-in - messageget-functions]Q1。 我们是否应该根据 CCS 寄存器窗口中邮箱的消息 RAM 更改 IF2ARB 和 IF2CTL 寄存器(如果未使用验收过滤)?

    很抱歉我不理解您的问题。 您正在尝试读取邮箱消息 RAM。 因此,该函数读取 IF2ARB 和 IF2CTL 寄存器以分别收集 ARBID (MSGID)和 DLC 值。 对于接收函数,您不需要更改任何寄存器,但 IF2CMD 寄存器除外,在该寄存器中,您可以定义要读取的邮箱和字段。

    [引用 userid="439648" url="~/support/icros/c2000微控制器-group/c2000 /f/c2000微控制器-forume/1079369/tms320f28379d-hero-interface-regner-if-ge-gette-update-in-messageget-functions]Q2。 如果是,那么这些寄存器是否会根据 该邮箱的消息 RAM 来反映这些值?

    如果 IF2CMD 寄存器配置正确,其他寄存器将正确反映邮箱 RAM 的内容。

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

    感谢您澄清我的理解。

    我面临的情况是,IF2CMD 寄存器具有正确的信息,即邮箱号。

    但是,IF2ARB 和 IF2DATA 寄存器分别填充了实际不适用于该邮箱的 ID 和数据。也就是说,邮箱消息 RAM 中未出现的 ID 和数据与 IF2ARB 和 IF2DATA 寄存器中的 ID 和数据不匹配。

    请注意,邮箱未启用接受过滤。

    下面是我如何配置邮箱的屏幕截图:

    下面是我 如何读取两个邮箱的简化逻辑。

    如果您可以参加电话/会议,那么我们可以讨论一下这一点,并看看这种情况吗?

    谢谢,

    Dhanashree

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

    Dhanashree,

      请在星期一或星期二向我发送一封私人邮件,告知您的时间段适用于 WebEx。 在此期间,我将了解我是否可以在不需要致电的情况下澄清您的疑虑。

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

    当然。 将检查并告知您。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="439648" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000 -微控制器-论坛/1079369/tms320f28379d-操作界面-寄存器-如果正在获取更新的消息-函数/3998602#3998602”,但这些数据寄存器和寄存器不是用于这些数据和数据的 IF2IFATA 寄存器。] [/引用]

    您的意思是说“但 IF2ARB 和 IF2DATA 寄存器分别填充 ID 和数据,而这些 ID 和数据不是接收邮箱的实际内容

    [引用 userid="439648" url="~ë/support/ican/c2000微控制器-组/CC2000 /f/c2000-微控制器-论坛/1079369/tms320f28379d-接口-寄存器- if-gette-updated -消息交换功能/3998602#3998602数据不在信息库中,且信息库中不与 IFAT[数据 ID]信息不匹配,且 IF2IFATA/IFAT]信息不在信息库中。

    您的意思是说“邮箱消息 RAM 中不存在的 ID 和数据与 IF2ARB 和 IF2DATA 寄存器中存在的 ID 和数据不匹配。

    接待比较简单。 初始配置后(即 邮箱的 msgid,Mask 等)已完成,无需再次“配置”邮箱中的任何内容来读取内容。 假设已正确接收帧,则需要完成的所有操作都是通过写入 IFxCMD 寄存器来启动从邮箱 RAM 到 IFX 寄存器的传输。  

    请注意,从 不需要配置接收邮箱的 DLC 值,因为该字段将在接收时自动更新(基于接收的字节数)。 接收邮箱的 DLC 字段是“不在乎”

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

    你好,Haresh,

    是的,您对该问题的理解是正确的。   邮箱消息 RAM 中不存在的 ID 和数据与 IF2ARB 和 IF2DATA 寄存器中存在的 ID 和数据不匹配。

    IF2CMD 寄存器正在使用邮箱号进行更新,但此后,IF2ARB 和 IF2DATA却 没有使用与邮箱消息 RAM 相同的值进行更新。

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

    我已经脱机联系了您有关 WebEx 的信息。

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

    Dhanashree,

      我希望您能够解决您的问题。 如果没有,请告诉我。