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

rk3568点亮LCD(lvds)

rk3568 Android11/12 适配 lvds 屏

LVDS(Low Voltage Differential Signal)即低电压差分信号。1994年由美国国家半导体(NS)公司为克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方式。它是一种电平标准,广泛应用于液晶屏接口。
  其中发送端是一个3.5mA的电流源,产生的3.5mA的电流通过差分线中的一路到接收端。由于接收端对于直流表现为高阻,电流通过接收端的100Ω的匹配电阻产生350mV的电压,同时电流经过差分线的另一路流回发送端。当发送端进行状态变化时,通过改变流经100Ω电阻的电流方向产生有效的’0’和’1’ 态。
  它是电流驱动的,通过在接收端放置一个负载而得到电压,当电流正向流动,接收端输出为1,反之为0。

  1. LVDS是电流驱动模式 电压摆幅350mV,加载在100Ω电阻上;
  2. 传输速度快,推荐最大速率为655Mbps ,理论极限速率为1.923Gbps;
  3. LVDS不太适合较长距离的信号传送;
  4. LVDS接口只用于传输视频数据;
  5. LVDS接口主要将RGB TTL非平衡传输信号转换成LVDS平衡传输信号进行传输;
  6. LVDS不支持热插拔。

提示:rk3568 芯片设计只预留单lvds,双LVDS需要借助 mipi 或者HDMI 转换。

文章目录

  • rk3568 Android11/12 适配 lvds 屏
  • 圈重点 看想学
  • 1. rk3568 适配 LVDS屏
  • 2 LVDS 屏参调整
  • Tips
  • 总结


圈重点 看想学

a) rk3568 适配单LVDS屏
b) rk3568 调试过程异常情况


1. rk3568 适配 LVDS屏

  • 核查原理图,适配LVDS硬件
    确认屏端供电、复位、使能,只有VCC3V3_LCD。
    在这里插入图片描述
  • 确认 VCC3V3_LCD 控制信号 LVDS_ON 对应 GPIO3_D6。
    在这里插入图片描述
  • 确认背光,BL_EN 对应GPIO2_B1, PWM 信号使用 PWM4。
    在这里插入图片描述
  • 只因在图中多看一眼,发现不一样地方; PWM 和 BL_EN 均有反转三极管。
    在这里插入图片描述
  • 适配内核设备树
    屏幕上电时许可在点亮屏幕慢慢调整,至于屏参则需要看屏幕规格书。
/ {vcc3v3_lcd0_n: vcc3v3-lcd0-n {gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_LOW>;};backlight: backlight {pwms = <&pwm4 0 25000 1>;enable-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;};panel {compatible = "simple-panel";backlight = <&backlight>;power-supply = <&vcc3v3_lcd0_n>;enable-delay-ms = <20>;prepare-delay-ms = <20>;unprepare-delay-ms = <20>;disable-delay-ms = <20>;bus-format = <MEDIA_BUS_FMT_RGB888_1X24>;width-mm = <217>;height-mm = <136>;display-timings {native-mode = <&timing0>;timing0: timing0 {clock-frequency = <68000000>;hactive = <800>;vactive = <1280>;hback-porch = <32>;hfront-porch = <16>;vback-porch = <4>;vfront-porch = <2>;hsync-len = <16>;vsync-len = <2>;hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;};};ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;dual-lvds-even-pixels;panel_in_lvds: endpoint {remote-endpoint = <&lvds_out_panel>;};};};};
};&dsi0 {status = "disabled";
};&dsi0_in_vp0 {status = "disabled";
};&dsi0_in_vp1 {status = "disabled";
};&video_phy0 {status = "okay";
};&lvds {status = "okay";ports {port@1 {reg = <1>;lvds_out_panel: endpoint {remote-endpoint = <&panel_in_lvds>;};};};
};&lvds_in_vp1 {status = "okay";
};&lvds_in_vp2 {status = "disabled";
};&route_lvds {status = "okay";connect = <&vp1_out_lvds>;
};

2 LVDS 屏参调整

timing0中参数解释如下:
水平分辨率:hactive 垂直分辨率:vactive
水平前尖:hfront-porch(HFP) 垂直前尖:vfront-porch (VFP)
水平后尖:hback-porch(HBP) 垂直后尖:vback-porch (VBP)
水平消隐信号:hsync - len(HS) 垂直消隐信号:vsync - len (VS)
– clock-frequency = HFP(Hactive + HS + HBP) x VFP(Vactive + VS + VBP) x fps(帧频率)
– lane-rate = clk (时钟频率) x RGB(3) x BIT(6或8) / lane_num
lane_num 表示差分时钟通道数,RGB与BIT值根据 dsi,format 具体情况而定。
– dsi,format 表示RGB三原色位深大小,可用参数如下:
MEDIA_BUS_FMT_RGB888_1X24 表示8bit色深
MEDIA_BUS_FMT_RGB666_1X18 表示6bit色深

在这里插入图片描述上图是行同步信号:HS 为 864 = hsync+hbp+hactive+hfp = 16+32+800+16,在DE 为高电平时,HS 为低电平的时候就是有效的数据,即屏的水平像素为800。在HS 为高电平时,DE 是低电平,此时不显示数据,作用是消隐,即hsync。然后 32 个像素HBP 参数,就是等待屏真实数据信号前的无效信号数据长度,如果此时出现真实像素数据,很可能会丢数据和出现杂波。多余32 个像素看似多与时则防止这种情况;同理还有16 像素的HFP。
在这里插入图片描述在这里插入图片描述上图是场同步信号,它与行同步信号相匹配,在DE 为高电平时里面会有1280 个行同步信号。按照当前屏幕 800x1280,看作每个数据包传输一个像素(pixel),800个水平方向像素传输完成需要一个行同步信号;水平行像素累积到1280则会需要产生一个场同步信号,确定这一帧图像传输完成。
人的视觉暂留效益,图像帧率达到30fps就会产生图像在一直运动的假象。

屏幕参数不对会出现闪屏和条纹。只需要对照规格书细微调整 前后肩,同步信号。
系统启动后可以查看屏参吗?查看VOP 属性确定相关数据。

# Android 查看 vop
cat /d/dri/0/summary
# linux 查看 vop
cat /sys/kernel/debug/dri/0/summary

Tips

  1. 开机过程屏幕无显示,休眠唤醒后显示正常
    信号传输可排除,休眠唤醒时许也可排除;开机过程上电时许要核查
  2. 开机后一直黑屏,上电时许、信号均正常
    可以去掉 logo 显示再次尝试,如果可正常看到 Android开机动画,很大概率时 VOP 不匹配。
&lvds_in_vp1 {status = "okay";
};&lvds_in_vp2 {status = "disabled";
};&route_lvds {status = "okay";connect = <&vp1_out_lvds>;
};
  1. 开机后黑屏,上电时许、信号异常
    需要核查设备树,确保 dsi0关闭。
&video_phy0 {status = "okay";
};

硬件须要确认各路供电是否正常。

  1. 开机后背光不亮,要仔细核查背光;本文中有反转三极管,需要翻转PWM极性,和使能信号有效电平
	backlight: backlight {pwms = <&pwm4 0 25000 1>;enable-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;};

总结

活学活用,做个合格的搬运工。

相关文章:

rk3568点亮LCD(lvds)

rk3568 Android11/12 适配 lvds 屏 LVDS&#xff08;Low Voltage Differential Signal&#xff09;即低电压差分信号。1994年由美国国家半导体&#xff08;NS&#xff09;公司为克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方…...

全终端办公电子邮件集成方案

面临挑战 应用场景复杂&#xff0c;经常需要在不同终端进行切换&#xff0c;多屏、跨屏及移动办公要求高&#xff1b; 业务系统较多&#xff0c;需要同时支持多种业务的开展&#xff0c;对第三方应用集成及协同办公要求高&#xff1b; 对邮件系统的稳定及高效性要求高&#x…...

再不转型为ChatGPT程序员,有遭受降维打击的危险

Open AI在演示GPT-4的时候&#xff0c;有这么一个场景&#xff1a;给一个界面草图&#xff0c;就可以生成网页代码。这个演示非常简单&#xff0c;如果界面原型比较复杂呢&#xff1f;像这样&#xff1a;ChatGPT能不能直接生成HTML, CSS,JavaScript代码&#xff0c;把这个网页给…...

maven使用教程

文章目录IDEA创建maven项目maven项目必有得目录结构项目构建关键字cleanvalidatecompiletestpackageverifyinstallsitedeploy命令使用方法方法一 在terminal终端执行方法二 在右侧得maven中双击依赖管理在pom.xml下 导包、scope的传递范围、打包方式依赖冲突声明优先原则就近原…...

Emlog底部显示当前在线人数

第一步&#xff1a;在模板文件里面创建“visitor.php”的文件吧下面代码入进去 code <?php//首先你要有读写文件的权限&#xff0c;首次访问肯不显示&#xff0c;正常情况刷新即可$online_log "slzxrs.dat"; //保存人数的文件到根目录,$timeout 30;//30秒内没…...

【java踩坑搞起】MybatisPlus封装的mapper不支持 join,那咋办

众所周知&#xff0c;Mybatis Plus 封装的 mapper 不支持 join&#xff0c;如果需要支持就必须自己去实现。但是对于大部分的业务场景来说&#xff0c;都需要多表 join&#xff0c;要不然就没必要采用关系型数据库了。 直到前几天&#xff0c;偶然碰到了这么一款叫做mybatis-p…...

【创造者】——什么是数学

吉姆罗恩在不经意间这样说过&#xff0c;要么你主宰生活&#xff0c;要么你被生活主宰。这不禁令我深思. 既然如此, 康德说过一句著名的话&#xff0c;既然我已经踏上这条道路&#xff0c;那么&#xff0c;任何东西都不应妨碍我沿着这条路走下去。带着这句话, 我们还要更加慎重…...

ROS系列——错误syntax error near unexpected token `$‘do\r‘‘

ROS系列——错误syntax error near unexpected token $do\r说明解决方法问题原因解决1.终端运行2.本文使用的方法&#xff0c;适用于代码行数较少其他方法&#xff0c;本质就是替换3.重新运行脚本说明 在运行.sh脚本时&#xff0c;报错&#xff1a; syntax error near unexpec…...

当星辰天合 SDS 遇见 Elastic

4 月 8 日&#xff0c;“Elastic 中国开发者大会 2023 ”在深圳举行&#xff0c;XSKY星辰天合对象存储产品总监邹博引代表星辰天合参加了此次大会&#xff0c;并做了主题为《SDS 与 Elasticsearch 的碰撞》的分享。“Elastic 中国开发者大会 2023 ”是由 Elastic、Elastic 中文…...

使用vue实现分页

使用vue实现分页的逻辑并不复杂&#xff0c;接收后端传输过来的数据&#xff0c;然后根据数据的总数和每一页的数据量就可以计算出一共可以分成几页 我编写了一个简单的前端页面用来查询数据&#xff0c;页面一共有几个逻辑 具体的效果可以看下面的演示 下面就来看一下具体的实…...

白银实时行情操作中的一些错误及其解决办法(下)

小编根据大师&#xff0c;网络上的高手以及自己的经验整理出的一些交易中典型的错误&#xff0c;投资者可以参考参考&#xff0c;有则改之无则加勉~续上文…… 问题三&#xff1a;长线获利的交易不容易坚持同时陷入盘整或亏损的交易&#xff08;特别是大仓持有的品种&#xff…...

Linux系统之tomcat的安装方法

Linux系统之tomcat的安装方法一、tomcat介绍1.tomcat简介2.tomcat官网二、本次环境规划三、安装jdk1.下载jdk包2.安装jdk3.检查jdk版本四、安装tomcat1.下载tomcat2.解压tomcat软件包3.设置环境变量4.查看tomcat版本五、启动tomcat1.启动tomcat服务2.检查tomcat服务状态3.访问t…...

段式回文。

题目描述 你会得到一个字符串 text 。你应该把它分成 k 个子字符串 (subtext1, subtext2&#xff0c;…&#xff0c; subtextk) &#xff0c;要求满足: subtexti 是 非空 字符串 所有子字符串的连接等于 text ( 即subtext1 subtext2 … subtextk text ) 对于所有 i 的有效…...

易点易动设备管理系统高效管理海量备品备件

纸质设备备品备件管理是企业运营中的重要环节&#xff0c;其管理效率和精度直接关系到企业的生产效率和经济效益。然而&#xff0c;传统的纸质管理方式存在诸多问题&#xff0c;如信息不透明、数据难以更新、易丢失等。为解决这些问题&#xff0c;易点易动设备管理系统应运而生…...

CMMI 3.0 究竟包含了哪些实践域?

CMMI 3.0中合计有31个实践域&#xff0c;涵盖了开发、服务、供应商管理、人员管理、安全、数据管理、远程交付等多个领域。本文把这31个实践域的核心内容用一句话进行了概括&#xff0c;以确保大家能够快速了解模型所涵盖的内容。CMMI 2.0有官方的中文版&#xff0c;里面有些翻…...

算法训练Day31: 455.分发饼干 376. 摆动序列 53. 最大子序和

文章目录分发饼干思路题解摆动序列题解最大子数组和分发饼干 CategoryDifficultyLikesDislikesContestSlugProblemIndexScorealgorithmsEasy (56.63%)6940--0 TagsCompanies 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能…...

ASP.NET(AJAX+JSON)实现对象调用

客户端 代码如下: <% Page Language"C#" AutoEventWireup"true" CodeFile"ASP.NETA_JAX.aspx.cs" Inherits"_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.…...

一次弄懂gzip模块启用和配置指令

接下来所学习的指令都来自ngx_http_gzip_module模块&#xff0c;该模块会在nginx安装的时候内置到nginx的安装环境中&#xff0c;也就是说我们可以直接使用这些指令。 1. gzip指令&#xff1a;该指令用于开启或者关闭gzip功能 注意只有该指令为打开状态&#xff0c;下面的指令才…...

猿辅导学员入选国家队,竞赛老师成为“最强辅助”

3月31日&#xff0c;国际数学奥林匹克竞赛&#xff08;IMO&#xff09;国家队名单正式出炉&#xff0c;猿辅导学员王淳稷、孙启傲分别以第一名和第二名的成绩位列其中&#xff0c;今年7月&#xff0c;他们将出征日本&#xff0c;代表中国参赛&#xff0c;为国争光。 自2020年以…...

Java面向对象

Java面向对象 静态 static static修饰静态成员变量 /**在线人数。注意&#xff1a;static修饰的成员变量&#xff1a;静态成员变量&#xff0c;只在内存中有一份&#xff0c;可以被共享*/ public static int onlineNumber 161;static静态成员方法 /**静态成员方法: 有stat…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...