用户工具

站点工具


tft_lcd触摸屏实验

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
tft_lcd触摸屏实验 [2019/12/04 17:23]
zgf
tft_lcd触摸屏实验 [2022/03/18 15:49] (当前版本)
sean
行 1: 行 1:
-  ***银杏科技有限公司/Gingko Technology Co.,Ltd.**     +|  ​**银杏科技有限公司旗下技术文档发布平台**  |||| 
-  ***技术支持论坛:http://​www.eeschool.org** +|技术支持电话|**0379-69926675-801**||| 
-  ***旗舰店:http://​icore.taobao.com** +|技术支持邮件|Gingko@vip.163.com||| 
-  ***技术支持邮件:GINGKO@vip.163.com**  + 版本 ​ ^  ​日期 ​ ​^ ​ 作者 ​ ^  修改内容 ​ ^ 
-  ​***电话:0379-69926675** + V1.0  ​| ​ 2019-12-25 ​ |  gingko ​ |  初次建立 ​ | 
-  ***更新日期:12/​4/​2019** +
-  ​***版本号:v1.0**+
  
-===== TFT_LCD触摸屏实验 =====+ 
 +===== 实验三十一:TFT_LCD触摸屏实验 =====
 === 一、实验目的与意义 === === 一、实验目的与意义 ===
   -了解触摸屏工作原理   -了解触摸屏工作原理
行 14: 行 13:
  
 === 二、实验设备及平台 ==== === 二、实验设备及平台 ====
-  -iCore3 双核心板( FPGA型号为EP4CE10F17)。 +  -iCore3 双核心板( FPGA型号为EP4CE10F17)。[[https://​item.taobao.com/​item.htm?​id=524229438677|点击购买]] 
-  -转接板和40P的FPC连接线 +  -转接板和40P的FPC连接线 
-  -iCore3(7寸TFT_LCD)液晶显示模块 +  -iCore3(7寸TFT_LCD)液晶显示模块。[[https://​item.taobao.com/​item.htm?​spm=a1z10.5-c.w4002-251734908.20.1a34750bPZ3UBu&​id=560722486083|点击购买]] 
-  -Blaster(或相同功能的)仿真器和USB线缆 +  -Blaster(或相同功能的)仿真器。[[https://​item.taobao.com/​item.htm?​id=554869837940|点击购买]] 
-  -Micro USB线缆 +  -Micro USB线缆和USB线缆。 
-  -QuartusII开发软件(本实验中使用的是13.1版本) +  -QuartusII开发软件(本实验中使用的是13.1版本)。\\  
-{{ :​icore3:​图31-1_硬件连接实物图.jpg?​600 |:图31-1硬件连接实物图}} ​+{{ :​icore3:​图31-1_硬件连接实物图.jpg?​direct&​700 ​|图31-1硬件连接实物图}} ​
  
 **注意事项1:** 注意FPC转接板和核心板之间引脚要对齐(如图31-1中**①**处所示,转接板和核心板边缘要对齐)。 **注意事项1:** 注意FPC转接板和核心板之间引脚要对齐(如图31-1中**①**处所示,转接板和核心板边缘要对齐)。
行 34: 行 33:
   *下图是AD转换芯片ads7843的典型应用电路,从图中也可以看出触摸屏作为等效电阻网络,通过四线连接到ads7843芯片的X+、X-、Y+、Y- 等引脚。经AD芯片转换后发送给FP GA或者ARM处理,从而判断触摸点的位置。   *下图是AD转换芯片ads7843的典型应用电路,从图中也可以看出触摸屏作为等效电阻网络,通过四线连接到ads7843芯片的X+、X-、Y+、Y- 等引脚。经AD芯片转换后发送给FP GA或者ARM处理,从而判断触摸点的位置。
    
-{{ :​icore3:​图31-2_ads7843基础应用电路.png?​800 |图31-2 ads7843基础应用电路}}+{{ :​icore3:​图31-2_ads7843基础应用电路.png?​direct ​|图31-2 ads7843基础应用电路}}
 == 2、ads7843触摸屏AD芯片的配置 == == 2、ads7843触摸屏AD芯片的配置 ==
   *本次实验所用触摸屏模块的AD芯片ads7843,具有同步串行接口,内置12位取样模数转换器,最高转换速率可达125KHz。由ads7843的原理图可以看到,AD芯片和FPGA之间是通过串行接口传送数据和指令的。其串行接口由DIN,DOUT,CS,DCLK 四个信号线构成。其中,DCLK提供串行传输时钟信号,DIN和DOUT则用与FPGA和AD芯片间指令数据的传输。CS作为选通信号,置低位有效。   *本次实验所用触摸屏模块的AD芯片ads7843,具有同步串行接口,内置12位取样模数转换器,最高转换速率可达125KHz。由ads7843的原理图可以看到,AD芯片和FPGA之间是通过串行接口传送数据和指令的。其串行接口由DIN,DOUT,CS,DCLK 四个信号线构成。其中,DCLK提供串行传输时钟信号,DIN和DOUT则用与FPGA和AD芯片间指令数据的传输。CS作为选通信号,置低位有效。
    
-{{ :​icore3:​图31-3_触摸屏模块ad转换电路原理图.png?​600 |图31-3 触摸屏模块ad转换电路原理图}}+{{ :​icore3:​图31-3_触摸屏模块ad转换电路原理图.png?​direct ​|图31-3 触摸屏模块ad转换电路原理图}}
 == 3、触摸动作识别 == == 3、触摸动作识别 ==
   *通过前面对触摸屏原理的学习,如果想识别到触摸动作,那么就要对ADS7843传送到FPGA的数据进行断,是否为触摸屏无触碰状态下的数值。   *通过前面对触摸屏原理的学习,如果想识别到触摸动作,那么就要对ADS7843传送到FPGA的数据进行断,是否为触摸屏无触碰状态下的数值。
   *图31-4是理想状态下识别的电压和输出编码之间对应关系,理论上触摸屏的输入坐标识别精度可达有效位宽的1/​4096,对应的输出编码从3’h000到3’hfff。通过对其输出编码进行处理,判断是否为无触碰状态下的值,从而判断触摸动作有无发生。   *图31-4是理想状态下识别的电压和输出编码之间对应关系,理论上触摸屏的输入坐标识别精度可达有效位宽的1/​4096,对应的输出编码从3’h000到3’hfff。通过对其输出编码进行处理,判断是否为无触碰状态下的值,从而判断触摸动作有无发生。
  
-{{ :​icore3:​图31-4_理想状态下ads7843输入电压和输出编码之间的对应关系图.png?​400 |图31-4 理想状态下ads7843输入电压和输出编码之间的对应关系图}}+{{ :​icore3:​图31-4_理想状态下ads7843输入电压和输出编码之间的对应关系图.png?​direct ​|图31-4 理想状态下ads7843输入电压和输出编码之间的对应关系图}}
 === 四、代码讲解 ==== === 四、代码讲解 ====
   *本次实验主要内容包括TFT_LCD的显示驱动,触摸屏的配置和驱动,TFT_LCD屏显示内容的控制及触摸动作的识别。由于TFT驱动和色彩显示部分前面实验已经做过讲解,这里主要讲一下触摸屏的驱动和触摸动作的识别部分。   *本次实验主要内容包括TFT_LCD的显示驱动,触摸屏的配置和驱动,TFT_LCD屏显示内容的控制及触摸动作的识别。由于TFT驱动和色彩显示部分前面实验已经做过讲解,这里主要讲一下触摸屏的驱动和触摸动作的识别部分。
行 63: 行 62:
   *这里DIN_x和DIN_y对应的指令值在ADS7843的手册中可以查到,是要配置到AD转换芯片的寄存器的值。DIN_x和DIN_y是X方向和Y方向转换时需要分别输入到AD寄存器的值。S位表示数据传输起始,必须置1。A2、A1、A0组合进行通道X或通道Y的选择。MODE是精度选择位,这里我们用的是12位输出,MODE位置0。SER/​DFR表示参考电压的输入模式,这里选择的是0,即差动输入模式,PD1和PD0是省电模式的选择,00代表在两次AD转换之间掉电。如此,明白DIN_x和DIN_y被赋的值所代表的含义了吧?   *这里DIN_x和DIN_y对应的指令值在ADS7843的手册中可以查到,是要配置到AD转换芯片的寄存器的值。DIN_x和DIN_y是X方向和Y方向转换时需要分别输入到AD寄存器的值。S位表示数据传输起始,必须置1。A2、A1、A0组合进行通道X或通道Y的选择。MODE是精度选择位,这里我们用的是12位输出,MODE位置0。SER/​DFR表示参考电压的输入模式,这里选择的是0,即差动输入模式,PD1和PD0是省电模式的选择,00代表在两次AD转换之间掉电。如此,明白DIN_x和DIN_y被赋的值所代表的含义了吧?
   ​   ​
-{{ :​icore3:​图31-5_ads7843控制存储器1.png?​600 |图31-5 ads7843控制寄存器1}}\\  +{{ :​icore3:​图31-5_ads7843控制存储器1.png?​direct ​|图31-5 ads7843控制寄存器1}}\\  
-{{ :​icore3:​图31-5_ads7843控制寄存器2.png?​600 |图31-5 ads7843控制寄存器2}}+{{ :​icore3:​图31-5_ads7843控制寄存器2.png?​direct ​|图31-5 ads7843控制寄存器2}}
   *其次是DCLK,这部分代码是通过对30MHz时钟进行计数,分频产生100KHz时钟信号,即DCLK,用于串行通信。这里我们先看一下ADS7843的串行通信时序图,如下:   *其次是DCLK,这部分代码是通过对30MHz时钟进行计数,分频产生100KHz时钟信号,即DCLK,用于串行通信。这里我们先看一下ADS7843的串行通信时序图,如下:
    
-{{ :​icore3:​图31-6_ads7843串行通讯时序图.png?​800 |图31-6 ads7843串行通讯时序图}}+{{ :​icore3:​图31-6_ads7843串行通讯时序图.png?​direct ​|图31-6 ads7843串行通讯时序图}}
   *从图中可以看到,DIN和DOUT的电平在DCLK的上升沿是需要保持稳定的,而且输入和输出AD芯片的数据都是先高位后地位的。前面我们有讲到,DCLK是以30MHz时钟为基础分频产生的,先来看一下这段代码:   *从图中可以看到,DIN和DOUT的电平在DCLK的上升沿是需要保持稳定的,而且输入和输出AD芯片的数据都是先高位后地位的。前面我们有讲到,DCLK是以30MHz时钟为基础分频产生的,先来看一下这段代码:
 <code verilog> <code verilog>
行 230: 行 229:
 === 五、实验结果 ==== === 五、实验结果 ====
   *程序调试编译完成后下载到我们的开发套件上,可以看到,铅笔碰触屏幕的时候,TFT_LCD液晶屏颜色刷新为红色,当没有碰触的时候,TFT_LCD液晶屏刷新成绿色。   *程序调试编译完成后下载到我们的开发套件上,可以看到,铅笔碰触屏幕的时候,TFT_LCD液晶屏颜色刷新为红色,当没有碰触的时候,TFT_LCD液晶屏刷新成绿色。
-    + 
-{{:​icore3:​图31-7_7寸液晶屏触摸效果展示1.jpg?​200|图31-7 7寸液晶屏触摸效果展示1}}{{:​icore3:​图31-7_7寸液晶屏触摸效果展示2.jpg?200 |图31-7 7寸液晶屏触摸效果展示2.jpg?200}}+{{:​icore3:​图31-7_7寸液晶屏触摸效果展示1_副本.jpg?direct&200|图31-7 7寸液晶屏触摸效果展示1}}{{:​icore3:​图31-7_7寸液晶屏触摸效果展示2_副本.jpg?direct&200|图31-7 7寸液晶屏触摸效果展示2}} 
 === 六、拓展实验 === === 六、拓展实验 ===
   -将屏幕区域均分四块,实现触碰不同区域,切换不同颜色。   -将屏幕区域均分四块,实现触碰不同区域,切换不同颜色。
  
tft_lcd触摸屏实验.1575451383.txt.gz · 最后更改: 2019/12/04 17:23 由 zgf