嵌入式驱动RK3566 HDMI eDP MIPI 背光 屏幕选型与调试提升篇-eDP屏
eDP是嵌入式显示端口,具有高数据传输速率,高带宽,高分辨率、高刷新率、低电压、简化接口数量等特点。现大多数笔记本电脑都是用的这种接口。整个eDP是很复杂的,这里我们不讲底层原理,我们先掌握如何用泰山派来驱动各种常见的eDP屏幕,eDP在使用上来讲也会比上面的HDMI复杂很多,HDMI屏幕基本不需要适配即插即用,虽然大多数eDP屏幕参数基本差不多,但是有些eDP还是需要我配置屏参的,如果屏幕参数不正确可能无法点亮。泰山派eDP接口位于板载顶部位置。
分辨率与尺寸:
最大支持分辨率是主控决定的,通过数据手册可知RK3566的eDP接口最大支持2560x1600@60Hz,所以所选的eDP屏幕分辨率不大于这个分辨率就行,大于了点不亮,
常见的尺寸有11.6寸,13.3寸,15.6寸等,屏幕对尺寸没有太大要求可以根据自己的项目和喜好来选择。
引脚接口:
接口线序要和板载资源一样,否则需要自己画转接板,泰山派的eDP接口用的是30Pin 0.5mm的FPC座,30Pin引脚大多数线序都是通用的,但大家不能盲目的看见一个30Pin的eDP屏幕就直接怼上去,还需要确定一下它的引脚顺序他用的排线是正排线还是反排线,电源电源是否匹配,还有背光供电电压是否匹配等。


上图就是我们的板载资源的硬件图示了,接口不要搞错了,这边用的是泰山派。

上图就是我们买的一款edp屏幕的参数。
屏幕调试
要调试eDP屏幕我们首先要找到泰山派user设备树linux/kernel/arch/arm64/boot/dts/tspi-rk3566-user-v10-linux.dts,并打开tspi-rk3566-user-v10-linux.dts 设备树头文件,这里面主要是和我们edp相关的设备树配置。

tspi-rk3566-edp-v10.dtsi设备树分析
edp相关的设备树tspisdk/kernel/arch/arm64/boot/dts/rockchiptspi-rk3566-edp-v10.dtsi,我们要修改的其实就13行-21行屏幕就参数正确屏幕就能点亮这些参数后续也会讲到,这里作为一个引子。
/ {edp_panel: edp-panel {compatible = "simple-panel"; //上节我们讲过的edp驱动通过这个来匹配设备树backlight = <&backlight>; // 引用背光,在下面背光是一个PWM信号enable-gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; // 激活GPIO引脚enable-delay-ms = <120>; // 开启延迟时间(毫秒)pinctrl-0 = <&edp_en_gpio>; // 引脚控制器edp_disp_timings: display-timings {native-mode = <&edp_timing0>;/*开始:这一部分就是我们要调试的屏幕参数了*/edp_timing0: edp_timing0 {clock-frequency = <150000000>; // 像素时钟频率hactive = <1920>; // 水平像素数vactive = <1080>; // 垂直像素数hfront-porch = <150>; // 水平前肩期hsync-len = <5>; // 水平同步长度hback-porch = <5>; // 水平后肩期vfront-porch = <3>; // 垂直前肩期vsync-len = <1>; // 垂直同步长度vback-porch = <9>; // 垂直后肩期hsync-active = <0>; // 水平同步有效状态vsync-active = <0>; // 垂直同步有效状态de-active = <0>; // DE有效状态pixelclk-active = <0>; // 像素时钟有效状态};/*结束:这一部分就是我们要调试的屏幕参数了*/};ports {panel_in_edp: endpoint {remote-endpoint = <&edp_out_panel>; // 引用端点连接};};};/*这是我们的背光*/backlight: backlight {compatible = "pwm-backlight";pwms = <&pwm4 0 25000 0>; // PWM参数设置brightness-levels = < // 亮度级别0 20 20 21 21 22 22 23// 其他亮度级别...254 255>;default-brightness-level = <200>; // 默认亮度级别};
};&pwm4 { //背光引脚使用的是PWM4status = "okay"; // PWM状态为正常
};&pinctrl {edp {edp_en_gpio: edp-en-gpio { //这个是edp对应的使能引脚rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; // GPIO设置};};
};&edp {status = "okay";force-hpd; // 强制HPD,这里非常重要哟,因为我们硬件上面是没有去做检测的所以要强制ports {edp_out: port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;edp_out_panel: endpoint@0 {reg = <0>;remote-endpoint = <&panel_in_edp>; // 远程端点连接};};};
};&edp_phy {status = "okay"; // EDP PHY状态为正常
};&route_edp {status = "okay"; // EDP线路状态为正常//注意我们前面有讲到rk3566有两个vop,我们这里就是来链接vop的,你可以选择1或者0这里我们选择0connect = <&vp0_out_edp>; // 连接设置// connect = <&vp1_out_edp>;
};
//注意我们前面有讲到rk3566有两个vop,我们这里就是来链接vop的,你可以选择1或者0这里我们选择0
&edp_in_vp0 {status = "okay"; // EDP输入VP0状态为正常
};
//注意我们前面有讲到rk3566有两个vop,我们这里就是来链接vop的,我们前面选择了vp0所以这里vp1就关掉
&edp_in_vp1 {status = "disabled"; // 禁用EDP输入VP1
};&edp_panel {status = "okay"; // 打开edp面板,这个一定要打开哟如果用edp屏幕
};
edp背光电路
/ {edp_panel: edp-panel {compatible = "simple-panel"; //上节我们讲过的edp驱动通过这个来匹配设备树backlight = <&backlight>; // 引用背光,在下面背光是一个PWM信号/*这是我们的背光*/backlight: backlight {compatible = "pwm-backlight";pwms = <&pwm4 0 25000 0>; // PWM参数设置brightness-levels = < // 亮度级别0 20 20 21 21 22 22 23// 其他亮度级别...254 255// 如果你在安卓里面调背光发现是反的可以把这个数组倒过来>;default-brightness-level = <200>; // 默认亮度级别};
};&pwm4 { //背光引脚使用的是PWM4status = "okay"; // PWM状态为正常
};

edp使能引脚
/ {edp_panel: edp-panel {compatible = "simple-panel"; //上节我们讲过的edp驱动通过这个来匹配设备树pinctrl-0 = <&edp_en_gpio>; // 引脚控制器.......
};&pinctrl {edp {edp_en_gpio: edp-en-gpio { //这个是edp对应的使能引脚rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; // GPIO设置};};
};
.......
GPIO0_A6_d这个引脚就是普通的GPIO,通过高低电平来控制edp屏幕打开与关闭

屏幕参数调试
水平像素参数:Hor Active = 1366,表示水平活动像素为 1366 个。
水平空白参数:Hor Blanking = 160,表示水平空白像素为 160 个。
垂直像素参数:Ver Active = 768,表示垂直活动像素为 768 个。
垂直空白参数:Ver Blanking = 22,表示垂直空白像素为 22 个。
水平同步参数:Hor Sync Offset = 48,表示水平同步偏移量为 48;H Sync Pulse Width = 32,表示水平同步脉冲宽度为 32。
垂直同步参数:V sync Offset = 3 line,表示垂直同步偏移量为 3 行;V Sync Pulse width = 6 line,表示垂直同步脉冲宽度为 6 行。
对应到我们设备树中
clock-frequency:可以对应上面提到的主时钟频率,即 72.3 MHz。
hactive:可以对应上面提到的水平活动像素,即 Hor Active = 1366。
vactive:可以对应上面提到的垂直活动像素,即 Ver Active = 768。
hfront-porch、hsync-len 和 hback-porch:可以对应上面提到的水平同步参数,即 Hor Sync Offset、H Sync Pulse Width 和 Hor Blanking。
vfront-porch、vsync-len 和 vback-porch:可以对应上面提到的垂直同步参数,即 V sync Offset、V Sync Pulse width 和 Ver Blanking。
/*************************************************11.6寸1366x768
**************************************************/
&edp_timing0 {clock-frequency = <72300000>;hactive = <1366>;vactive = <768>;hfront-porch = <48>;hsync-len = <32>;hback-porch = <160>;vfront-porch = <3>;vsync-len = <6>;vback-porch = <32>;hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;
};
相关文章:
嵌入式驱动RK3566 HDMI eDP MIPI 背光 屏幕选型与调试提升篇-eDP屏
eDP是嵌入式显示端口,具有高数据传输速率,高带宽,高分辨率、高刷新率、低电压、简化接口数量等特点。现大多数笔记本电脑都是用的这种接口。整个eDP是很复杂的,这里我们不讲底层原理,我们先掌握如何用泰山派来驱动各种…...
在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。
在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。以下是关于这两种方法的详细解释: 一、虚方法(Virtual Method) 定义:虚方法是指在运行时由实例的实际类型决定的方法。在Java中,所有的非私有、非静态、非final方法都是虚方法。当调用一个虚方法时,JVM会根据实…...
【windows】sonarqube起不来的问题解决
1. 现象与本质 因JDK的问题(比如版本太低或者太高,推荐JDK17)或者其他环境因素,导致sonarqube启动后自动关闭了。 从日志来看,根本看不出来什么,只有警告,没有ERROR,警告也不是本质问题&#…...
golang异常
panic如果不处理会导致应用进程挂掉 defer recover可以处理这种情况 一个recover只处理自己协程 产生panic的情况 空指针 数组越界 空map中添加键值对 错误,error接口,不严重 error.wrapof解决嵌套问题或者error.unwrap erroe.is方法,判断是…...
搭建MongoDB
title: 搭建MongoDB date: 2024-11-30 23:30:00 categories: - 服务器 tags: - MongoDB - 大数据搭建MongoDB 环境:Centos 7-2009 1. 创建MongoDB的国内yum源 # 下载Centos7对应最新版7.0.15的安装包 cat >> /etc/yum.repos.d/mongodb.repo << &quo…...
Android中坐标体系知识超详细讲解
说来说去都不如画图示意简单易懂啊!!!真是的! 来吧先上张图! (一)首先明确一下android 中的坐标系统: 屏幕的左上角是坐标系统原点(0,0) 原点向右延伸是X轴正…...
不需要服务器,使用netlify快速部署自己的网站
Netlify简介 1.1 Netlify的功能与特点 Netlify 是一个功能强大的静态网站托管平台,它不仅提供了简单的网站部署功能,还集成了许多现代化的开发工具和服务,帮助开发者更高效地构建、部署和管理网站。Netlify 的核心功能包括: 自动…...
Swin transformer 论文阅读记录 代码分析
该篇文章,是我解析 Swin transformer 论文原理(结合pytorch版本代码)所记,图片来源于源paper或其他相应博客。 代码也非原始代码,而是从代码里摘出来的片段,配上简单数据,以便理解。 当然&…...
信息安全概论
文章目录 预测题重要考点1.遇到什么威胁有什么漏洞怎么缓解分析题2.网络安全现状分析 2.网络安全亮点 时间信息安全概论期末简答题软件学院实验室服务器安全风险分析与PDRR策略 1.1 信息时代的特点1.2 信息安全威胁1.3信息安全趋势1.4 研究网络与信息安全的意义2.1安全风险分析…...
2024年12月16日Github流行趋势
项目名称:PDFMathTranslate 项目维护者:Byaidu reycn hellofinch Wybxc YadominJinta项目介绍:基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker。项目star数…...
Go 1.24即将到来!
Go 1.24 尚未发布。以下是正在撰写中的发布说明,预计 Go 1.24 将于 2025 年 2 月发布。 语言改进 Go 1.24 现在全面支持 泛型类型别名:类型别名可以像定义类型一样被参数化。详情请参阅语言规范。目前,可通过设置 GOEXPERIMENTnoaliastypep…...
FFmpeg库之ffplay
文章目录 FFmpeg环境搭建ffplay使用通用选项视频选项音频选项快捷键使用滤镜直播拉流 FFmpeg环境搭建 FFmpeg官网 FFmpeg环境搭建 ./configure \--prefix"$HOME/ffmpeg" \--extra-cflags"-I$HOME/ffmpeg/include" \--extra-ldflags"-L$HOME/ffmpeg…...
scala中模式匹配的应用
package test34object test6 {case class Person(name:String)case class Student(name:String, className:String)// match case 能根据 类名和属性的信息,匹配到对应的类// 注意:// 1 匹配的时候,case class的属性个数要对上// 2 属性名不需…...
WebRTC搭建与应用(一)-ICE服务搭建
WebRTC搭建与应用(一) 近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC、ICE信令协议等有了初步了解,在此记录一下,以防遗忘。 第一章 ICE服务搭建 文章目录 WebRTC搭建与应用(一)前言一、ICE是什么?二、什么…...
【计算机视觉基础CV】03-深度学习图像分类实战:鲜花数据集加载与预处理详解
本文将深入介绍鲜花分类数据集的加载与处理方式,同时详细解释代码的每一步骤并给出更丰富的实践建议和拓展思路。以实用为导向,为读者提供从数据组织、预处理、加载到可视化展示的完整过程,并为后续模型训练打下基础。 前言 在计算机视觉的深…...
Kafka学习篇
Architecture 系统间解耦,异步通信,削峰填谷 Topic 消息主题,用于存储消息 Partition 分区,通过扩大分区,可以提高存储量 Broker 部署Kafka服务的设备 Leader kafka主分区 Follwer kafka从分区 高性能之道:…...
冬日养仓鼠小指南:温暖与陪伴同行
随着冬日的脚步悄然来临,家中可爱的小仓鼠也需要我们给予更多的关怀与呵护。仓鼠虽小,但它们的冬日养护却大有学问,关乎着这些小生命能否健康快乐地度过寒冷季节。 保暖是冬季养仓鼠的首要任务。我们可以为仓鼠的小窝增添一些保暖材料&#…...
【计算机视觉基础CV】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
引言 在上一篇文章中,我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型,特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤,读…...
Python爬虫之代理的设置
【1】urllib中使用公开代理 import urllib.requesturl http://www.baidu.com/s?wdipheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 }# 请求对象的定制 request urllib.req…...
Canoe E2E校验自定义Checksum算法
文章目录 一、添加 DBC文件二、导入要仿真的ECU节点三、编写 CAPL脚本1. 创建 .can 文件2. 设置counter递增3. 设置 CRC 算法,以profile01 8-bit SAE J1850 CRC校验为例 四、开始仿真五、运行结果CRC在线校验 当E2E的 CRC算法非常规算法,则需要自己编写代…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...
