工具/软件:Linux
您好!
我正在尝试在内核4.4.x 中使 RS485功能在我们的平台上工作、但遇到了一些问题。
我对 TI-kernel 4.4.4.19 (ti-processor-sdk-linux-am335x-evm-03.01.00.06)进行了以下修改:
内核配置:
禁用 CONFIG_SERIAL_8250_OMAP
启用 CONFIG_SERIAL_OMAP
2.设备树: (我使用 uart2作为 RS485端口)
uart2_pins:uart2_pins{
pinctrl-single、pins =<
0xc4 (PIN_OUTPUT | MUX_MODE7) /* LCD_data9.GPIO2[15]*/
0x150 (PIN_INPUT | MUX_MODE1) /* spi0_SCLK.uart2_RxD *
0x154 (PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_TxD *
>;
};
uart2{(&U)
pinctrl-names ="default";
pinctrl-0 =<uart2_PINs>;
状态="正常";
RTS-GPIO =<&GPIO2 15 GPIO_ACTIVE_HIGH_>;
RS485-RTS-高电平有效;
RS485-RTS-DELAY =<0 0>;
Linux、在引导时启用 RS485;
};
RS485只能在2~3 μ 字节中正确发送/接收数据。
我设置了两个器件、并通过以下命令进行了测试:
器件 A:
root@AM335x-EVM:~# stty -F /dev/ttyO2 115200 -echo
root@AM335x-EVM:~# echo "abcdefghij">/dev/ttyO2
root@AM335x-EVM:~# echo "abcdefghij">/dev/ttyO2
器件 B:
root@AM335x-EVM:~# stty -F /dev/ttyO2 115200 -echo
root@AM335x-EVM:~# cat /dev/ttyO2
abcdedghIn
mfabdghkj
相同的配置和硬件可以在内核3.14.x 上正常工作
我尝试将 OMAP-serial.c 从内核3.14.x 移植到内核4.4.x、但结果相同。
请给我一些帮助。
谢谢。