正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验

作者 : admin 本文共1863个字,预计阅读时间需要5分钟 发布时间: 2024-06-10 共2人阅读

前言:

本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。

引用:

正点原子IMX6U仓库 (GuangzhouXingyi) – Gitee.com

《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》

正点原子资料下载中心 — 正点原子资料下载中心 1.0.0 文档

正文:

本文是 “正点原子[第二期]Linux之ARM(MX6U)裸机篇–第25讲 多点电容触摸屏实验。本节将参考正点原子的视频教程第24讲和配套的正点原子开发指南文档进行学习。

0. 概述

随着智能手机的发展,电容触摸屏也得到了飞速的发展。相比电阻触摸屏,电容触摸屏有很多的优势,比如支持多点触控、不需要按压,只需要轻轻触摸就有反应。 ALIENTEK 的三款RGB LCD 屏幕都支持多点电容触摸,本章就以 ATK7016 这款 RGB LCD 屏幕为例讲解一下如何驱动电容触摸屏,并获取对应的触摸坐标值。

1. 点电容触摸简介

触摸屏很早就有了,一开始是电阻触摸屏,电阻触摸屏只能单点触摸,在以前的学习机、功能机时代被广泛使用。 2007 年 1 月 9 日苹果发布了划时代的第一代 Iphone,也就是 Iphone2G, Iphone 2G 上使用了多点电容触摸屏,而当时的手机基本都是使用的电阻触摸屏。电容触摸屏优秀的触摸品质和手感瞬间征服了消费者,带来了手机触摸屏的大变革,后面新出的手机也都采用了多点电容触摸屏。和电阻触摸屏相比,电容触摸屏最大的优点是支持多点触摸(后面的电阻屏也支持多点触摸,但是为时已晚),电容屏只需要手指轻触即可,而电阻屏是需要手指给予一定的压力才有反应,而且电容屏不需要校准。如今多点电容触摸屏已经得到了广泛的应用,手机、平板、电脑、广告机等等,如果要做人机交互设备的开发,多点电容触摸屏基本是不可能绕过去的。所以本章我们就来学习一下如何使用多点触摸屏,如何获取到多点触摸值。关于电容屏的物理原理我们就不去研究了,毕竟我们不是开发电容屏的,而是电容屏的使用者,我们只需要关注如何使用电容屏,如何得到其多点触摸坐标值即可。 ALIENTEK 的三款 RGB LCD 屏幕都是支持 5 点电容触摸屏的,本章我们同样以 ATK-7016 这款屏幕为例来讲解如何使用多点电容触摸屏。

ATK-7016 这款屏幕其实是由 TFT LCD+触摸屏组合起来的。底下是 LCD 面板,上面是触摸面板,将两个封装到一起就成了带有触摸屏的 LCD 屏幕。电容触摸屏也是需要一个驱动 IC的,驱动 IC 一般会提供一个 I2C 接口给主控制器,主控制器可以通过 I2C 接口来读取驱动 IC里面的触摸坐标数据。 ATK-7016、 ATK-7084 这两款屏幕使用的触摸控制 IC 是 FT5426, ATK-4342 使用的驱动 IC 是 GT9147。这三个电容屏触摸 IC 都是 I2C 接口的,使用方法基本一样。

FT5426这款驱动使用的是15*28的驱动结构,也就是15个感应通道,28个驱动通道,最多支持5点电容触摸。 ATK-7016的带你用触摸屏部分有4个IO通道用于连接主控制器:SCL,SDA,RST 和 INT,SCL和SDA都是 I2C 引脚,RST是复位引脚,INT是中断引脚。一般通过INT引脚来通知主控制器有触摸点按下,然后在INT中断服务函数中读取触摸数据。也可以不使用中断功能,采用轮询的方式不断查询是否有触摸点按下,本章实验我们使用中断的方式来获取触摸数据。

和所有的I2C器件一样,FT5426也是通过读写寄存器的来万策划给你初始化和触摸坐标数据读取的,I.MX6U 的 I2C 我们已经在第26张做了详细的讲解,所以本章的主要工作就是读写 FT5426 的寄存器。FT5426的 I2C 设备地址为 0x38,FT5426 的寄存器有很多,本章我们只用到了其中的一部分,如下表所示:

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验插图

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验插图(1)

2. 硬件原理分析

CT_INT触摸屏中断GPIO1_IO09
I2C2_SCLI2C SCL 线UART5_TXD
I2C2_SDAI2C SDA 线UART5_RXD
CT_RST触摸Reset复位SNVS_TAMPER9

硬件原理分析

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验插图(2)

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验插图(3)

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验插图(4)

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验插图(5)

3. 源码编写

编写LCD多点电容触摸屏I2C驱动程序,来获取触摸屏的触摸信息。初始化电容触摸屏,并通过I2C接口获取触摸屏信息的步骤如下,本节我们是用中断的方式在中断处理函数中获取触摸点信息:

1. IO_MUX复用配置,IO接口电气特性配置

2. I2C 接口初始化

3. 触摸屏驱动芯片的初始化

本站无任何商业行为
个人在线分享 » 正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-25 多点电容触摸屏实验
E-->