作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习
擅长领域:驱动开发,嵌入式软件开发,BSP开发
作者主页:一个平凡而乐于分享的小比特的个人主页
文章收录专栏:RK3568驱动开发,本专栏为rk3568驱动开发学习记录
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖
RK3568测试(RS232/RS485/CAN/继电器/三路LED/蜂鸣器)
RS232测试
设备树如下
&uart3{dma-names = "tx", "rx";pinctrl-names = "default";pinctrl-0 = <&uart3m1_xfer>;status = "okay";
};&uart4{dma-names = "tx", "rx";pinctrl-names = "default";pinctrl-0 = <&uart4m1_xfer>;status = "okay";
};
在/dev目录下的ttyS3和ttyS4为两路RS232设备,使用microcom 命令可以操作232串口。具体测试如下
将两个232设备的RX和TX口用杜邦线进行连接,如下图所示
连接好之后我们在设备1和设备2上均输入
microcom /dev/ttyS3 -s 115200
测试结果
由于microcom没有回显,所以看不到自己发送的是什么,但是接受的结果是没错的
RS485测试
设备树如下
&uart9 {pinctrl-names = "default";pinctrl-0 = <&uart9m1_xfer &rs485_ctrl>;status = "okay";
};//在rk3568-pinctrl.dtsi下加入
rs485 {rs485_ctrl: rs485-ctrl {rockchip,pins =<4 RK_PD2 RK_FUNC_GPIO &pcfg_output_low>;};
};
因为RS485是半双工的,所以要么先测接收功能要么测发送功能,从原理图上可以看到,接受与发送功能的切换是GPIO4_D2来控制的,默认情况是接收功能,我们可以利用gpioset命令拉高该gpio让其工作在发送模式
测试接受功能
如图所示,利用TTL转RS485模块来作为另外一台RS485设备,连线如下图所示
测试发送功能
将控制引脚拉高电平,输入如下命令
gpioset 4 28=1
CAN测试
设备树如下
&can0 {compatible = "rockchip,can-1.0";assigned-clocks = <&cru CLK_CAN0>;assigned-clock-rates = <150000000>;pinctrl-names = "default";pinctrl-0 = <&can0m1_pins>;status = "okay";
};&can1 {compatible = "rockchip,can-1.0";assigned-clocks = <&cru CLK_CAN1>;assigned-clock-rates = <150000000>;pinctrl-names = "default";pinctrl-0 = <&can1m1_pins>;status = "okay";
};
我们可以用ifconfig -a来查看can的数量,如下图所示
这里我们测试can1的收发功能,can0与之完全相同
首先我们将两个can设备利用杜邦线进行连接,连接如下图所示
连接好之后,我们需要对can1进行配置,利用ip命令
ip link set can1 down //关闭 can 网络
ip link set can1 up type can bitrate 800000 //设置 can1 的波特率为 800kbps,can 网络波特率最大值为 1mbps
ip link set can1 up type can //打开 can 网络
设置好之后,我们上图所示中的设备1作为接受方,设备2作为发送方
在设备1上输入
candump can1
在设备2上输入
cansend can1 123#01020304050607
结果如图所示
继电器测试
开发板上有两路继电器
利用gpioset来控制继电器的开与关,当我们设置这两个gpio的电平时会听到继电器发出“咔嚓”的声音,此时证明继电器是正常的。
例如输入
gpioset 3 28=0
gpioset 3 28=1
三路LED和Buzzer引脚测试
这里的测试只要就是对这些gpio进行配置即可,利用gpioset来控制高低电平
注意:这四个gpio在设备树中可能会被其他设备所占用,导致不能操作gpio,所以要查看哪些设备占用着这几个gpio需要屏蔽掉这些设备。
测试方法
由于这四个引脚都是用MOS管控制的开漏输出,所以我们需要去测试MOS管的栅极看看是否是3.3V电平
规则:
GPIO输出1的时候,对应的栅极是0V
GPIO输出0的时候,对应的栅极是3.3V
利用万用表,将万用表调到直流电压20V这一档,这四个模块对应的三极管如下图所示,利用gpioset来控制四个gpio的高低电平,看看是否符合上述规则。