打印
[应用相关]

AT32 LCD Touch Driven By SPI

[复制链接]
856|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 muyichuan2012 于 2022-10-21 17:45 编辑

AT32 LCD Touch Driven By SPI


前言
本应用笔记的目的是提供在AT32微控制器上实现SPI驱动触摸屏应用程序的一般方法。
支持型号列表:
支持型号
AT32F403Axx
AT32F407xx

目录
触摸屏介绍 ...................................................5
触摸感应器 ............................................... 6
LCD 显示器............................................. 6
触摸屏工作原理 ........................................ 7
模拟输入 ....................................................7
内部参考电压 ................................................ 7
外部参考电压输入 .......................................... 8
差分工作模式 ............................................ 8
触摸屏快速使用方法 ........................... 9
硬件资源 ................................................ 9
软件资源 .................................................. 9
关键代码 .............................................. 9
LCD Touch demo 使用 ....................... 13
版本历史 ......................................... 15


触摸屏介绍
对于四线电阻式触摸屏的结构如下图1,在玻璃或丙烯酸基板上覆盖有两层透平,均匀导电的ITO
层,分别做为X电极和Y电极,它们之间由均匀排列的透明格点分开绝缘。其中下层的ITO与玻璃基
板附着,上层的ITO附着在PET薄膜上。X电极和Y电极的正负端由“导电条”(图中黑色条形部分)
分别从两端引出,且X电极和Y电极导电条的位置相互垂直。引出端X-,X+,Y-,Y+一共四条线,这
就是四线电阻式触摸屏名称的由来。当有物体接触触摸屏表面并施以一定的压力时,上层的ITO导电
层发生形变与下层ITO发生接触,该结构可以等效为相应的电路,如下图2。

测得的电压通常由ADC 转化为数字信号,再进行简单处理就可以做为坐标判断触点的实际位置。四
线电阻式触摸屏除了可以得到触点的X/Y 坐标,还可以测得触点的压力,这是因为top layer 施压
后,上下层ITO 发生接触,在触点上实际是有电阻存在的。压力越大,接触越充分,电阻就越小,通
过测量这个电阻的大小可以量化压力大小。
通常在触摸屏应用中对于触摸屏控制有专门的控制芯片,主要就是为了完成两个任务:其一,完成电
极电压的切换;其二,采集接触点处的电压值(ADC 数据)。本案例中触摸屏使用的触摸感应驱动
芯片为XPT2046,显示器驱动芯片为ILI9341,下面将分别做介绍。

触摸感应器
触摸感应器使用的驱动芯片为XPT2046,其包含了采样/保持、模数转换、串口数据输出等功能。同
时芯片集成有一个2.5V的内部参考电压源、温度检测电路,工作时使用外部时钟。XPT2046可以单
电源供电,电源电压范围为2.7V~5.5V。参考电压值直接决定ADC的输入范围,参考电压可以使用
内部参考电压,也可以从外部直接输入1V~VCC范围内的参考电压(要求外部参考电压源输出阻抗
低)。X、Y、Z、VBAT、Temp和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以
配置为单端或差分模式。选择VBAT、Temp和AUX时可以配置为单端模式;作为触摸屏应用时,可
以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换
准确度。


LCD 显示器
LCD 显示器为一块240*320的RGB 屏幕,使用驱动芯片为ILI9341。ILI9341 能够支持并行和串行
数据总线,此案例中我们使用串行总线接口(SPI)来进行数据传输。ILI9341驱动器能够通过窗口地
址函数在内部GRAM 中指定动态图像的区域,并且可选择地更新此窗口区域,这样就可以在独立于
静态图像区域的同时显示动态图像。ILI9341 支持全彩色,8 色显示模式和休眠模式,能够通过软件
进行精确的电源控制,使得ILI9341 能够作为手机、MP3 和PMP 等便携设备理想的液晶驱动器。


触摸屏工作原理
下面将对XPT2046驱动芯片的工作原理进行介绍。
模拟输入
下图描述了XPT2046片内多路选择器、ADC的模拟差分输入和差分参考电压基准。


内部参考电压
XPT2046的内部2.5V参考电压源可通过控制位PD1进行关闭或者打开。一般地,内部参考电压只用
于单端模式下Vbatt、Temp和AUX输入测量。使用差分模式,触摸屏可以获得最佳性能。如果要与
ADS7843兼容,XPT2046的内部参考电压源必须强行关闭。因此,上电后要对控制位PD1置0以确保
关闭内部参考源。



外部参考电压输入
+REF和-REF(见图3)之间的电压差(下文用VREF表示)决定了模拟输入的电压范围。XPT2046
的参考电压输入范围为1V~ VCC。参考电压越低,则ADC输出的二进制数据结果每一个数字位所代
表的模拟电压也越低。在12位工作方式下,数据结果的最低位所代表的模拟电压为VREF/4096,其
余位依此类推。因此,参考电压越低,干扰引入的误差会越大,此时要求尽可能使用低噪声、低波动
的参考电压源;在设计电路板时,尽可能减少干扰,输入的信号噪音也不能太高,否则会直接影响转
换精度。
差分工作模式
如前所述,当触摸感应器XPT2046作为触摸屏应用时,可以配置为差分模式。差分模式的优点是:
+REF和-REF的输入分别直接接到YP、YN上,可消除由于驱动开关的导通电阻引入的坐标测量误
差。缺点是:无论是采样还是转换过程中,驱动开关都需要接通,相对单端模式而言,功耗会有增
加。当SER/DFR置为低电平时,XPT2046为差分工作模式,如下图所示。


触摸屏快速使用方法
硬件资源
1) AT32-Video-EV
2) 2.4寸TFT_LCD
3) AT-START-F403A V1.2 实验板



软件资源
AN0154_LCD_Touch_Sourcecode,触摸屏案例测试代码,工程路径位于:
Sourcecode\utilities\mdk_v5
关键代码
1) 触摸点坐标获取函数,用于获取触摸坐标值,关键代码如下:



AN0154_AT32_LCD_Touch_Driven_By_SPI_Application_Note_ZH_V2.0.0.pdf

1.1 MB

AN0154_SourceCode_V2.0.0.zip

367.7 KB

使用特权

评论回复
沙发
tpgf| | 2022-11-7 16:28 | 只看该作者
如果SPI使用适配器,波特率的设置就比较简单通过写入寄存器就好,如果SPI使用GPIO模拟,设置比特率需要通过计算,来等待CLK的变化。

使用特权

评论回复
板凳
paotangsan| | 2022-11-7 16:52 | 只看该作者
驱动应提供高电平或者低电平,常见使用SPI协议的设备都是低电平选择有效,在发送msg时选择发送下一个msg可以选择的是否变化片选。

使用特权

评论回复
地板
renzheshengui| | 2022-11-7 17:07 | 只看该作者
数据的传输位宽:2~32位可调,存在无效位,无效位根据系统的是大端或者小端进行放置。

使用特权

评论回复
5
wakayi| | 2022-11-7 17:17 | 只看该作者
发送接收的大小端可以根据用户的需求进行配置

使用特权

评论回复
6
wowu| | 2022-11-8 08:15 | 只看该作者
参考电压越低,则ADC输出的二进制数据结果每一个数字位所代表的模拟电压也越低。那么是不是所能表示的范围也越大呢

使用特权

评论回复
7
xiaoqizi| | 2022-11-8 08:28 | 只看该作者
请教一个问题 就是如何才能提高触摸屏的触摸精度呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

161

主题

1768

帖子

24

粉丝