由于ILI9341命令体系比较庞大,因此为了查询方便,把命令部分的解释分为两篇,本文为第二篇。第一篇详细解释了编码在3Fh以下的指令。本文详细解释编码在3Fh以上的指令。
《ILI9341的使用之【一】TFT-LCD原理(转载)》
《ILI9341的使用之【二】ILI9341介绍》
《ILI9341的使用之【三】ILI9341系统通信接口模式操作详解》
《ILI9341的使用之【四】RGB接口操作详解》
《ILI9341的使用之【五】命令一》
《ILI9341的使用之【六】命令二》
《ILI9341的使用之【七】实体面板案例-arduino 2.4inch TFT Touch Shield》
《ILI9341的使用之【八】ASCII字符显示及驱动分析》
《ILI9341的使用之【九】BG2312字库》
36. Set_Tear_Scanline (44h)
当显示到STS(撕裂扫描线)线,该指令打开在TE信号脚上的显示撕裂效果输出信号。TE信号不会受MADCTL 的B4位的改变的影响。而指令Tearing Effect Line On (35h) 只有一个描述Tearing Output Line 模式的参数。
注意:set_tear_scan_line 的参数STS=0 等同于 set_tear_on 指令及参数M=0
当显示模块处于睡眠模式下,Tearing Effect Output 线由低电平激活。
37. Get_Scanline (45h)
返回当前的扫描行,GTS,用于更新显示设备。在显示设备上的扫描线的总数量被定义为VSYNC+VBP+VACT+VFP。(参考下图 RGB接口中的相关定义)
38. Write Display Brightness (51h)
该指令用于调整显示的亮度值。应该检测写入值 与输出亮度之前的关系 。这个对应关系是被写入模块规范内的。00h对应最低亮度。FFh对应最大亮度。
39. Read Display Brightness (52h)
该命令返回显示的亮度值。
在DBI(数据总线接口)模式下如果MCU需要读超过一个参数,则显示模式需正在发送第二个参数值。超过一个参数需要超过2个RDX脉冲周期。
第二个参数才会被发送到DSI上,第一个不会被发送。
40. Write CTRL Display (53h)
该命令用于控制显示亮度操作。
**参数BCTRL:**亮度控制块On/Off,这个位用于这亮度的切换。
0-关(这亮度寄存器值为00h)
1-开(亮度寄存器可用,由51h指令Write Display Brightness来具体设置
**参数DD:**调光,仅用于手动调光设置
0:显示调光功能关闭
1:显示调光功能开
**参数BL:**背光控制 On/Off
0:关(完全关闭背光电路,控制线必须最低)
1:开
当DD=0时。改变BCTLR 位才使调光功能起作用。
当BL位由ON变为OFF,背光直接关闭。即使DD=1.
41. Read CTRL Display (54h)
42. Write Content Adaptive Brightness Control (55h)
这个命令用于基地图像内容的自适应亮度控制。关联指令为(5Eh)Write CABC Minimum Brightness
有可能使用4种不同的模式的内容自适应图像功能。
43. Read Content Adaptive Brightness Control (56h)
该命令用于读出基于图像内容的自适应亮度控制功能。
如果MCU要读出超过一个参数(超过2个RDX脉冲周期),显示模块须正处于发送第二个参数值。
只有第二个参数会被发送出来,第一个参数不会被发送出来。
44. Write CABC Minimum Brightness (5Eh)
CABC:Content Adaptive Brightness Control内容自适应亮度控制
本指令用于为CABC功能设置最小的亮度值。关联指令为(55h)Write Content Adaptive Brightness Control。
CMB[7:0]:CABC最小亮度控制参数。这个参数可以避免亮度减少太多亮度。工作方式如下。
在CABC状态下(该状态的设置由55h指令实现)。CABC自适应的亮度值不会低于CMB参数所设定的最小值。这时,即使亮度不能更改,图像处理功能可以正常工作。
这个功能不会影响到其它功能,手动亮度调整(51h指令)。因为手动亮度调调整可以设置亮度低于CMB参数设定的最小亮度。
当显示亮度被关闭(即:指令53h的BCTRL参数为0时),本指令参数CMB所设置的最亮度会被忽略。
CMB参数的取值范围:00h是最低亮度,FFh对应最高亮度。
45. Read CABC Minimum Brightness (5Fh)
本指令返回5Eh指令所设置的最小亮度值。
读取的值为5Eh指令参数CMB的值。第二个返回的参数是有效参数。
46. Read ID1 (DAh)
该指令读出的字节是识别LCD模块的制造商ID和说明。
第二个参数才是LCD模块制造商ID。第一个参数无意义。
47. Read ID2 (DBh)
本指令用于读取LCD模块的版本。通过参数二返回。参数一无意义。
返回的版本ID值的范围为80h-FFh。
ID2可以通过MTP功能编程设定。
48. Read ID3 (DCh)
本指令和上一个指类似。区别再于读的是ID3
二级命令详解
49. RGB Interface Signal Control (B0h)
该指令用于设置显示接口的操作状态。该指一发送设置即刻生效。
EPL: DE 极性 (EPL为“0”时,则DE取 High时 RGB 接口有效,EPL为 “1”时DE取 Low 时 RGB interface有效)
DPL: DOTCLK 极性设置 (DPL为“0”时,则DOTCLK在上升沿时读数据,DPL为 “1”时,则DOTCLK在下降沿时读取数据)
HSPL: HSYNC 极性 (HSPL为“0”时,HSYNC低电平同步时钟,HSPL为 “1”时,HSYNC高电平同步时钟)
VSPL: VSYNC 极性 (VSPL为“0”时,VSYNC为低电平同步时钟,VSPL为 “1”时,VSYNC为高电平同步时钟)
RCM [1:0]: RGB接口选择 (参考《ILI9341的使用之【四】RGB接口操作详解》内的描述).
ByPass_MODE: 使用RGB接口时,选择显示数据路径是内存还是直接移位寄存器。
50. Frame Rate Control (In Normal Mode/Full Colors) (B1h)
在MCU接口中为正常模式的内部时钟设置分频比。以下的相关内容和术语以及本命令的意义与作用请参考 《ILI9341的使用之【四】RGB接口操作详解》内的描述。
fosc : internal oscillator frequency (内部振荡频率)
Clocks per line : RTNA setting (参数RTNA或者也简称RTN的参数设置的每线时钟数)
Division ratio : DIVA setting (参数DIVA或者也简称DIV的参数设置的分频比)
Lines : total driving line number
VBP : back porch line number
VFP : front porch line number
51. Frame Rate Control (In Idle Mode/8 colors) (B2h)
MCU接口中为空闲模式(8色)下的内部时钟设置分频比。
52. Frame Rate control (In Partial Mode/Full Colors) (B3h)
在MCU接口中为局部模式的内部时钟设置分频比。
53. Display Inversion Control (B4h)反转显示控制
正常模式,空闲模式,局部模式中的反转显示设置
54. Blanking Porch Control (B5h) 显示外框设置
参考 《ILI9341的使用之【四】RGB接口操作详解》内的描述。
55. Display Function Control (B6h)
PT[1:0]:在局部显示模式中,该参数确定 源/VCOM在非显示区域 输出。
SS:选择从源极驱动器上输出的移动方向
除了移位方向,还需要设置SS和BGR位,以改变R,G,B点对源驱动器引脚的分配。
SS=0,则从S1-S720的顺序分配R,G,B点到源极驱动器引脚。
SS=1,则按S720-S1的顺序分配R,G,B点到源极驱动器引脚 。
REV:选择液晶类型是正常白色类型还是正常黑色类型。
ISC[3:0]:当PTG[1:0]='10’选定了间隔扫描,本参数指定了非显示区域的栅极驱动器的扫描周期间隔。
然后将扫描周期设置为0~29帧周期的奇数。每个扫描周期的极性都是颠倒的。
GS:将栅极驱动器的扫描方向设置在SCN[4:0]和NL[4:0]所确定的范围内。
SM:结合GS位设置栅极驱动器排列,用于为模块选择理想的扫描模式。
NL[5:0]:设置驱动LCD的行数,每隔8行。GRAM地址映射不会受NL设置的行数的影响。线数必须等于或大于LCD尺寸所需的线数。
56. Entry Mode Set (B7h)
57. Backlight Control 1 (B8h)
TH_UI[3:0]:这些位用于设置用户接口UI模式中灰度数据累积直方图值的百分比。使显示图像为白色(=数据“255”)的最大像素数与图像处理的像素总数的比率。
58. Backlight Control 2 (B9h)
TH_ST[3:0]:这几位被用来设置静态图片模式下灰度数据累积直方图值的百分比。使显示图像为白色(=数据“255”)的最大像素数与图像处理的像素总数的比率。
**TH_MV[3:0]:**这几位被用来设置动态图像模式下灰度数据累积直方图值的百分比。使显示图像为白色(=数据“255”)的最大像素数与图像处理的像素总数的比率。
59. Backlight Control 3 (BAh)
DTH_UI[3:0]:参数用于设置用户图标(UI)图像模式下灰度阈值的最小限制。该寄存器的设置将限制最小Dth值,用于防止显示图像太白以及显示质量不可接受。
60. Backlight Control 4 (BBh)
**DTH_ST [3:0]/DTH_MV [3:0]:**这两个参数用于设置灰度阈值的最小限制(两类参数分别针对静态和动态图像模式)。该寄存器的设置将限制最小Dth值,用于防止显示图像太白以及显示质量不可接受。
61. Backlight Control 5 (BCh)
**DIM1[2:0]:**该参数用于设置亮度级别的过渡时间,避免视觉上出现明显的亮度过渡。
**DIM2[3:0]:**设置亮度变化的阈值。当亮度变化的差小于DIM2[3:0]时,亮度变化将被忽略。
例如:
如果|亮度B -亮度A| < DIM2[2:0],亮度转换将被忽略并保持亮度A。
62. Backlight Control 7 (BEh)
PWM_DIV [7:0]: PWM_OUT输出频率控制。调节PWM波形频率。PWM频率的计算公式如下:
63. Backlight Control 8 (BFh)
**LEDPWMPOL:**该位用于定义LEDPWM信号的极性。
**LEDONPOL:**该位用于控制LEDON引脚。
**LEDONR:**该位用于控制LEDON引脚。
下面各表中的“BL”请参考53h(Write CTRL Display)指令的相关说明。
64. Power Control 1 (C0h)
65. Power Control 2 (C1h)
**BT[2:0]😗*设置在升压电路中使用的系数。
为升压电路选择最佳的升压系数。为了减少能耗,则设置最小的系数
66. VCOM Control 1(C5h)
67. VCOM Control 2(C7h)
**nVM:**上电复位后,nVM等于“0”,VCOM偏移量等于程序的MTP值。当nVM设置为“1”时,VMF[6:0]的设置生效,可以调整VCOMH/VCOML。
68. NV Memory Write (D0h)
该 命令用于对NV 内存数据进行编程。在MTP操作成功后,PGM_DATA[7:0]将被编程到NV内存中。
69. NV Memory Protection Key (D1h)
**KEY[23:0]😗*NV内存编程保护键。当写入MTP数据到D1h时,该寄存器必须设置为
0x55AA66h使能MTP编程。如果D1h寄存器不是用0x55AA66h写的,那么NV内存编程将中止。
70. NV Memory Status Read (D2h)
71. Read ID4 (D3h)
72. Positive Gamma Correction (E0h)阳极伽马修正
设置灰度电压来调整TFT面板的gamma特性。
EXTC应是高电平,使能该命令。
73. Negative Gamma Correction (E1h)阴极伽马修正
74. Digital Gamma Control 1 (E2h)
75. Digital Gamma Control 2(E3h)
76. Interface Control (F6h)
MY_EOR / MX_EOR / MV_EOR / BGR_EOR:
在IC中使用MADCTL的设置值是以IFCTL的第一个参数和MADCTL的参数之间异或的方式被推导出来的。(这段字面意思是这个,但是讲的是什么逻辑,的确没搞懂。先按这个翻译,过后再研究这段话的逻辑。)
**MDT[1:0]:**选择显示数据传送的模式。
WEMODE: Memory write control (关联命令为3Ch Write_Memory_Continue)
WEMODE=0: 当传送的数据量大于 (EC-SC+1)(EP-SP+1),多余的数据被忽略。
WEMODE=1: 当传送的数据量大于 (EC-SC+1)(EP-SP+1), 行和列的指针会被重置,并且多余的数据将被写入到行列指针所找的位置。
**ENDIAN:**选择小端字节序。在小端字节序模式下,主机先发送字节的最小有效位。(注意:小端字节序只在 65K 8-bit和 65K 9-bit的MCU接口模式下才有效)
DM [1:0]: 选择显示运行模式模式(Internal clock operation 、 RGB Interface Mode 、 VSYNC Interface mode 、Setting disabled)
DM [1:0] 的设置允许在内部时钟运行模式和扩展显示接口运行模式进行切换。然而,禁止在RGB接口模式与VSYNC接口运行模式间切换。
**RM:**选择访问GRAM的接口。RM=1,用RGB接口模式写显示模式。
RIM: 在RGB接口被选择后,该参数用于指定RGB具体的接口方式。这些位应该 在显示运行前通过RGB接口设置 ,运行中不能设置。
EPF [1:0]: 65K 色的数据格式。
以上命令的运行,EXTC引脚应该设为高电平。
扩展的寄存器命令
77、 Power control A (CBh)
78、Power control B (CFh)
79、 Driver timing control A (E8h)
第一个参数:栅极驱动的非重叠定时控制
NOW=:
0:default non-overlap time
1:default + 1unit
第二个参数:EQ timing control EQ定时控制
0: default – 1unit
1:default EQ timing
第二个参数:CR timing control CR(控制寄存器)定时控制
0: default – 1unit
1:default CR timing
第三个参数:pre-charge timing control 预充电定时控制
11: reserved
10: default pre-charge timing
01:default – 1unit
00:default – 2unit