当前位置: 首页 > 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;则需要自己编写代…...

思源宋体TTF终极指南:7种字重解决中文排版所有难题

思源宋体TTF终极指南&#xff1a;7种字重解决中文排版所有难题 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是否在为中文项目寻找完美的开源字体而烦恼&#xff1f;商业字体价格昂…...

联盟营销管理系统有哪些?如何选择?

在SaaS工具出海营销的广阔天地里&#xff0c;联盟营销&#xff08;Affiliate Marketing&#xff09;以其独特的优势成为众多企业竞相探索的流量获取新途径。本文将简要介绍几款主流的联盟营销工具,探讨其独特之处及适用场景。PartnerShare联盟系统PartnerShare联盟系统是中国出…...

Parabolic:简单高效的免费视频下载工具,yt-dlp图形界面终极方案

Parabolic&#xff1a;简单高效的免费视频下载工具&#xff0c;yt-dlp图形界面终极方案 【免费下载链接】Parabolic Download web video and audio 项目地址: https://gitcode.com/GitHub_Trending/pa/Parabolic 还在为寻找一款既强大又易用的视频下载工具而烦恼吗&…...

TI毫米波雷达IWR1642原始数据采集避坑指南:DCA1000配置、IQ顺序与帧大小限制

TI毫米波雷达IWR1642原始数据采集实战&#xff1a;DCA1000高级配置与数据解析精要 毫米波雷达在自动驾驶、工业检测等领域的应用日益广泛&#xff0c;而原始数据采集作为研发和算法验证的基础环节&#xff0c;其稳定性和准确性至关重要。本文将深入探讨IWR1642与DCA1000搭配使用…...

从PLINK到CMplot:三步绘制高颜值SNP密度图

1. 从PLINK数据到SNP密度图&#xff1a;为什么需要可视化 做基因组分析的朋友都知道&#xff0c;拿到原始数据后的第一件事就是检查数据质量。我刚开始做GWAS研究时&#xff0c;导师问的第一个问题就是&#xff1a;"你的SNP在染色体上分布均匀吗&#xff1f;"当时我就…...

嵌入式 C 语言宏的高级编程技巧~

嵌入式情报局 嵌入式 C 语言宏的高级编程技巧~ 用VSCode打造嵌入式 Linux 开发的终极 IDE...

oracle 大表(1亿以上)迁移笔记一

作者:蓝鸟 1974 CSDN:https://blog.csdn.net/weixin_42767242 关键字 大表迁移、存储过程批量归档、定时 JOB、索引维护、统计信息收集、NOLOGGING、BULK COLLECT、FORALL 一、场景概述 在医院 HIS/EMR 系统中,业务流水表、病历明细表数据增长极快,单表数据量轻松突破…...

如何3分钟完成漫画翻译:BallonsTranslator AI智能工具完全指南

如何3分钟完成漫画翻译&#xff1a;BallonsTranslator AI智能工具完全指南 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址…...

告别繁琐部署:VS2022一站式打包WinForm应用为独立安装包

1. 为什么需要一站式打包WinForm应用&#xff1f; 每次开发完WinForm应用后&#xff0c;最头疼的就是怎么把程序交给用户使用。直接发个Debug文件夹&#xff1f;用户可能会遇到各种问题&#xff1a;缺少.NET运行环境、依赖的DLL文件丢失、注册表没配置...作为开发者&#xff0c…...

基于OpenClaw构建AI智能体:从RAG到自动化工作流的实战指南

1. 项目概述&#xff1a;一个开源AI应用案例的“藏宝图”最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的仓库&#xff0c;叫awesome-openclaw-usecases-zh。光看名字&#xff0c;就能拆解出几个关键信息&#xff1a;“awesome”系列&#xff08;意味着是精选合集&#xf…...