导图社区 RA8876
有关于RA8876芯片寄存器的相关使用及解析,如LCD_HSYNC_Pulse_Width(unsigned short WX),作用是设置水平同步信号HSYNC脉冲宽度(Horizontal_Pulse_Width)。
编辑于2023-05-05 18:36:58 江苏省RA8876初始化

1、RA8876_HW_Reset()
作用:硬件复位
实现:
1、将PE1引脚(RST_RA8876)复位(0)
2、将PE1引脚(RST_RA8876)置位(1)
2、System_Check_Temp()
作用:向芯片配置寄存器写入初始参数
实现:
1、向01h寄存器写入0x80
2、读取01h寄存器判断是否为0x80数值
否:重新写入
是:退出
注:
01h寄存器为芯片配置寄存器

7bit
作用:重新配置PLL频率(PLL frequency)
写入数据:
0
不做操作
1
重新配置PLL频率
6bit
作用:在XnCS取消断言上屏蔽XnWAIT
写入数据:
0
无掩码(No Mask)
1
掩码(Mask)
5bit
作用:启用/禁用密钥扫描(Key-Scan)
写入数据:
0
禁用(Disable)
1
启用(Enable)
4-3bit
作用:用于RA8876 TFT面板I/F输出引脚设置(I/F Output pin)
写入数据:
00b
24位TFT输出
01b
18位TFT输出
10b
16位TFT输出
11b
无TFT输出
2bit
作用:IIC主接口启用/禁用(IIC)
写入数据:
0
Disable(GPIO function)
1
Enable(IIC master function)
1bit
作用:串行闪存或SPI接口已启用/禁用(Serial Flash or SPI)
写入数据:
0
Disable(GPIO function)
1
Enable(SPI master function)
0bit
作用:主机数据总线宽度的选择(Host Data Bus Width)
写入数据:
0
8位主机数据总线
1
16位主机数据总线
3、RA8876_PLL()
作用:设置PLL时钟值
实现:
1、向05h寄存器写入数据参数(设置SCLK分频系数)
2、向07h寄存器写入数据参数(设置MCLK分频系数)
3、向09h寄存器写入数据参数(设置CCLK分频系数)
4、向06h寄存器(SCLK)写入数据(Panel Scan时钟频率)
5、向08h寄存器(MCLK)写入数据(SDRAM时钟频率)
6、向0Ah寄存器(CCLK)写入数据(Core时钟频率)
7、使能PLL寄存器(Enable_PLL())
1、将01h寄存器原有数据进行读取
2、将原有数据
第7位置位(1)
3、将修改好的数据放回01h寄存器
注:
05h寄存器为SCLK PLL控制寄存器1

7bit
作用:预留(RESERVED)
6bit
作用:空(NA)
5-3bit
作用:SCLK预分频器(extra divider)
写入数据:
xx1b
16分频(divided by 16)
000b
1分频(divided by 1)
010b
2分频(divided by 2)
100b
4分频(divided by 4)
110b
8分频(divided by 8)
2-1bit
作用:SCLK PLL输出分频器(SCLK PLLDIVK[1:0])
写入数据:
00b
1分频(divided by 1)
01b
2分频(divided by 2)
10b
4分频(divided by 4)
11b
8分频(divided by 8)
0bit
作用:PCLK PLL预驱动程序参数(SCLK PLLDIVM)
写入数据:
0b
1分频(divided by 1)
1b
2分频(divided by 2)
06h寄存器为SCLK PLL控制寄存器2

7-6bit
作用:空(NA)
5-0bit
作用:SCLK PLL输入参数(SCLK PLLDIVN[5:0])
写入数据:
value:1~63
注:
PCLK是由面板的扫描时钟所使用的,并源自于SCLK (PCLK is used by panel's scan clock and derived from SCLK)
07h寄存器为MCLK PLL控制寄存器1

7-3bit
作用:空(NA)
2-1bit
作用:PCLK PLL输出分频器(MCLK PLLDIVK[1:0])
写入数据:
00b
1分频(divided by 1)
01b
2分频(divided by 2)
10b
4分频(divided by 4)
11b
8分频(divided by 8)
0bit
作用:MCLK PLL预驱动程序参数(PCLK PLLDIVM)
写入数据:
0b
1分频(divided by 1)
1b
2分频(divided by 2)
08h寄存器为MCLK PLL控制寄存器2

7-6bit
作用:空(NA)
5-0bit
作用:MCLK PLL输入参数(MCLK PLLDIVN[5:0])
写入数据:
value:1~63
注:
MCLK被SDRAM时钟使用 (MCLK is used by SDRAM's clock)
09h寄存器为CCLK PLL控制寄存器1

7-3bit
作用:空(NA)
2-1bit
作用:CCLK PLL输出分频器(CCLK PLLDIVK[1:0])
写入数据:
00b
1分频(divided by 1)
01b
2分频(divided by 2)
10b
4分频(divided by 4)
11b
8分频(divided by 8)
0bit
作用:CCLK PLL预驱动程序参数(CCLK PLLDIVM)
写入数据:
0b
1分频(divided by 1)
1b
2分频(divided by 2)
0Ah寄存器为CCLK PLL控制寄存器2

7-6bit
作用:空(NA)
5-0bit
作用:CCLK PLL输入参数(CCLK PLLDIVN[5:0])
写入数据:
value:1~63
注:
CCLK被核心时钟使用 (CCLK is used by core's clock)
4、RA8876_SDRAM_initail()
作用:对SDRAM进行初始化操作,设置SDRAM配置
实现:
1、对e0h寄存器写入数据参数(设置节电状态、内存类型、内存块数量、行列地址等)
2、对e1h寄存器写入数据参数(设置SDRAM自刷新模式)
3、对e2h寄存器写入数据参数(刷新间隔参数低八位)
4、对e3h寄存器写入数据参数(刷新间隔参数高八位)
5、对e4h寄存器写入数据参数(要传输的数据长度、总线位、初始化启动等)
6、检查SDRAM是否就绪(Check_SDRAM_Ready())
读取当前寄存器地址判断是否为0x04
注:
e0h寄存器为SDRAM属性寄存器

7bit
作用:
SDRAM省电类型(SDRAM Power Saving type)
写入数据:
0
执行断电命令,进入Power Saving模式
1
执行自刷新命令,进入Power Saving模式
6bit
作用:
SDRAM内存模式
写入数据:
0
SDR SDRAM模式
1
移动SDR SDRAM模式(mobile SDR SDRAM)
5bit
作用:
SDRAM Bank区数量
写入数据:
0
2banks(列寻址大小仅支持256个字)
1
4banks
4-3bit
作用:
SDRAM行地址选择
输入数据:
00b
2K(A0-A10)
01b
4K(A0-A11)
1xb
8K(A0-A12)
2-0bit
作用:
SDRAM列地址选择
写入数据:
000b
256(A0-A7)
001b
512(A0-A8)
010b
1024(A0-A9)
011b
2048(A0-A9,A11)
1xxb
4096(A0-A9,A11-A12)
示例配置:
1M*16bit = 16Mbit = 2MByte
0x00
bank no:2
row size:2048
col size:256
2M*16bit = 32Mbit = 4MByte
0x08
bank no:2
row size:4096
col size:256
4M*16bit = 64Mbit = 16MByte
0x28
bank no:4
row size:4096
col size:256
8M*16bit = 128Mbit = 32MByte
0x29
bank no:4
row size:2048
col size:512
16M*16bit = 256Mbit = 64MByte
0x31
bank no:4
row size:8192
col size:512
32M*16bit = 512Mbit = 128MByte
0x32
bank no:4
row size:8192
col size:1024
e1h寄存器为SDRAM模式和扩展模式寄存器

e2h寄存器为自动刷新间隔寄存器(Low byte)

e3h寄存器为自动刷新间隔寄存器(High byte)

e4h寄存器为SDRAM控制寄存器

5、TFT_24bit()
作用:设置输出为24bit数据
实现:
1、读取01h寄存器原有数据
2、将原有数据
第3位复位(0)
第4位复位(0)
3、将修改后的数据放回01h寄存器
6、Host_Bus_16bit()
作用:设置主机线为16bit
实现:
1、读取01h寄存器原有数据
2、将原有数据
第1位置位(1)
3、将修改后的数据放回01h寄存器
7、RGB_16b_16bpp()
作用:
设置主机读/写图像数据格式
实现:
1、读取02h寄存器原有数据
2、将原有数据
第6位置位(1)
第7位复位(0)
3、将修改后的数据放回02h寄存器
注:
02h寄存器为存储器访问控制寄存器

7-6bit
作用:主机读/写图像数据格式
写入数据:
0xb
直接写入 ( 对于所有 8位MPU I/F, 16位MPUI/F8bpp数据模式1和2, 16位MPUI/F16/24BPP数据模式1 串行主机接口 )
10b
掩码每个数据的高字节
11b
平均的掩码数据高字节
5-4bit
作用:主机读取内存方向(Only for Graphic Mode)
写入数据:
00b
Left -》Right then Top -》Button
01b
Right -》Left then Top -》Button
10b
Top -》Button then Left -》Right
11b
Button -》Top then Left -》Right
3bit
作用:空(NA)
2-1bit
作用:
主机写入内存方向(Only for Graphic Mode)
写入数据:
00b
Left -》Right then Top -》Button(Original)
01b
Right -》Left then Top -》Button(Horizontal flip)
10b
Top -》Button then Left -》Right(Rotate right 90° & Horizontal flip)
11b
Button -》Top then Left -》Right(Rptate left 90°)
0bit
作用:空(NA) 必须保持0(must Keep it as 0)
8、MemWrite_Left_Right_Top_Down()
作用:
设置主机写入内存方向
实现:
1、读取02h寄存器原有数据
2、将原有数据
第1位复位(0)
第2位复位(0)
3、将修改后的数据放回02h寄存器
9、Graphic_Mode()
作用:
将文本模式设置为图形模式
实现:
1、读取03h寄存器原有数据
2、将原有数据
第2位复位(0)
3、将修改后的数据放回03h寄存器
注:
03h寄存器为输入控制寄存器

7bit
作用:输出到MPU中断引脚的激活水平(active level)
写入数据:
0
低活跃(active Low)
1
高活跃(active High)
6bit
作用:外部中断输入(XPS[0] Pin)消除回跳
写入数据:
0
没有反跳
1
启动弹跳(1024 OSC 时钟)
5-4bit
作用:
外部中断输入(XPS[0] Pin)触发器类型
写入数据:
00b
低电平触发
01b
下降沿触发
10b
高电平触发
11b
上升沿触发
3bit
作用:空(NA)
2bit
作用:文本模式使能
写入数据:
0
图形模式
1
文本模式
1-0bit
作用:
内存端口读/写目标选择
写入数据:
00b
用于图像数据、模式、用户字符的图形缓冲区(SDRAM)。 支持:读-修改-写入
01b
红色/绿色/蓝色。 每种颜色的伽马表都有256个字节。 用户需要指定所需的伽马表和连续的写入256字节。
10b
图形光标RAM(只接受低8位MPU数据,类似的正常寄存器数据r/w) 不支持图形光标RAM读取。 它包含4个图形光标集。 每一组都有128x16位。 用户需要指定目标图形光标设置并继续写入256字节。
11b
颜色调色板RAM。 它是64x12位SRAM, 所以即使是地址的数据,也只有低4位是有效的。 不支持颜色调色板RAM读取。 用户需要继续写128个字节。
10、Memory_select_SDRAM()
作用:
选择内存端口读/写目标为图像缓冲区(SDRAM)
实现:
1、读取03h寄存器原有数据
2、将原有数据
第0位复位(0)
第1位复位(0)
3、将修改后的数据放回03h寄存器
11、触发沿选择
PCLK_Rising()
PCLK_Falling()
12h寄存器第7位
作用:
面板在XPCLK触发沿获取XPDAT,XDE,XHSYNC等数据信号
实现:
1、读取12h寄存器原有数据
2、将原有数据根据触发沿选择
Rising上升沿:第7位复位(0)
Falling下降沿:第7位置位(1)
3、将修改后的数据放回12h寄存器
注:
12h寄存器为显示配置寄存器

7bit
作用:
PCLK翻转(选择触发信号沿,使xPDATA、XDE、xHSYNC等数据在PCLK信号线触发沿获取)
写入数据:
0
上升沿,数据信号在PCLK信号线上升沿时进行获取
1
下降沿,数据信号在PCLK信号线下降沿时进行获取
6bit
作用:
显示开关(Display ON/OFF)
写入数据
0
显示关闭
1
显示开启
5bit
作用:显示测试颜色栏
写入数据:
0
失能(Disable)
1
使能(Enable)
4bit
作用:
设置水平扫描方向
写入数据
0
从左到右
1
从右到左
3bit
作用:
设置垂直扫描方向
写入数据
0
从上到下
1
从下到上
2-0bit
作用:
并行XPDAT[23:0]输出序列/ LVDS彩色串行数据输出序列
写入数据:
000b
RGB模式
001b
RBG模式
010b
GRB模式
011b
GBR模式
100b
BRG模式
101b
BGR模式
110b
Gray模式
111b
空闲状态模式
12、方向选择
HSCAN_L_to_R()
HSCAN_R_to_L()
VSCAN_T_to_D()
VSCAN_D_to_T()
12h寄存器4-3位
作用:
选择面板上水平和垂直扫描方向
实现:
1、读取12h寄存器原有数据
2、在原有数据基础上根据扫描方向选择 4-3bit 值
HorHorizontal(水平方向)- 4bit
Left-》Right:第4位复位(0)
Right-》Left:第4位置位(1)
Vertical(垂直方向)- 3bit
Top-》Bottom:第3位复位(0)
Bottom-》Top:第3位置位(1)
3、将修改后的数据放回12h寄存器
13、输出数据序列选择
PDATA_Set_RGB()
PDATA_Set_BGR()
12h寄存器2-0位
作用:
选择并行数据输出格式
实现:
1、读取12h寄存器原有数据
2、将原有数据根据数据格式变更12h寄存器 2-0 位的值
000b
RGB模式
001b
RBG模式
010b
GRB模式
011b
GBR模式
100b
BRG模式
101b
BGR模式
110b
Gray模式
111b
空闲状态模式
3、将修改后的数据放回12h寄存器
14、HSYNC极性选择
HSYNC_Low_Active()
HSYNC_High_Active()
13h寄存器第7位
作用:选择HSYNC极性
实现:
1、读取13h寄存器原有数据
2、在原有数据基础上根据极性选择 7bit 值
0
Low Active
1
High Active
3、将修改后的数据放回13h寄存器
注:
13h寄存器为面板扫描时钟和数据设置寄存器

7bit
作用:
xHSYNC极性
写入数据:
0
低电平
1
高电平
6bit
作用:
xVSYNC极性
写入数据:
0
低电平
1
高电平
5bit
作用:
xDE极性
写入数据:
0
低电平
1
高电平
4bit
作用:
xDE空闲状态设置(在节能模式下或显示关闭)
写入数据:
0
DE引脚输出是低电平
1
DE引脚输出是高电平
3bit
作用:
xPCLK空闲状态设置(在节能模式下或显示关闭)
写入数据:
0
PCLK引脚输出是高电平
1
PCLK引脚输出是低电平
2bit
作用:
xPDATA空闲状态设置(在节能模式下或显示关闭)
写入数据:
0
PDATA[23:0]引脚输出是低电平
1
PDATA[23:0]引脚输出是高电平
1bit
作用:
xHSYNC闲置状态设置(在节能模式下或显示关闭)
写入数据
0
HSYNC引脚初始是低电平
1
HSYNC引脚初始是高电平
0bit
作用:
xVSYNC空闲状态设置(在节能模式下或显示关闭)
写入数据
0
VSYNC引脚初始是低电平
1
VSYNC引脚初始是高电平
15、 VSYNC极性选择
VSYNC_Low_Active()
VSYNC_High_Active()
13h寄存器第6位
作用:选择VSYNC极性
实现:
1、读取13h寄存器原有数据
2、在原有数据基础上根据极性选择 6bit 值
0
Low Active
1
High Active
3、将修改后的数据放回13h寄存器
16、DE极性选择
DE_Low_Active()
DE_High_Active()
13h寄存器第5位
作用:
选择DE极性
实现:
1、读取13h寄存器原有数据
2、在原有数据基础上根据极性选择 5bit 值
0
Low Active
1
High Active
3、将修改后的数据放回13h寄存器
17、LCD_HorizontalWidth_VerticalHeight(unsigned short WX,unsigned short HY)
作用:
设置LCD屏幕水平宽度和垂直高度
参数:
1、WX
WX为LCD屏幕分辨率宽度
2、HY
HY为LCD屏幕分辨率高度
实现:
1、 设置水平宽度(14h、15h register)
判断WX数据大小
大于8
将WX数据转换成HDWR数据写入14h寄存器[7:0]
将WX数据转换成HDWFIR数据写入15h寄存器[4:0]
小于8
将14h寄存器设置为0
将WX数据直接传入15h寄存器
2、设置垂直高度(1Ah、1Bh register)
1、将HX数据的低八位传入1Ah寄存器(传入低八位)
2、将HX数据进行右移八位再次传入1Bh寄存器(传入高八位)
注:
14h寄存器为水平显示宽度寄存器

7-0bit
水平显示宽度设置位(Horizontal Display Width Setting Bit) 设置值为HDWE HDWE = (WX / 8)- 1
15h寄存器为水平显示宽度微调寄存器

7-4bit
NA
3-0bit
寄存器指定水平显示宽度的微调值。 它用于支撑水平尺寸不是8倍的面板。 这个调制的每个级别都是1个像素。 设置值为HDWFT HDWFT = (HW % 8)
总水平显示宽度(像素) = (HDWR + 1)*8 + HDWFTR Horizontal display width(pixels) = (HDWR + 1) * 8 + HDWFTR Maximum value cannot over 2048.
1Ah寄存器为垂直高度寄存器0(VDHR0)

7-0bit
垂直显示高度 低八位[7:0] Vertical Display Height Bit[7:0] VDHR0 = HY-1
1Bh寄存器为垂直高度寄存器1(VDHR1)

7-3bit
NA
2-0bit
垂直显示高度 高三位[10:8] Vertical Display Height Bit[10:8] VDHR1 = (HY-1)>> 8
总垂直显示高度(Line) = VDHR + 1 Vertical Display Height(Line) = VDHR + 1
18、LCD_Horizontal_Non_Display(unsigned short WX)
作用:
设置LCD屏幕水平非显示期间信号(Horizontal_Back_Porch)
参数:
WX
该参数为水平后廊值(Horizontal_Back_Porch)
即水平同步信号HSYNC之后的空闲时间
实现:
1、进行宏定义LCD_HBPD的值(具体数据从规格书获取)--》做参数传入函数
2、判断传入的LCD_HBPD数据大小
小于8
1、将16h寄存器设置为0
2、将数据直接传入17h寄存器
大于8
1、将WX数据转换成HNDR数据传入16h寄存器(HNDR = WX/8-1)
2、将WX数据转化成HNDFTR数据传入17h寄存器(HNDFTR = WX%8)
16h寄存器为水平非显示期间寄存器
7-5bit
NA
4-0bit
水平非显示周期(HNDR)位[4:0] 此寄存器指定水平非显示期间。也叫后门廊。 此处写入HNDR值 Horizontal non-display period or Back porch(Pixel)=(HNDR+1)*8+HNDFTR
17h寄存器为水平非显示期间微调寄存器
7-4bit
NA
3-0bit
水平非显示周期的微调(HNDFT)位[3:0] 此寄存器指定水平非显示周期的微调(这个调制的每个级别是1像素) 用于支持同步模式面板 水平不显示时间或后门廊(Pixel)=(HNDR+1)*8+HNDFTR
19、LCD_HSYNC_Start_Position(unsigned short WX)
作用:
设置HSYNC水平开始位置(Horizontal_Fronk_Porch)
参数:
WX
该参数为水平前廊值(Horizontal_Fronk_Porch)
即水平同步信号HSYNC之前的空闲时间
实现:
1、进行宏定义LCD_HFPD的值(具体数据从规格书获取)--》做参数传入函数
2、判断传入的LCD_HFPD数据大小
小于8
直接向18h寄存器写入0x00
大于8
将WX数据转换成HSTR数据传入18h寄存器(HSTR=WX/8-1)
18h寄存器为水平同步信号HSYNC起始坐标寄存器

7-5bit
NA
4-0bit
HSYNC起始位置[4:0] 从显示结束区域到HSYNC开始的起始位置(也成为前门廊) 这个调制的每个级别是8像素 HSYNC起始位置或前门廊(Pixel)=(HSTR+1)*8 HSYNC Start Position or Front porch(Pixel)=(HSTR+1)*8
20、LCD_HSYNC_Pulse_Width(unsigned short WX)
作用:
设置水平同步信号HSYNC脉冲宽度(Horizontal_Pulse_Width)
参数:
WX
该参数为水平同步脉冲宽度 (Horizontal_Sync_Pulse_Width)
即水平同步信号HSYNC信号持续时间
实现:
1、进行宏定义LCD_HSPW的值(具体数据从规格书获取)--》做参数传入函数
2、判断传入的LCD_HSPW数据大小
小于8
直接向19h寄存器写入0x00
大于8
将WX数据转换成HPW数据传入19h寄存器(HPW=WX/8-1)
19h寄存器为水平同步信号HSYNC脉冲宽度寄存器

7-5bit
NA
4-0bit
HSYNC脉冲宽度(HPW)[4:0] HSYNC的周期宽度 HSYNC脉冲宽度(Pixel)=(HPW+1)*8 HSYNC Pulse Width(Pixel)=(HPW+1)*8
21、LCD_Vertical_Non_Display(unsigned short HY)
作用:
设置LCD屏幕垂直非显示期间信号(Verital_Back_Porch)
参数:
HY
该参数为垂直后廊值(Vertical_Back_Porch)
即垂直同步信号VSYNC之后的空闲时间
实现:
1、进行宏定义LCD_VBPD的值(具体数据从规格书获取)--》做参数传入函数
2、将HY数据-1
3、将HY数据低八位传入1Ch寄存器
4、将HY数据右移八位
5、将HY数据传入1Dh寄存器
1Ch寄存器为垂直非显示周期寄存器0

7-0bit
垂直非显示周期位[7:0] 垂直非显示时段(Line) =(VNDR+1) Vertical Non-Display Period(Line)=(VNDR+1)
1Dh寄存器为垂直非显示周期寄存器1

7-2bit
NA
1-0bit
垂直非显示期间为[9:8]
22、LCD_VSYNC_Start_Position(unsigned short HY)
作用:
设置垂直同步信号VSYNC信号起始位置(Verital_Front_Porch)
参数:
HY
该信号为垂直前廊信号(Verital_Front_Porch)
实现:
1、进行宏定义LCD_VFPD的值(具体数据从规格书获取)--》做参数传入函数
2、将HY数据-1
3、将HY数据传入0x1E
1Eh寄存器为垂直同步信号VSYNC脉冲宽度寄存器

7-0bit
VSYNC 起始位置[7:0] 从显示区域结束到VSYNC开始的起始位置 VSYNC起始位置(Line)=(VSTR+1) VSYNC Start Position(Line)=(VSTR+1)
23、LCD_VSYNC_Pulse_Width(unsigned short HY)
作用:
设置垂直同步信号VSYNC信号脉冲宽度(Verital_Sync_Pulse_Width)
参数:
HY
该参数为垂直同步脉冲宽度(Verital_Sync_Pulse_Width)
实现:
1、进行宏定义LCD_VSPW的值(具体数据从规格书获取)--》做参数传入
2、将HY数据-1
3、将HY数据传入1Fh寄存器
1F寄存器为垂直同步信号HSYNC脉冲宽度

7-6bit
NA
5-0bit
VSYNC脉冲宽度(5-0) The pulse Width of VSYNC in line VSYNC Pulse Width(Line)=(VPWR)+1
注:在从20h到3Bh的多个字节寄存器之后,只对MSB生效。 为了将主图像开始地址从20h编程到23h,并且这个地址在寄存器[23h]上生效。
24、Select_Main_Window_16bpp()
作用:
设置主窗口颜色深度设置
实现:
1、将10h寄存器数据进行读取记录
2、在原有的寄存器数据上将第三位复位
3、在原有的寄存器数据上将第二为置位
4、将改好的数据再写回10h寄存器内
10h寄存器为主/PIP窗口控制器
7bit
PIP1窗口使能/失能
0
PIP窗口1失能
1
PIP窗口1使能
6bit
PIP2窗口使能/失能
0
PIP窗口2失能
1
PIP窗口2使能
5bit
NA
4bit
选择配置PIP 1或2窗口的参数 (PIP窗口的参数包括颜色深度,起始地址,图像宽度, 显示坐标,窗口坐标,窗口宽度,窗口高度。)
0
配置PIP窗口1
1
配置PIP窗口2
3-2bit
主图像颜色深度设置
00b
8-bpp通用TFT,即256色
01b
16-bpp通用TFT,即65536色
1xb
24-bit通用TFT,即1.6M色
25、Main_Image_Start_Address(unsigned long Addr)
作用:
设置主图像起始地址
参数:
Addr
起始地址
实现:
1、将Addr[7:2]位传入20h寄存器
2、将Addr[15:8]位传入21h寄存器
3、将Addr[23:16]位传入22h寄存器
4、将Addr[31:24]位传入23h寄存器
20h寄存器为主图像起始地址寄存器0

7-0bit
Main Image Start Address[7:0] It must be divisible by 4. Bit [1:0] tie to “0” internally.
注:
在从20h到3Bh的多个字节寄存器之后,只对MSB生效。 为了将主图像开始地址从20h编程到23h,并且这个地址在寄存器[23h]上生效。
21h寄存器为主图像起始地址寄存器1

7-0bit
Main Image Start Address[15:8]
22h寄存器为主图像起始地址寄存器2

7-0bit
Main Image Start Address [23:16]
23h寄存器为主图像起始地址寄存器3

7-0bit
Main Image Start Address [31:24]
26、Main_Image_Width(unsigned short WX)
作用:
设置主图像宽度
参数:
WX
图像宽度大小
实现:
1、将WX低八位传入24h寄存器
2、将WX高八位传入25h寄存器
24h寄存器为主图像宽度寄存器0

7-0bit
Main Image Width[7:0]
25h寄存器为主图像宽度寄存器1

7-5bit
NA
4-0bit
Main_Image_Width[12:8]
注:
单位:Pixel 必须能被 4 整除 该值为物理像素点的素数 最大值为 8188 Pixels
27、Main_Window_Start_XY(unsigned short WX,unsigned short HY)
作用:
设置主窗口起始坐标(左上角)
参数:
WX
WX为主窗口起始坐标X轴数值
HY
HY为主窗口起始坐标Y轴数值
实现:
1、将WX低八位数据传入26h寄存器
2、将WX高八位数据传入27h寄存器
3、将HY低八位数据传入28h寄存器
4、将HY高八位数据传入29h寄存器
26h寄存器为主窗口左上角X坐标寄存器0

7-0bit
Main Window Upper-Left Corner X-Coordinates[7:0] 主窗口左上角X坐标[7:0] 参考 Main Image 坐标 单位:Pixel 必须被4整除,最大值为8188
27h寄存器为主窗口左上角X坐标寄存器1

7-5bit
NA
4-0bit
Main Window Upper-Left Corner X-Coordinates[12:8]
28h寄存器为主窗口左上角Y坐标寄存器0

7-0bit
Main Window Upper-Left Corner Y-Coordinates[7:0] 参考Main Image 坐标 范围:0~8191
29h寄存器为主窗口左上角Y坐标寄存器1

7-5bit
NA
4-0bit
Main Window Upper-Left Corner Y-Coordinates[12:8]
28、Canvas_Image_Start_address(unsigned long Addr)
作用:
设置画布图片起始地址
参数:
Addr
画布起始地址
实现:
1、将Addr[7:0]位传入50h寄存器
2、将Addr[15:8]位传入51h寄存器
3、将Addr[23:16]位传入52h寄存器
4、将Addr[31:24]位传入53h寄存器
50h寄存器为画布起始地址寄存器0

7-2bit
Start address of Canvas [7:2]
1-0bit
固定在0(Fix at 0)
51h寄存器为画布起始地址寄存器1

7-0bit
Start address of Canvas [15:8]
52h寄存器为画布起始地址寄存器2

7-0bit
Start address of Canvas [23:16]
53h寄存器为画布起始地址寄存器3

7-0bit
Start address of Canvas [31:24]
29、Canvas_Image_Width(unsigned short WX)
作用:
设置画布图片宽度
参数:
WX
画布宽度
实现:
1、将WX低八位数据传入54h寄存器
2、将WX高八位数据传入55h寄存器
54h寄存器为画布图像宽度寄存器0

7-2bit
Canvas image width[7:2] 单位:Pixel(必须是4的倍数)
1-0bit
必须为0(Fix at 0)
55h寄存器为画布图像宽度寄存器1

7-5bit
NA
4-0bit
Canvas image width[12:8] The bits are Canvas image width
30、Active_Window_XY(unsigned short WX,unsigned short HY)
作用:
设置活动窗口起始坐标(左上角)
参数:
WX
WX为活动窗口起始坐标X轴数值
HY
HY为活动窗口起始坐标Y轴数值
实现:
1、将WX低八位数据传入56h寄存器
2、将WX高八位数据传入57h寄存器
3、将HY低八位数据传入58h寄存器
4、将HY高八位数据传入59h寄存器
56h寄存器为活动窗口左上角X坐标寄存器0

7-0bit
Active Window Upper-Left Corner X-coordinates[7:0] 参考Canvas Image坐标 单位:Pixel
57h寄存器为活动窗口左上角X坐标寄存器1

7-5bit
NA
4-0bit
Active Window Upper-Left Corner X-coordinates [12:8]
58h寄存器为活动窗口左上角Y坐标寄存器0

7-0bit
Active Window Upper-Left Corner Y-coordinates[7:0] 参考Canvas Image坐标 单位:Pixel
59h寄存器为活动窗口左上角Y坐标寄存器1

7-5bit
NA
4-0bit
Active Window Upper-Left Corner Y-coordinates [12:8]
31、Active_Window_WH(unsigned short WX,unsigned short HY)
作用:
设置活动窗口宽度和高度
参数:
WX
活动窗口宽度
HY
活动窗口高度
实现:
1、将WX低八位数据传入5Ah寄存器
2、将WX高八位数据传入5Bh寄存器
3、将HY低八位数据传入5Ch寄存器
4、将HY高八位数据传入5Dh寄存器
5A寄存器为活动窗口宽度寄存器0

7-0bit
Width of Active Window [7:0] 单位:Pixel 该值为物理像素数,最大值为8188像素
5B寄存器为活动窗口宽度寄存器1

7-5bit
NA
4-0bit
Width of Active Window [12:8]
5C寄存器为活动窗口高度寄存器0

7-0bit
Height of Active Window [7:0] 单位:Pixel 该值为物理像素数,最大值为8191像素
5D寄存器为活动窗口高度寄存器1

7-5bit
NA
4-0bit
Height of Active Window [12:8]
32、Memory_XY_Mode()
作用:
画布寻址模式选择
实现:
1、读取5Eh寄存器原始数据进行存储
2、将原始数据的第 2 位置零
3、将改好的数据再写回5Eh寄存器中
5E寄存器为画布和活动窗口的颜色深度寄存器

7-4bit
NA
3bit
NA
2bit
画布寻址模式
0
块模式(X-Y坐标寻址模式) Block mode(X-Y coordinates addressing)
1
线性寻址模式 Linear mode
1-0bit
画布图像的颜色深度和内存收/发数据宽度
在块模式下
00
8 bpp
01
16 bpp
1x
24 bpp
注:
单色数据可以输入任何一种颜色的深度,这取决于适当的图像宽度
在线性模式下
x0
8-bit 内存数据读写
x1
16-bit 内存数据读写
33、Memory_16bpp_Mode()
作用:
设置内存颜色深度设置
实现:
1、读取5Eh寄存器原始数据进行存储
2、将原始数据的第 1 位置零
3、将原始数据的第 0 位置位
3、将改好的数据再写回5Eh寄存器中
寄存器列表
01h寄存器为芯片配置寄存器

7bit
作用:重新配置PLL频率(PLL frequency)
写入数据:
0
不做操作
1
重新配置PLL频率
6bit
作用:在XnCS取消断言上屏蔽XnWAIT
写入数据:
0
无掩码(No Mask)
1
掩码(Mask)
5bit
作用:启用/禁用密钥扫描(Key-Scan)
写入数据:
0
禁用(Disable)
1
启用(Enable)
4-3bit
作用:用于RA8876 TFT面板I/F输出引脚设置(I/F Output pin)
写入数据:
00b
24位TFT输出
01b
18位TFT输出
10b
16位TFT输出
11b
无TFT输出
2bit
作用:IIC主接口启用/禁用(IIC)
写入数据:
0
Disable(GPIO function)
1
Enable(IIC master function)
1bit
作用:串行闪存或SPI接口已启用/禁用(Serial Flash or SPI)
写入数据:
0
Disable(GPIO function)
1
Enable(SPI master function)
0bit
作用:主机数据总线宽度的选择(Host Data Bus Width)
写入数据:
0
8位主机数据总线
1
16位主机数据总线
02h寄存器为存储器访问控制寄存器

7-6bit
作用:主机读/写图像数据格式
写入数据:
0xb
直接写入 ( 对于所有 8位MPU I/F, 16位MPUI/F8bpp数据模式1和2, 16位MPUI/F16/24BPP数据模式1 串行主机接口 )
10b
掩码每个数据的高字节
11b
平均的掩码数据高字节
5-4bit
作用:主机读取内存方向(Only for Graphic Mode)
写入数据:
00b
Left -》Right then Top -》Button
01b
Right -》Left then Top -》Button
10b
Top -》Button then Left -》Right
11b
Button -》Top then Left -》Right
3bit
作用:空(NA)
2-1bit
作用:
主机写入内存方向(Only for Graphic Mode)
写入数据:
00b
Left -》Right then Top -》Button(Original)
01b
Right -》Left then Top -》Button(Horizontal flip)
10b
Top -》Button then Left -》Right(Rotate right 90° & Horizontal flip)
11b
Button -》Top then Left -》Right(Rptate left 90°)
0bit
作用:空(NA) 必须保持0(must Keep it as 0)
03h寄存器为输入控制寄存器

7bit
作用:输出到MPU中断引脚的激活水平(active level)
写入数据:
0
低活跃(active Low)
1
高活跃(active High)
6bit
作用:外部中断输入(XPS[0] Pin)消除回跳
写入数据:
0
没有反跳
1
启动弹跳(1024 OSC 时钟)
5-4bit
作用:
外部中断输入(XPS[0] Pin)触发器类型
写入数据:
00b
低电平触发
01b
下降沿触发
10b
高电平触发
11b
上升沿触发
3bit
作用:空(NA)
2bit
作用:文本模式使能
写入数据:
0
图形模式
1
文本模式
1-0bit
作用:
内存端口读/写目标选择
写入数据:
00b
用于图像数据、模式、用户字符的图形缓冲区(SDRAM)。 支持:读-修改-写入
01b
红色/绿色/蓝色。 每种颜色的伽马表都有256个字节。 用户需要指定所需的伽马表和连续的写入256字节。
10b
图形光标RAM(只接受低8位MPU数据,类似的正常寄存器数据r/w) 不支持图形光标RAM读取。 它包含4个图形光标集。 每一组都有128x16位。 用户需要指定目标图形光标设置并继续写入256字节。
11b
颜色调色板RAM。 它是64x12位SRAM, 所以即使是地址的数据,也只有低4位是有效的。 不支持颜色调色板RAM读取。 用户需要继续写128个字节。
05h寄存器为SCLK PLL控制寄存器1

7bit
作用:预留(RESERVED)
6bit
作用:空(NA)
5-3bit
作用:SCLK预分频器(extra divider)
写入数据:
xx1b
16分频(divided by 16)
000b
1分频(divided by 1)
010b
2分频(divided by 2)
100b
4分频(divided by 4)
110b
8分频(divided by 8)
2-1bit
作用:SCLK PLL输出分频器(SCLK PLLDIVK[1:0])
写入数据:
00b
1分频(divided by 1)
01b
2分频(divided by 2)
10b
4分频(divided by 4)
11b
8分频(divided by 8)
0bit
作用:PCLK PLL预驱动程序参数(SCLK PLLDIVM)
写入数据:
0b
1分频(divided by 1)
1b
2分频(divided by 2)
06h寄存器为SCLK PLL控制寄存器2

7-6bit
作用:空(NA)
5-0bit
作用:SCLK PLL输入参数(SCLK PLLDIVN[5:0])
写入数据:
value:1~63
注:
PCLK是由面板的扫描时钟所使用的,并源自于SCLK (PCLK is used by panel's scan clock and derived from SCLK)
07h寄存器为MCLK PLL控制寄存器1

7-3bit
作用:空(NA)
2-1bit
作用:PCLK PLL输出分频器(MCLK PLLDIVK[1:0])
写入数据:
00b
1分频(divided by 1)
01b
2分频(divided by 2)
10b
4分频(divided by 4)
11b
8分频(divided by 8)
0bit
作用:MCLK PLL预驱动程序参数(PCLK PLLDIVM)
写入数据:
0b
1分频(divided by 1)
1b
2分频(divided by 2)
08h寄存器为MCLK PLL控制寄存器2

7-6bit
作用:空(NA)
5-0bit
作用:MCLK PLL输入参数(MCLK PLLDIVN[5:0])
写入数据:
value:1~63
注:
MCLK被SDRAM时钟使用 (MCLK is used by SDRAM's clock)
09h寄存器为CCLK PLL控制寄存器1

7-3bit
作用:空(NA)
2-1bit
作用:CCLK PLL输出分频器(CCLK PLLDIVK[1:0])
写入数据:
00b
1分频(divided by 1)
01b
2分频(divided by 2)
10b
4分频(divided by 4)
11b
8分频(divided by 8)
0bit
作用:CCLK PLL预驱动程序参数(CCLK PLLDIVM)
写入数据:
0b
1分频(divided by 1)
1b
2分频(divided by 2)
0Ah寄存器为CCLK PLL控制寄存器2

7-6bit
作用:空(NA)
5-0bit
作用:CCLK PLL输入参数(CCLK PLLDIVN[5:0])
写入数据:
value:1~63
注:
CCLK被核心时钟使用 (CCLK is used by core's clock)
12h寄存器为显示配置寄存器

7bit
作用:
PCLK翻转(选择触发信号沿,使xPDATA、XDE、xHSYNC等数据在PCLK信号线触发沿获取)
写入数据:
0
上升沿,数据信号在PCLK信号线上升沿时进行获取
1
下降沿,数据信号在PCLK信号线下降沿时进行获取
6bit
作用:
显示开关(Display ON/OFF)
写入数据
0
显示关闭
1
显示开启
5bit
作用:显示测试颜色栏
写入数据:
0
失能(Disable)
1
使能(Enable)
4bit
作用:
设置水平扫描方向
写入数据
0
从左到右
1
从右到左
3bit
作用:
设置垂直扫描方向
写入数据
0
从上到下
1
从下到上
2-0bit
作用:
并行XPDAT[23:0]输出序列/ LVDS彩色串行数据输出序列
写入数据:
000b
RGB模式
001b
RBG模式
010b
GRB模式
011b
GBR模式
100b
BRG模式
101b
BGR模式
110b
Gray模式
111b
空闲状态模式
13h寄存器为面板扫描时钟和数据设置寄存器

7bit
作用:
xHSYNC极性
写入数据:
0
低电平
1
高电平
6bit
作用:
xVSYNC极性
写入数据:
0
低电平
1
高电平
5bit
作用:
xDE极性
写入数据:
0
低电平
1
高电平
4bit
作用:
xDE空闲状态设置(在节能模式下或显示关闭)
写入数据:
0
DE引脚输出是低电平
1
DE引脚输出是高电平
3bit
作用:
xPCLK空闲状态设置(在节能模式下或显示关闭)
写入数据:
0
PCLK引脚输出是高电平
1
PCLK引脚输出是低电平
2bit
作用:
xPDATA空闲状态设置(在节能模式下或显示关闭)
写入数据:
0
PDATA[23:0]引脚输出是低电平
1
PDATA[23:0]引脚输出是高电平
1bit
作用:
xHSYNC闲置状态设置(在节能模式下或显示关闭)
写入数据
0
HSYNC引脚初始是低电平
1
HSYNC引脚初始是高电平
0bit
作用:
xVSYNC空闲状态设置(在节能模式下或显示关闭)
写入数据
0
VSYNC引脚初始是低电平
1
VSYNC引脚初始是高电平
14h寄存器为水平显示宽度寄存器

7-0bit
水平显示宽度设置位(Horizontal Display Width Setting Bit) 设置值为HDWE HDWE = (WX / 8)- 1
15h寄存器为水平显示宽度微调寄存器

7-4bit
NA
3-0bit
寄存器指定水平显示宽度的微调值。 它用于支撑水平尺寸不是8倍的面板。 这个调制的每个级别都是1个像素。 设置值为HDWFT HDWFT = (HW % 8)
16h寄存器为水平非显示期间寄存器
7-5bit
NA
4-0bit
水平非显示周期(HNDR)位[4:0] 此寄存器指定水平非显示期间。也叫后门廊。 此处写入HNDR值 Horizontal non-display period or Back porch(Pixel)=(HNDR+1)*8+HNDFTR
17h寄存器为水平非显示期间微调寄存器
7-4bit
NA
3-0bit
水平非显示周期的微调(HNDFT)位[3:0] 此寄存器指定水平非显示周期的微调(这个调制的每个级别是1像素) 用于支持同步模式面板 水平不显示时间或后门廊(Pixel)=(HNDR+1)*8+HNDFTR
18h寄存器为水平同步信号HSYNC起始坐标寄存器

7-5bit
NA
4-0bit
HSYNC起始位置[4:0] 从显示结束区域到HSYNC开始的起始位置(也成为前门廊) 这个调制的每个级别是8像素 HSYNC起始位置或前门廊(Pixel)=(HSTR+1)*8 HSYNC Start Position or Front porch(Pixel)=(HSTR+1)*8
19h寄存器为水平同步信号HSYNC脉冲宽度寄存器

7-5bit
NA
4-0bit
HSYNC脉冲宽度(HPW)[4:0] HSYNC的周期宽度 HSYNC脉冲宽度(Pixel)=(HPW+1)*8 HSYNC Pulse Width(Pixel)=(HPW+1)*8
1Ah寄存器为垂直高度寄存器0(VDHR0)

7-0bit
垂直显示高度 低八位[7:0] Vertical Display Height Bit[7:0] VDHR0 = HY-1
1Bh寄存器为垂直高度寄存器1(VDHR1)

7-3bit
NA
2-0bit
垂直显示高度 高三位[10:8] Vertical Display Height Bit[10:8] VDHR1 = (HY-1)>> 8
1Ch寄存器为垂直非显示周期寄存器0

7-0bit
垂直非显示周期位[7:0] 垂直非显示时段(Line) =(VNDR+1) Vertical Non-Display Period(Line)=(VNDR+1)
1Dh寄存器为垂直非显示周期寄存器1

7-2bit
NA
1-0bit
垂直非显示期间为[9:8]
1Eh寄存器为垂直同步信号VSYNC脉冲宽度寄存器

7-0bit
VSYNC 起始位置[7:0] 从显示区域结束到VSYNC开始的起始位置 VSYNC起始位置(Line)=(VSTR+1) VSYNC Start Position(Line)=(VSTR+1)
1F寄存器为垂直同步信号HSYNC脉冲宽度

7-6bit
NA
5-0bit
VSYNC脉冲宽度(5-0) The pulse Width of VSYNC in line VSYNC Pulse Width(Line)=(VPWR)+1
20h寄存器为主图像起始地址寄存器0

7-0bit
Main Image Start Address[7:0] It must be divisible by 4. Bit [1:0] tie to “0” internally.
注:
在从20h到3Bh的多个字节寄存器之后,只对MSB生效。 为了将主图像开始地址从20h编程到23h,并且这个地址在寄存器[23h]上生效。
21h寄存器为主图像起始地址寄存器1

7-0bit
Main Image Start Address[15:8]
22h寄存器为主图像起始地址寄存器2

7-0bit
Main Image Start Address [23:16]
23h寄存器为主图像起始地址寄存器3

7-0bit
Main Image Start Address [31:24]
24h寄存器为主图像宽度寄存器0

7-0bit
Main Image Width[7:0]
25h寄存器为主图像宽度寄存器1

7-5bit
NA
4-0bit
Main_Image_Width[12:8]
注:
单位:Pixel 必须能被 4 整除 该值为物理像素点的素数 最大值为 8188 Pixels
26h寄存器为主窗口左上角X坐标寄存器0

7-0bit
Main Window Upper-Left Corner X-Coordinates[7:0] 主窗口左上角X坐标[7:0] 参考 Main Image 坐标 单位:Pixel 必须被4整除,最大值为8188
27h寄存器为主窗口左上角X坐标寄存器1

7-5bit
NA
4-0bit
Main Window Upper-Left Corner X-Coordinates[12:8]
28h寄存器为主窗口左上角Y坐标寄存器0

7-0bit
Main Window Upper-Left Corner Y-Coordinates[7:0] 参考Main Image 坐标 范围:0~8191
29h寄存器为主窗口左上角Y坐标寄存器1

7-5bit
NA
4-0bit
Main Window Upper-Left Corner Y-Coordinates[12:8]
50h寄存器为画布起始地址寄存器0

7-2bit
Start address of Canvas [7:2]
1-0bit
固定在0(Fix at 0)
51h寄存器为画布起始地址寄存器1

7-0bit
Start address of Canvas [15:8]
52h寄存器为画布起始地址寄存器2

7-0bit
Start address of Canvas [23:16]
53h寄存器为画布起始地址寄存器3

7-0bit
Start address of Canvas [31:24]
54h寄存器为画布图像宽度寄存器0

7-2bit
Canvas image width[7:2] 单位:Pixel(必须是4的倍数)
1-0bit
必须为0(Fix at 0)
55h寄存器为画布图像宽度寄存器1

7-5bit
NA
4-0bit
Canvas image width[12:8] The bits are Canvas image width
56h寄存器为活动窗口左上角X坐标寄存器0

7-0bit
Active Window Upper-Left Corner X-coordinates[7:0] 参考Canvas Image坐标 单位:Pixel
57h寄存器为活动窗口左上角X坐标寄存器1

7-5bit
NA
4-0bit
Active Window Upper-Left Corner X-coordinates [12:8]
58h寄存器为活动窗口左上角Y坐标寄存器0

7-0bit
Active Window Upper-Left Corner Y-coordinates[7:0] 参考Canvas Image坐标 单位:Pixel
59h寄存器为活动窗口左上角Y坐标寄存器1

7-5bit
NA
4-0bit
Active Window Upper-Left Corner Y-coordinates [12:8]
5A寄存器为活动窗口宽度寄存器0

7-0bit
Width of Active Window [7:0] 单位:Pixel 该值为物理像素数,最大值为8188像素
5B寄存器为活动窗口宽度寄存器1

7-5bit
NA
4-0bit
Width of Active Window [12:8]
5C寄存器为活动窗口高度寄存器0

7-0bit
Height of Active Window [7:0] 单位:Pixel 该值为物理像素数,最大值为8191像素
5D寄存器为活动窗口高度寄存器1

7-5bit
NA
4-0bit
Height of Active Window [12:8]
5E寄存器为画布和活动窗口的颜色深度寄存器

7-4bit
NA
3bit
NA
2bit
画布寻址模式
0
块模式(X-Y坐标寻址模式) Block mode(X-Y coordinates addressing)
1
线性寻址模式 Linear mode
1-0bit
画布图像的颜色深度和内存收/发数据宽度
在块模式下
00
8 bpp
01
16 bpp
1x
24 bpp
注:
单色数据可以输入任何一种颜色的深度,这取决于适当的图像宽度
在线性模式下
x0
8-bit 内存数据读写
x1
16-bit 内存数据读写