我有一个 DMC 模拟电阻式触摸屏、可通过传统的4线接口与 TSC2003连接。 触摸将导致 TSC2003生成中断。 中断处理程序随后唤醒触摸屏任务、该任务负责检索触摸坐标并将其传递到应用层进行处理。
触摸屏任务由表格驱动。 每个表条目标识要执行的函数(即读取)。 读取之间存在一(1)毫秒的延迟。 执行完所有功能后、任务返回睡眠状态。 所有读取在12位模式下执行。 X/Y/Z 驱动程序在读取 X/Y/Z 坐标之前打开。 每个命令中的 PD1-PD0设置为"11"以禁用中断、打开内部基准并打开 ADC。 执行的最后一个函数是读取 VB1。 我不关心电压读数、但使用命令将 PD1-PD0设置为"10"以启用中断、保持内部基准打开并关闭 ADC。
观察到以下情况:
- X/Y/Z 值出现在第一个数据字节中。 第二个数据字节中的 D3-D0始终为0x0F。
- 第一个数据字节中的值偶尔会报告为0x00或0xFF。
- "机械指"用于在固定位置反复触摸屏幕。 X/Y 坐标通常在五(5)个像素之间。 但是、在测试过程中会报告"传单"、该广告不在固定印刷位置附近。
我们的应用要求准确报告触控情况。 "传单"是不可接受的。
我已经尝试再次读取 X/Y/Z (即去抖)。 我丢弃 X/Y 测量值为0x00/0xFF 或两个读数之间的差值为10像素或更大的任何读数。 这极大地消除了错误读数。 但是、我仍然会遇到传单出现的实例、两组测量都显示为有效触摸。
问题:
- TSC2003将采样动态吞吐率列出为50ksps (例如、0.00002秒)。 中断后必须以多快的速度进行测量是否有任何时序要求? 我显然受到 I2C 总线速度和读取之间自我施加的毫秒延迟的限制。
- 一旦 X/Y/Z 驱动程序被激活、它们是否曾经被关闭?
- 我对 VB1的读取是否会影响下一个中断的测量值。 将 PD1-PD0的设置移动到"10"到第二次 Z 测量没有帮助。
- 我并不关心节能。 我的理解是、仅电池和辅助输入测量需要内部基准。 是否存在/不存在内部基准电压影响 X/Y/Z 测量?
- 我已使用第二个方程式进行压力测量、因为它仅需要 X、Y 和 Z1测量。 我的机械指在屏幕上施加相当一致的压力。 但是、随着手指移动到触摸屏的各个部分、RTOUCH 的计算值会有很大的变化。 这是否会受到 D3-D0始终为0x0F 的影响? 当我更改为8位模式时、测量值不会改变。 4096常量是否会更改为256?
我已经阅读过几次数据表。 这不应该是那么困难。 我必须俯瞰一些简单的东西。
提前感谢每个人的时间和麻烦。


