当前位置: 首页 > news >正文

嵌入式驱动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是嵌入式显示端口&#xff0c;具有高数据传输速率&#xff0c;高带宽&#xff0c;高分辨率、高刷新率、低电压、简化接口数量等特点。现大多数笔记本电脑都是用的这种接口。整个eDP是很复杂的&#xff0c;这里我们不讲底层原理&#xff0c;我们先掌握如何用泰山派来驱动各种…...

在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。

在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。以下是关于这两种方法的详细解释: 一、虚方法(Virtual Method) 定义:虚方法是指在运行时由实例的实际类型决定的方法。在Java中,所有的非私有、非静态、非final方法都是虚方法。当调用一个虚方法时,JVM会根据实…...

【windows】sonarqube起不来的问题解决

1. 现象与本质 因JDK的问题&#xff08;比如版本太低或者太高,推荐JDK17&#xff09;或者其他环境因素&#xff0c;导致sonarqube启动后自动关闭了。 从日志来看&#xff0c;根本看不出来什么&#xff0c;只有警告&#xff0c;没有ERROR&#xff0c;警告也不是本质问题&#…...

golang异常

panic如果不处理会导致应用进程挂掉 defer recover可以处理这种情况 一个recover只处理自己协程 产生panic的情况 空指针 数组越界 空map中添加键值对 错误&#xff0c;error接口&#xff0c;不严重 error.wrapof解决嵌套问题或者error.unwrap erroe.is方法&#xff0c;判断是…...

搭建MongoDB

title: 搭建MongoDB date: 2024-11-30 23:30:00 categories: - 服务器 tags: - MongoDB - 大数据搭建MongoDB 环境&#xff1a;Centos 7-2009 1. 创建MongoDB的国内yum源 # 下载Centos7对应最新版7.0.15的安装包 cat >> /etc/yum.repos.d/mongodb.repo << &quo…...

Android中坐标体系知识超详细讲解

说来说去都不如画图示意简单易懂啊&#xff01;&#xff01;&#xff01;真是的&#xff01; 来吧先上张图&#xff01; &#xff08;一&#xff09;首先明确一下android 中的坐标系统&#xff1a; 屏幕的左上角是坐标系统原点&#xff08;0,0&#xff09; 原点向右延伸是X轴正…...

不需要服务器,使用netlify快速部署自己的网站

Netlify简介 1.1 Netlify的功能与特点 Netlify 是一个功能强大的静态网站托管平台&#xff0c;它不仅提供了简单的网站部署功能&#xff0c;还集成了许多现代化的开发工具和服务&#xff0c;帮助开发者更高效地构建、部署和管理网站。Netlify 的核心功能包括&#xff1a; 自动…...

Swin transformer 论文阅读记录 代码分析

该篇文章&#xff0c;是我解析 Swin transformer 论文原理&#xff08;结合pytorch版本代码&#xff09;所记&#xff0c;图片来源于源paper或其他相应博客。 代码也非原始代码&#xff0c;而是从代码里摘出来的片段&#xff0c;配上简单数据&#xff0c;以便理解。 当然&…...

信息安全概论

文章目录 预测题重要考点1.遇到什么威胁有什么漏洞怎么缓解分析题2.网络安全现状分析 2.网络安全亮点 时间信息安全概论期末简答题软件学院实验室服务器安全风险分析与PDRR策略 1.1 信息时代的特点1.2 信息安全威胁1.3信息安全趋势1.4 研究网络与信息安全的意义2.1安全风险分析…...

2024年12月16日Github流行趋势

项目名称&#xff1a;PDFMathTranslate 项目维护者&#xff1a;Byaidu reycn hellofinch Wybxc YadominJinta项目介绍&#xff1a;基于 AI 完整保留排版的 PDF 文档全文双语翻译&#xff0c;支持 Google/DeepL/Ollama/OpenAI 等服务&#xff0c;提供 CLI/GUI/Docker。项目star数…...

Go 1.24即将到来!

Go 1.24 尚未发布。以下是正在撰写中的发布说明&#xff0c;预计 Go 1.24 将于 2025 年 2 月发布。 语言改进 Go 1.24 现在全面支持 泛型类型别名&#xff1a;类型别名可以像定义类型一样被参数化。详情请参阅语言规范。目前&#xff0c;可通过设置 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 能根据 类名和属性的信息&#xff0c;匹配到对应的类// 注意&#xff1a;// 1 匹配的时候&#xff0c;case class的属性个数要对上// 2 属性名不需…...

WebRTC搭建与应用(一)-ICE服务搭建

WebRTC搭建与应用(一) 近期由于项目需要在研究前端WebGL渲染转为云渲染&#xff0c;借此机会对WebRTC、ICE信令协议等有了初步了解&#xff0c;在此记录一下&#xff0c;以防遗忘。 第一章 ICE服务搭建 文章目录 WebRTC搭建与应用(一)前言一、ICE是什么&#xff1f;二、什么…...

【计算机视觉基础CV】03-深度学习图像分类实战:鲜花数据集加载与预处理详解

本文将深入介绍鲜花分类数据集的加载与处理方式&#xff0c;同时详细解释代码的每一步骤并给出更丰富的实践建议和拓展思路。以实用为导向&#xff0c;为读者提供从数据组织、预处理、加载到可视化展示的完整过程&#xff0c;并为后续模型训练打下基础。 前言 在计算机视觉的深…...

Kafka学习篇

Architecture 系统间解耦&#xff0c;异步通信&#xff0c;削峰填谷 Topic 消息主题&#xff0c;用于存储消息 Partition 分区&#xff0c;通过扩大分区&#xff0c;可以提高存储量 Broker 部署Kafka服务的设备 Leader kafka主分区 Follwer kafka从分区 高性能之道&#xff1a…...

冬日养仓鼠小指南:温暖与陪伴同行

随着冬日的脚步悄然来临&#xff0c;家中可爱的小仓鼠也需要我们给予更多的关怀与呵护。仓鼠虽小&#xff0c;但它们的冬日养护却大有学问&#xff0c;关乎着这些小生命能否健康快乐地度过寒冷季节。 保暖是冬季养仓鼠的首要任务。我们可以为仓鼠的小窝增添一些保暖材料&#…...

【计算机视觉基础CV】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用

引言 在上一篇文章中&#xff0c;我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型&#xff0c;特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤&#xff0c;读…...

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 算法&#xff0c;以profile01 8-bit SAE J1850 CRC校验为例 四、开始仿真五、运行结果CRC在线校验 当E2E的 CRC算法非常规算法&#xff0c;则需要自己编写代…...

10.JVM-垃圾回收器

Serial 与 Serial Old核心特征&#xff1a;单线程、Stop The World (STW)。工作机制&#xff1a;它们在进行垃圾回收时&#xff0c;必须暂停所有其他的工作线程&#xff0c;直到它收集结束。Serial&#xff1a;新生代&#xff0c;采用标记-复制算法。Serial Old&#xff1a;老年…...

头歌平台实战:C语言文件操作中的数字提取与格式化存储

1. 头歌平台C语言文件操作实战入门 第一次接触头歌平台的C语言文件操作任务时&#xff0c;我完全被那些fopen、fscanf函数弄晕了。直到真正动手完成"数字提取与格式化存储"这个项目&#xff0c;才发现原来文件操作可以这么有趣又实用。这个项目特别适合刚学完C语言基…...

QT控件自适应布局实战:从零到窗口响应式设计

1. QT控件自适应布局入门指南 第一次接触QT界面开发时&#xff0c;最让我头疼的就是窗口大小变化后控件乱成一团的问题。记得当时做的一个小工具&#xff0c;在笔记本上运行好好的&#xff0c;接到大显示器上所有按钮都挤在左上角&#xff0c;简直惨不忍睹。后来摸索出这套自适…...

手把手教你配置Davinci NvM Block:从Fee关联到Dataset索引的保姆级避坑指南

手把手教你配置Davinci NvM Block&#xff1a;从Fee关联到Dataset索引的保姆级避坑指南 在汽车电子软件开发中&#xff0c;非易失性存储管理&#xff08;NvM&#xff09;是确保关键数据持久化的核心模块。Davinci配置工具作为AUTOSAR开发环境的重要组成部分&#xff0c;其NvM B…...

如何10分钟快速上手:语音转换工具完全指南

如何10分钟快速上手&#xff1a;语音转换工具完全指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型&#xff01; 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion…...

vLLM-v0.17.1与卷积神经网络(CNN)结合:多模态推理架构探索

vLLM-v0.17.1与卷积神经网络结合&#xff1a;多模态推理架构探索 1. 前沿技术融合带来的突破 当视觉理解遇上语言推理&#xff0c;会产生怎样的化学反应&#xff1f;我们最近尝试将vLLM-v0.17.1大语言模型与卷积神经网络&#xff08;CNN&#xff09;图像编码器相结合&#xf…...

攻防世界 misc题GFSJ1129-【您看我还有机会吗?】

1.工具:010editor、VMware(Ubuntu、binwalk)、在线 Brainfuck解密、CTF-Tools、ImageStrike、7zFM 2.解题: 方法一(最初的解法): 下载附件后,我们打开,发现有一张图片,点击后发现要密码,我发现没有任何密码的提示,怀疑是伪加密(由于篇幅较长,我后续会在写一篇…...

Sketchfab 3D模型本地化工具:Firefox浏览器专业解决方案

Sketchfab 3D模型本地化工具&#xff1a;Firefox浏览器专业解决方案 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 在数字创作领域&#xff0c;3D资源的离线获取与…...

Spring Boot项目实战:手把手教你配置Google Play订阅与Pub/Sub回调(含完整代码)

Spring Boot实战&#xff1a;构建高可靠Google Play订阅与Pub/Sub回调系统 在移动应用商业化路径中&#xff0c;应用内订阅已成为数字服务持续变现的核心模式。根据Statista数据&#xff0c;2023年全球应用订阅收入达到380亿美元&#xff0c;其中Google Play贡献了超过34%的份额…...

重庆银行:万亿新贵的高光与隐忧

对于重庆银行而言&#xff0c;2026年3月24日是一个值得载入史册的日子。就在这一天&#xff0c;该行正式发布了2025年年度报告&#xff0c;其资产规模突破以往周期&#xff0c;使其成功跻身“万亿级城商行俱乐部”。其中&#xff0c;该行的营收与净利润时隔五年再次实现了“双十…...