工具/软件:Linux
需要为 BeagleBone Black 启用 DCAN1和 DCAN2支持。
1) 1) TI 开发支持的最新 Linux 内核是否支持覆盖?
2) 2)在哪里可以找到有关在 TI 开发板支持的最新内核上为 BeagleBone Black 启用 CAN1和 CAN2的文档?
3) 3)如果不再支持覆盖、则启用 CAN 不支持覆盖的文档?
4) 4)以下信息对于最新的内核是否仍然可靠?哪个版本受最新支持?
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
需要为 BeagleBone Black 启用 DCAN1和 DCAN2支持。
1) 1) TI 开发支持的最新 Linux 内核是否支持覆盖?
2) 2)在哪里可以找到有关在 TI 开发板支持的最新内核上为 BeagleBone Black 启用 CAN1和 CAN2的文档?
3) 3)如果不再支持覆盖、则启用 CAN 不支持覆盖的文档?
4) 4)以下信息对于最新的内核是否仍然可靠?哪个版本受最新支持?
您好!
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
这是上一篇文章中提到的修补程序。。。
以下是上周测试的最新内核中的最新 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接头。 因此、这些更改不会有所帮助。 例如:
Thx、
Tracy
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 *
>;
};
这是我们定制 BBB 的路由。 以上建议假定 BBB 未完全路由 E17/E18、但在我们的情况下、它们将 E17/E18路由到 CAN1。
您是否说我们应该将 D16/D17用于 CAN1、而不是 E17/E18、即使我们将 E17/E18路由到 CAN1? 如果是、 请解释为什么建议使用?
此外、头文件中似乎有一个宏向 DTS 文件中的地址添加了一个0x800偏移量、因此0x16C 将成为0x96Ch。 那么、这个宏是否修复了由于 TI 引脚多路复用工具内的偏移问题而导致的偏移? 如果是、一旦在引脚复用工具中固定了偏移、以后的任何电路板都需要移除宏吗?
Thx、Tracy