6851|2

30

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

[嵌入式linux] rk3568 android11点屏流程 [复制链接]

 

rk3568 芯片非常强大,可以支持的屏幕接口有很多,显示接口支持可是非常丰富的,



sunychip-rk3568开发板支持 MIPI 接口的屏幕,接口如下图所示:

 

1 屏幕点亮流程
点亮屏幕基本的流程是一致的,一般是背光使能---->背光点亮---->屏幕使能---->reset 引
脚按照指定的时序/波形拉高或者拉低---->初始化序列命令发送。
流程主要是以下几步
需要向屏幕厂商要一些屏幕关键参数和资料
进行关键引脚对应
进行设备树配置
进行驱动配置
源码编译,烧写镜像测试
15.2.1关键引脚对应
15.2.2屏幕关键参数
15.2.3屏幕初始化序列改写
2根据屏参和硬件设计填写 dts
这一部分是重点,全部之前的工作全为此处进行准备。我们新建一个 dtsi 文件特意放屏
幕相关的:kernel/arch/arm64/boot/dts/rockchip/topeet_rk3568_lcds.dtsi
然后在kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dts 文件中加入这个头文
件,如下图所示:

 

另注意,由于 DTS 文件设计到层层包含(DTS 文件可以包含后缀为.dtsi 的文件,作用就

 

像 C 语言中的.h 文件),故建议重要配置及板卡特性配置写到最后一级的 DTS 文件中,防
止由于在较高层级的 dtsi 配置后手误在后面又进行了配置,导致配置被错误覆盖。
共需要以下几个重点内容:dsi, route_dsi, backlight, vcc_lcd,dsi_in_vopb,
dsi_in_vopl,vopb。
2.1 dsi节点
mipi 屏幕我们使用 dsi1 接口,所以需要在设备树里面查找 dsi 节点,如下图所示:
kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi

 

(瑞芯微写好的)

 

kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi(瑞芯微写好的)

 

 

dsi1: dsi@fe070000 {

 

 

compatible = "rockchip,rk3568-mipi-dsi";
reg = <0x0 0xfe070000 0x0 0x10000>;
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru PCLK_DSITX_1>, <&cru HCLK_VO>, <&video_phy1>;
clock-names = "pclk", "hclk", "hs_clk";
resets = <&cru SRST_P_DSITX_1>;
reset-names = "apb";
phys = <&video_phy1>;
phy-names = "mipi_dphy";
power-domains = <&power RK3568_PD_VO>;
rockchip,grf = <&grf>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
dsi1_in: port@0 {
reg = <0>;
#address-cells = <1>;dsi1: dsi@fe070000 {
compatible = "rockchip,rk3568-mipi-dsi";
reg = <0x0 0xfe070000 0x0 0x10000>;
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru PCLK_DSITX_1>, <&cru HCLK_VO>, <&video_phy1>;
clock-names = "pclk", "hclk", "hs_clk";
resets = <&cru SRST_P_DSITX_1>;
reset-names = "apb";
phys = <&video_phy1>;
phy-names = "mipi_dphy";
power-domains = <&power RK3568_PD_VO>;
rockchip,grf = <&grf>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
dsi1_in: port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
dsi1_in_vp0: endpoint@0 {
reg = <0>;
remote-endpoint = <&vp0_out_dsi1>;
status = "disabled";
};
dsi1_in_vp1: endpoint@1  {
reg = <1>;
remote-endpoint = <&vp1_out_dsi1>;
status = "disabled";
};
};
};
};

 

#size-cells = <0>;

 

dsi1_in_vp0: endpoint@0 {
reg = <0>;
remote-endpoint = <&vp0_out_dsi1>;
status = "disabled";
};
dsi1_in_vp1: endpoint@1 {
reg = <1>;
remote-endpoint = <&vp1_out_dsi1>;
status = "disabled";
};
};
};

 

};

 

默认的源码中是配置了 dsi1 节点的,是适配的瑞芯微的屏幕。现在我们要适配迅为的
MIPI 7 寸屏,所以我们在修改之前,要删掉瑞芯微之前适配的屏幕节点。在下图的设备树中
找到&dsi1 以及和 dsi1 相关的注释掉。

 

我们使用 dsi1 绑定到 vp1 上,所以 dsi1_in_vp0 节点为 disabled,dsi1_in_vp1 节点为 okay

 

当 dsi1 使能的时候,video_phy1 要使能,video_phy0 要关闭。设备树 topeet_rk3568_lcds.dtsi

 

中添加如下图所示:

 

 

2.2 Backlight

 

背光常用的有三种情况:
一是 常开。
二是 背光 IC 使能后,输入 PWM 信号调光。
三是 背光 IC 使能后,通过 FB 获得反馈自动进行调光。

 

设备树里面配置背光。首先根据原理图,我们知道使用的是 pwm5,

 

 

pwms = <&pwm5 0 25000 0>; 配置 pwm,使用 pwm5,25000 是周期,pwm 为正极性。

 

brightness-levels 属性:配置背光亮度数组,一般以值 255 为一个 scale,当 pwm 设置为正
极时,从 0~255 表示背光为正极,占空比从 0%~100%变化,,255~0 为负极性,占空比从
100%~0%变化,当 pwm 设置为负极性时,反之。
default-brightness-level 属性,时开机时默认背光亮度,范围是 0~255
2.3 ** 显示
设备树kernel/scripts/dtc/include-prefixes/arm64/rockchip/rk3568.dtsi 中节点如下:

 

所以我们要使用 route_dsi1 显示通路,绑定到 vp1 上,修改

 

kernel/scripts/dtc/include-prefixes/arm64/rockchip/topeet_rk3568_lcds.dtsi文件,添加如下所
示:

 

3 Config 配置

 

RK3568 SDK 下 kernel/arch/arm64/configs/*_defconfig 已经把 LCD 相关的配置设置好了,
如果自己做了修改,修改kernel/arch/arm64/configs/rockchip_defconfig 配置文件,增加如下
所示:
CONFIG_DRM_ROCKCHIP=y
CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_DRM_PANEL_SIMPLE=y
4烧写验证
4.1测试显示
重新编译 android 源码,烧写镜像,发现 mipi 屏幕显示正常。如下图所示:
4.2 背光亮度调节测试
目前还没有配置屏幕触摸,我们可以在开发板上插上鼠标,进入”设置”APP,依次点击
“显示”,“亮度”,拖动滑条可以调节亮度。
也可以使用命令行来设置屏幕亮度,数值可以在 0~250 中设置,数字越大,亮度越高。

 

echo 100 >/sys/class/backlight/backlight/brightness

 

最新回复

这个板子接口较多,是智能盒子上用的吗,3568也是RK比较新的平台了。   详情 回复 发表于 2022-6-14 13:55
点赞 关注
 
 

回复
举报

6973

帖子

11

TA的资源

版主

沙发
 
现在嵌入式看来越来越普及之势呀,希望楼主多出好作品,谢谢分享!
 
 
 

回复

121

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

这个板子接口较多,是智能盒子上用的吗,3568也是RK比较新的平台了。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表