rk驱动(rk驱动软件)

1)实验平台:正点原子ATK-DLRK3568开发板
2)平台购买地址:https://detail.tmall.com/item.htm?id=731866264428
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban

LVDS也是现在最流行的屏幕显示接口之一,和MIPI、RGB接口一样,主要用来驱动屏幕面板。LVDS是低电压差分信号,具有低功耗、低误码率、低串扰、低抖动等优点,广泛应用于大尺寸显示器中,比如笔记本屏幕等。瑞芯微的RK3568芯片原生自带了LVDS显示接口,可以用来连接LVDS屏幕,本章我们就来学习一下如何使用RK3568的LVDS接口。

26.1 LVDS简介
26.1.1 LVDS协议简介
LVDS全称为Low-Voltage Differential Signaling,低电压差分信号,这是一种低功耗、低 rk驱动误码率、低串扰和低辐射的差分信号,采用极底的电压摆幅高速差动传输数据,实现点对点或一点对多点的连接。LVDS的信号幅度非常低,-350mV~350mV,通过一对差分线来传输数据。由于电压幅度低,所以LVDS采用恒流模式驱动,因此噪音极底,功耗也很小,无论传输速率高低,其功耗几乎不变。我们一般说的LVDS协议,说的是TIA/EIA-644这个协议。LVDS协议在不断地发展,其传输速度也在不断地增加,目前最新的协rk驱动议最高可以到3.125Gbps。
LVDS的基本工作原理如图26.1.1.1所示:
在这里插入图片描述

图26.1.1.1 LVDS工作原理图
图中左边是驱动源,右边是接收器,驱动源采用3.3mA恒流驱动一对差分线,接收端本身为高直流输入阻抗,所以几乎所有的驱动电流都经过了100Ω的终端匹配电阻,因此在接收端产生约350mV的电压。
关于LVDS接口简介就讲解到这里。
26.1.2 LVDS屏幕
LVDS屏幕就是采用LVDS接口来传输图像数据的屏幕,LVDS屏幕接口一般分为单路6位LVDS、双路6位LVDS、单路8位LVDS和双路8位LVDS,这几种接口的区别如表26.1.2.1所示:
在这里插入图片描述

表26.1.2.1 LVDS屏幕接口区别
从表26.1.2.1可以看出,主要有2个概念:6位和8位,单路和双路。
1、6位和8位
首先来看一下6位8位的区别,6位说的是每个基色采用6位,一共是63=18位RGB数据。6位接口采用4对差分线来传输数据,3对数据差分线(XOUT0+、XOUT0-、XOUT1+、XOUT1-、XOUT2+、XOUT2-)和一对时钟线(CLK+、CLK-)。
8位每个基色采用8bit,一共是8
3=24位RGB数据,8位接口接口采用5对差分线来传输数据,4对数据差分线(XOUT0+、XOUT0-、XOUT1+、XOUT1-、XOUT2+、XOUT2-、XOUT3+、XOUT3-)和一对时钟线(CLK+、CLK-)。
2、单路和双路
单路和双路就是只采用几路LVDS接口,采用双路的目的就是降低时钟频率,随着屏幕分辨率和帧率的增加,像素时钟也急剧增加。当像素时钟超过最高限制的时候就不能用一个通道传输了,而是将输出的像素按顺序分为奇像素和偶像素,将所有的奇像素用一个通道来传输,所有的偶像素用另一个通道传输。如果有必要,可以继续拆分成更多的通道。
正点原子ATK-DLRK3568开发板的LVDS屏幕接口为单路8位,可以驱动正点原子在售的10.1寸1280*800分辨率的LVDS屏幕。正点原子10.1寸LVDS屏幕如图26.1.2.1所示:
在这里插入图片描述

图26.1.2.1 正点原子10.1寸LVDS屏幕
正点原子的10.1寸有RGB和LVDS两种接口,大家在购买的时候要选择LVDS接口屏幕。
26.2 RK3568 LVDS简介
RK3568原生支持一个LVDS接口,可以自己连接LVDS屏幕。RK3568的LVDS接口特性如下:
①、基础特性:
·兼容TIA/EIA-644-A LVDS特性。
·支持RGB888和RGB666格式。
·支持VESA/JEIDA数据格式。
②、每条lane最高支持1.2Gbps速率
③、最高支持1280800@60Hz。
RK3568的LVDS接口与MIPI DSI0接口复用,所以只能二选一,正点原子ATK-DLRK3568开发板默认使用LVDS功能。
25.3小节讲解RK3568的VOP外设的时候,已经说了LVDS使用vp2端口,这样LVDS接口最高支持1280
800@60Hz。
26.3 硬件原理图分析
ATK-DLRK3568的LVDS原理图如图26.3.1所示:
在这里插入图片描述

图26.3.1 LVDS接口原理图
从图26.3.1可以看出,RK3568的LVDS接口是单路8位的,4对差分数据线,1对差分时钟线。LCD0_BL_PWM4是背光调节,连接到RK3568的GPIO0_C3引脚上。正点原子的10.1寸LVDS屏幕支持电容触摸,所以还有触摸屏相关引脚。LVDS_TP_RST_L是触摸复位引脚,连接到RK3568的GPIO3_C4引脚上。LVDS_TP_INT_L是触摸屏的中断引脚,连接到RK3568的GPIO0_C5引脚上。最后就是触摸屏的IIC接口,连接到RK3568的I2C3上,I2C3_SDA和I2C3_SCL分别对应RK3568的GPIO1_A0和GPIO1_A1引脚上。
26.4 实验程序编写
26.4.1 修改设备树
首先打开RK3568的LVDS屏幕绑定文档: kernel/Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt,们简单总结一下LVDS节点信息。
①、必须的参数:
compatible:可以选择:rockchip,px30-lvds、rockchip,rk3126-lvds等。对于RK3568而言,有效的是rockchip,rk3568-lvds。
phy:PHY句柄。
phy-names:PHY名字。
②、可选的参数:
dual-channel:boolean类型,是否使能双通道模式。
rockchip,data-swap:boolean类型,使能或关闭双通道模式下的奇/偶交换。
③、要求的子节点:
LVDS节点有两个与video相关的子节点:
port0:此子节点用来描述LVDS所对应的VOP端口,比如RK3568的vp1和vp2都可以连接LVDS。
port1:此子节点用来描述LVDS屏幕相关信息,比如屏幕分辨率、时序参数等。
打开rk3568.dtsi文件,找到如下内容:
示例代码26.4.1.1 lvds节点

 
 

示例代码26.4.1.2 使能lvds_in_vp2

 
 

示例代码26.4.1.4 lvds panel信息

 
 

26.4.2rk驱动 驱动使能与编译
正点原子ATK-DLRK3568开发板配套的SDK默认没有使能LVDS屏幕,所以需要先使能LVDS屏幕,打开rk3568-lcds.dtsi文件,找到如下所示内容:
示例代码26.4.2.1 使能LVDS屏幕

 
 

示例代码26.4.2.2 使能LVDS

 
 

示例代码26.4.2.3 使能LVDS

 

第7行,将设备树改为rk3568-atk-evb1-ddr4-v10-linux,也就是开启了LVDS屏幕配置的设备树。

第54行,添加一个exit 0,特别注意,不要写错位置了!脚本执行到这里以后就会退出,后面的脚本就不会执行了。后面的脚本是打包rk3568-atk-evb1-mipi-dsi-1080p.dtb、rk3568-atk-evb1-mipi-dsi-720p.dtb和rk3568-atk-evb1-mipi-dsi-10p1_800x1280.dtb三个设备树到resource.img中。但是此时我们不需要这些设备树,我们只需要rk3568-atk-evb1-ddr4-v10-linux设备树。
重新编译内核,得到boot.img文件,将boot.img文件烧写到开发板中,连接正点原子的10.1英寸LVDS屏幕,此时就能点亮了。
26.5 LVDS测试
请注意,由于LVDS屏幕兼容RGB接口和LVDS接口,有些用户可能早已经采购过这个正点原子的10.1英寸屏请检查屏上的电阻,如下位置,要用LVDS接口需要将LVDS接口下的5个排阻全部拆除。请检查,
在这里插入图片描述

图26.5.1 LVDS屏需要拆下5个排阻
重新编译生成boot.img,烧写boot.img,在开发板底板LVDS丝印处通过排线接上LVDS屏幕,上电启动效果如下。
在这里插入图片描述

图26.5.2 LVDS屏上电效果
注意默认LVDS屏幕方向是横屏的,而qt程序是适配竖屏的,所以我们需要旋转weston桌面方向90/270度。编辑/etc/xdg/weston/weston.ini,在文本最后加入如下内容,这样下次开机即为竖屏。


                

转载请说明出处 内容投诉内容投诉
九幽软件 » rk驱动(rk驱动软件)