调试LCD反被调戏了

相关文章

调试,是一件有挑战的事情

这篇文章的题目应该写做 - 我又被LCD艹了一个晚上。写个文档简单总结下

#LCD显示的一些基本概念

数字视频的基本概念源自于模拟视频。对于模拟视频我们可以这样理解:视频可以分解为若干个基本视点(像素),每个像素都有独立的色彩信息,在屏幕上依次将 这些点用电子枪按照行和列打出来,就形成了一幅完整画面,连续的打出画面,利用人眼的延迟特点就可以“显示”动态的图像了。

水平消隐:电子枪从左到右画出象素,它每次只能画一条扫描线,画下一条之前要先回到左边并做好画下一条扫描线的准备,这之间有一段时间叫做水平消隐(HBlank)。

垂直消隐:在画完全部256条扫描线之后它又回到屏幕左上角准备下一次画屏幕(帧),这之间的一段时间就是垂直消隐(VBlank)。电子枪就是在不断的走‘之’字形。

  • 行同步(HSYNC):行同步就是让电子枪控制器知道下面要开始新的一行像素

  • 场同步(VSYNC: 场同步就是告诉电子枪控制器下面要开始新的画面

  • 数据使能(DE):在数据使能区是有效的色彩数据,不在使能范围内的都显示黑色。

  • 前肩(Front Porch)/后肩 (Back Porch) :行同步或场同步信号发出后,视频数据不能立即使能,要留出电子枪回扫的时间。以行扫描为例,从HSYNC结束到DE开始的区间成为行扫描的后肩(绿色区域),从DE结束到HSYNC开始称为前肩(紫色区域)。同样对于场扫面也可以由类似的定义。

  • Pixel clock:像素时脉(Pixel clock)指的是用来划分进来的影像水平线里的个别画素, Pixel clock 会将每一条水平线分成取样的样本,越高频率的 Pixel clock,每条扫瞄线会有越多的样本画素。

  • HFP: Horizon front porch

  • HBP: Horizon back porch

  • VFP: Vertical front porch

  • VBP: Vertical back porch

  • HDP:Horizon display period

  • VDP:  Vertical display period

HTP = HSYNC + HDP + HFP + HBP

VTR = VSYNC + VDP + VFP + VBP

f dot _ clk = pixel clock f dot _ clk = f v * VTR * HTP f v = vertical frequency  (这个是频率,平时见到的很多时候是60HZ)

pixel clock = () 制式          总扫描线       图像区域扫描线       水平总象素       图像区域水平象素       采样频率 1080I/60Hz       1125       1080                      2200             1920            74.25MHz 1080I/50Hz       1125       1080                      2640             1920            74.25MHz 720P/60Hz       750         720                       1650             1280            74.25MHz 720P/50Hz       750         720                       1980             1280            74.25MHz

带宽:视频带宽代表显示器显示能力的一个综合指标,指每秒钟所扫描的图素个数,即单位时间内每条扫描线上显示的频点数总和,在模拟视频中以MHz为单位,图1的视频模拟带宽计算如下:

Analog BandWidth=165075060=74.25MHz 含义为每个时钟要传输74.25M个模拟视频数据。所以720p60 的pclk为74.25Mhz,同理1080P60的P CLOCK为148.5MHz

但是在数字视频中由于每个像素都是由3种不同的颜色来表示,每种颜色右由一定数量的比特来传输,因此通常会用bps来表示数字带宽,如果图1中使用了RGB传输,每种颜色用1个字节来输出,那么该视频的数字带宽为:

Digital BandWidth= 模拟带宽8bit3=1.782Gbps 含义为每秒要传输1.782G个比特数据

#DSI Clock计算

目前主流的lcd都是使用mipi总线,涉及到的一些clock在这里整理一下:

H-total = HorizontalActive + HorizontalFrontPorch + HorizontalBackPorch + HorizontalSyncPulse + HorizontalSyncSkew

V-total = VerticalActive + VerticalFrontPorch + VerticalBackPorch + VerticalSyncPulse + VerticalSyncSkew

Total pixel = H-total * V-total * 60(Hz通常都是这个,当然可以变).

Bitclk = Total pixel * bpp(byte) *8/lane number(有几路mipi data lane).

Byteclk = bitclk/8

Dsipclk(Dsi pixel clock) = (Byteclk * lane number)/bpp(byte) = Total pixel * 8

Byteclk = pclk * pixel depth / lane number

#调试过程描述

这个是一个新平台旧屏幕的调试,我们在rk平台上已经能点亮,这个是新的项目,我们满怀信心的时候,却发现怎么都不能让这个该死的屏幕正常亮起来。

这个过程是一个非常血腥的,我们从早上10点就开始搞,到晚上12点还没有搞通,我们领导这时候突然走到我们身边,我跟他说了一句,我们先回去休息明天再搞了。我确实觉得有点累,而且继续搞可能也没有机会搞好。所以我们就下班回去了,今天早上过来,就把问题给解决了。

#解决思路

##烧录BIST模式测试屏幕

BIST模式是LCD的一个测试模式,如果MIPI通信正确,我们发送BIST模式后,LCD会循环显示测试的颜色界面。这一步我们测试了,确实可以进入BIST,说明我们的MIPI通信是正常的。应该从其他部分寻找问题。

##找LCD模组厂确认参数

LCD的参数肯定是模组厂的技术最专业,所以在微信群里发了下LCD的参数配置给他们看了下,马上就发现了问题所在。如下图

##排查硬件

排查硬件这一步应该在拿到样机就开始搞了,我们这个屏幕用的是另外项目的,所以理论上硬件是没有问题的。点不亮的原因应该只有一个,那就是软件有问题,俗话说,人在路上走,锅从天山来,就是这个意思。

整个调试有点惊险也有点刺激,文章中还没有谈到LCD的休眠唤醒流程,调试中也遇到一些平台性的问题。因为对平台不熟悉也成了我们都阻碍,其中非常感谢一个MTK的大牛,虽然最终不是他的思路解决问题,但是在过程中给我们提了非常有效的建议。

完…

……

如果想讨论人生~就点击下面~

你不知道在我的小蜜圈会发现什么好东西

  回复「 篮球的大肚子」进入技术群聊

回复「1024」获取1000G学习资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

被LCD调戏睡不着了

好吧,我承认我不是因为被调戏睡不着的,我是因为今天晚上喝了一杯该死的咖啡,然后就睡不着了,这个点[3:40]在床上翻来覆去,刚开始我摸着楠哥的小腿,过了一会,觉得没意思了&#xff0c…

python 随机名言_如何用简易代码自动生成经典语录

“不要空想不可能的事情”“增加自己的幸福感”“我们最终将创造地面,并呵护它”“保持希望并学会放弃奇迹”上面所有引号内的句子都是由一段代码生成的,使用的程序由少于20行的python代码组成。当涉及到生成自然语言时,人们通常会想到使用高…

链家笔试2

链家笔试2 把m升水倒入n个相同的杯子(假设容器足够大)&#xff0c;允许有的容器是空的&#xff0c;共有多少种不同的倒法&#xff1f;&#xff08;用k表示&#xff09;5 1 1 和1 5 1 和1 1 5 是同一种倒法 输入&#xff1a; 第一行是测试数据的数目 x(0 < x < 20),以下每…

线性表、顺序表

文章目录线性表、顺序表线性表概念线性结构特点线性表概念两种分类顺序表代码遍历查找插入删除逆置链表&#xff08;用指针实现变长的先行存储结构&#xff09;特点习题线性表、顺序表 线性表概念 线性结构特点 存在唯一一个被称为“第一个”的数据元素存在唯一一个被称为“最…

lte 在网络覆盖方面应该注意哪些问题_LTE弱覆盖问题分析与优化

LTE弱覆盖问题分析与优化摘要&#xff1a;本文结合现网实际工作情况介绍了LTE弱覆盖的发现手段&#xff0c;LTE弱覆盖的成因&#xff0c;以及LTE弱覆盖的解决方法&#xff0c;总结相关经验&#xff0c;为LTE的规划建设提供参考依据。关键字&#xff1a;LTE弱覆盖、MR数据、站点…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(33)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(32) 上一回了开始对于drm_gem_handle_create_tail函数的解析,对于函数的注释和第一段代码进行了讲解,本回开始对于drm_gem_handle_create_tail函数的核心功能代码进行解析。为了便于理解,再次贴出drm…

Linux 5.7 将支持国产 RISC-V 芯片 K210

这是转载的一篇文章&#xff0c;文章主要内容是Linux合入了一个国产芯片k210的代码&#xff0c;虽然这个芯片不是很强大&#xff0c;但是对于学习来说非常有意义&#xff0c;而且&#xff0c;还有人在这个开发板上移植了Linux 0.11。今天早上我在查阅 Linux 内核邮件列表的时候…

动态路由选择协议(二)距离矢量路由选择协议

大多数的路由选择协议属于下面二者之一&#xff1a; 距离矢量&#xff08;distance vector&#xff09;和链路状态&#xff08;link state&#xff09;。 本篇学习的是距离矢量路由选择协议的基础。 大多数的距离矢量算法是R.E.Bellman、L.R.Ford和D.R.Fulkerson所做的工作为基…

我和蓝牙BT,BLE有一腿

你好&#xff0c;很不幸&#xff0c;你被一个标题骗了进来&#xff0c;可能我以后还会骗你&#xff0c;我这篇文章主要是写蓝牙相关的&#xff0c;不会涉及技术细节&#xff0c;主要是总结一些概念&#xff0c;这些概念会帮助你了解蓝牙知识&#xff0c;帮助你在面试或者聊天的…

Python之路,week03 - Python基础3

本节内容 函数与函数式编程函数式编程之参数详解局部变量与全局变量作用域嵌套函数 递归函数式编程介绍高阶函数内置函数1. 函数与函数式编程 1.面向对象&#xff1a;华山派---》类---》class 2.面向过程&#xff1a;少林派---》过程---》def 3.函数式编程&#xff1a;逍遥派--…

循环链表、双链表

文章目录循环链表、双链表双链表插入删除单循环链表双循环链表习题线性表实现方法比较循环链表、双链表 双链表 插入 删除 单循环链表 双循环链表 习题 线性表实现方法比较

[芦半山]Binder的异常机制

文中代码分析基于Android 10.0 (Q)两个进程之间若是要进行Binder通信&#xff0c;那么发起通信的一端我们就称它为Client进程。Client进程调用每一个代理对象的方法&#xff0c;本质上都是一次跨进程通信。如果这个方法是同步方法&#xff08;非oneway修饰&#xff09;&#xf…

bufg和bufgp_如何将自己写的verilog模块封装成IP核(一)

平台与材料一个写好的工程&#xff0c;综合通过&#xff0c;不用布局布线&#xff0c;ISE或Vivado皆可。如果是ISE&#xff0c;需要在properties里取消选中 iobuf 。这样就只能被当做内部模块调用了。Vivado步骤打开Vivado&#xff0c;创建一个工程Tools -> Create or packa…

消息中间件核心实体(1)

接上一篇《消息中间件核心实体(0)》&#xff0c;这一篇继续介绍消息中间件中的一些实体。 上一篇主要是Message、Topic、TopicMeta和Queue这样最基础的实体&#xff0c;这几篇介绍一些发送和消费的过程中会涉及到的实体和组件。 1. 发送 1.1 增强Message属性 Message一般只包含…

sklearn(2

算法库顶层设计 SKLEARN监督学习模块 近邻算法 neighbors支持向量机SVM岭回归 kernal_ridge判别分析discriminant_analysis广义线性模型linear_model集成方法ensemble决策树tree朴素贝叶斯naive_bayes交叉分解cross_decompostition高斯过程gaussian_process多层神经网络neural…

sox处理mp3_SoX 音频处理工具使用方法

一、简介SoX 可以读取和写入常见格式的音频文件&#xff0c;并在此过程中选择性的加入一些声音效果。它可以组合多个输入源及合成音效&#xff0c;在许多系统上也可以作为音频播放器或多轨录音机使用。SoX 工具在大部分 Linux 系统上都可以直接通过软件包管理器安装(如sudo apt…

该死的装修

周末了&#xff0c;没有写技术文~因为最近的新房子需要装修&#xff0c;谈了几个装修公司&#xff0c;不知道为什么&#xff0c;我对装修这个事情非常抵触&#xff0c;繁琐的事情太多了&#xff0c;还没有装修&#xff0c;我就觉得有很多事情要斗争。因为家里有小孩&#xff0c…

SKLEARN模型选择

数据集划分方法 K折交叉验证法 将全部训练集S分成k个不相交的子集&#xff0c;假设S中的训练样例子数为m&#xff0c;那么每一个子集有m/k个训练样例&#xff0c;相应子集称作{s1,s2……sk}每次从分好的子集里面&#xff0c;拿一个作为测试集&#xff0c;其他k-1作为训练集在k…

SpringBoot(十) :邮件服务

原文出处&#xff1a; 纯洁的微笑 springboot仍然在狂速发展&#xff0c;才五个多月没有关注&#xff0c;现在看官网已经到1.5.3.RELEASE版本了。准备慢慢在写写springboot相关的文章&#xff0c;本篇文章使用springboot最新版本1.5.3进行开发。 发送邮件应该是网站的必备功能之…

python中order函数_order by排序

作者Toby&#xff0c;持牌照消费金融模型经理&#xff0c;发明国家算法专利,国内最大医药数据中心数据挖掘部门负责人&#xff01;和重庆儿科医院&#xff0c;中科院教授&#xff0c;赛柏蓝保持慢病数据挖掘项目合作&#xff01;清华大学&#xff0c;百度&#xff0c;腾讯&…