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.

[参考译文] Linux/AM3358:BeagleBone Black 的叠加和 CAN 支持

Guru**** 2587935 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/635444/linux-am3358-overlays-and-can-support-for-beaglebone-black

器件型号:AM3358

工具/软件:Linux

需要为 BeagleBone Black 启用 DCAN1和 DCAN2支持。  

1) 1) TI 开发支持的最新 Linux 内核是否支持覆盖?  

2) 2)在哪里可以找到有关在 TI 开发板支持的最新内核上为 BeagleBone Black 启用 CAN1和 CAN2的文档?

3) 3)如果不再支持覆盖、则启用 CAN 不支持覆盖的文档?

4) 4)以下信息对于最新的内核是否仍然可靠?哪个版本受最新支持?

www.embedded-things.com/.../

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    TI SDK 目前不支持覆盖层。  我无法访问您发布的链接、因为我相信它目前没有通过 TI 网络筛选器。

    但是、我可以提供您所需的信息、因为我最近必须在 BBB 上启用 CAN Cape、尽管其中没有两个。  您是制作自己的 CAN 接口 Cape 还是购买?

    随附的文档可用于启用 Cape 或板端口、以便在需要时创建定制板。 请原谅该文档的不完善性质、因为它将成为至少一篇维基文章。

    附加的是一个可用于启用 CAN1的示例补丁。   在查看用于在 BBB 上启用 DCAN0的示例补丁后、您可以从 DTS 开始。 我没有尝试过、请告诉我它是否起作用:

    Dcan1_PINS_DEFAULT:Dcan1_PINS_DEFAULT{

      pinctrl-single、pins =<

          AM33XX_IOPAD (0x980、PIN_OUTPLUG_PULLUP | MUX_MODE2)/* uart1_Rxd.d_CAN1_TX *

          AM33XX_IOPAD (0x984、PIN_INPUT_PULLUP | MUX_MODE2)/* uart1_TXD.d_CAN1_Rx *

      >;

    };

    Dcan0{.dcan0}(&D)

    状态="确定";/*//

    pinctrl-names ="default";

    pinctrl-0 =<&dcan1_PINS_DEFAULT>;

    };

    您是否熟悉对 DTS 文件进行更改、编译 DTS 文件并将其添加到文件系统中?

    如果您的问题未得到解答、请再次发帖。

    此致、

    Schuyler

    e2e.ti.com/.../Enabling-a-DCAN-interface-on-the-Beagle-Bone-Black_5F00_20171030.docx

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

    这是上一篇文章中提到的修补程序。。。

    e2e.ti.com/.../add_5F00_bbb_5F00_dcan1_5F00_patch.txt

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



    以下是上周测试的最新内核中的最新 CAN 支持。 但是、由于 P9_xy 使用 P9头文件、因此无法使用这些更改。

    + cape -通用{
    + compatible ="GPIO-of -helper";
    + STATUS ="确定";
    + pinctrl-names ="default";
    + pinctrl-0 =<>;
    +
    + P9_19{
    + GPIO-name ="P9_19";
    + GPIO =<&GPIO0 13 0>;
    +输入;
    +可变方向;
    +};
    +
    + P9_20{
    + GPIO-name ="P9_20";
    + GPIO =<&GPIO0 12 0>;
    +输入;
    +可变方向;
    +};
    +
    +};


    使用上周末的"最新"内核构建。

    4.4.9.91-ti-R135/4.4.9.91-ti-RT-R135
    4.9.59-ti-r73/4.9.59-ti-rt-r73
    4.14.0-rc7-ti-r6

    4.13.10-bone3/4.13.10-bone-rt-R3

    现在支持

    配置引脚 P9.19 CAN
    配置引脚 P9.20 CAN


    启动时:

    github.com/.../run_config-pin_during_startup.md

    您可以执行以下操作:

    !/bin/bash

    配置引脚 P9.19 CAN
    配置引脚 P9.20 CAN

    配置引脚 P9.24 CAN
    配置引脚 P9.26 CAN

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

    Schuyler、您好、

    我需要将这些引脚用于 DTS 和 u-boot 引脚多路复用器。  我们不使用 Cape、而是使用 AM3358来处理 CAN、并使用 USB 器件来处理 CAN 电缆。 我们将有两个 CAN。  

    CAN0 RX 为 D17
    CAN0 TX 为 D18
    CAN1 RX 为 E17
    CAN1 TX 为 E18

    如果您在上面提供、

    1) 1)哪些引脚为0x980和0x984、以及如何确定这些值?

    2) 2)如何将这些映射到 BBB 原理图引脚?  

    3) 3)如何解码焊盘名称的 ioPad 值?

    4) 4)还请发送更改 DTS 文件、编译该文件、尤其是将其添加到文件系统的任何信息。  

    使用 TI 开发  

    支持的最新 Linux 内核更改(v4.9.x-ti/v4.14.x-ti/v4.4.4.4-x-ti)可以使用 P9头文件。  P9_xy 位于 P9接头上、我们没有 P9接头。 因此、这些更改不会有所帮助。 例如:

    AM33XX_IOPAD (0x0978、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_20:uart1_CTSN.d_CAN0_TX *
    AM33XX_IOPAD (0x097c、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_19:uart1_rtsn.d_CAN0_Rx *
    AM33XX_IOPAD (0x0980、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_26:uart1_RxD.Dcan1_TX *
    AM33XX_IOPAD (0x0984、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_24:uart1_TXD.Dcan1_Rx *

    Thx、

    Tracy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这与所使用的 USB/CAN 器件类似: www.kvaser.com/.../

    如果您在使用此器件时看到任何与内核相关的问题、例如 USB 以外所需的内核支持、请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Schuyler、您好、

    我需要将这些引脚用于 DTS 和 u-boot 引脚多路复用器。 我们不使用 Cape、而是使用 AM3358来处理 CAN、并使用 USB 器件来处理 CAN 电缆。 我们将有两个 CAN。 这与所使用的 USB/CAN 器件类似:www.kvaser.com/.../

    如果您在使用此器件时看到任何与内核相关的问题、例如需要内核支持、请告知我。

    CAN0 RX 为 D17
    CAN0 TX 为 D18
    CAN1 RX 为 E17
    CAN1 TX 为 E18

    如果您为 TI 开发提供上述内容、

    1) 1)哪些引脚为0x980和0x984、以及如何确定这些值?

    2) 2)如何将这些映射到 BBB 原理图引脚?

    3) 3)如何解码焊盘名称的 ioPad 值?

    4) 4)还请发送更改 DTS 文件、编译该文件、尤其是将其添加到文件系统的任何信息。

    支持的最新 Linux 内核更改(v4.9.x-ti/v4.14.x-ti/v4.4.4.4-x-ti)可以使用 P9头文件。 P9_xy 位于 P9接头上、我们没有 P9接头。 因此、这些更改不会有所帮助。 例如:

    AM33XX_IOPAD (0x0978、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_20:uart1_CTSN.d_CAN0_TX *
    AM33XX_IOPAD (0x097c、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_19:uart1_rtsn.d_CAN0_Rx *
    AM33XX_IOPAD (0x0980、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_26:uart1_RxD.Dcan1_TX *
    AM33XX_IOPAD (0x0984、PIN_INPUT_PULLUP | MUX_MODE2)/* P9_24:uart1_TXD.Dcan1_Rx *

    Thx、

    Tracy

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

    此外、u-boot/arch/arm/include/asm/arch-am33xx/mux_am33xx.h 中的焊盘名称包括 i2c0_sda (引脚 C17)和 i2c0_SCL (引脚 C16)、但我看不到 i2c2_SCL (引脚 D17)和 i2c2_sda (引脚 D18、引脚 Ept1、引脚 Et17)的名称

    1.我是否错过了 u-boot 中这些引脚的名称?

    2.如果 u-boot 不支持这些引脚、是否应将它们添加到 u-boot 和/或添加到内核以支持这些引脚?

    由于没有 P9扩展器、并且由于引脚冲突、需要这些引脚来支持定制 BBB 上的 USB/CAN 器件。 需要将这些引脚多路复用以使用 USB/CAN 设备(Lawicel)。

    更新。   在 u-boot/board/ti/AM335x 中、我看到以下内容。 因此、对于 D18、I2C_DATA 的焊盘名称是 uart1_CTSN。  对于焊盘名称 uart1_rtsn、它是引脚 D17。  因此、这将提供 DCAN0_TX/RX。

    静态结构 MODULE_PIN_mux i2c2_PIN_mux[]={
           {offset (uart1_CTSN)、(mode (3)| RXACTIVE |
                           PULLUP_EN | PULLUUDEN | SLEWCTRL)}、     // I2C_DATA *
           {offset (uart1_rtsn)、(mode (3)| RXACTIVE |
                           PULLUP_EN | PULLUDEN | SLEWCTRL)}、     // I2C_SCLK *
           {-1}、
    };

    现在、在 u-boot/board/ti/AM335x 中查找 DCAN1_TX/RX 的 E17/E18。  如果需要、TI 和 Robert Nelson 可以对 CAN1使用 E17/E18、并对 CAN2/3使用 P9扩展头、或者可以避免为 EEPROM 禁用 I2C。

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

    我们将 D17/D18和 E17/E18路由到 CAN1/2 TX/RX。  找到上面 DTS 的十六进制值。  引脚的定义正是我所寻找的、所有信息都非常有用。

    https://dev.ti.com/pinmux/app.html#/default

    myDcan1_PINS_DEFAULT:myDcan1_PINS_DEFAULT{
      pinctrl-single、pins =<
        0x16c (PIN_INPUT | MUX_Mode2)/*(E17) uart0_rtsn.dcan1_Rx *
        0x168 (PIN_OUTPUT | MUX_Mode2)/*(E18) uart0_CTSN.Dcan1_TX *
      >;
    };

    myDcan2_PINS_DEFAULT:myDcan2_PINS_DEFAULT{
      pinctrl-single、pins =<
        0x17c (PIN_INPUT | MUX_MODE2)/*(D17) uart1_rtsn.dcan0_Rx *
        0x178 (PIN_OUTPUT | MUX_Mode2)/*(D18) uart1_CTSN.Dcan0_TX *
      >;
    };

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

    感谢您发布您使用引脚复用工具的链接。 我对引脚多路复用结构中的引脚偏移有点困惑。 您在工具中发现了一个错误、我们需要跟踪并纠正该错误。 原因是 D17的地址偏移17c 不正确、无法与最新的 TI SDK 引脚多路复用器配合使用。

    此外、BBB 原理图中的引脚未显示完全连接的处理器引脚 E17/18。

    根据您之前的问题、我认为您应该如何设置接口、希望我已经细分了引脚参考:

    在解析以下第一行时、第一行是数据表中的引脚坐标、96Ch 是此引脚配置的控制模块寄存器偏移、AM335x 技术参考手册(TRM)中的表格、数据表引脚名称和引脚多路复用模式、 BBB 原理图中的 P9信号名称和连接器上的引脚编号。

    D18 96Ch conf_uart1_CTSN 表第9-10节 uart0_CTSN.d_CAN0_TX P9–I2C2_SDA 引脚20
    D17 968h conf_uart1_rtsn 表第9-10节 uart0_rtsn.d_CAN0_Rx P9–I2C2_SCL 引脚19
    D16 980H conf_uart1_RxD 表第9-10节 uart1_Rxd.d_CAN1_TX P9–UART1_RXD 引脚28
    D15 984h conf_uart1_TXD 表第9-10节 uart1_txn.d_CAN1_Rx P9–UART1_TXD 引脚26

    此链接将显示如何编译器件树源文件:
    processors.wiki.ti.com/.../Linux_Kernel_Users_Guide

    请告诉我这是否有帮助。

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

     Schuyler、您好、

    这是我们定制 BBB 的路由。  以上建议假定 BBB 未完全路由 E17/E18、但在我们的情况下、它们将 E17/E18路由到 CAN1。

    您是否说我们应该将 D16/D17用于 CAN1、而不是 E17/E18、即使我们将 E17/E18路由到 CAN1? 如果是、 请解释为什么建议使用?

    此外、头文件中似乎有一个宏向 DTS 文件中的地址添加了一个0x800偏移量、因此0x16C 将成为0x96Ch。 那么、这个宏是否修复了由于 TI 引脚多路复用工具内的偏移问题而导致的偏移? 如果是、一旦在引脚复用工具中固定了偏移、以后的任何电路板都需要移除宏吗?  

    Thx、Tracy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Tracy:
    我担心引脚多路复用工具输出不能与 DTC 编译器配合使用、如果您尚未尝试过、则会这样做。 工具输出和基于宏的引脚定义都起作用。 宏减去引脚复用配置寄存器开始的偏移量。 根据提交消息添加了宏以提高可读性。 工具输出遵循内核文档目录中的 pinctrl 绑定文档。

    我的工作印象是您直接使用 BBB 而不是定制电路板设计、我锁定在 D16/D17上。 可以使用 E17/E18引脚。

    此致、
    Schuyler