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.

[参考译文] J784S4XEVM:CAN 配置位

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1426205/j784s4xevm-can-configuration-set

器件型号:J784S4XEVM

工具与软件:

您好、TI 支持团队:

我使用的是 TI TDA4 J784S4架构、想通过编程为 CAN 仲裁设置 CAN 配置、并且数据比特率包括比特率、TSeg1、Tseg2、SJW。 您能不能向我介绍一下现有的库支持 、尤其是在 Linux 环境中?

提前感谢您的帮助。

此致、

Nirosekhan J

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

    您好!

    您可以在 Linux 环境中给出以下命令、以设置比特率以及相应的参数。

    Usage: ip link set DEVICE type can
            [ bitrate BITRATE [ sample-point SAMPLE-POINT] ] |
            [ tq TQ prop-seg PROP_SEG phase-seg1 PHASE-SEG1
              phase-seg2 PHASE-SEG2 [ sjw SJW ] ]
            [ dbitrate BITRATE [ dsample-point SAMPLE-POINT] ] |
            [ dtq TQ dprop-seg PROP_SEG dphase-seg1 PHASE-SEG1
              dphase-seg2 PHASE-SEG2 [ dsjw SJW ] ]
            [ loopback { on | off } ]
            [ listen-only { on | off } ]
            [ triple-sampling { on | off } ]
            [ one-shot { on | off } ]
            [ berr-reporting { on | off } ]
            [ fd { on | off } ]
            [ restart-ms TIME-MS ]
            [ restart ]
            Where: BITRATE  := { 1..1000000 }
                      SAMPLE-POINT  := { 0.000..0.999 }
                      TQ            := { NUMBER }
                      PROP-SEG      := { 1..8 }
                      PHASE-SEG1    := { 1..8 }
                      PHASE-SEG2    := { 1..8 }
                      SJW           := { 1..4 }
                      RESTART-MS    := { 0 | NUMBER }

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

    您好、TI 支持团队:

      感谢您的响应。

       我们在 Linux 终端中尝试了 ip link 命令、工作正常。 通过 libsocketcan 库以编程方式尝试相同的功能、但未按预期运行。 是否有任何库支持用于设置比特率和其他参数。 如有任何问题、请推荐工作方法。

    此致、

    Nirosekhan J

      

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

    您好、TI 支持团队:

       我一直在等待进一步的回应。 请提供前一个 TT 的答案。

    此致、

    Nirosekhan J

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

    您好!

    我们已在 Linux 终端尝试使用 ip link 命令、运行正常。 通过 libsocketcan 库以编程方式尝试相同的功能、但未按预期运行。 是否有任何库支持用于设置比特率和其他参数。 如果有任何问题、请建议使用哪种工作方法。

    请告诉我您遵循了哪些步骤、您执行了哪些更改以及您如何将其包含在固件中?

    此致

    Tarun Mukesh

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

    您好、TI 支持团队:

       感谢您的响应。

       在源代码库中添加了 libsocket 文件。

       调用 can_set_bittiming API 并确保在调用 API 之前可以连接中断。

        CAN_GET_BITT时序&按预期工作以获取位时序参数也是如此。

    此致、

    Nirosekhan J

      

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

    您好!

    您是否可以截取所做的更改或附加所做的文件更改、如何编译和添加作为可执行文件的一部分是我所要求的?

    此致

    Tarun Mukesh

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

    您好、TI 支持团队:

      由于组织策略、我无法共享代码。 如前所述、libsocket 文件包含在源代码中。 称为  can_set_bittiming 接口来设置配置。 可执行文件在评估板的 Linux 环境中调用。 请告诉我。

    此致、

    Nirosekhan J

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

    团队成员、您好!

     我尝试了以下存根代码来使用 libsocketcan 接口设置 CAN 配置。 您能否 说明此接口是否将有助于设置配置、或者评估板中应使用任何其他接口来进行相同设置。

    struct can_bittiming bt;

    BT.bitrate = 0;
    BT.FRAME = 0;tq = 0;
    bt.prop_seg = 6;
    BT.phase_seg1 = 7;
    BT.phase_seg2 = 2;
    BT.SJW=1;

    can_set_bittiming (interface_name、&bt);

    此致、

    Nirosekhan J

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

    您好、TI 支持团队:

       请您提供对上述问题的回答。 这将有助于我们加快我们的活动。

    此致、

    Nirosekhan J

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

    尊敬的 Nirosekhan:

    对反应延迟深表歉意。 您应该能够使用 SocketCAN、如以下 Linux 文档中所示: https://docs.kernel.org/networking/can.html。 

    如果仍然无法使 SocketCAN 正常工作、则可以参考"IP"工具的代码。 我想源代码是这样的: https://github.com/iproute2/iproute2/blob/main/ip/iplink_can.c。 

    此致、

    Takuma