许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  MIPI 系列之 DCS

MIPI 系列之 DCS

阅读数 4
点赞 0
article_banner

目录

1、Display Architectures

2、Power Level Definition

3、Display Command Set

4、Command List

5、Command Accessibility

6、Default Modes and Values

7、Command Descriptions

7.1、enter_idle_mode

7.2、set_page_address

7.3、set_column_address


MIPI 协议族,定义了一个专门用于显示的命令集,叫做 Display Command Set,简称为 DCS;这个 DCS 起什么作用呢?主要是 Host 和 Display 之间的一些 Command 配置和数据传输,以及读 Display 的数据等;

使用过 SPI 的屏的朋友们应该知道,上电后,就开始劈里啪啦的一顿配置,比如,SPI 的屏 ST7735S,上电初始化,就是一顿干:

  1. static void LCD_Parameters_Init(void)
  2. {
  3. LCD_RST_LOW();// Reset
  4. delay_ms(100);
  5. LCD_RST_HIGH();
  6. delay_ms(100);
  7. LCD_BLK_HIGH();// Open bl
  8. delay_ms(100);
  9. LCD_WriteCmd(0x11); // Sleep out
  10. delay_ms(120); // Delay 120ms
  11. //------------------------------------ST7735S Frame rate-------------------------------------------------//
  12. LCD_WriteCmd(0xB1); //Frame rate 80Hz
  13. LCD_WriteData(0x02);
  14. LCD_WriteData(0x35);
  15. LCD_WriteData(0x36);
  16. LCD_WriteCmd(0xB2); //Frame rate 80Hz
  17. LCD_WriteData(0x02);
  18. LCD_WriteData(0x35);
  19. LCD_WriteData(0x36);
  20. LCD_WriteCmd(0xB3); //Frame rate 80Hz
  21. LCD_WriteData(0x02);
  22. LCD_WriteData(0x35);
  23. LCD_WriteData(0x36);
  24. LCD_WriteData(0x02);
  25. LCD_WriteData(0x35);
  26. LCD_WriteData(0x36);
  27. //------------------------------------End ST7735S Frame rate-------------------------------------------//
  28. LCD_WriteCmd(0xB4); //Dot inversion
  29. LCD_WriteData(0x03);
  30. //------------------------------------ST7735S Power Sequence-----------------------------------------//
  31. LCD_WriteCmd(0xC0);
  32. LCD_WriteData(0xA2);
  33. LCD_WriteData(0x02);
  34. LCD_WriteData(0x84);
  35. LCD_WriteCmd(0xC1);
  36. LCD_WriteData(0xC5);
  37. LCD_WriteCmd(0xC2);
  38. LCD_WriteData(0x0D);
  39. LCD_WriteData(0x00);
  40. LCD_WriteCmd(0xC3);
  41. LCD_WriteData(0x8D);
  42. LCD_WriteData(0x2A);
  43. LCD_WriteCmd(0xC4);
  44. LCD_WriteData(0x8D);
  45. LCD_WriteData(0xEE);
  46. //---------------------------------End ST7735S Power Sequence---------------------------------------//
  47. LCD_WriteCmd(0xC5); //VCOM
  48. LCD_WriteData(0x0a);
  49. LCD_WriteCmd(0x36);
  50. LCD_WriteData(0x08);
  51. //------------------------------------ST7735S Gamma Sequence-----------------------------------------//
  52. LCD_WriteCmd(0XE0);
  53. LCD_WriteData(0x12);
  54. LCD_WriteData(0x1C);
  55. LCD_WriteData(0x10);
  56. LCD_WriteData(0x18);
  57. LCD_WriteData(0x33);
  58. LCD_WriteData(0x2C);
  59. LCD_WriteData(0x25);
  60. LCD_WriteData(0x28);
  61. LCD_WriteData(0x28);
  62. LCD_WriteData(0x27);
  63. LCD_WriteData(0x2F);
  64. LCD_WriteData(0x3C);
  65. LCD_WriteData(0x00);
  66. LCD_WriteData(0x03);
  67. LCD_WriteData(0x03);
  68. LCD_WriteData(0x10);
  69. LCD_WriteCmd(0XE1);
  70. LCD_WriteData(0x12);
  71. LCD_WriteData(0x1C);
  72. LCD_WriteData(0x10);
  73. LCD_WriteData(0x18);
  74. LCD_WriteData(0x2D);
  75. LCD_WriteData(0x28);
  76. LCD_WriteData(0x23);
  77. LCD_WriteData(0x28);
  78. LCD_WriteData(0x28);
  79. LCD_WriteData(0x26);
  80. LCD_WriteData(0x2F);
  81. LCD_WriteData(0x3B);
  82. LCD_WriteData(0x00);
  83. LCD_WriteData(0x03);
  84. LCD_WriteData(0x03);
  85. LCD_WriteData(0x10);
  86. //------------------------------------End ST7735S Gamma Sequence-----------------------------------------//
  87. LCD_WriteCmd(0x3A); //65k mode
  88. LCD_WriteData(0x05);
  89. LCD_WriteCmd(0x29); //Display on
  90. }
cpp
运行

可以看到,一般是一个 Command 带一堆 Data,Command 描述了这次传输是用来干嘛的,Data 呢,就是此次事件的数据;

为了标准化显示设备,所以呢,就有制定一些个标准(听君一席话,如听一席话);

为了统一江山,Display 方,大家按照同一套标准来定制这个 Command + Data,此刻 DCS 闪亮登场;

1、Display Architectures

Display 的结构,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 Set

DCS 用于发送 pixel 数据,配置 Display Module,或者读 Display Module 的一些数据或者寄存器;

DCS 分为两类:

  • User Command Set
  • Manufacturer Command Set

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 List

DCS 定义了很多很多的 Command,每个 Command 都有 Command Code,有的 Command 带参数,有的不带,有的只适用与 Type1、2、3架构的一种;DCS 的 List 如下所示:

 

 

 

 

 

 

5、Command Accessibility

DCS 的这些个命令,并不是所有的状态下(Normal、Idle、Sleep、Partial)都可以访问的,具体的可以参考 SPEC,太多了,不列举了;

6、Default Modes and Values

同样的,关于 Display Module 来说,这么多命令,每次都全配置一次,太多;默认情况下,有些设置有它的默认值,这里呢,也参考 SPEC,太多了,不多列举了;

7、Command Descriptions

DCS 每个命令都有一些关于它的描述,包括它的 Command Code,它的 Paramters,效果,以及它的流程等;

7.1、enter_idle_mode

Command Code = 0x39

发送这条命令,使得 Display Module 进入 Idle 模式

效果如下:

 明显可以看到,Idle 模式下,色彩信息被减少了;

进入 Idle 的流程如下:

7.2、set_page_address

Command 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_address

Command Code = 0x2A

这个命令刚刚上面提到了,用于设置显示区域的 X 坐标起始和终止;

Command + Paramter 1 + Paramter 2 + Paramter 3 + Paramter 4

SC 是 Start Column 的简写,EC 是 End Column 的简写,图:

 典型用法如上面一个所示:

 用于指定一个矩形区域进行绘制;

 还有很多 Command,就不全部列举了,这个文档,可以当作参考手册来使用,用的时候来查就行;


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空