如何在Beanglebone黑色内核上启用RTS和CTS引脚4.1.15-Ti-RT-R43

How can i enable RTS and CTS pin on Beanglebone Black Kernel 4.1.15-ti-rt-r43?

本文关键字:CTS 引脚 15-Ti-RT-R43 RTS 启用 Beanglebone 黑色 内核      更新时间:2023-10-16

要激活beaglebone上的RTS和CTS引脚,我遵循了几条路线,但不幸的是我没有进一步。

1)RXD和TXD的激活更加容易。我在uenv.txt上输入了命令:

root@beaglebone:/boot# nano uEnv.txt
cmdline=coherent_pool=1M quiet cape_universal=enable
dtb=am335x-boneblack-emmc-overlay.dtb

然后我可以直接激活代码中的引脚

//UART1
system("config-pin P9.26 uart"); // RXD
system("config-pin P9.24 uart"); // TXD
// UART4
system("config-pin P9.11 uart"); // RXD
system("config-pin P9.13 uart"); // TXD

如果我想以这种方式激活RTS或CTS引脚,

system("config-pin P9.20 uart"); // CTS

我收到错误消息

Pin is not modifyable: P9_20 i2c2_sda

信息:

root@beaglebone:~# config-pin -l P9_20
Pin is not modifyable: P9_20 i2c2_sda

2)我还使用了第二种方法,我在uenv.txt上对komand发表了评论。

# cmdline = coherent_pool = 1M quiet cape_universal = enable

我重新启动了beaglebone并准备了:

root@beaglebone:/lib/firmware# cat $SLOTS
 0: PF----  -1
 1: PF----  -1
 2: PF----  -1
 3: PF----  -1
 4: P-O-L-   0 Override Board Name,00A0,Override Manuf,BB-UART4
 5: P-O-L-   1 Override Board Name,00A0,Override Manuf,BB-UART1
 6: P-O-L-   2 Override Board Name,00A0,Override Manuf,BB-UART4-RTSCTS
 7: P-O-L-   3 Override Board Name,00A0,Override Manuf,BB-UART1-RTSCTS

在这种情况下,我的代码挂在读取功能上,该函数对代码响应,好像未启用UART

3)我还尝试了命令

capemgr.enable_partno=BB-UART1,BB-UART4

我的代码也挂在读取功能中。

有人可以说我该怎么办?

这是一种预期的行为。如果修改AM335X-BONE-COMMON.DTSI文件。您会看到,如果启用了I2C。您无法使用UART1 RTS和CTS引脚。因此,您应该禁用I2C或分配给其他引脚,您应该在销钉中使用CTS和RTS引脚。

i2c2_pins: pinmux_i2c2_pins {
        pinctrl-single,pins = <
            0x178 (PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_ctsn.i2c2_sda */
            0x17c (PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_rtsn.i2c2_scl */
        >;
    };

https://github.com/beagleboard/linux/blob/4.1/arch/arm/boot/dts/am335x-bone-common.dtsi

在.dts文件中禁用I2C2

&i2c2 {
    status = "disabled";
};