**产线检测CTP单体异常Rawdata采集需求分析及实现**
1.需求来源分析
在产线式生产检测中,无法做到逐个去使用体验TP运行正常稳定的情况,于是可以采取读取Rawdata值的方式来初步检测CTP是否出现异常。为满足终端客户对触控屏体品质的要求,在终端设备上增加触控屏体验的功能。在触控IC方面一般分为两大类:互电容触控IC(如FT5316、FT5406)和自电容触控IC(如FT6206、FT6306)。互电容触控IC在终端设备上,建议检测Rawdata值。而自电容IC在终端设备上,建议检测Rawdata值和CI值。
2.Rawdata原理分析
Rawdata是测试线路导通性,这个值会有一个范围,偏离这个范围就存在OPEN或者SHORT的情况,一般测试软件线路与产品线路均有对应。Rawdata是ADC后的采样值,它与节点电容,屏阻电容,驱动信号打码事件和频率都有一定的联系,在手机中都“xxx“一个节点,通过该节点我们可以查询Rawdata的值,若超出正常范围,说明该TP出现异常。TP一般会使用一种透明的导电材质,叫做铟锡氧化物,英文简称ITO,用玻璃作为承载ITO的基材。
3.检测参数说明及测试参数范围
互电容触控IC:
屏体rawdata值:该值是sensor节点电容经过相应算法换算出来的数字值,通过检测Rawdata值是否在控制范围内,可以有效的判断屏体是否有开、短路现象。
Rawdata值的范围:6500~11000.
自电容触控IC:
屏体Rawdata值:该值是sensor节点电容经过相应算法换算出来的数字值,涌过检测rawdata值可以判断三角形Sensor对地电容是否过大或者过小而无法正常校准CI值,出现功能性不良,如开路、短路等。
Rawdata值范围:11500~ 17500.
屏体CI值:该值是sensor图案及走线的一个电容补偿值,用于保证Rawdata值在合理的范围内,便于功能的正常使用。
CI值范围:2~253.
4.可行性分析
如果由人力逐个使用检测TP是否异常,在工序上不仅繁琐、机械,不仅消耗了大量的时间和人力资源,效率上也不理想,并且,仅在人力检测的情况下,在大量繁复的操作下,人为的检测很容易出现纰漏和错误。而先以产线式的方法粗略的通过Rawdata筛选过滤一次TP,将Rawdata超出阀值的TP标记出现,然后再单独、精确的去检测标记中的个例。不仅避免了由人为疲惫造成的错误,同样节约了人力资源和大量时间,虽然对Rawdata的采集存在一定的风险,但考虑到以产线检测Rawdata的方式带来的优势足够弥补可能出现的风险,所以推断该方案可行。
5.方案概述
5.1.Rawdata节点以及配置文件
在手机中存在一个节点,用于采集rawdata的值(不用手机的节点位置不同,可以通过驱动代码去查找),例如Yarisxxl-L中,节点存放的位置以及节点信息如下图1:
先将一个数量的批次检测该节点的信息,当采集到rawdata的值在阀值范围之内,则此项为PASS,若采集到的Rawdata值不在阀值之内,标记此项为FAIL。再将FAIL项的TP提取出来单独做检测,由于Rawdata值出现错误的情况多由硬件本身引起,一般情况都是反馈给IC屏厂厂商处理。
针对设置Rawdata、CI值范围的Rawdata Max和Rawdata Min值,正常情况下是使用自电容(互电容)机通用配置文件(ini格式)。具体内容如图2:
5.2.Rawdata检测处理流程图
6.与Rawdata相关的参数
6.1.内部反馈电容cap_internal
反馈电容的调节主要影响了触摸变化量(diffdata)。在firwmare和PC TOOLS分TX反馈电容和RX反馈电容,在cap_internal变化时,通常Rawdata也会随之变化,但Rawdata通常由offset参数来控制。具体情况,下文中详细讲解:(在Firmware中的变量如图4)
图4 firmware中的变量
6.2.Offset参数
offset调节的主要是影响扫描数据的Rawdata,在Firwmare和PC TOOLS中分TX基准电容(aucRowOffset)和RX基准电容(aucColOffset)。
6.2.1.AucRowOffset
表示TX方向的Offset电容调节;
每个TX,RX交叉点的和不能超过0x0f,在firwmare中两个RX的值是合在一个字节中的,排RX规则如下:(如图5)
图5 Row的排列规则
在FR5X01和FT5X02中,所有的TX都是用第一个TX的值,但在FT5X06中,所有TX都可以用单独的Offset电容调节;
在对TX方向的Rawdata进行调节是一个粗调的过程,Row值越大,Rawdata越大;RX值越小,Rawdata也越小。
6.2.2.AucColOffset
调节RX方向的Offset电容,同上,每个TX和TX交叉点的和不能超过0x0f,在Firmware中两个通道的值合在一个字节中,RX排列的顺序如下(如图6):
图6. Col排列规则
它对RX的Rawdata只是一个粗调的过程;
Col值越大,Rawdate就越大,反之两者都越小,它们是成正比的;
6.3.Rawdata获取以及TX、RX获取的主要代码
131static int ft5x0x_read_rawdata(struct i2c_client *client, u16 rawdata[][FTS_RX_MAX],
132 u8 tx, u8 rx)
133{
134 u8 i = 0, j = 0, k = 0;
135 int err = 0;
136 u8 regvalue = 0x00;
137 u8 regaddr = 0x00;
138 u16 dataval = 0x0000;
139 u8 writebuf[2] = {0};
140 u8 read_buffer[FTS_RX_MAX * 2];
141 /scan/
142 err = read_reg(FTS_DEVICE_MODE_REG, ®value);
143 if (err < 0) {
144 return err;
145 } else {
146 regvalue |= 0x80;
147 err = write_reg(FTS_DEVICE_MODE_REG, regvalue);
148 if (err < 0) {
149 return err;
150 } else {
151 for(i=0; i<20; i++)
152 {
153 msleep(8);
154 err = read_reg(FTS_DEVICE_MODE_REG,®value);
155 if (err < 0) {
156 return err;
157 } else {
158 if (0 == (regvalue >> 7))
159 break;
160 }
161 }
162 }
163 }
164
165/get rawdata/
166 //dev_dbg(&client->dev, “%s() - Reading raw data…\n”, func);
167 for(i=0; i