硬件平台: CPU iMX6 + TSC2007 + 电阻屏
操作系统: linux-3.0.35
驱动: tsc2007标准驱动
问题描述:
设备地址 0x48 (右移一位, A1 A0 = 00 )
在tsc2007_read_values中加入打印信息,
每次点击时打印
x=0 y=0 z1=0 z2=0
x=0 y=0 z1=0 z2=0
x=0 y=0 z1=0 z2=0
x=0 y=0 z1=0 z2=0
x=0 y=0 z1=0 z2=0
x=0 y=0 z1=0 z2=0
从示波器上看波形应该正确的。
S 90 D4 S 91 00 00 T [measure y]
S 90 C4 S 91 00 00 T [measure x]
S 90 E4 S 91 00 00 T [measure z1]
S 90 F4 S 91 00 00 T [measure z2]
S 90 00 S 91 00 00 T [powerdown enable irq]
static void tsc2007_read_values(struct tsc2007 *tsc, struct ts_event *tc)
{
/* y- still on; turn on only y+ (and ADC) */
tc->y = tsc2007_xfer(tsc, READ_Y);
/* turn y- off, x+ on, then leave in lowpower */
tc->x = tsc2007_xfer(tsc, READ_X);
/* turn y+ off, x- on; we'll use formula #1 */
tc->z1 = tsc2007_xfer(tsc, READ_Z1);
tc->z2 = tsc2007_xfer(tsc, READ_Z2);
/* Prepare for next touch reading – power down ADC, enable PENIRQ */
tsc2007_xfer(tsc, PWRDOWN);
printk("x=%d y=%d z1=%d z2=%d\n", tc->x, tc->y, tc->z1, tc->z2);
}
原理图:
cg xie:
回复 user151383853:
可能是芯片样品或制程有问题。换了一颗新的ADS1015后就好了。谢谢!
user3917511:
这种全零的情况, 应该首先考虑外部和硬件问题.
JiaChuang Chen:
不知道你这个芯片使用什么协议读取出来的,有没有校验位或者应答?
如果校验位或者应答正常的话,那就是IC没有问题,可能是屏幕或者硬件电路链接的问题。
如果校验位或者应答不正常的话,那就说明IC的问题了。
yuhuan ge1:
您好,麻烦问您一下,TSC2007数据收到后应该如何解码发送出去,我的现象感觉像是解码不对导致的,谢谢啊。下面是我的现象:
I2C读tsc2007,这样在触屏上随机画线,出来的效果见图片,也就是随机画很多线后发现会叠加成一个个小方块,如果画一条线,线的方向趋势是正确的,但是线不收敛,且尝试滤波也几乎没有效果,请问有您知道可能是什么原因吗?