开发TSC2046触摸芯片驱动问题分析(触摸状态检测分析阶段)

背景

在为电阻触摸板的触摸芯片编写驱动代码时,按照阶段遇到如下问题:
1.在编写驱动的第一天遇到的问题是:
a)一旦初始化TSC2046整个程序都会卡住,不再向下运行(物理、模拟SPI都进行了测试);
b)初始化成功后,无法响应点击,示波器测量电平一直为高电平;
c)可以正常响应点击后,点击多次后(每次点击都调用了测量函数),程序会死掉(查询方式和中断方式都进行了测试);
2.第二天遇到的问题是:
a)使用查询方式正常响应触摸后,经过硬件确认,TSC2046的时钟引脚虚焊了,补焊之后,程序又开始死在初始化触摸芯片的地方,移开时钟引脚后,程序又恢复正常;
b)修改程序只读12位数据(该芯片支持8位和12位ADC测量)时,程序又开始死掉,错开时序后,点击屏幕左半区无测量值返回,点击右半区有测量值返回;
c)将测量数据显示在显示屏上,发现使用物理SPI和使用模拟的SPI采集到的数据差别很大,并且物理SPI接口采集到的测量值大多都是0;
d)经过对四个角的点击,获取测量值,发现触摸板的坐标原点在右上角;

触摸状态检测分析阶段

作为触摸芯片的TSC2046,具备两个主要功能,即触摸状态检测和触摸值测量。最简单的就是触摸状态检测功能,所谓的检测,实际上就是当有触摸时,触摸引脚的电平会变低,平时无触摸时该引脚上的电平为高电平。
我们就是根据这一特性进行状态检测的,
如图1所示是显示屏使用的TSC2046的引脚接线图,从图中可以看出,该引脚可以作为一个外部中断触发引脚,也可以通过查询方式进行状态检测。

在这里插入图片描述

一开始使用的是物理SPI驱动该芯片,但是在初始化时,程序就卡死了,但是在驱动TSC2046前,该SPI的数据已经使用示波器进行测量,波形都很正常。
和触摸芯片结合一起使用后,程序就死掉了,调试发现程序并没有死掉,只是一直在SPI的等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值