【TP】产线检测CTP单体异常

2023-12-25 18:58
文章标签 异常 检测 tp ctp 单体 产线

本文主要是介绍【TP】产线检测CTP单体异常,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                   **产线检测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:
图1 ftsrawdatashow

先将一个数量的批次检测该节点的信息,当采集到rawdata的值在阀值范围之内,则此项为PASS,若采集到的Rawdata值不在阀值之内,标记此项为FAIL。再将FAIL项的TP提取出来单独做检测,由于Rawdata值出现错误的情况多由硬件本身引起,一般情况都是反馈给IC屏厂厂商处理。
针对设置Rawdata、CI值范围的Rawdata Max和Rawdata Min值,正常情况下是使用自电容(互电容)机通用配置文件(ini格式)。具体内容如图2:

这里写图片描述

5.2.Rawdata检测处理流程图
图3. 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, &regvalue);
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,&regvalue);
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

这篇关于【TP】产线检测CTP单体异常的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/536588

相关文章

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

redis在spring boot中异常退出的问题解决方案

《redis在springboot中异常退出的问题解决方案》:本文主要介绍redis在springboot中异常退出的问题解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴... 目录问题:解决 问题根源️ 解决方案1. 异步处理 + 提前ACK(关键步骤)2. 调整Redis消费者组

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

解决Java异常报错:java.nio.channels.UnresolvedAddressException问题

《解决Java异常报错:java.nio.channels.UnresolvedAddressException问题》:本文主要介绍解决Java异常报错:java.nio.channels.Unr... 目录异常含义可能出现的场景1. 错误的 IP 地址格式2. DNS 解析失败3. 未初始化的地址对象解决

python利用backoff实现异常自动重试详解

《python利用backoff实现异常自动重试详解》backoff是一个用于实现重试机制的Python库,通过指数退避或其他策略自动重试失败的操作,下面小编就来和大家详细讲讲如何利用backoff实... 目录1. backoff 库简介2. on_exception 装饰器的原理2.1 核心逻辑2.2