(南京观海微电子)——OLED驱动与调试

一、OLED DDIC分类

OLED DDIC的技术方向可以分为3类:带Ram【内存】的IC、Ram-less IC和TDDI【显示&触控集成的IC】

1、带Ram的OLED DDIC

OLED DDIC有两个Ram,分别是Demura Ram和Display Ram。

1、带Ram的OLED DDIC

1-1)Demura Ram:屏幕产家会对面板的显示不均等问题进行补偿,补偿的数据存储在Flash IC内,在正常显示时,OLED DDIC会从Flash IC通过SPI协议Reload对应的自己内部的Demura Ram,用于显示的效果补偿。

1-2)Display Ram:系统传输的图片数据会先存在显示Display Ram内,显示时在通过从Display Ram调用。这种显示方式称为Command mode。在显示静态画面时,系统不要持续送图,显示IC自己刷新Ram即可,在静态画面的场景更省功耗,显示效果较优。

1-3)需要注意的是Display Ram的大小也直接决定了显示IC能支持的帧率和分辨率大小,“3每个颜色的bit位OLED IC的压缩倍率”,即可以计算出所需要占用的Ram大小;比如1280✘2800的分辨率,RGB共计3个颜色,是8个bit,DDIC的VESA选择1/3压缩,因此计算出来的Ram大小为:1280✘2800✘8✘3✘1/3=28672000bit=28.7Mbit。【有关OLED显示屏幕能支持的分辨率和帧率计算,这个后面再发光详细讨论】。

1-3)缺点:Ram的大小基本占到到了IC空间上的75%,因此IC的size会比较大,并且Ram较高。

综上,带Ram的OLED DDIC因为功耗低,显示效果好,是目前各家终端量产的主力。

2、OLED Ramless DDIC

2-1)Ram:Ramless是保留了demura Ram,而砍掉了display Ram。

2-2)驱动:主机需要支持送图给OLED DDIC,即只能跑vedieo模式,在视频场景上,预计功耗和带Ram的相差不大,但是静态场景,功耗会较高。虽然国产厂商推出,在AOD【息屏显示】的场景下,可以借用其demura ram去作为AOD的display,在AOD模式下跑无demura效果的commad mode,这样可以降低AOD模式下的功耗水平;但是Vedio mode和command mode的互相切换,以及有无demura效果对实际用户的使用场景影响,需要调试确认,保守的话,不考虑功耗,全程跑vedio 模式是可以的。

2-2)产能&成本:因为减少了Display Ram,IC的size降低接近一半,同一片晶圆的切片量预估可以提升40%,在结合晶圆价格,可以推算出来相同制程的Ram和Ramless的DDIC,成本约有1.5美金的价差。也正是这个价差,以及连任正非老爷子都要喊着活下去的大环境,各家终端,均在重点关注Ramless的验证和量产导入。目前主要进展最为迅速的是“性价比之王”和“非洲之王”两个终端。

综上,Ramless OLED DDIC除了便宜没有什么好处,是后续降本的趋势。

3、TDDI

OLED显示屏的显示和驱动集成芯片,据说前期是华为与Novatek一同开发,华为被制裁后,Novatek将此芯片变成公版,21年下半年即已经出样,目前各家屏厂和终端均基本完成了验证。

3-1)成本:LCD的触控前期也是采用外挂方案,但是已经与LCD的触控pattern是设计在自己的驱动背板内的,因此LCD的TDDI的panel可以减少光照的mask,成本降低显著,收益明显。OLED的触控当前都是“外挂互容”,驱动上面,很难将触控集成在驱动电路内,现在推出来的OLED TDDI芯片也是针对外挂的,因此panel上面并没有省到任何成本。IC制程上,现在量产的触控IC的模拟和数字部分采用的制程不一样,模拟部分用的110nm相对落后的制程,和显示ic合二为一以后,全部采用先进的40nm或者28nm制程的,成本上会有上升。因此针对OLED TDDI在成本维度上并没有实现“1+1<2”反而会“1+1≥2”;

3-2)触控性能:当前在量产的是外挂式的互容方案,而Novatek目推出的自容方案,理论上对比现有的触控的信噪比会有提升,但是基于笔者验证结果看,其触控性能也仅仅是相对于现在外挂式的性能相当,甚至还会略差;后续厂家也有厂家在检讨互容方案,这个可以期待一下;

3-3)外观:同样因为是“外挂自容”方案,相对于“互容”方案,以经验4mm左右需要一个通道,自容方案的触控走线明显增多,直接导致产品的下边框增加,在笔者所在公司,手机的性能全部要给外观让步【注:实际大部分人买手机也确实因为颜值】,这个是产品经理无法接受的,因此产品并不care;

3-4)功耗收益:OLED TDDI相比较与现在量产的外挂的触控IC,触控部分的制程迭代到了28nm,因此在功耗上是有降低的,也是目前笔者能想到的唯一收益。

3-5)量产情况:虽然在手机上目前并未量产OLED TDDI,但是在小尺寸的OLED手表上面已经量产了;当前流行的上下折叠手机的副屏,各家基本在3寸左右,对整机堆叠空间要求极高,是有明确的需求的,但是目前选用手机的TDDI的话,IC的size过大并且成本高,不利于堆叠;选用手表的OLED TDDI,其对应的通道数又无法支持对应的触控需求,因此上下折叠副屏依然选择手表的DDIC和TPIC。

二、调试方式

1.串口调试

通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息

2.显示屏调试

直接将显示屏连接到单片机,将调试信息打印在显示屏上(本节)

3.Keil调试模式

借助Keil软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能

二、硬件电路

7脚就不放上来了

四脚的OLED一般采用I2C的通信协议,上图中的SCL和SDA需要接在32的I2C通信的引脚上(但本节up主教的是GPIO口模拟的I2C通信)

此次接线为:SCL接PB8,SDA接PB9

三、驱动函数

偷懒,直接截图(doge)

使用之前,先初始化一下;函数的第一个为第几行,第二个为第几列

四、代码实现

1.准备驱动函数

OLED驱动函数模块在up提供的程序源码的1-4内,点进去,再次点击4针脚的文件(7脚就选7脚),将里面的三个文件复制粘贴到我们新建的4-1OLED显示屏的hardware文件夹内,并在Keil软件内添加

(1)OLED.c文件只需要更改引脚配置部分和下方初始化的部分(如图),看你自己把SCL和SDA这两个引脚接在了哪两个端口上

我们本次接线外设为GPIOB,端口是8和9

为啥配置为开漏输出:因为标准I2C是有上拉电阻的,没有信号总线高电平,所以要配置成开漏(强制滴)

(开漏输出:仅低电平可以驱动;前面写过的文章3-1GPIO输出)

(2)OLED_Front.h:字库,定义字符的点阵数据,也就是不同的字符有哪些地方需要点亮

2.主函数

(1)老规矩现在main函数最前头include一下OLED.h

(2)在主函数while循环之前进行初始化:OLED_Init();

(3)

①OLED_ShowChar:显示一个字符,第一个参数为第几行,第二参数为第几列,第三个参数为有单引号括起来的字符

②OLED_ShowString:显示字符串,第一、二个参数同上,第三个参数为有双引号括起来的字符串(注意字符串不要超过屏幕了,否则字符串会覆盖或者说字符串乱了,是不会给你第二行接着现实的,自己可以试试)

同时该函数可以用于清除部分,在你想清掉的地方显示空格字符就可以了(OLED_Clear函数局部版)

③OLED_ShowNum:显示无符号十进制数字(全是正的),第一、二个参数同上,第三个参数为数字,第四个参数为显示数字数量

注:若第四个参数大于实际第三个参数的数量,则会在数字前头补0显示(例如,我要显示12345,但是我第四个参数填的6,则OLED显示为012345)如果小于,则会把多余的高位的数据切掉(例如,我还是要显示12345,但是我第四个参数填的4,则OLED显示为2345),这个同样也适用于下面两个函数

④OLED_ShowSignedNum:显示无符号十进制数字,参数和上一个一样,不同的是可以显示负数,第三个参数直接写负数就行(正数不用加正号哦,显示屏显示时会加上正号的,例如,第三个参数写66,显示屏显示为+66)

⑤OLED_ShowHexNum和OLED_ShowBinNum,参数和上面的一样,分别显示十六进制的数和二进制的数(第三个参数都写0x0001,第四个参数:第一个函数写4,第二个函数写16;第一个函数显示为0001,第二个函数显示为0000 0000 0000 0001)

⑥OLED_Clear:清屏;

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

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

相关文章

课时6:编程语言逻辑

1.2.2 编程语言逻辑 学习目标 这一节,我们从 语言分类、编程逻辑、小结 三个方面来学习。 语言分类 语言分类 低级编程语言:机器:- 二进制的0和1的序列,称为机器指令。- 一般人看不懂汇编:- 用一些助记符号替代机…

Linux ---- Shell编程之函数与数组

目录 一、函数 1、函数的基本格式 2、查看函数列表 3、删除函数 4、函数的传参数 5、函数返回值 实验: 1.判断输入的ip地址正确与否 2. 判断是否为管理员用户登录 6、函数变量的作用范围 7、函数递归(重要、难点) 实验&#xff1…

山西电力市场日前价格预测【2024-01-28】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-28)山西电力市场全天平均日前电价为280.26元/MWh。其中,最高日前电价为556.88元/MWh,预计出现在18:15。最低日前电价为0.00元/MWh,预计出…

智能分析网关V4智慧机房:视频AI智能安全监管方案

一、背景分析 随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直…

Android Studio 提示Use app:drawableStartCompat instead of android:drawableStart

每次提交代码时,AS这个老妈子总爱唠叨一堆warning,这些Warning都在讲什么? 1.Use app:drawableStartCompat instead of android:drawableStart 在Android开发中,android:drawableStart和app:drawableStartCompat是两个用于设置…

Java多线程基础-18:线程安全的集合类与ConcurrentHashMap

Java标准库提供了很多集合类,但有一些集合类是线程不安全的,也就是说,在多线程环境下可能会出问题的。常用的ArrayList,LinkedList,HashMap,PriorityQueue等都是线程不安全的(Vector, Stack, Ha…

【C语言/数据结构】排序(选择排序,推排序,冒泡排序)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​​ 目录 选择排序 选择排序 ​编辑…

【开源】基于JAVA语言的学生综合素质评价系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生功能2.2 教师功能2.3 教务处功能 三、系统展示四、核心代码4.1 查询我的学科竞赛4.2 保存单个问卷4.3 根据类型查询学生问卷4.4 填写语数外评价4.5 填写品德自评问卷分 五、免责说明 一、摘要 1.1 项目介绍 基于J…

美睫师睫毛嫁接零基础学习,日式美睫与开花嫁接实战教学

一、教程描述 大家都说女人的钱好挣,这是因为每个女人在每年,都要花很多钱来打扮自己。本套教程是关于日式美睫和开花嫁接的,从零基础学习到店铺经营都有涉及,就做美睫和睫毛嫁接这两项业务,月收入万元以上应该问题不…

ubuntu 22.04 安装mysql-8.0.34

ubuntu 22.04 安装mysql-8.0.34 1、基础安装配置 更新软件包: sudo apt update查看可用软件包: sudo apt search mysql-server安装最新版本: sudo apt install -y mysql-server或者,安装指定版本: sudo apt inst…

202|读书笔记《金融的本质:伯南克四讲美联储》

今天跟朋友聊天💬,说已经没人看书了📖 我想, 还是会有人读书的吧。 ​ 一、美联储的起源和使命 1. 第一讲:美国南北战争结束后的40年间,美国经历了6次大的银行体系恐慌,促使其于1913年成立美联储…

第八篇【传奇开心果系列】beeware的toga开发移动应用示例:实现消消乐安卓手机小游戏

传奇开心果博文系列 系列博文目录beeware的toga开发移动应用示例系列博文目录一、项目目标二、安装依赖三、初步实现四、扩展思路五、实现游戏逻辑示例代码六、实现界面设计示例代码七、实现增加关卡和难度示例代码八、实现存档和排行榜示例代码九、实现添加特殊方块和道具示例…

C语言第十一弹---函数(下)

​ ✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 函数 1、嵌套调用和链式访问 1.1、嵌套调用 1.2、链式访问 2、函数的声明和定义 2.1、单个文件 2.2、多个文件 2.3、static 和 extern 2.3.1、static…

第六课:Prompt

文章目录 第六课:Prompt1、学习总结:Prompt介绍预训练和微调模型回顾挑战 Pre-train, Prompt, PredictPrompting是什么?prompting流程prompt设计 课程ppt及代码地址 2、学习心得:3、经验分享:4、课程反馈:5、使用Mind…

08. BI - 万字长文,银行如何做贷款违约的预测,特征处理及学习

本文为 「茶桁的 AI 秘籍 - BI 篇 第 08 篇」 文章目录 课程回顾案例分析案例实战 Hi, 你好。我是茶桁。 课程回顾 上节课,咱们讲了一个股票的指标:MACD。在趋势行情里面它应该还是有效的指标。它比较忌讳动荡行情,比如说它一会上…

###C语言程序设计-----C语言学习(5)#

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步! 一. 主干知识的学习 1.switch语句 switch语句可以处理多分支选…

ubuntu 22 安装 node,npm,vue

1:安装 nodejs sudo apt update curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt update && sudo apt install -y nodejs node -v 2:安装npm sudo npm install n -g npm -v 3:安装vite npm install vite -g 4:运行vue 把项目拷贝到…

公考之判断推理(一、图形推理)

一、前言 判断推理这一题型主要具体分为四种题型: 1.图形推理 2.类比推理 3.定义判断 4.逻辑判断每种题型做题方法又不一样。 才本文采用总分的形式结构。 每一小标题的下面紧接着就是总结。二、图形推理常见的命题形式 图形推理常见的命题形式: 1.…

鸿蒙ArkUI 宫格+列表+HttpAPI实现

鸿蒙ArkUI学习实现一个轮播图、一个九宫格、一个图文列表。然后请求第三方HTTPAPI加载数据,使用了axios鸿蒙扩展库来实现第三方API数据加载并动态显示数据。 import {navigateTo } from ../common/Pageimport axios, {AxiosResponse } from ohos/axiosinterface IDa…

ASP.NET Core基础之用扩展方法封装服务配置

阅读本文你的收获 了解C#中的扩展方法机制学会在ASP.NET Core 中,用扩展方法封装服务配置,使得代码更加简洁 一、什么是扩展方法 扩展方法使能够向现有类型添加方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法…