《ILI9341的使用之【一】TFT-LCD原理(转载)》
《ILI9341的使用之【二】ILI9341介绍》
《ILI9341的使用之【三】ILI9341系统通信接口模式操作详解》
《ILI9341的使用之【四】RGB接口操作详解》
《ILI9341的使用之【五】命令一》
《ILI9341的使用之【六】命令二》
《ILI9341的使用之【七】实体面板案例-arduino 2.4inch TFT Touch Shield》
《ILI9341的使用之【八】ASCII字符显示及驱动分析》
《ILI9341的使用之【九】BG2312字库》

一、RGB接口的选择

ILI9341有两种RGB接口,分别是DE模式SYNC模式。通过设置RCM[1:0]bits位(此为指令B0h-RGB Interface Signal Control的参数),实现接口类型的选择。当RCM[1:0]=‘10’时,包含VSYNC、HSYNC、DOTCLK、DE、D[17:0]些引脚的DE模式被选择。当RCM[1:0]='11’时,包含VSYNC、HSYNC、DOTCLK,D[17:0]引脚的SYNC模式被选择。(见下表)
说明: DE(Data Enable);SYNC(SYNChronization)
注意:RGB模式是工作在串行接口模式下的。
象素格式: ILI9341支持多种的象素格式,这可以通过设置“Pixel Format set (3Ah)”指令中的DPI[2:0] 位和“Interface Control(F6h)”指令中的RIM位进行选择。RCM[1:0] 是在"RGB Interface Signal Control(B0h)"指令中进行设置。

下图为SYNC模式下的像素颜色格式:

像素时钟(DOTCLK)会一直不停运行。当DOTCLK上升沿时会引入VSYNC,HSYNC,DE和D[17:0]状态值。
VSYNC(垂直同步)引脚,被用于标识什么时候收到一个新的显示帧数据。该引脚是低电平有效。并且该 状态在DOTCLK上升沿时被读入显示模块。

HSYNC(水平同步)引脚,被用于标识什么时候收到一个帧的新行。该引脚是低电平有效。并且该 状态在DOTCLK上升沿时被读入显示模块。

在DE模式中,DE(Data Enable)信号用来标识什么时候接收到了将被显示的RGB信息。该信号是高电平有效,它的状态在DOTCLK上升沿时被显示模块读取。

D[17:0]被用来传送用来显示的图像信息。当DE=0并且在DOTCLK上升沿时被读入。

在SYNC模式中,有效的显示数据是经由D[17:0]以像素数据输入的。该数据的格式是根据HSYNC信号的HFP/HBP设置的和VSYNC信号的VFP/VBP设置的。(vFP/VBP,HFP/HBP的含义如下图所述,设置的指令为B5h-Blanking Porch Control)
在这两种RGB模式中,输出的显示数据首先被写入GRAM中,然后再从GRAM中根据灰度数据输出相应的源极电压。


一般240*320分辨率的面板所使用的标准参数值为,6.35MHZ 时钟频率和70HZ的帧刷新率。
注意:
1、Vertical垂直的周期(一帧one frame)的值 为:Vsync + VBP + VAdr + VFP
2、Horizontal水平周期(一线one line)的值为: Hsync + HBP + HAdr + HFP.
3、在所有主控制器与显示模块之间传送像素值的时间里,控制信号PCLK和Hsync将按规定传送

同时也要确保
(Number of PCLK per 1 line) ≥ (Number of RTN clock) x Division ratio (DIV) x PCDIV

RGB接口操作显示控制时钟设置示例:
使用DPI的寄存器显示操作与内部时钟PCLKD同步,PCLKD是通过对DOTCLK分频产生的。
PCDIV[5:0]:在内部时钟PCLKD的一个高/低周期间的DOTCLK时钟的个数。PCDIV是指令B6h(Display Function Control)定义的参数。

PCDIV指定了DOTCLK脉冲的分频率,它决定于PCLKD的频率与内部615KHZ振荡时钟有多少差异。根据下面的约束设置PCDIV:
(Number of PCLK in 1H) ≥ (Number of RTN clock) x Division ratio (DIV) x PCDIV

设置实例: 设置帧刷新率为 70Hz:
Internal Clock
Internal Oscillation Clock: 615KHz
DIV[1:0] = 00 (1倍的时钟615KHZ)
RTN[4:0] = 1b (27 clocks)
FP = 7’h2 (2 lines), BP = 7’h2 (2 lines), NL = 6’h27 (320 lines)
(说明:VFP,VBP 指令B5h Blanking Porch Control的参数。NL为指令B6h Display Function Control的参数)
Frame Rate : 70.30Hz

DOTCLK
HSYNC = 10 CLK
HBP = 20 CLK
HFP=10 CLK
(说明:HFP,HBP 指令B5h Blanking Porch Control的参数。)
70Hz x (2 + 320 + 2) lines x (10 + 20 + 240 + 10) clocks = 6.35MHz
DOTCLK frequency = 6.35MHz
6.35 MHz / 615KHz = 10.32 I Set PCDIV so that PCLK is divided by 10.
external fosc = 6.35 MHz / 10 = 635KHz
PCDIV = [ 6.35MHz / 635KHz) / 2 ] - 1 = 4
PCDIV[5:0] = 6’h04 (10 DOTCLK)

二、RGB接口时序

以下为18/16bit RGB 接口模式的时序图解:


注意1:在RGB接口的SYNC模式下,不需要DE信号
注意2:”interface Mode Control(B0h)“命令的这几个参数取值:VSPL,HSPL,DPL,EPL都 为0。

下面为6-bit RGB接口模式的进序图解:


注意1:在RGB接口的SYNC模式下,不需要DE信号
注意2:”interface Mode Control(B0h)“命令的这几个参数取值:VSPL,HSPL,DPL,EPL都 为0。
注意3:在6-bit RGB 接口模式下,一个像素的每个点(R,G,B)是与DOTCLK同步传送
注意4::在6位RGB接口模式下,将VSYNC、HSYNC、DE的周期设置为DOTCLK的3倍。

三、VSYNC接口

ILI9341支持VSYNC接口模式,该模式是由引脚VSYNC提供帧同步信号。该模式是通过8080-I/8080-II系列MCU接口来显示动图。当VSYNC接口被选择用来显示一个动图时,GRAM的最小更新速度是有限制的,并且VSYNC接口是由DM[1:0]=‘10’ 和 RM='0’两个参数设置使能的。
以上提到的两个参数由指令F6h(Interface Control)中的DM[1:0](Display Operation Mode)参数和RM(Inerface for RAM Access)参数设置,

在VSYNC模式下,显示操作是与内部时钟和VSYNC引脚的输入相同步的。帧的刷新率决定于VSYNC信息号的脉冲速率。所有的显示数据都存储在GRAM使动图显示的传送需要的总数据最小化。


VSYNC接口对经由系统接口向内部GRAM写入数据的速度是有最小速度限制的。通过下面的公式进行计算:
Internal clock frequency (fosc.) [Hz] = FrameFrequency x (DisplayLine (NL) + FrontPorch (VFP) + BackPorch (VBP)) x ClockCyclePerLines (RTN) x FrequencyFluctuation.


注意:当RAM写操作不是从VSYNC的下降沿开始的,则从VSYNC的下降沿开始到RAM写操作开始的这段时间也必须计算在内。

以下是一个GRAM最小写速度和VSYNC接口模式下内部时钟频率的实例:

在计算内部时钟频率时,必须要考虑到振荡器的变化。在上面的例子中,考虑到计算的内部时钟频率有±10%的裕度变化并且要确保在一个垂VSYNC周期内完成显示操作。频率变化的原因主要有大规模集成电路的制造工艺、室温、外部电阻和VCI电压的变化。

Minimum speed for RAM writing [Hz] > 240 x 320 x 748K / [ (2 + 320 – 2)lines x 27clocks] ≒ 6.65 MHz

计算上述理论值的前提是ILI9341在VSYNC下降沿开始写入内部GRAM。物理显示行和执行数据写入操作的GRAM地址之间必须至少有2行空白。GRAM以6.35MHZ或更高的写速度将保证GRAM的写入操作能在ILI9341开始在屏幕上显示GRAM数据之前完成,并且能在不出现闪烁的前提下重定整个屏幕。

使用VSYNC接口时注意如下:
1、最小的GRAM写速率必须被满足。并且必须要考虑频率的变化。
2、帧的显示速率决定于VSYNC信号,以及VSYNC的周期必须长于完全显示的扫描周期。
3、当从内部时钟操作模式(DM[1:0]=‘00’)切换到 VSYNC接口模式,或反相。这个切换应从下一个VSYNC周期 ,也即,在一个帧完全显示 后。
4、在垂直同步界面模式下,不支持部分显示、垂直滚动和隔行扫描功能。

四、色深转换查询表(省略)

五、DDRAM(Display Data RAM)

ILI9341集成了240x320x18位图形型静态RAM。这172,800字节的内存允许存储一幅240xRGBx320图像,18位分辨率(262K-color)。当对帧存储器的同一位置同时进行面板显示读和接口读/写时,显示器上不会有异常可见效果。

ILI9341的使用之【四】RGB接口操作详解相关推荐

  1. mysql curd操作_(四):CURD操作详解(增删改查)

    基本操作:增删改查 一.增 增: insert 介绍: mongodb存储(单位)的是文档,. 文档是json格式的对象. 语法: db.collectionName.isnert(document) ...

  2. 转 LCD的接口类型详解

    LCD的接口类型详解 LCD的接口有多种,分类很细.主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式, ...

  3. VC++常用数据类型及其操作详解 [

    一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,cha ...

  4. VC++常用数据类型及其操作详解(非常经典,共同分享)

    友情提示: 为了方便你更好的学习和阅读,也更好的体现尊重原创作者的劳动成果,请您直接查看转载原本链接: http://snailflying.blog.hexun.com/8219350_d.html ...

  5. VC++常用数据类型及其操作详解

    一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,cha ...

  6. Java语言Socket接口用法详解

    Socket接口用法详解   在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...

  7. 用python处理excel的基本语法_Python对Excel操作详解

    Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...

  8. (十四)桥接模式详解(都市异能版) - 转

    作者:zuoxiaolong8810(左潇龙),转载请注明出处. 魔都国贸附近,某天夜里十一点半. 那一晚,魔都出奇的没有做只打雷不下雨的勾当,老天似乎是要将魔都淹没一般,倾盆大雨像不要命似的拍打着地 ...

  9. spring之旅第四篇-注解配置详解

    spring之旅第四篇-注解配置详解 一.引言 最近因为找工作,导致很长时间没有更新,找工作的时候你会明白浪费的时间后面都是要还的,现在的每一点努力,将来也会给你回报的,但行好事,莫问前程!努力总不会 ...

最新文章

  1. promise 和 async await区别
  2. php 使用netstat -an,netstat -an 查看端口
  3. 用完U盘忘记安全退出了,会造成数据丢失吗
  4. 第八周课上额外项目:pwd的实现
  5. Python 零碎信息-基础 02
  6. 单片机IO口模拟串口程序(发送+接收
  7. AutoHotKey程序防止反编译的简单手段
  8. mac下的svn服务器建立
  9. matlab线性拉伸函数,采用线性变换对图像的每一个像素灰度作线性拉伸-Read.PPT
  10. AFNetworking2.0源代码解析
  11. 利用EEPROM实现arduino的断电存储
  12. 算法分析之渐近分析(Asymptotic Analysis)
  13. 钉钉微应用H5的调试方法
  14. 每日一题系列 - 荷兰国旗问题
  15. excessive cpu 优化杀进程解决方案 android P
  16. 遍历同辈节电的方法_家庭节水节电的24个好方法
  17. 如何更新一台计算机的驱动程序,如何更新电脑驱动,老司机手把手教你更新
  18. matlab cdfx,求助大神
  19. AIIA开发者大会——百度·产业AI技术公开课
  20. unity中AO、metallic、roughness贴图的使用方式

热门文章

  1. 身份证最后一位出现“X”之原因
  2. prometheus alertmanager告警pending
  3. 奥的斯服务器设置楼层运行,奥的斯服务器PPT
  4. private和protected的区别_学习笔记
  5. 05-3. 六度空间 (30)
  6. 坚果云同步的HTML编辑器,我的浏览器标签同步方案:坚果云+Floccus
  7. google的搜索技巧
  8. php sleep usleep,php中sleep()和usleep()函数使用对比
  9. (十)Intellij 远程调试 a bug
  10. golang中的值类型和引用类型