电阻触摸屏的工作原理主要是通过压力感应原理来实现对屏幕内容的操作和控制的,触摸屏包含上下叠合的两个透明层,四线触摸屏由两层具有相同表面电阻的透明阻性材料组成。当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间会产生接触。所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压。如图,
分压器是通过将两个电阻进行串联来实现的。上面的电阻(R1)连接正参考电压(VREF),下面的电阻(R2)接地。两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。 为了在电阻式触摸屏上的特定方向测量一个坐标,需要对一个阻性层进行偏置:将它的一边接VREF,另一边接地。同时,将未偏置的那一层连接到一个ADC的高阻抗输入端。当触摸屏上的压力足够大,使两层之间发生接触时,电阻性表面被分隔为两个电阻。它们的阻值与触摸点到偏置边缘的距离成正比。触摸点与接地边之间的电阻相当于分压器中下面的那个电阻。因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比。
如:计算Y坐标,在Y+电极施加驱动电压V,Y-电极接地,X+做为引出端测量得到接触点的电压,触点电压与V电压之比等于触点Y坐标与屏高度之比。计算X坐标,在X+电极施加驱动电压V,X-电极接地,Y+做为引出端测量得到接触点的电压,触点电压与V电压之比等于触点X坐标与屏宽度之比。
电阻触摸的具体原理这里不再深入讲解。电阻触摸我们使用i.MX6ULL原生tsc功能实现,原生tsc控制器支持四线模式和五线模式,LCD电阻屏支持四线模式,所以这里使用四线模式,即tsc控制器需要四个引脚连接到电阻屏的X+,X-,Y+,Y-上。 硬件原理 通过查表,TSX+、TSX-、TSY+、TSY-对应的PAD NAME分别为GPIO1_IO04、GPIO1_IO03、GPIO1_IO02、GPIO1_IO01。 IOMUX配置 实际在arch/arm/boot/dts/imx6ull-elf1-emmc.dts设备树文件中已经存在了,这四个引脚的IOMUX配置,这里不再重复配置: 设备节点 在arch/arm/boot/dts/imx6ull-elf1-emmc.dts设备树文件中也存在了tsc设备节点: xnur-gpio属性表示是tsc控制器连接的X-引脚,一旦触摸离开屏幕后,此引脚电平拉低; measure-delay-time属性是测量延时时间,在测量X、Y坐标之前需要一定的延时时间; pre-charge-time属性是预充电时间,在测量之前需要一定的时间充电。 这些属性跟电阻触摸原理及具体屏幕参数相关,这里不再展开。 编译测试 由于未涉及到源码改动,直接使用上一节编译出的镜像进行测试即可,也无需提交源码。开发板启动后进入屏幕校准界面,屏幕校准后显示QT界面
|