| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> MIPI 系列之 DCS -> 正文阅读 |
|
[嵌入式]MIPI 系列之 DCS |
目录 MIPI 协议族,定义了一个专门用于显示的命令集,叫做 Display Command Set,简称为 DCS;这个 DCS 起什么作用呢?主要是 Host 和 Display 之间的一些 Command 配置和数据传输,以及读 Display 的数据等; 使用过 SPI 的屏的朋友们应该知道,上电后,就开始劈里啪啦的一顿配置,比如,SPI 的屏 ST7735S,上电初始化,就是一顿干:
可以看到,一般是一个 Command 带一堆 Data,Command 描述了这次传输是用来干嘛的,Data 呢,就是此次事件的数据; 为了标准化显示设备,所以呢,就有制定一些个标准(听君一席话,如听一席话); 为了统一江山,Display 方,大家按照同一套标准来定制这个 Command + Data,此刻 DCS 闪亮登场; 1、Display ArchitecturesDisplay 的结构,DCS 中分为了 3 类; ? ? 可以看到,这三类的区别就是中间 Display Module 是否带了 Framebuffer,或是带了一部分的 Framebuffer; Display Module 带不带 Framebuffer 有啥区别呢?如果带了?Framebuffer,那么图形数据不用每次都从主机获取,主机刷一次数据到?Display Module 的 Framebuffer 中,然后?Display Module 就自己会将它自己的 Framebuffer 往屏(Panel)上面刷; 如果?Display Module 不带 Framebuffer,为了维持屏上有数据,需要主机不停的给?Display Module 灌数据,并显示到 panel 上; 2、Power Level Definition针对上面三种不同的 Display 架构,DCS 中描述了三种对应的 Power Level; 第一种显示架构: ?第二种显示架构: 第三种显示架构: ? 3、Display Command SetDCS 用于发送 pixel 数据,配置?Display Module,或者读?Display Module 的一些数据或者寄存器; DCS 分为两类:
Command 域都是 8-bit 的(1 Byte);其中 0x00 - 0xAF 是 User Command Set 的,其余的留给了?Manufacturer Command Set; Manufacturer Command Set (MCS)是厂商用的,在出厂的时候,设置的一些默认的参数,一旦出厂,这些命令不可见了,会被认为是 NOP; User Command Set 是独立的部分,里面的所有的 Command(除了write_LUT),都应该被 Display Module 厂家实现; 其他的未定义的 Command 码,都应该被视作 NOP; 4、Command ListDCS 定义了很多很多的 Command,每个 Command 都有 Command Code,有的 Command 带参数,有的不带,有的只适用与 Type1、2、3架构的一种;DCS 的 List 如下所示: ? ? ? ? ? ? 5、Command AccessibilityDCS 的这些个命令,并不是所有的状态下(Normal、Idle、Sleep、Partial)都可以访问的,具体的可以参考 SPEC,太多了,不列举了; 6、Default Modes and Values同样的,关于 Display Module 来说,这么多命令,每次都全配置一次,太多;默认情况下,有些设置有它的默认值,这里呢,也参考 SPEC,太多了,不多列举了; 7、Command DescriptionsDCS 每个命令都有一些关于它的描述,包括它的 Command Code,它的 Paramters,效果,以及它的流程等; 7.1、enter_idle_modeCommand Code = 0x39 发送这条命令,使得 Display Module 进入 Idle 模式 效果如下: ?明显可以看到,Idle 模式下,色彩信息被减少了; 进入 Idle 的流程如下: 7.2、set_page_addressCommand Code = 0x2B 用于设置显示区域的 Y 坐标起始和终止; Command + Paramter 1 +?Paramter 2 +?Paramter 3 +?Paramter 4 SP 是 Start Page 的简写,EP 是 End Page 的简写,这里叫 Page 可能会让你疑惑,那么看这个图: ? 可以知道,其实 Page 就是纵坐标的意思; 它的典型使用流程是: ?先使用?set_column_address 命令,设置横坐标,在使用?set_page_address 设置纵坐标,然后在这个横纵坐标之间,去进行局部绘制; 7.3、set_column_addressCommand Code = 0x2A 这个命令刚刚上面提到了,用于设置显示区域的 X 坐标起始和终止; Command + Paramter 1 +?Paramter 2 +?Paramter 3 +?Paramter 4 SC 是 Start Column 的简写,EC 是 End Column 的简写,图: ?典型用法如上面一个所示: ?用于指定一个矩形区域进行绘制;
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:42:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |