1.电阻屏在触摸时候需要触摸按压,而电容屏只需要轻微的手指触摸就能激活。
2.电阻屏可以用任何物体来触摸,而电容屏是人体热感应工作原理,只能用手指来触摸。
3.电容屏支持多点触摸,电阻屏幕一般不能实现多点触摸。
4.电阻屏内部都是软的,而电容屏硬度大。
5.电阻屏在阳光下可视性差点,电容屏则非常好,在阳光想可视性非常强。
1.接口
IIC接口通信,一般有GT9147,OTT2001A,他们与MCU连接通过4根线,SDA,SCL,RST,INT
2.GT9147电容屏相关寄存器
1.控制命令寄存器(0x8040)
写入2,可以软复位
写入0,可以读取正常读取坐标数据
2.配置寄存器组(0x8047-0x8100)
一共186个寄存器,用于配置GT9147的各个参数,这些参数直接使用厂家的。
3.产品ID寄存器(0x8140-0x8143)
四个寄存器,保存产品ID,根据产品ID,进行不同初始化。
4.状态寄存器(0x814e)
最高位,用于表示是否有数据,有就是一
低四位,表示有效触摸的点数
5.坐标数据寄存器
30个寄存器,分为5组(5个触摸点),每组6个
以一组为例
可以读取x,y坐标,和尺寸,我们就可以知道点到了那里
GT9147写时序
启动信号,发送从设备地址,等待应答,发送高位寄存器地址,等待应答,发送低位寄存器地址,等待应答,发送数据等待应答,发送停止信号
GT9147初始化流程
1.硬复位
2.结束硬复位
3.设置IIC地址(设备地址)GT9147地址可以说0x14或0x5dm,INT为高时为0x14。
4.软复位
5.更新配置
6.结束软复位
工作原理
1.初始化GT9147之后,我们不停的查询0X814E寄存器,判断是否有触点按下,如果有读取坐标寄存器,得到触点坐标。
2.有触点按下后,0x814e寄存器最高位为1,必须要置0,等待下一次触摸
当手指触摸屏幕时,平常绝缘的两层导电层在触摸点位置就有了一个接触,控制器侦测到这个接通后,其中一面导电层接通У轴方向的5Ⅴ均匀电压场,另一导电层将接触点的电压引至控制卡进行A/D转换,得到电压值后与5Ⅴ相比即可得触摸点的у轴坐标,同理得出Χ轴的坐标,这就是所有电阻技术触摸屏共同的最基本原理。
位置计算
输出电压=偏移量+斜率*坐标
校准
确定电压和坐标之间的函数关系
电压测量
需要AD转换芯片获取电压值,
XPT2046
XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。XPT2046支持从1.5V到5.25V的低电压I/O接口。XPT2046能通过执行两次A/D转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。内部自带2.5V参考电压可以作为辅助输入、温度测量和电池监测模式之用,电池监测的电压范围可以从0V到6V。XPT2046片内集成有一个温度传感器。
简单来说就是计算电阻屏幕的电压的模数转换芯片
XPT2046芯片引脚
XPT2046初始化
XPT2046指命
就是
u8 CMD_RDX=0XD0;//读取X轴坐标命令。
u8 CMD_RDY=0X90;//读取Y轴坐标命令。