CIS芯片测试这活儿,外行看着就是"拍张照,看图像清不清楚",真正上手才知道,从晶圆上一颗没封装的裸片,到手机里能出成片的那颗传感器,中间要过的测试关卡多到能把人问住。我带过几个CIS测试相关的项目,也跟不少芯片测试工程师聊过,发现大家卡的点其实高度重合:暗电流到底怎么测才准、坏点判定的阈值怎么定、转换增益那套PTC曲线怎么算、相机调试里那个capture cis开关藏在哪里、ISP的坏点矫正和sensor端的坏点测试到底谁管谁。这些问题的答案,散在数据手册、应用笔记和老工程师的脑子里,网上很难找到一份能直接抄作业的完整版本。
这篇东西就是想把CIS芯片测试这条链路从头到尾捋一遍。我会按"测什么—为什么这么测—具体怎么操作—踩过哪些坑"的顺序讲,尽量给出能直接复现的参数、步骤和判定标准,也会解释每个选择背后的逻辑。不管你是刚入行的芯片测试工程师,还是做相机调试、模组验证的同行,或者是想搞明白自己手机摄像头那些黑点白点从哪来的技术爱好者,都能从里面拎出能用的东西。
1. CIS芯片测试到底在测什么
聊测试之前得先把测试对象说清楚。CIS是CMOS Image Sensor的缩写,也就是互补金属氧化物半导体图像传感器,它干的事只有一件:把打在像素阵列上的光子,转换成一个个数字码值输出。听起来简单,但这条链路上任何一环出问题,最后呈现出来的都是"图不对"。所以CIS测试的本质,不是去测某单个指标好不好,而是沿着从光子到码值的完整通路,把每一段的性能都量化出来,判断它是否落在规格窗口内。
我一般把CIS测试分成三条并行的线来看:电性能线、噪声线、图像质量线。电性能线关注的是像素能不能正常读出、驱动电压对不对、时序有没有跑通、接口输出是否稳定;噪声线关注暗电流、读出噪声、固定图案噪声这些东西,它们决定了传感器的下限;图像质量线则是把芯片当成一个"相机"来评估,灵敏度、信噪比、动态范围、色彩还原、坏点数量都在这一条线上。三条线各有各的测试项,但很多问题会在三条线之间交叉暴露,这也是CIS测试比较折磨人的地方。
1.1 一条从光子到数字码值的完整链路
要理解测试项,先得把信号链路拆开。光子穿过微透镜和彩色滤光片,打在光电二极管上,被转换成电子;电子积累在浮动扩散节点(FD)上,被源极跟随器转成电压;电压经过列级ADC采样量化,变成数字码值,再通过MIPI、LVDS或DVP接口送出去。整条链路上,光电转换效率、电荷转移效率、转换增益、读出噪声、ADC精度,每一个环节都会影响最终输出的质量。
这条链路的每一段都有对应的测试项。比如光电转换效率对应量子效率(QE)和灵敏度,电荷转移效率对应残像(Image Lag),转换增益对应FD节点的电容大小,读出噪声对应暗场下的码值波动,ADC精度对应输出的量化台阶。测试工程师要做的,就是设计各种光照、曝光、温度条件,把某一段的贡献单独"抠"出来。举个最典型的例子:想测读出噪声,就得在完全无光、极短曝光的条件下采图,把暗电流的贡献压到最低,剩下的波动才主要是读出噪声。
理解了这条链路,后面看到的每个测试项你都能对上号,而不是死记硬背一堆名词。这也是我一直跟新人强调的:别一上来就背测试规范,先把信号怎么走一遍搞清楚,测试项自然就串起来了。
1.2 测试项全景:电性能、噪声、图像质量三条线
把测试项铺开来看,大致是这么一张表。它不是为了让你照单全收,而是让你知道每项在测什么、依赖什么条件、结果异常时大概往哪个方向查。
| 测试项 | 归属线 | 关键条件 | 主要反映的问题 |
|---|---|---|---|
| 供电电流/电压 | 电性能 | 常温、固定时序 | 驱动是否正常、有无漏电 |
| 接口功能 | 电性能 | 标准时序 | MIPI/LVDS链路是否通 |
| 暗电流 Dark Current | 噪声 | 全黑、控温、长曝光 | 像素漏电、工艺缺陷 |
| 暗信号非均匀性 DSNU | 噪声 | 全黑、多帧平均 | 暗场下的固定图案噪声 |
| 读出噪声 | 噪声 | 全黑、短曝光 | 模拟链路噪声水平 |
| 转换增益 CG | 电/噪声 | 变曝光PTC | FD电容、增益设定 |
| 满阱容量 FWC | 电性能 | 变曝光至饱和 | 像素动态上限 |
| 白点/坏点 Defect | 图像质量 | 全黑/均匀光 | 像素缺陷数量 |
| 灵敏度/量子效率 | 图像质量 | 标准光源、定标 | 光电转换能力 |
| 信噪比 SNR | 图像质量 | 均匀光多档 | 综合噪声表现 |
| 动态范围 DR | 图像质量 | 亮暗结合 | 明暗兼顾能力 |
| 色彩还原 | 图像质量 | 标准色卡 | 色彩准确度 |
这张表里,暗电流、坏点、转换增益、动态范围是最容易出问题、也最容易被误判的四项。后面我会挑这几项重点拆。这里先埋一个伏笔:很多"坏点"其实不是像素真坏了,而是测试条件没控好,比如温度漂了、光源不均匀、黑电平没校准,最后判定出来的坏点全是假阳性。这类坑在后面排查章节会专门讲。
2. 测试方案怎么搭:从探针台到积分球
搞清楚了测什么,接下来要解决"在哪测、用什么测"。CIS测试按阶段分,主要就是CP测试和FT测试两大块,再往后还有模组级的系统测试。这三者不是简单的先后关系,而是各有各的目的和取舍。选错了测试阶段,要么成本飙升,要么问题漏到后面去,返工代价极大。
我见过不少团队为了省事,把本该在CP阶段卡掉的问题拖到FT甚至模组阶段,结果封装好的芯片成批报废,损失比多花的那点测试时间大得多。所以方案设计的第一原则是:能在越早的阶段暴露的问题,就越要往前卡。下面先把CP和FT的分工逻辑讲清楚,再讲硬件怎么组合。
2.1 CP与FT的分工逻辑
CP是Chip Probing,晶圆级测试,用探针卡直接扎在晶圆的焊盘上,一颗颗芯片测过去。这个阶段芯片还没切割、没封装,测试速度快、成本相对低,但受限于探针接触和晶圆环境,能测的项目比较偏电性能和基础功能。CP阶段最典型的测试就是直流参数、基本时序、暗电流和粗略的坏点筛选。它的核心价值是在封装之前,把明显不合格的裸片挑出来,避免给坏片花封装钱。
FT是Final Test,封装之后的成品测试。这时候芯片已经是能直接用的器件了,可以接完整的光源系统、图像采集板,做全面的图像质量评估。灵敏度、信噪比、动态范围、色彩还原这些项目,基本都在FT阶段完成。FT的测试条件更接近实际使用,所以结果也更有参考价值,但成本高、节拍慢,不适合做全检的大批量筛选。
我的经验是,CP阶段重点卡"能不能用",FT阶段重点卡"用得好不好"。两边的判定标准要联调好,不能出现CP判合格、FT大面积不合格的情况,那说明CP的筛选阈值定松了。反过来,CP阈值太紧又会造成良率虚低,浪费好片。这个平衡点,通常要靠前几批数据的分布来反复调。
2.2 硬件组合与选型考量
一套完整的CIS测试系统,核心是四个部分:探针台或测试插座、测试机(ATE或自研板卡)、光源系统、图像采集与分析软件。每一块的选型都直接影响测试结果的可靠性。
光源系统是重头戏。要做图像质量测试,光源必须足够均匀、足够稳定、色温可控。行业里最常用的是积分球,它能把点光源打散成非常均匀的面光源,配合标准色温灯(常用2856K的A光源或者D65),给传感器提供可重复的照明条件。积分球的均匀性一般要求达到95%以上,否则测出来的PRNU(光响应非均匀性)会混入光源自身的不均匀,根本没法分清是像素的问题还是光源的问题。
测试机方面,量产线一般用商用ATE,讲究的是多站点并行、节拍快、稳定性高。研发和验证阶段,很多团队会用FPGA自研采集板,灵活性高,能直接抓RAW数据、改时序、调增益,调试的时候特别顺手。我个人的偏好是:验证阶段一定用能出RAW的方案,因为只有拿到原始数据,你才能判断问题到底出在sensor还是后面的ISP。这一点在讲capture cis开关的时候还会展开。
图像分析软件这块,别指望买来就能用。每个项目的测试项、判定标准、报表格式都不一样,几乎都要二次开发。我的建议是把数据采集和分析解耦:采集端负责在固定条件下把RAW和元数据存下来,分析端用Python之类的脚本批量处理,这样算法改了不用重新采数据,效率高很多。
2.3 温度、光照、时序三大控制量
CIS测试里,有三个量必须死死控住,否则数据没法看:温度、光照、时序。
温度对暗电流的影响是指数级的。硅材料的暗电流大致遵循一个规律,工程上常按"每升高5到8摄氏度,暗电流翻一倍"来估算。这意味着温度飘个两三度,暗电流就可能差出二三十个百分点。所以暗电流测试一定要在恒温环境下做,高低温箱的温度稳定性至少要到正负0.5摄氏度。很多实验室图省事,常温下测暗电流,结果同一颗芯片今天测和明天测差一大截,就是环境温度在捣乱。
光照的控制体现在两件事上:亮度和均匀性。亮度靠积分球加可调光源来保证,均匀性靠积分球本身的质量和传感器的对位精度。传感器如果没放在积分球开口的正中心、有倾斜,接收到的光照就不均匀,测出来的坏点和PRNU全是假的。
时序这块最容易被忽视。CIS的曝光、读出、复位都有严格的时序要求,曝光时间和增益设定稍有偏差,测出来的灵敏度和噪声就全变了。尤其是做PTC曲线的时候,每一档曝光都要精确可控,曝光时间的误差会直接传到转换增益的计算结果上。我一般要求曝光时间的精度控制在百分之一以内,超过这个量级,PTC拟合出来的曲线就开始飘了。
3. 核心测试项实操:参数怎么测、怎么算
前面两章把框架搭好了,这一章进入硬核部分:几个关键测试项到底怎么测、数据怎么算、判定标准怎么定。我会尽量给出公式和计算过程,而不是只丢一个结论。这些内容你在数据手册里往往只能看到定义,看不到工程上真正怎么落地,所以我会把我实际操作里的处理方式也写进去。
3.1 暗电流与DSNU:全黑条件下的两件事
暗电流测试的条件很明确:完全遮光、控温、设定一个足够长的曝光时间。采一帧全黑的RAW图,整幅图的平均值减去黑电平基准,再除以曝光时间,就是暗电流对应的码值速率。如果要换算成物理单位,还得用转换增益把码值换成电子数,最后归一化到单位面积,得到暗电流密度。
这里有个细节特别关键:遮光一定要彻底。我见过有人用黑布盖镜头,结果黑布边缘漏光,测出来的暗电流偏高一大截,查了半天以为是芯片漏电。正确的做法是用不透光的金属遮光板,或者直接在暗室里测。另外,传感器周围如果有红外源,比如某些设备的指示灯,也可能被硅片响应到,一定要排查干净。
DSNU是暗信号非均匀性,测的是全黑条件下各像素之间的固定差异。做法是连续采多帧,先对每帧做时域平均压掉随机噪声,再计算空间上的标准差,除以均值得到相对值。DSNU反映的是像素之间的工艺差异,是固定图案噪声的一部分。它和暗电流不一样:暗电流是"整体有多暗",DSNU是"暗得均不均匀"。
实际操作里,我可以给你一段分析脚本的骨架,直接改改就能用:
import numpy as np # 读取一帧全黑RAW,16位,分辨率假设是4000x3000 raw = np.fromfile("dark_1s.raw", dtype=np.uint16).reshape(3000, 4000).astype(np.float64) # 黑电平基准,一般取光学黑区(OB区)的均值 ob = raw[:, :64] black_level = ob.mean() # 有效像素区域 active = raw[:, 64:] # 去黑电平 signal = active - black_level # 暗电流均值(码值) dark_mean = signal.mean() # DSNU:空间标准差 / 均值 dsnu = signal.std() / (signal.mean() + 1e-9) print("dark mean (DN):", dark_mean) print("DSNU:", dsnu)这段脚本里有两点要注意。第一,黑电平基准一定要用光学黑区来算,别用整幅图,因为有效像素区可能有漏光。第二,算DSNU之前最好先做多帧平均,单帧的随机噪声会污染空间标准差。我一般会采16到32帧做平均,效果比较稳。
3.2 转换增益与满阱容量:PTC曲线法
转换增益(Conversion Gain,CG)是CIS测试里最核心也最容易算错的参数之一。它的物理意义是:每个电子被转换后,在输出端对应多少电压或者多少码值。单位通常是微伏每电子,或者用系统增益K来表示,单位是电子每码值。CG越大,同样的电荷量对应的信号越大,读出噪声折算到电子数就越小。
测CG最标准的方法是光子转移曲线,也就是PTC。原理是这样的:在同一光照下,改变曝光时间,测一系列不同信号强度下的均值和方差。理想情况下,方差和均值满足线性关系,这条直线的斜率就是系统增益的倒数。具体来说,在码值域里,有方差等于均值除以K,所以K等于均值除以方差,斜率取倒数就得到K。
我把计算过程写出来,顺手给段脚本:
import numpy as np # means 和 vars_ 是不同曝光档位下,同一区域的平均码值和空间方差 means = np.array([320, 680, 1050, 1600, 2200, 2900], dtype=np.float64) vars_ = np.array([11.5, 24.1, 36.8, 55.9, 76.4, 100.2], dtype=np.float64) # 线性拟合 variance = mean / K + offset slope, intercept = np.polyfit(means, vars_, 1) K = 1.0 / slope print("system gain K (e-/DN):", K) # 满阱容量:线性区最大均值对应的电子数 fwc_dn = 12000 # 线性饱和点码值,需实测 fwc_e = fwc_dn * K print("full well capacity (e-):", fwc_e)这里有几个实操要点。第一,PTC必须在信号的线性区内做,饱和点和暗噪声主导的低端都要剔除。低端信号太小,方差估计不准;高端接近饱和,方差会偏离线性。第二,采样区域要选均匀光照的中间区域,别选到边缘,否则PRNU会影响方差。第三,至少取5到6个曝光档位,档位之间信号要有明显的跨度,拟合出来的斜率才稳。
满阱容量(FWC)是另一个关键参数,代表像素能装多少电子,直接决定了动态范围的上限。它的测法是把曝光一路加长,直到输出码值不再随曝光线性增长,那个拐点就是饱和点。饱和点对应的电子数就是FWC。这里要注意区分两个饱和:一个是像素自己装满了,另一个是ADC先到顶了。如果是ADC先饱和,你测到的FWC是被ADC限制的,不是真实的阱容量。判定方法是看模拟增益设定,如果增益调低后饱和点变高,说明之前是被ADC卡住了。
3.3 坏点(Defect Pixel)测试:判定阈值怎么定
坏点是CIS测试里最有画面感的一项,也是最容易产生争议的一项。所谓坏点,就是那些输出明显偏离正常的像素,分为两类:暗场下的亮点叫白点,亮场下的暗点叫黑点。白点通常是像素漏电过大,黑点通常是像素响应不良或者被遮挡。
坏点的测试方法看着简单:在均匀光照下采图,算出全局均值和标准差,把偏离超过某个阈值的像素标记出来。但真正的难点在于阈值怎么定。阈值定太松,真坏点漏掉;定太紧,正常像素被冤枉成坏点,良率虚低。行业里通常用"偏离均值N倍标准差"来判定,N一般取5到8。但标准差本身会被坏点拉大,所以更严谨的做法是先用中位数绝对偏差(MAD)来估计正常的离散度,再用它做判定。
import numpy as np from scipy import ndimage raw = np.fromfile("flat_light.raw", dtype=np.uint16).reshape(3000, 4000).astype(np.float64) active = raw[:, 64:] med = np.median(active) mad = np.median(np.abs(active - med)) * 1.4826 # 归一化到标准差 # 白点(高于中位数)和黑点(低于中位数)分开判定 hot = active > med + 6 * mad cold = active < med - 6 * mad print("hot pixels:", hot.sum(), "cold pixels:", cold.sum()) # 统计坏点簇,单点和成簇的严重程度不同 lbl, n = ndimage.label(hot) print("hot clusters:", n)这里必须强调坏点簇的概念。单颗孤立的坏点,ISP的坏点矫正算法一般能轻松修掉;但如果坏点成片出现,比如连成一条线或者一片有几十个,那多半是工艺或者电路的系统性问题,修起来很吃力,这类芯片一般直接判定不合格。所以统计坏点的时候,不光要数总数,还要看最大簇的大小和分布形态。
还有一点容易被忽略:坏点的判定要在多个曝光档位下做。有些像素在低照度下正常,高照度下才暴露;有些则相反。只测一个条件,很容易漏判。我一般至少测三档光照:暗场、中亮、接近饱和,三档下都正常的像素才算真正正常。
3.4 SNR、动态范围与色彩还原:整机视角的评估
前面几项测的是局部,SNR、动态范围和色彩还原测的是传感器的综合表现。信噪比的测法是在均匀光照下,选一个区域算信号均值,同时算时间上的噪声标准差,两者相除再取对数就是SNR。要注意这里的噪声必须用多帧的时域标准差,不能用单帧的空间标准差,否则混进了坏点和PRNU,结果偏低。
动态范围是满阱容量和读出噪声的比值,取对数。它的意义是传感器能同时记录最亮和最暗细节的能力。算法很直接:把FWC换成电子数,把读出噪声也换成电子数,二者相除取20倍对数。但工程上有个坑:单帧动态范围和实际成像动态范围是两回事。很多现代传感器用多帧合成或者双转换增益来扩展动态范围,这时候手册里的动态范围是合成后的值,不是单帧能测出来的。测的时候一定要看清楚规格定义的是哪种。
色彩还原一般在FT阶段用标准色卡来做。拍一张标准色卡,用标准光源照明,然后计算每个色块的色差,通常用ΔE来衡量。ΔE越小越好,一般成品要求平均ΔE在3以内。这一项对测试环境影响很大,光源色温不准、色卡反光、镜头有色差,都会让ΔE超标。所以色彩测试前,镜头和光源的标定一定要做扎实。
4. Capture CIS开关与ISP坏点矫正实操
这一章聊两个在调试现场被问得最多的问题。一个是capture cis开关在哪、怎么用,另一个是ISP的坏点矫正和sensor端的坏点测试是什么关系。这两个问题看着分开,其实绑在一起:当图像上出现黑点白点,你得先判断问题出在sensor还是ISP,capture cis开关就是那个帮你做判断的工具,而ISP坏点矫正则是问题定位后要调的算法。
4.1 Capture CIS开关在哪、什么时候用
先说capture cis开关是什么。在相机调试工具或者驱动配置里,有这么一类开关,它的作用是让传感器输出的RAW数据绕过ISP处理,直接被采集出来。你把它打开,抓到的就是传感器最原始的画面;关掉它,抓到的就是经过ISP处理的成品图。这个开关在问题定位时价值极高,因为它把"sensor"和"ISP"这两个环节给隔离开了。
至于这个开关"在哪",要看你用的是哪套平台和工具。常见的几个位置:一是相机调试工具或调试APK里,一般放在抓图(capture)相关的配置页面;二是驱动层的配置文件里,通常在camera相关的dts或者vendor配置文件里,有个控制RAW和YUV输出的参数;三是在ISP调试工具自身的抓图模块里,会有RAW和processed两种采集模式可选。不同平台命名不一样,有的叫capture raw,有的叫bypass isp,有的干脆叫raw dump,但意思都是同一个。
用它的判断逻辑很简单:如果抓RAW图时能看到黑点白点,说明是sensor端的坏点,得回去查坏点测试和标定;如果RAW图干净,但成品图上有坏点,那说明是ISP坏点矫正没做好,或者矫正算法把正常像素改坏了。我在现场基本先做这一步分流,能省掉大量排查时间。很多人一上来就怀疑sensor,结果查了半天发现是ISP参数配错了,白折腾。
4.2 ISP坏点矫正(DPC)的原理与调试
ISP里的坏点矫正,英文一般叫DPC(Defect Pixel Correction)。它的基本思路是:对每个像素,跟它周围的邻居比较,如果偏离太远,就认为它是坏点,用邻居的插值把它替换掉。听起来简单,真正调起来有好几个要命的参数。
第一个是判定阈值。阈值太大,真坏点修不掉;太小,正常的纹理和边缘会被当成坏点修掉,画面变得糊或者出现异常。尤其是拍摄细密纹理的场景,比如织物、砖墙,阈值设太低会把纹理抹平。所以DPC的阈值一般要求跟场景和增益联动,高增益下噪声大,阈值要相应放宽。
第二个是矫正方式。最简单的做法是用四邻域或者八邻域的中值替换,简单可靠但会损失一点细节。更精细的做法会根据周围像素的方向性来插值,尽量保留边缘。不同ISP的算法不一样,但核心都是"判断准"和"补得自然"这两件事。
第三个是静态坏点表和动态检测的配合。传感器出厂前会把一批固定的坏点位置写进一次性可编程存储器(OTP)里,ISP启动时读出来,这些位置直接按表矫正,不参与动态判断。动态检测则负责那些没被标定到的、可能在温度变化后临时出现的坏点。两者配合,静态表管大头,动态算法兜底。
调试DPC最有效的方法,是拿一组覆盖各种光照和增益条件的测试图,每次只改一个参数,看画面里坏点和纹理的变化。我一般会准备一张专门的纹理测试图,专门盯边缘细节有没有被误修。别只看纯色背景,那个骗人的。
4.3 静态坏点OTP标定流程
静态坏点标定是连接sensor测试和ISP矫正的关键一环。它的流程大致是:在产线上用标准条件采图,按判定标准找出所有坏点坐标,把这些坐标写入OTP,最后让ISP读取使用。这套流程看着直白,但每一步都有讲究。
采图环节,光照条件必须极其稳定,因为坏点判定依赖全局统计,条件一变,判定结果就漂。有的产线会在同一个工位连采多档光照,取各档坏点的并集,避免漏判。坐标提取环节,判定阈值要跟测试规范严格对齐,并且要留出一定的余量,因为产线环境和实验室环境可能有细微差异。写入OTP环节,要注意OTP的容量和地址映射,坏点数量超过容量时怎么办、如何压缩存储,这些都是要提前规划好的。
这里有个很现实的坑:OTP写完是烧死的,一旦发现判错,芯片就废了。所以标定流程上线前,一定要用足够大的样本量做验证,确认判定阈值在各种边界情况下都稳,再正式烧录。我见过因为阈值定太紧,一批芯片OTP里写了几百个坏点,结果ISP矫正后画面出现大片异常插值,整批返工。
5. 常见问题与排查技巧实录
前面把该讲的原理和操作都讲完了,这一章全是实战里攒下来的东西。我整理成一张速查表,再加上几条我认为最值钱的经验。这些东西在规范文档里找不到,但恰恰是决定你能不能快速定位问题的关键。
5.1 问题速查表
下面这张表列的是CIS测试和调试中最常遇到的几类现象,以及对应的排查方向。遇到问题时先对着这张表过一遍,能省很多弯路。
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 暗电流整体偏高 | 遮光不彻底、温度漂移、曝光时间不准 | 换金属遮光板、复核温度、校准曝光时序 |
| 坏点数量异常多 | 光源不均匀、黑电平未校准、阈值过紧 | 检查积分球对位、重算黑电平、调判定阈值 |
| RAW干净但成片有坏点 | ISP坏点矫正参数错误 | 查DPC阈值和静态坏点表 |
| RAW有坏点但成片正常 | 静态标定和ISP矫正起作用了 | 属正常,确认坏点数量在规格内 |
| 转换增益算出来离谱 | PTC采样区不均匀、饱和点误判 | 换均匀区域、剔除饱和档位 |
| SNR偏低 | 用了单帧空间标准差、区域含坏点 | 改用多帧时域标准差、剔除坏点 |
| 色彩偏差大 | 光源色温不准、镜头色差、色卡反光 | 标定光源、更换镜头、消除反光 |
| 同批次结果波动大 | 温度/光照/时序未锁死 | 逐项复现固定条件 |
5.2 几个血泪避坑经验
第一条,也是最重要的一条:测试条件没锁死之前,任何数据都别信。我踩过最惨的一个坑,是暗电流测试时空调出风口正对着测试台,温度忽高忽低,测出来的数据前后能差一倍。后来我把测试台挪到恒温区,数据立刻就稳了。所以做CIS测试,环境控制的重要性不亚于测试本身。
第二条,坏点判定一定要用鲁棒的统计量。前面提到的用MAD代替标准差,就是因为标准差不抗坏点污染。当一幅图里坏点比例稍高,标准差会被这些坏点拉大,导致判定阈值随之抬高,更多坏点被"洗白"漏掉。这个坑很隐蔽,新手特别容易中招。
第三条,PTC曲线一定要做线性区筛选。我见过有人把饱和点也拿去拟合,结果斜率全歪了,算出来的转换增益差出一倍。判断饱和点最直接的办法是画均值随曝光的变化曲线,看清楚那个拐点,拐点之后的档位全部剔除。
第四条,capture cis开关是排查的神器,但别依赖它做最终判定。RAW图是sensor的真相,但用户看到的是ISP处理后的成品。真正的问题往往在两者之间的关系上,所以RAW和成品图要对照着看,不能只看一个。
第五条,OTP标定的阈值要留余量。产线和实验室环境有差异,标定阈值如果和规格卡得死死的,到了产线就容易批量超限。我一般会留出百分之十到二十的余量,宁可多标一点,也别让好芯片被误判。
最后分享一个我自己的习惯:每次做完一轮测试,我会把原始RAW、测试条件、分析脚本和判定结果打包存一份,标好日期和环境参数。看起来麻烦,但等你几周后要复现某个异常现象,或者要对比不同批次的稳定性,这些存档能救命。CIS测试这行,数据可追溯比什么都重要。