ATK-7' TFTLCD 模块使用说明_AN1410.pdf
ATK-7' TFTLCD 模块使用说明_AN1410.pdfAN1410 ATK-7’TFTLCD电容触摸屏模块使用说明本应用文档( 本应用文档( 本应用文档( AN1 AN1410410410,对应 ,对应 ,对应 战舰 STM32STM32STM32 STM32开发板 扩展实验 扩展实验 4/MiniSTM32 MiniSTM32 MiniSTM32MiniSTM32MiniSTM32 MiniSTM32开发板扩展实验 开发板扩展实验 13)将教大家如何在 )将教大家如何在 )将教大家如何在 )将教大家如何在 ALIENTEK ALIENTEKALIENTEK STM32STM32 NCEe Ons Kx≥0RS≥25ns2125nsRDKx≤10ns≥0ns≥37.5ns图1.21总线写时序图中,当RS为0的时侯,表示写入的是寄存器地址(0~7),RS为1的时候,表示写入的是数据(寄存器值/GRAM数据)总线读时序如图1.2.2所示:NCE≥0ns≥CnsRSWR225nsRD,≥125ns2375ns图122总线读时序AτK-′ TFTLCD模块自带的LCD控制器可读的寄存器只有2个,当RS为0的时候,表示读取的是状态寄存器( STATE),当RS为1的时候,表示读取的是像素数据(DATA,读期间的地址奇存器(ADR将被忽略。13LCD控制器寄存器说明ATK7 TETLCD模块自带的LCD控制器各个寄存器的地址和功能简介如表1.31所示:RS操作位宽地址|名称功能简介复位值写16ADR设置地址寄存器的值0x0000016STATE读状态寄存器0x0000116DATA读像素数据0x00001160∞0cURY设置屏幕的Y坐标0x00001160×01cuRX设置屏幕的x坐标0x00001写160x02PXE5写入像素数据0x000016设置X方向自动返回的坐标,以及页0×031f0X03 END X拷贝时Ⅹ方向的结束坐标1写160×04保留1写160×05PREF设置当前显示页、当前操作页0x0000肯光等1写8006保留MROR控制镜像翻转0x0001表1.3.1ATK-7 TFTLCD模块自带LCD驱动器寄存器地址和功能简介131CURX寄存器〔0x01)和CURY寄存器(0x00)寄存器CURX和CURY用」设置待操作像素点的坐标, TETLCD屏幕上坐标的排列如图13.1.1所示CUR X0oS元可显示区(800x480)479图1311坐标排列当CUR_Y和CURⅩ的值确定后,像素点A的位置便被唯一的确定了,随后的写入的像素数据会被准确的放置在A点。132 PIXELS寄存器(0x02寄存器PⅨXELS对应着16位的颜色数据,如果当前显示页与当前操作页相同,那么写入PIXELS的数据会被立即呈现在由CURX和CURY选中的当前激活点上,如果当前显示页与当前操作页不相同,那么写入 PIXELS的数据不会被立即呈现出来。ATK7 TETLCD模块的颜色格式为RGB565,具体的颜色与每个位对应关系如表1321所b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 boR4 R3 R2 R1 RO G5 G4 G3 G2 G1 G0 B4 B3 B2 B1 BO图1321颜色与位对应关系133ENDX寄存器0x03为了提高像素数据连续读写的效率,当设置好CURⅩ和CURY后,每读取/写入个像素,当前激活点的Ⅹ巫标就会自动加一,当激活点的X坐标等于ENDX后,便会自动返回CURX同时Y坐标自动加一。如图1.3.3.1所示:X方向CUR XEND799显示区(800×480)图坐标自动返回示意图以写数据为例,假没CURⅩ、CURY、ENDX分别为400、200、500,A点、B点、C点、D点的坐标分别为(400,200)、(500,200)、(400,201)、(500,201)。设置好CURX、cURY后,第一个像素写到了A点,第100个像素写到B点,第101个像素写到C点,第200个像素写到D点,依此类推。借助ENDX寄存器,可以简化MCυ批量数据读写的流程,假设MCU需要以(100,200)为起始坐标写入一个10×20的矩形,那么只需要将CURX设为100,CURY设为200,END_X设为210,然后进行200次的像素点读/写操作即可,期间不需要再进行坐标设置操作,所有的坐标都会被自动推算。134PREF寄存器(0x05PREF寄存器用于设置当前显示页、当前操作页和TFT背光,各个位的具体含义如表1341所示名称功能简介复位值b5b0BK PWM背光控制b8 b6保留b11~b9CUR PAGE前显小的页b14~b12OPT PAGE当前操作的页00000b15保留表1341HREF寄存器各位定义其中,用于设置背光信号的占空比,从而调节背光的亮度,取值范围为代表背光关闭,代表背光最亮。上电复位后的值默认为,也就是背光关闭,在对赋以非岺值后,背光才能点亮当前显示页由指定,表示屏幕上实际显示的显存分页,当前操作页由指定,衣示当前读写操作的显存分页。如果指向同显存分页,那么写显存操作的结果会被立即呈现在屏幕上,如果指向不同的显存分页,那么对的任何操作都不会影响屏幕上的显示内容,只有在切换到后,中数据才会被显小出来。135 MIRROR寄存器(0X07〕寄存器用于实现图像的水平和垂直镜像翻转,该寄存器各位的只体含义如表所示名称功能简介复位值b15~b2保留0b1UD控制重直镜像翻转boLR控制水平镜像翻转表1.351 MIRROR寄存器各位定义位用于控制显示画面的垂直翻转,位用于控制显示画面的水平翻转,操作位和位会影响上的像素点位置与显存中数据地址的映射关系,但不会改变显存中的数据,不同的和值所对应的显小效果如图所小显示效果示意酉业业置M|RROR=0x01(默认)MIRROR=0X03意示果姣示显业擦业酉MIRROR=OXOOMIRROR=OX02图显示效果示意图136 STATE/DATA寄存器这两个寄存器相互配合,用」完成像素数据的读操作寄存器的位定义如表所示,读取该寄存器会自动启动像素点的读操作,查询到的位(位)为后,表示像素数据有效,然后读寄存器即可获得对应点的像紊薮据,与写像素数据的操作相冋,读像素薮据的像素点位萓也是由当前的和定义的。当读取寄存器后,位会被自动清零。需要注意的是,读寄器时,位是随机值,因此在判断时,需要屏敞掉这些位。名称功能简介复位值b15~b1保留b0 DATA OK「数据有标志表1.3.61 STATE寄存器冬位定义14LCD控制器使用说明经过前面的介绍,我们对ATK7′τ TLCD模块自带的LCD控制器有了个大概的了解,接下来,我们介绍一下该驱动器的具体使用方法。141初始化AIκ-7′ TFTLCD模块自带的LCD控制器初始化非常简单,分为如下3个步骤:1,复位。通过拉低模块RST脚,实现对LCD搾制器的复位,延时100ms左右,再拉高RST脚,完成对LCD的复位。2,等待控制器准备好。在复位后,我们通过直接读LCD控制的数据,直到读到的数据最低位变为1,说明LCD驱动器准备好了,可以廾始后续的的操作3,设置显示相关寄存器。这里,我们要设置的包括:MROR寄存器、PREF寄存器、ENDX寄存器等三个寄存器。通过 MIRROR寄存器改置屏幕的显小方冋,这里我们默认设置为0X01。然后通过PREF寄存器设置当前操作页、当前显示页以及背光控制等参数,这里我们默认设置操作页和显示页均为第0页。然后设置背光为63,设置背光到最亮。最后,通过ENDX寄存器设置Ⅹ坐标的结束位置,由于ATK7′ TFTLCD模块使用的LCD分辨率为800*480.所以默认设置ENDX的值为79,满足全屏显示的需要经过以上三步设置,LCD驱动器的初始化就完成了。142画点LCD驱动最重要的就是画点了,这里我们简单介纲一下ATK-7′ TETLCD模块的画点实现。用模块自带的LCD驱动器实现画点也是非常简单,我们只需通过操作三个寄存器,即可实现任意点的画点。首先,将我们要画的点的坐标写入CURX和CURY这两个寄存器。然后,我们在 PIXELS寄存器里面写入该点的颜色值,即完成画点操作了。如果设置架作贞和显小相冋的话,我们就可以立马在LCD上看到这个画出来的点143读点LCD驱动另个重要的功能就是读取点的颜色,方便做其他处理。ATK-7′ TETLCD模块自情的LCD驱动器可以实现任意点的读取,方法类似画点操作,不过稍有区别首先,我们同样是通过CURX和CURY两个寄存器,设置要读取点的坐标。然后,我们读 STATE寄存器(RS=0),等待 STATE寄存器的最低位变为1,之后,我们读取DATA寄存器(RS=1),就可以读到指定点的颜色。这样我们就实现一个点颜色的读取。15电容触摸屏接口说明ATK-7 TETLCD模垬采用汇顶科技( GOODIX)公司的GT811作为电容触摸屏的驱动C,该驱动芯片通过4根线与外部连接:CT_RST、CT|NT、 CT SDA、 CT SCLCT RST为GT811的复位信号,低电平有效,可以用来复位GT811,并可以让GT811进入正常工作模式CⅠIT为GT811的中断输出引脚,当GT811有数据可以输出的时候,该引脚会输出脉冲信号,提醒CPU可以读取数据了。CT_SDA和cT_SCL则是GT811和CpU进行C通信的接口,通过C总线进行数据交换。GT811采用标准的C通信,最大通信速率为600Khz,模块设置的GT811器件地址为0XBA(写)和0XBB(读)GT811的写操作流程如图1.5,1所示:AA△s Address WC Register II C Register L C Data 1CDataKK写操作流程图图15.1为cPU写GT811的操作流程图,首先CPU产生一个起始信号(S),然后发送地址信息及读写位信息“0”表示写操作:0XBA( Address v)GT811接收到正确的地址后,发送ACK给CPU,CPU随后分2次发送16位首寄存器地址,先发送高8位,再发送低8位,随后发送8为要写入到寄存器的数据内容。GT811寄存器的地址指针,会在写入一个数据后,自动加1,所以当CPU需要对连续地址的寄存器进行写操作的时侯,只需要写入第一个寄存器的地址,然后廾始连续写入数据即可。最后,当写操作完成时,CpU发送停止信号(E),结束当前的写操作。GT811的读操作流程如图1.5.2所示:s Address_W c Register_II c Register_L s Address_CdAtaDataK≯设定读寄存器首地址读取数据读操作流程图图152为CPU读GT811的操作流程图,首先CpU产生一个起始信号(S),然后发送地址信息及读写位信息“0”表示写操作: OXBA(Addres_W)。GT811接收到正确的地址后,发送ACK给CPU,CPU随后分2次发送16位首寄存器地址,设置要读取的寄存器地址。在收到应答后,CPU重新发送一次起始信号(S),发送地址信息及读写位信息“1”表示读操作:OXBB( Address_R)。在收到应答(ACK)后,cpPU就可以开始读取数据了。同样,GT811支持连续的读操作,CPU只需要在收到一个数据后,发送一个ACK给GT811,就可以读取下个寄存器的数据,存器地址也是自动增加的。当CPU想停止继续读数据的时候,发送NACK,然后在发送停止信号(E),即可结束当前的读操作。151GT811初始化流程GT811的初始化流程非常简单,首先通过CT_RST引脚对GT811进行一次复位,让GT811进入正常工作模式。然后读取GT811的软件版本信息(通过寄存器0X717和0X718实现)。最后,在读到正确的版本后(0X2010),发送触摸屏厂家提供的配置信息到GT811,等到配置信息发送成功后,就完成了对GT811的初始化。152GT811坐标数据读取完成初始化之后,就可以从G8T11读取当前钽摸屏的坐标数据了。每当GT811有数据可供读取的时候,CPU就可以在CT|NT信号上接收到一个脉冲信号(100us左右的低电平脉冲),CPU在检测到脉冲信号后,就可以从GT811读取当前触摸屏的坐标信息了GT811的输出信息寄存器如图1.5.2.1所示AddrDirNamebit7 bit6 bit5 bit4 bit3 bit2 bit1bitoCx717RrmwareH软件版本 thigh byte)Cx718RFirmWare L软件版( ow byte0X7190×720R ReserveNoneCX721R TouchpointFlagSensor_id key tp4 tp3 tp2 tp1 tpOR Touchkeystate00kekey3 kev key1Cx723RPointOXh触摸点0,X坐标高8位CX724R PointOXI触撲点0,X坐标低8位Cx725R PointoN触撲点0,Y坐标高8位CX726R PointoN触撲点0,Y坐标低8位R PointOPressure触摸点0,触漠压力Cx728R Point1Xh触摸点1,X坐标高8位r Point11×1触摸点1,X坐标低8位0x72AR Point1Yh触摸点1,Y坐标高8位0x72BR Point1YI触摸点1,丫坐标低8位0x72cR Point1Pressure触模点1,触压力0x72DR Point2Xh触撲点2,Ⅹ坐标高8位0x72三R Point2XI触撲点2,Ⅹ坐标低8位0x72FRPoint2yh触撲点2,Y坐标高8位CX730RPoint2YI触摸点2,丫坐标低8位CX731R Point2Pressure触操点2,触漠压力RPoint3Xh触撲点3,X坐标高8位0x7330×738 R ReservenoneCx739R Point3XI触撲点3,Ⅹ坐标低8位0x73AR Pointy触撲点3,Y坐标高8位0x73BR Point3YI触撲点3,Y坐标低8位0X73Cr Point3Pressure触操点3,触压力0x73Dr Point4Xh触撲点4,X坐标高8位0x73三R Point4XI触摸点4,Ⅹ坐标低8位0x73FR Point4Yh触撲点4,Y坐标高8位Cx740r Pointy触摸点4,Y坐标低8位CX741RPoint4Pressure触摸点4,触漠压力CX742R Data_check_sumData check sum图输出信息寄存器从图15.2.1可以看出,CpU只需要在接收到CT_NT中断后,从0X721处开始,连续读取34个字节,即可以把所有的触摸屏数据读出米,然后按照图中所示格式,将数据组织起来,就可以获得最多5个点的摸数据其中 Touchpoint Flag寄存器(0X721)的tpo~tp4是触摸点0~4的数据是否有效的标志,如果为1,则说明对应点的薮据有效,如果为0,则表示触摸点该数据无效。另外 PointxPressure(x=0~4)寄存器表示对应触摸点的力道人小,其实就是通过你按下的面积来判断力道,按下面积越大,该值越大。13GT811自动校准GT811带有自动初始化校准即自动温度补偿功能,所以,ATκ 7 TFTLCD电容触摸屏模块是不需要人工手动校准的。a)初始化校准不同的温度、湿度及物理空间结构均会影响到电容传感器在闲置状态的基准值。GT811会在初始化的200ms内根据环境情况自动获得新的检测基准。完成触摸屏检测的初始化。b)自动温漂补偿温度、湿度或灰尘等环境因素的缓慢变化,也会影响到屯容传感器在闲置状态的基准值GT811实时检测各点数据的变化,对历史数据进行统计分析,由此来修正检测基准。从而降低环境变化对触摸屏检测的影响。硬件连接本实验功能简介:本实验用于测试ATK7 TETLCD模块,总共包括三人项测试:1,电容触摸屏测试一通过按KEYO按键进入此项测试。进入测试后,可以在屏幕上实现触摸画线,最多支持5点触摸。冋时该程序带蝕摸力度检测,按下的面积大,画出来的线就比较粗,反之则比较细。通过按屏幕右上角的"RST"可以实现清屏。2,图片显示测试一通过按KEY1按键走入此项测试。此项测试需要一个SD卡,并且在SD卡根目录放一个 PICTURE文件夹,甲面放一些图片文件(bmp/jpeg/gif等),然后程序检测到图片后,就开始在LCD模块上 PICTURE文件夹里面的图片。通过KEYo/KEY1可以切换下张/上一张图片,通过按WK_UP按键,可以暂停/继续自动播放(DS1用于指小是香处于暂停状态)3,液晶自测试一通过按WKUP按键进入此项测试。此项测试又分为4个测试小项:速度测试/镜像测试/缓存测试/背光测试。速度测试类似 uCGUI的测试效果,测试结果将显示在LCD上(像素/秒);镜像测试,屐示液晶的4个显示效果:正常/上下调转/左右调转/上下左石都调转;缓存测试,用测试LCD模块的8页显存,每页显示一种颜色;背光测试,用」测试模块的背光控制功能,背光将从暗到亮变化所要用到的硬件资源如下:1,指示灯DS0和DS12,KEYO/KEY1/WKUP等三个按键串口14,ATK7 TETLCD电容触摸屏模块AⅨK-7′ TETLCD模块的接∏同 ALIENTEK的2428/35′ TETLCD模块接∏模样,所以可以直接插在 ALIENTEK STM32开发板上(还是靠右插哦!),不过由于7寸屏比较大,建议大家采用延长线连接,方便测试使用。在硬件上模块与战舰廾发板的口对应关系如下:对应开发板的复位引脚,通过开发板复位键复位搾制器对应即对应即对应即对应即则直接连接在MOSI(CT SDA)连接P9;cLK(CTSC凵)连接PB1;PEN(CT_ INT)连接PF10;C(CT_RST连接PB2;最后提醒大家两点注意事项:1,延长线如果自己做,在没有转接板的情况下,需要在一端做跳线,绝对不能一对
下载地址
用户评论