OLED显示原理7T1C基础分析(PWM与DC调光)

文章目录

    • 一、7T1C设计要点分析
      • 1、先回顾一下上篇 发光过程三个阶段---复位、补偿、发光
      • 2、设计关键点一:复位、补偿、发光三阶段 控制信号严格分离
      • 3、基本亮度控制策略---DC调光 && PWM调光
      • 4、PWM调光频率 之 低频PWM/高频PWM---EM信号的控制细节
      • 5、功耗优化之ELVSS动态调压
    • 二、7T1C像素电路典型问题
      • 1、上电过程典型闪屏问题----在ELVDD/ELVSS上电过程 EM没有保持关闭
      • 2、屏幕异常偏色典型问题---OLED初始化、补偿、发光 打开开关有重合
    • 参考

上一篇 【OLED显示原理7T1C:https://blog.csdn.net/runafterhit/article/details/128793552】介绍了7T1C基础概念,本文做一个初步分析;
整体分析还是基于下面这个典型7T1C电路:7T1C就是7个TFT晶体管和1和电容C,展示的一个像素OLED发光的单元驱动。
开关控制信号有三个:Gn-1(使能复位)、Gn(使能补偿)、EM(使能发光)。
在这里插入图片描述

一、7T1C设计要点分析

1、先回顾一下上篇 发光过程三个阶段—复位、补偿、发光

整个发光过程可以分文三个阶段:复位、补偿、发光。如下图
在这里插入图片描述
1)复位阶段
Gn-1打开(Gn\EM关闭),Vint复位电压 给N1点 和 OLED阳级电压进行 充电复位,目的是 让OLED关闭,让Vn1点电压初始化。
2)补偿阶段
Gn打开(Gn-1和EM关闭),此时Data电压充电到N1点,如圈选处 TFT关闭的临界条件Vgs=Vn1- Vdata = Vth,Vn1 = Vdata + Vth
3)发光阶段
EM打开(Gn-1和Gn关闭),此时ELVDD流向ELVSS导通OLED发光。
发光时电流大小ID=1/2μnCoxW/L(Vgs-Vth)^2 =1/2μnCoxW/L(Vdata+Vth-Elvdd-Vth)^2 = 1/2μnCoxW/L(Vdata-Elvdd)^2

2、设计关键点一:复位、补偿、发光三阶段 控制信号严格分离

图中三个阶段的使能信号:Gn-1信号(使能复位)、Gn信号(使能补偿)、EM信号(使能发光),都是为低时使能。
7T1C像素电路中,三个阶段一定是严格分离的,否则会出现非预期的内部串流,从而影响 复位&补偿&发光的效果。
这里非常容易引入问题,需要通过上屏的信号排查清楚。
在这里插入图片描述

3、基本亮度控制策略—DC调光 && PWM调光

OLED的亮度 总体说来 有两个因素决定,电流大小和发光时长:
1)发光时电流大小—VData大小决定:通过上面的电路分析可知,OLED发光时电流 ID=1/2μnCoxW/L(Vdata-Elvdd)^2,在ELVDD固定的情况下,就是由Data电压决定,这里Data电压 很多时候也叫source电压,由显示内容决定。
2)发光时间—EM低电平时间决定 :EM拉低时OLED开始发光,拉低的时间决定了发光时间长度,举例60Hz的屏幕刷新率下一帧的显示时间为16.6ms,如果一个像素电流固定情况下,一帧里面EM拉低发光8ms 或者 1ms,二者亮度就会出现明显差异。

我们经常听到两个概念:DC调光 和 PWM调光,亦或者 两者结合的混合调光 如何理解呢?
1)DC是Direct Current直流电,DC调光是指通过VData电压大小变化进行调光。 在显示一个固定画面时,亮度的变化通过VData 也就是source电压 的控制来达到。
2)PWM是Pulse Width Modulation脉冲宽度调制,PWM调光是通过对EM开关占空比duty进行调光。 在显示一个固定画面,亮度变化提通过EM的占空比大小来调整。
在这里插入图片描述
如下图,显示内容送到TCONIC后,TCONIC&&Driver根据AP设置的亮度信息把显示内容通过GAMMA映射得到Source数据(也就是7T1C电路中Data电压),同时会生成GOA信号包含EM波形Duty控制。
在这里插入图片描述
最后可以简单总结下,如果亮度信息控制 主要是调整Source电压大小,这类设备就是DC调光策略。如果亮度信息是控制EM的Duty来影响亮度,这类设备就是PWM调光策略。实际上 很多设备是结合了DC+PWM调光,在不同的帧率不同亮度范围 选择最合适的策略,可称为混合调光。

4、PWM调光频率 之 低频PWM/高频PWM—EM信号的控制细节

市场上有低频PWM和高频PWM说法,这里频率高低是指EM控制频率,和一帧EM的pluse数相关。
当频率较低时,人眼会有亮暗闪烁感,导致眼部疲劳,原理类似24Hz电影。
比如60Hz帧率,如果EM的pluse数是1个 PWM频率为60 * 1=60Hz,EM的pluse数为12个时 PWM频率为60 * 12=720Hz。
在这里插入图片描述

5、功耗优化之ELVSS动态调压

前面我们梳理了,发光时电流大小ID = 1/2μnCoxW/L(Vdata-Elvdd)^2,实际发光亮度不和ELVSS电压大小设置强相关,但是在不同的玻璃负载(可以理解为不同亮度)下,ELVSS要保证足够大的负压 才能保持 OLED稳定发光。
因此也诞生了ELVSS动态调压策略,目的就是根据不同的亮度 也就是 不同负载,调整ELVSS的负压大小,这样能针对功耗进行优化。

二、7T1C像素电路典型问题

1、上电过程典型闪屏问题----在ELVDD/ELVSS上电过程 EM没有保持关闭

ELVSS和ELVDD通常由特定的电源控制芯片PMIC提供,开机时电源芯片启动输出,ELVSS和ELVDD有一个逐步爬坡的过程,在这个过程的时候,如果EM信号不能一直拉低关闭,就会导致玻璃上非预期的发光。通常上电时整个屏幕要保持遮黑,如果EL电压不稳定就正常显示方式打开EM,会出现屏幕部分区域不能保持黑状态。

2、屏幕异常偏色典型问题—OLED初始化、补偿、发光 打开开关有重合

通过 设计关键点一:复位、补偿、发光三阶段 控制信号严格分离 讲解可知,如果三个阶段开关相互之间 存在同时打开的时候,OLED会发生内部串流,从而导致画面异常显示,比如整个屏幕泛黄等,亮度无法按预期控制。
这里要注意一个细节,EM的开关GOA控制细节是最复杂的,特别是PWM调光策略下,不同亮度或者帧率下,EM打开的占空比Duty是不一样的,往往实际会在某些特定亮度选择时 出现此类异常,不是全部亮度都能观察到,需要全部亮度遍历测试。

参考

OLED显示屏的类DC调光是什么?它和高频PWM比各有什么优劣?:
https://www.zhihu.com/question/612899355/answer/3129070329

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SSH秘钥登录服务器

一、查看本机 ssh 公钥,生成公钥 1.通过命令窗口 a. 打开你的 git bash 窗口 b. 进入 .ssh 目录:cd ~/.ssh c. 找到 id_rsa.pub 文件:ls d. 查看公钥:cat id_rsa.pub 或者 vim id_rsa.pub git–查看本机 ssh 公钥&#xff0c…

机器学习之随机森林 python

随机森林是一种集成学习方法,它是由多个决策树组成的模型,其中每棵树都是随机生成的。随机深林包括两种主要类型:随机森林和极端随机树。 废话不说上代码 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import…

浅谈测试自动化selenium之POM模式

基于本人也是一个初学者,在运用POM模式的时候记录一下自己的学习笔记。 如果你是大神,那么可以略过,如果你是初学者,希望对你有帮助。 本文阐述了以下几个问题: 什么叫POM模式 为什么要用POM模式 POM模式的思想 POM模…

【Postman】以命令行形式执行Postman脚本(使用newman)

一、背景 ​ Postman的操作离不开客户端。但是在一些情况下可能无法使用客户端去进行脚本执行。比如在服务端进行接口测试。由此我们引入了Newman。Newman基于Node.js开发,它使您可以直接从命令行轻松运行和测试Postman测试集。它在构建时考虑了可扩展性&#xff0c…

iOS - 真机调试的新经验

文章目录 获取真机 UDIDPlease reconnect the device.iOS 开发者模式Fetching debug symbols 很久没有在真机运行 iOS 测试了,今天帮忙调试,发现很多东西都变了,有些东西也生疏了,在这里记录下。 获取真机 UDID 创建Profile 需要…

学生选课系统基础版

概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总体 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 作用 在类的内部,对数据进行组织;…

T-Dongle-S3开发笔记——相关配置

portTICK_PERIOD_MS设置 Flash配置 Flash SPI mode 默认是DIO,改为QIO (W25Q128支持QIO) DIO与QIO区别: esp8266,esp32中的SPI FLASH 访问模式(QIO QOUT DIO DOUT)_qio dio-CSDN博客 Dual SPI:MOSI 和 MISO 引脚…

《数字图像处理-OpenCV/Python》连载:图像的阈值处理

《数字图像处理-OpenCV/Python》连载:图像的阈值处理 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第 9 章 图像的阈值处理 图像的阈值处理简单、直观,计算…

【STM32】STM32学习笔记-TIM定时中断(13)

00. 目录 文章目录 00. 目录01. TIM简介02. 定时器类型03. 基本定时器04. 通用定时器05. 高级定时器06. 定时中断基本结构07. 预分频器时序08. 计数器时序09. 计数器无预装时序10. 计数器有预装时序11. RCC时钟树12. 附录 01. TIM简介 TIM(Timer)定时器…

Jenkins Tutorial

什么是Jenkins Jenkins是一个自动化平台,它允许你使用pipelines去部署应用。它也可以自动化其他任务。 BUILDTESTDEPLOYMENT Jenkins 架构 首先,你拥有一个Master Server,它控制pipelines和安排Build到你的Agent上; 其次&…

好物周刊#32:Go 学习指南

村雨遥的好物周刊,记录每周看到的有价值的信息,主要针对计算机领域,每周五发布。 一、项目 1. 抖音/TikTok API 一个开箱即用的高性能异步抖音 | TikTok 数据爬取工具,支持 API 调用,在线批量解析及下载。 2. LogicF…

【LeetCode】每日一题 2023_12_25 不浪费原料的汉堡制作方案(数学,解二元一次方程)

文章目录 刷题前唠嗑题目:不浪费原料的汉堡制作方案题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode?启动!!! 题目:不浪费原料的汉堡制作方案 题目链接:1276. 不浪费原料的汉堡制作方案 题…

小狐狸ChatGPT付费创作系统 前端对话提示undefined index:temperature解决方法

很多会员使用着ChatGPT付费创作系统,特别是新安装系统后前端输入对话时提示错误undefined index:temperature,检查了反代、检查了KEY均正常,这问题主要是因为后台设置里新用户免费送对话次数为空,没设置赠送次数原因,导…

OAuth 2.0 入门指南:掌握授权码模式

一、授权码模式 (1)spring-security-oauth2 从2.4.x版本开始,EnableAuthorizationServer注解就弃用过时了 (2)当前演示Demo版本:springboot的1.5.x版本与spring-security-oauth2的2.3.8.RELEASE整合&#…

AI绘画训练一个扩散模型-上集

介绍 AI绘画,其中最常见方案基于扩散模型,Stable Diffusion 在此基础上,增加了 VAE 模块和 CLIP 模块,本文搞了一个测试Demo,分为上下两集,第一集是denoising_diffusion_pytorch ,第二集是diff…

TomcatHttp协议

1 javaWEB 1.1 Web概述 Web在英文中的含义是网状物,网络。在计算机领域,它通常指的是后者,即网络。像我们前面接触的WWW,它是由3个单词组成的,即:World Wide Web,中文含义是万维网。而我们前…

读书笔记--构建数据湖仓阅读有感

企业为什么要开展数据治理?为什么在数据治理过程中提出数据湖仓构建?数据湖如果没有分析基础设施的建设,就会形成数据沼泽或臭水沟,因为没有人用,也不知道数据之间的关系。我们知道数据因业务运行而产生,后…

盒子 Box

UVa1587 思路&#xff1a; 1.输入每个面的长宽并将每个面较长的一边放在前面 2.判断是否存在三对面分别相等 3.判断是否存在三组四棱相等 #include <stdio.h> #include <stdlib.h> #define maxn 100int cmp(const void* e1, const void* e2) {return (int)(*(d…

Maya python清除命名空间

问题描述&#xff1a; Maya命名空间可能存在嵌套。 如上&#xff0c;直接删除 :female_actor02会出现异常。 因此需要先删除子命名空间&#xff0c;再删除父命名空间。 解决方法&#xff1a; def remove_namespace_node(namespace_name, ns_parent":"):""…

RabbitMQ入门指南(八):MQ可靠性

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、MQ数据持久化 1.交换机持久化 2.队列持久化 3.消息持久化 4.生产者确认机制 二、LazyQueue 1.LazyQueue模式介绍 2.管理控制台配置Lazy模式 3.代码配置Lazy模式 4.更新已有队列为lazy模式 总…