[经验分享] RS485在OpenHarmony设备上的是适配 原创

诚迈-小唐僧 显示全部楼层 发表于 2024-8-27 20:45:35

1、485简介

对于linux下的485使用,其实就是linux下的串口使用。但是485有一个控制信号,在485等待接收的时候,控制信号需要时低电平,在发送的时候需要为高电平。所以对于linux下485驱动,最主要的任务就是完的成对控制信号电平的操作。以下操作完成485接口自收发功能,不需要应用控制信号进行收发。

2、dts配置:

rs485 {
        uart0_tx_en_gpio: uart0-tx-en-gpio {
            rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
        };

        uart3_tx_en_gpio: uart3-tx-en-gpio {
            rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
        };

        uart4_tx_en_gpio: uart4-tx-en-gpio {
            rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
        };

        uart5_tx_en_gpio: uart5-tx-en-gpio {
            rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
        };
    };
 &uart0 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart0_xfer &uart0_tx_en_gpio>;
    rs485-txen-gpio = <&gpio2 RK_PD0 GPIO_ACTIVE_HIGH>;
};

&uart3 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart3m1_xfer &uart3_tx_en_gpio>;
    rs485-txen-gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
};

&uart4 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart4m1_xfer &uart4_tx_en_gpio>;
    rs485-txen-gpio = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
};

&uart5 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart5m1_xfer &uart5_tx_en_gpio>;
    rs485-txen-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
};

3、驱动更换:

8250.ko

8250_base.ko

8250_dw.ko

8250_of.ko

build.gn

serial_core.ko

config中关闭原配置

.config中更改:
CONFIG_SERIAL_8250=m
CONFIG_SERIAL_8250_DW=m
CONFIG_SERIAL_OF_PLATFORM=m

使用KO加载实现自动收发功能。

在init.cfg中添加一下命令(按照指定顺序加载)。
                "insmod /etc/serial_core.ko",
                "insmod /etc/8250_base.ko",
                "insmod /etc/8250.ko",
                "insmod /etc/8250_of.ko",
                "insmod /etc/8250_dw.ko",

4、如果不想用KO加载,那么按照以下方法进行驱动修改。

Linux RS485串口驱动修改方法--基于Rockchip及Amlogic验证_linux rs485驱动-CSDN博客

5、测试:(默认串口是9600 8N1)

使用485转USB工具或者485装以太网工具,将A-A,B-B后再电脑端使用串口工具进行收发即可。

0

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论1

fengyunrenwu

沙发 发表于 2024-8-28 18:17:24
有些图片看不见噢~~

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部