您当前的位置: 首页 > 

lu-ming.xyz

暂无认证

  • 0浏览

    0关注

    115博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【TFT-LCD学习记录1】 R61509V3 彩屏显示原理

lu-ming.xyz 发布时间:2021-02-10 19:24:47 ,浏览量:0

目录
  • 1 学习背景
  • 2 模块介绍
    • 2.1 外观
    • 2.2 原理图
  • 3 模块控制
    • 3.1 80并口时序
    • 3.2 指令/数据 读写方式
    • 3.2 上电/控制顺序
    • 3.3 主要指令
  • 4 相关资料

1 学习背景

以前学习 STM32 时普中科技的开发板有一块遗留的 LCD 屏幕:R61509V3。现在想用 FPGA 实现屏幕的驱动,需要系统的学习屏幕控制的原理。

2 模块介绍 2.1 外观

模块图

2.2 原理图

原理图 驱动IC:R61509V 电阻触摸屏控制器:XPT2046 液晶面板:TFT1P5361或IPS1P7167(不确定) R61509采用80系统16位总线接口(80-System 16-bit Bus Interface)

3 模块控制

根据R61509的芯片数据手册《R61509V 260k-color, 240RGB x 432-dot graphics liquid crystal controller driver for Amorphous-Silicon TFT Panel》介绍,控制这块驱动需要注意以下几个方面。

3.1 80并口时序

结合“Electrical Characteristics”章-“AC Characteristics”节-“80-system 18-/16-/9-/8-bit Bus interface Timing Characteristics”条 与 “Timing Characteristics”章-“80-system Bus Interface”节可得时序与要求如下: 在这里插入图片描述 在这里插入图片描述 根据“Pin Function”章可知,对于16位80并口,主要的控制信号如下:

信号含义RS选择寄存器,0:Index register 1:Control registerCSX片选信号WRX/RDX写使能或者读使能,0有效DB[15:0]数据总线

简单说明,片选信号没有时序要求,使用器件的时候拉低就行。RS、DB[15:0] 可以理解为在WRX/RDX上升沿采样,根据指标要求,数据读写的速率主要取决于WRX/RDX的周期,WRX/RDX满足时序要求时,其他的基本上也满足,注意到t_CYCW最小值对应的频率约为13.33MHz。

3.2 指令/数据 读写方式

R61509V采用18位总线结构,以实现与高性能微机的高速接口。在本实例中,FPGA发送16位控制信息存储到指令寄存器(IR)和数据寄存器(DR),R61509V根据寄存器的值进行相关处理。R61509V的内部操作是由FPGA发送的信号控制的,控制器通过控制 寄存器选择信号(RS)、读写信号(R/W)和内部16位数据总线信号(IB15 ~ IB0) 以 80总线协议 更新指令寄存器(IR)和数据寄存器(DR) 来实现相关的指令。

寄存器选择信号(RS)为低电平:选择指令寄存器(IR)
寄存器选择信号(RS)为高电平:选择数据寄存器(DR)

在这里插入图片描述

以指令Display Control 1 (R007h)为例: 在这里插入图片描述 为了将控制字BASEE置为1,首先需要将 16‘h0007 写入指令寄存器(IR) 然后将数据 16’h0100 写入数据寄存器(DR),完成指令Display Control 1 的设置。

3.2 上电/控制顺序

在数据手册“Power Supply Setting Sequence”章中,有上电顺序图如下: 在这里插入图片描述 在“Instruction Setting Sequence and Refresh Sequence”章“Display ON/OFF Sequences and Refresh Sequence”节中有开启显示的顺序图如下: 在这里插入图片描述 根据上电/控制顺序图,就可以控制这块屏幕。

3.3 主要指令

如果要用户去调教好彩屏并设置相关指令是比较繁琐的,所以初始化控制的参数指令一般是厂家提供的,根据普中科技开发板给出的 R61509V3 控制例程,初始化相关的指令为:

序号指令寄存器(IR)数据寄存器(DR)备注1LCD_WriteCmd(0x0000);Device code read2LCD_WriteCmd(0x0000);Device code read3LCD_WriteCmd(0x0000);Device code read4LCD_WriteCmd(0x0000);Device code read5LCD_WriteCmd(0x0000);Device code read6LCD_WriteCmd(0x0000);Device code read7LCD_WriteCmd(0x0000);Device code read8LCD_WriteCmd(0x0000);Device code read9LCD_WriteCmd(0x0000);Device code read10LCD_WriteCmd(0x0000);Device code read11LCD_WriteCmd(0x0400);LCD_WriteData(0x6200);Base Image Number of Line12LCD_WriteCmd(0x0008);LCD_WriteData(0x0808);Display Control 213LCD_WriteCmd(0x0300);LCD_WriteData(0x0005);gamma Control14LCD_WriteCmd(0x0301);LCD_WriteData(0x4C06);gamma Control15LCD_WriteCmd(0x0302);LCD_WriteData(0x0602);gamma Control16LCD_WriteCmd(0x0303);LCD_WriteData(0x050C);gamma Control17LCD_WriteCmd(0x0304);LCD_WriteData(0x3300);gamma Control18LCD_WriteCmd(0x0305);LCD_WriteData(0x0C05);gamma Control19LCD_WriteCmd(0x0306);LCD_WriteData(0x4206);gamma Control20LCD_WriteCmd(0x0307);LCD_WriteData(0x060C);gamma Control21LCD_WriteCmd(0x0308);LCD_WriteData(0x0500);gamma Control22LCD_WriteCmd(0x0309);LCD_WriteData(0x0033);gamma Control23LCD_WriteCmd(0x0010);LCD_WriteData(0x0014);Panel Interface Control 124LCD_WriteCmd(0x0011);LCD_WriteData(0x0101);Panel Interface Control 225LCD_WriteCmd(0x0012);LCD_WriteData(0x0000);Panel Interface Control 326LCD_WriteCmd(0x0013);LCD_WriteData(0x0001);Panel Interface Control 427LCD_WriteCmd(0x0100);LCD_WriteData(0x0330);Power Control 128LCD_WriteCmd(0x0101);LCD_WriteData(0x0247);Power Control 229LCD_WriteCmd(0x0103);LCD_WriteData(0x1000);Power Control 430LCD_WriteCmd(0x0280);LCD_WriteData(0xDE00);NVM Data Read / NVM Data Write31LCD_WriteCmd(0x0102);LCD_WriteData(0xD1B0);Power Control 332LCD_WriteCmd(0x0001);LCD_WriteData(0x0100);Driver Output Control33LCD_WriteCmd(0x0002);LCD_WriteData(0x0100);LCD Drive Wave Control34LCD_WriteCmd(0x0003);LCD_WriteData(0x1030);Entry Mode35LCD_WriteCmd(0x0009);LCD_WriteData(0x0001);Display Control 336LCD_WriteCmd(0x000C);LCD_WriteData(0x0000);External Display Interface Control 137LCD_WriteCmd(0x0090);LCD_WriteData(0x8000);Frame Marker Control38LCD_WriteCmd(0x000F);LCD_WriteData(0x0000);External Display Interface Control 239LCD_WriteCmd(0x0210);LCD_WriteData(0x0000);Window Horizontal RAM Address Start40LCD_WriteCmd(0x0211);LCD_WriteData(0x00EF);Window Horizontal RAM Address End41LCD_WriteCmd(0x0212);LCD_WriteData(0x0000);Window Vertical RAM Address Start42LCD_WriteCmd(0x0213);LCD_WriteData(0x018F);Window Vertical RAM Address End43LCD_WriteCmd(0x0500);LCD_WriteData(0x0000);Partial Image 1: Display Position44LCD_WriteCmd(0x0501);LCD_WriteData(0x0000);RAM Address 1 (Start Line Address)45LCD_WriteCmd(0x0502);LCD_WriteData(0x005F);RAM Address 2 (End Line Address)46LCD_WriteCmd(0x0401);LCD_WriteData(0x0001);Base Image Display Control47LCD_WriteCmd(0x0404);LCD_WriteData(0x0000);Base Image Vertical Scroll Control48LCD_WriteCmd(0x0007);LCD_WriteData(0x0100);Display Control 149LCD_WriteCmd(0x0200);LCD_WriteData(0x0000);RAM Address Set(Horizontal Address)50LCD_WriteCmd(0x0201);LCD_WriteData(0x0000);RAM Address Set(Vertical Address)51LCD_WriteCmd(0x0202);GRAM Data Write/GRAM Data Read

具体含义可以参考数据手册 其中比较重要的几个:

Window Horizontal RAM Address Start (R210h)设置RAM水平起始地址根据这4个指令设置屏幕像素点尺寸,这里设置为240*400Window Horizontal RAM Address End(R211h)设置RAM水平终止地址Window Vertical RAM Address Start (R212h)设置RAM垂直起始地址Window Vertical RAM Address End (R213h)设置RAM垂直终止地址Entry Mode (R003h)设置扫描方式根据控制字ORG , AM, ID设置扫描方式,见下图RAM Address Set (Horizontal Address) (R200h)设置地址计数器水平地址根据这两个指令设置地址计数器的值,写入像素点RGB数据后,地址计数器会按照设置好的扫描方式自加,在刷新屏幕的时候,将这两个计数器指令后,连续写入总像素点个数的RGB数据即可完成GRAM刷新。RAM Address Set (Vertical Address) (R201h)设置地址计数器垂直地址Power Control3 (R102h)电源控制根据上电顺序,在完成用户设置之后设置控制字PSON=1, PON=1以打开电源Display Control 1 (R007h)控制显示开启或者关闭设置控制字BASEE=1以打开显示

根据需要的扫描方式设置Entry Mode (R003h):ORG , AM, ID 在这里插入图片描述

4 相关资料

在这里插入图片描述 链接:https://pan.baidu.com/s/1Zbdfrg1iYNJjqs24b2hwwA 提取码:1234

关注
打赏
1655639048
查看更多评论
立即登录/注册

微信扫码登录

0.0422s