我们板子上的触摸屏是电容屏,当然也有电阻屏。不过目前绝大多数是电容屏。
原理:按下某个位置,得到某个位置的特定电阻/电容值,电阻屏(可能通过好几个adc去捕获这些电阻值),因为平面上一个点至少需要a(x,y)表示.

拆开LCD屏的板子,找到触摸屏那块的主控IC:FT5206.

所以我们现在研究这颗IC的SPEC就好了.

IIC总线/SPI总线
INT脚
wake up脚

CTP – Capacitive touch panel
CTPM – Capacitive touch panel module

FT5x06 IC 介绍 :支持5点触摸最多
1.通讯方式:IIC ,SPI
具体到我的开发板沟通方式:
1.通过IIC总线传送数据
2.通过中断脚发送中断当存在有效触摸时
3.发送wakeup信号给CTPM.

如何获得touch的数据?
必须需要中断信号 和串口信号两者配合获得数据。
有两种时序方式:
1)中断轮询:有触摸信号,中断拉低,串口传送触摸位置数据
2)中断触发:有触摸信号,中断信号做一个周期性的方波信号,当中断信号为低,获取数据。

中断信号的作用:
当有触摸信号时,CTPM用中断告诉master device可以读取数据了
中断引脚变低,提醒主机读数据

wake up信号:
主机唤醒IIC的从设备

reg:

device mode val(reg前缀)
Operating(op) 000b read touch point and gesture
Test (Te) 100b read raw data
system info(sy) 001b read system info

关心的REG:
DEVICE_MODE: op,00h//三种工作模式设置

GEST_ID: op,01h :手势touch获取

TD_STATUS: op,02 h: 同时侦测到几个点:1-5

TOUCHn_XH (n:1-5): Op,03h~Op,39h:第n个按下点的x坐标的高位[11:8],和按下,释放,接触的状态等 event flag

TOUCHn_XL (n:1-5):Op,04h~Op,3Ah: 第n个按下点的x坐标的低位[7:0],单位像素

TOUCHn_YH (n:1-5) :Op,05h~Op,3bh:第n个按下点的y坐标的高位[11:8], 和当前按下点的touch id

TOUCHn_YL (n:1-5) :Op,06h~Op,3ch:第n个按下点的y坐标的低位[7:0]

ID_G_THGROUP: op 80h:电容触摸时判断有效触摸的阈值/门限 ,要求4的整数倍,默认 280/4

ID_G_THPEAK: op 81h:峰值检测 阈值 默认 60

ID_G_ THCAL: op 82h: 计算触摸焦点时的阈值 默认 16

ID_G_ THWATER: op 83h: 描述表面有水时的阈值 默认 60

ID_G_ THTEMP: op 84h: 描述温度补偿的阈值 默认 10

ID_G_ THDIFF: op 85h: 描述一个坐标的精度阈值(获得电容值在误差偏差多少算是同一个点) 默认 20

ID_G_ CTRL : op 86h:运行模式控制器 0 :no auto jump 1:auto jump

ID_G_ TIMEENTERMONITOR:op 87h: 输入数据的输入延时:默认 2

ID_G_ PERIODACTIVE:op 88h: 本寄存器描述了活跃状态期间,不应小于12 range :3-14

ID_G_ PERIODMONITOR: op 89h:本寄存器描述了监视状态的状态,它不应小于30

ID_G_ AUTO_CLB_MODE: op a0h: 该寄存器描述了自动校准模式 00:enable ff ;disable

ID_G_ LIB_VERSION_H: op a1h: 库版本 高字节

ID_G_ LIB_VERSION_L: op a2h: 库版本 低字节

ID_G_ CIPHER: op a3h : 供应商 芯片ID

ID_G_ MODE : op a4H: 描述主机中断状态 0 :enable int 1: disable int

ID_G_ PMODE : op a5h: CTPM 运行时的功耗模式 0:active 1:监听,测定 3: sleep

ID_G_ FIRMWARE_ID: op a6h: 应用程序的固件标识

ID_G_ STATE : OP a7h: 配置TPM的运行模式: 0:configuare 1:work 2:校准 3:工厂 4:自动校准

ID_G_ FT5201ID : op a8h: 厂商芯片IC号

ID_G_ ERR : op a9h: 运行时的error code:
8’h00:OK
8’h03:chip register writing inconsistent with
reading
8’h05:chip start fail
8’h1A:no match among the basic input(such as
TX_ORDER) while calibration

ID_G_ CLB : op aah:用来配置TPM当校准 :
Mapping the Array of G_Bank1, total length is
NUM_TX+NUM_RX+1. the array address
increases 1 after every write

Te mode:
不研究了,等写的时候有用到再看

sys mode:
不研究,用时再看

CTPM FT5206 模块图:

知道了这些,我们便可以自己编写驱动,或者移植驱动.

获取哪些点按下了,即按下的位置,获取手势等,这就够了.

不过寄存器还真有点多,郁闷

下了两份SPEC,刚才翻看了另外一份,发现还不一样,擦~

FT5x06是可编程的,里面有一个51的微控制器,相当于一个51内核的单片机.LCD实际的线路图:


开发板的线路图的IC是FT5206GE1,而这边好像说只支持最高3.8英寸屏,而我的开发板是7寸屏,我觉得有问题啊。因为对不上啊!
我又把LCD拆开了,确认了下没错是5206,这真是见了鬼了。


这边我们先不管,那我们的连接方式是IIC。那么slave的地址是:

剩下不明白的等真正研究驱动时,哪边写不下去了,再来看呗

linux驱动开发:触摸屏的认识(FT5x06 IC的分析)相关推荐

  1. 嵌入式linux驱动开发实战教程,嵌入式Linux驱动开发实战视频教程

    嵌入式Linux驱动开发实战教程(内核驱动.看门狗技术.触摸屏.视频采集系统) 适合人群:高级 课时数量:109课时 用到技术:嵌入式 Linux 涉及项目:驱动开发.看门狗技术.触摸屏.视频采集 咨 ...

  2. Linux驱动开发 / fbtft源码速读

    哈喽,老吴又来分享学习心得啦~ 一.目标与体系 目标是关于你想要达到的结果,而体系是涉及导致这些结果的过程; 目标的意义在于确定大方向,但体系才能促进进步.完全忽略目标,只关注体系,仍然会成功. 结果 ...

  3. 华清远见嵌入式Linux驱动开发培训班

    课程背景 开放的 Linux 受到广泛的欢迎,得到越来越多公司的支持,但是阻碍 Linux 在各个领域广泛应用的主要因素就是内核/驱动高端人才极度缺乏,Linux源代码中85%是设备驱动,嵌入式系统中 ...

  4. 最全Linux驱动开发全流程详细解析(持续更新)

    Linux驱动开发详细解析 一.驱动概念 驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁. 具体任务 读写设备寄存器(实现控制的方式) 完成设备的轮询.中断处理.DMA通信(CPU与外设通信 ...

  5. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  6. 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

    我刚大学毕业的时候是2010年,什么都不会,只会点c,后来介绍去做JavME,做了一年,后又做了一阵子Java企业级开发.感觉这不是我想要的工作,在这段时间里面,除了实际编程能力有了提高,其他的没学会 ...

  7. Linux驱动开发(十)---树莓派输入子系统学习(红外接收)

    前文回顾 <Linux驱动开发(一)-环境搭建与hello world> <Linux驱动开发(二)-驱动与设备的分离设计> <Linux驱动开发(三)-设备树> ...

  8. 嵌入式linux驱动开发之点亮led(驱动编程思想之初体验)

    这节我们就开始开始进行实战啦!这里顺便说一下啊,出来做开发的基础很重要啊,基础不好,迟早是要恶补的.个人深刻觉得像这种嵌入式的开发对C语言和微机接口与原理是非常依赖的,必须要有深厚的基础才能hold的 ...

  9. Linux驱动开发环境配置(内核源码树构造)

    来源:季义钦BLOG 作者:季义钦 初次接触Linux驱动程序开发,买了一本<Linux设备驱动程序>,第一件事当然就是构建开发环境了!!! 它上面有一个Hello World的列子: / ...

  10. linux驱动开发的经典书籍

    Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为<linux_device_driver 3rd Edition>,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本 ...

最新文章

  1. RxJava2.x 萌新之路 操作符篇
  2. 邬贺铨:5G资费便宜10倍 WiFi覆盖更为重要
  3. python 仪表盘-Python笔记:制作和自定义仪表盘
  4. HDU2032杨辉三角(C++)
  5. nginx官方模块之http_sub_status_module
  6. 具有N个量子存储位的计算机,未来世界是科技的世界,未来的计算机也会有这几类...
  7. linux 局域网内互ping丢包_ping命令还能这么用?
  8. [翻译]Java 核心技术(第7版)(3)
  9. 心斋-------马克奥勒流
  10. [转帖]Beyond Compare如何进行二进制比较
  11. c#精彩编程200例百度云_每天宅家创客5分钟|智龙6号星球车:01唤醒星球车——温州中小学趣味信息技术云课程...
  12. 计算器与计算机小键盘的使用,会计神器!用上Cherry轴的计算器还能当小键盘用...
  13. `英语` 2022/8/4
  14. 推荐一个在线绘图工具ProcessOn----支持流程图、思维导图、UML等
  15. Google 内购 - Android
  16. Majoy实地体验和冰糖樱桃酱等3个食谱
  17. 23.MongoDB地理位置检索
  18. 如何在嵌入式 Linux 和物联网中建立信任根
  19. 服务器显卡不能显示器,到底有没有关系?显卡与显示器无责任搭配
  20. 全球IEEE期刊大全(综合整理,附原文论文下载地址)

热门文章

  1. [渝粤教育] 南通大学 分子生物学 参考 资料
  2. java能盗号吗_CVE-2017-8759漏洞新利用:Java Keylogger盗号木马分析
  3. 浅谈软件性能测试,浅谈软件性能自动测试应用
  4. 【poi-3.8】poi解析excel插入数据库详解
  5. linux下npm安装的全局命令无法执行
  6. 前端开发周报:20190817
  7. MAC知识点009:MAC速率是如何扩展到serdes速率的
  8. 用 Python 进行办公自动化都需要学习什么知识
  9. 分享107个竞聘述职PPT模板,总有一款适合您
  10. 基于AT89C51单片机的交通灯控制系统的设计