ADPD188BI是一款完整的光度测量系统,采用光学双波长技术进行烟雾检测。该模块集成了高效的光度前端、蓝光和红外 (IR) 发光二极管 (LED) 以及光电二极管,采用定制封装,可防止光线在不先进入烟雾探测室的情况下直接从 LED 进入光电二极管。ADPD188BI与EVAL-CHAMBER烟雾室配合使用,可创建完整的光学烟雾检测解决方案,用于住宅和工业烟雾探测器。EVAL-CHAMBER可通过订购EVAL-ADPD188BIZ-S2购买。
本应用笔记介绍了ADPD188BI的校准,使用编程到片内非易失性存储器(NVM)中的校准系数,以将器件间的差异降低到<+10%。
对于特定的LED驱动设置和测试/应用环境,ADPD188BI表现出LED响应的器件间可变性。LED响应具有因器件而异的斜率(增益)和截距(偏移),这会导致器件间响应常见环境而变化,并且可以使用增益和失调校准系数进行校准。这种校准的主要应用是允许更有效地比较多个器件输出,因为它们在最终应用中实例化。这种校准显著减少了任何器件之间的光学差异,并可以简化对特定应用环境变化的观察。
校准 ADPD188BI
测试方法
每个LED/驱动器对在多个LED电流下工作在反射器中,反射器响应由ADPD188BI模块内的光电二极管测量。计算每个 LED/驱动器对的响应斜率,截距从线性回归得出。然后计算校准系数并将其存储在片上 NVM(也称为 eFuse 寄存器)中,以供以后在最终应用中使用。校准系数基于特定设备的每脉冲测量值计算,并归一化为从不同设备收集的数据的大量分布的平均值。此规范化可确保在设备群中最大程度地减少设备到设备的可变性。
失调和增益校准系数存储在片内电子保险丝寄存器中。增益校准系数(LED1_GAIN_COEFF和LED3_GAIN_COEFF分别存储在寄存器0×71和寄存器0×72中。偏移校准系数LED1_INT_COEFF和LED3_INT_COEFF分别存储在寄存器0×73和寄存器0×74中。
要访问电子保险丝寄存器,请执行以下步骤:
设置寄存器 0×4B,位 7 = 1 以启用 32 kHz 振荡器。
将 0×1 写入寄存器 0×10 以强制设备进入程序(空闲)模式。
写入 0×1 以寄存器 0×5F 以启用 32 MHz 先进先出 (FIFO) 时钟。
将 0×7 写入寄存器 0×57 以启用对电子保险丝寄存器的访问。
读取寄存器 0×67。当寄存器 0×67 = 0×04 时,电子保险丝寄存器的刷新完成,可供访问进行读取。
在应用校准系数之前,将纠错码 (ECC) 功能应用于电子保险丝数据(请参阅使用 ECC 检测和更正 EFUSE 值中的错误部分)。
确认寄存器 0×70 的内容分别为模块 ID 0、模块 ID 1、模块 ID 0 或更大的 1×0E、21×30F、31×33 或更大。
读取所需LED/驱动器对的增益和失调校准系数。最终增益校准系数必须按照计算校准系数部分中的定义,使用eFuse寄存器的内容进行计算。计算最终增益校准系数时,将其加载到用户可访问的存储器中以备将来使用。
读取电子保险丝寄存器完成后,按如下方式禁用电子保险丝寄存器:
写入 0×0 以寄存器 0×57 以禁用对电子保险丝寄存器的访问
写入 0×0 以寄存器 0×5F 以禁用 32 MHz FIFO 时钟。
计算模块 ID 30 和模块 ID 31 的校准系数
最终校准系数必须使用寄存器0x71到寄存器0x74的内容计算,如以下公式所示:
GAIN_CAL_X = DEVICE_SCALAR/NOMINAL_SCALAR
其中:
DEVICE_SCALAR = x_GAIN × LEDx + x_INTERCEPT。
蓝色 LED 通道BLUE_GAIN x_GAIN,红外 LED 通道IR_GAIN。
BLUE_GAIN = (17/256)(LED1_GAIN_COEFF − 112) + 17。
IR_GAIN = (34/256)(LED3_GAIN_COEFF − 112) + 34。
LEDx 是以毫安为单位的 LED 驱动电流,例如,如果驱动电流 = 200 mA,请输入 200。LEDx 是蓝色 LED 通道的 LED1,是红外 LED 通道的 LED3。
蓝色 LED 通道BLUE_INTERCEPT x_INTERCEPT,红外 LED 通道IR_INTERCEPT。
BLUE_INTERCEPT = 8(LED1_INT_COEFF − 128)。
IR_INTERCEPT = 5(LED3_INT_COEFF − 128)。
NOMINAL_SCALAR = x_MEAN_GAIN × LEDx + x_MEAN_INTERCEPT。
蓝色 LED 通道的x_MEAN_GAIN为 17,红外 LED 通道的为 34。
蓝色 LED 通道的x_MEAN_INTERCEPT为 622,红外 LED 通道的为 128。
地址 | 名字 | 位 | 描述 |
0×70 | MODULE_ID | [7:0] | 模块 ID = 30 或 31 |
0×71 | LED1_GAIN_COEFF | [7:0] | 蓝色 LED 增益系数 |
0×72 | LED3_GAIN_COEFF | [7:0] | 红外发光二极管增益系数 |
0×73 | LED1_INT_COEFF | [7:0] | 蓝色 LED 截点系数 |
0×74 | LED3_INT_COEFF | [7:0] | 红外 LED 截距系数 |
0×7E | 环保委员会 | [7:0] | 环保委员会 |
计算模块 ID 30 和模块 ID 33 的校准系数
要计算最终校准系数,请使用寄存器0x71寄存器0x74的内容,如以下公式所示:
GAIN_CAL_X = DEVICE_SCALAR/NOMINAL_SCALAR
其中:
DEVICE_SCALAR = x_GAIN × LEDx + x_INTERCEPT。
蓝色 LED 通道BLUE_GAIN x_GAIN,红外 LED 通道IR_GAIN。
BLUE_GAIN = (21/256)(LED1_GAIN_COEFF − 112) + 21。
IR_GAIN = (42/256)(LED3_GAIN_COEFF − 112) + 42。
LEDx 是以毫安为单位的 LED 驱动电流,例如,如果驱动电流 = 200 mA,请输入 200。LEDx 是蓝色 LED 通道的 LED1,是红外 LED 通道的 LED3。
蓝色 LED 通道BLUE_INTERCEPT x_INTERCEPT,红外 LED 通道IR_INTERCEPT。
BLUE_INTERCEPT = 8(LED1_INT_COEFF − 80)。
IR_INTERCEPT = 5(LED3_INT_COEFF − 80)。
NOMINAL_SCALAR = x_MEAN_GAIN × LEDx + x_MEAN_INTERCEPT。
蓝色 LED 通道的x_MEAN_GAIN为 21,红外 LED 通道的为 42。
蓝色 LED 通道的x_MEAN_INTERCEPT为 753,红外 LED 通道的为 156。
校准 32 KHz 和 32 MHz 振荡器以获得最佳系统性能
校准 32 kHz 和 32 MHz 片内振荡器以获得最佳性能。32 kHz振荡器决定ADPD188BI的总采样速率,32 MHz振荡器影响ADPD188BI的总增益。对于模块 ID = 33 的设备,读取 eFuse 寄存器(寄存器 0×77 和寄存器 0×78),并将这些值写入器件寄存器(分别寄存器 0×4B 和寄存器 0×4D)。或者,用户可以按照ADPD188BI数据手册中描述的程序手动确定最佳设置,以校准32 kHz时钟和校准32 MHz时钟。
根据模块 ID 应用正确的公式
为获得最佳操作,请阅读 eFuse 寄存器 0×70 以确定模块 ID 并应用适当的公式。下面是一个示例案例语句,它可以是用户软件的一部分。
检查模块 ID 案例(模块 ID
):
对于ID 30和31案例30,31
:
GAIN_CAL_BLUE =(使用计算模块 ID 30 和模块 ID 31 的校准系数中显示的方程式)GAIN_CAL_IR =(使用计算模块 ID 30 和模块 ID 31 的校准系数中显示的方程式)
对于 ID 33
案例 33:
GAIN_CAL_BLUE =(使用计算模块 ID 33 的校准系数中显示的公式) GAIN_CAL_IR =(使用计算模块 ID 33 的校准系数中显示的公式)
案例待定 1:离开以备将来扩展 案例待定 2:离开以备将来扩展
默认值:引发错误
地址 | 名字 | 位 | 描述 |
0×70 | MODULE_ID | [7:0] | 模块 ID = 33 |
0×71 | LED1_GAIN_COEFF | [7:0] | 蓝色 LED 增益系数 |
0×72 | LED3_GAIN_COEFF | [7:0] | 红外发光二极管增益系数 |
0×73 | LED1_INT_COEFF | [7:0] | 蓝色 LED 截点系数 |
0×74 | LED3_INT_COEFF | [7:0] | 红外 LED 截距系数 |
0×77 | 32kHz_OSC_OPT_ADJUST | [7:0] | 32 kHz 振荡器最佳调整设置 |
0×78 | 32MHz_OSC_OPT_ADJUST | [7:0] | 32 MHz 振荡器最佳调整设置 |
0×7E | 环保委员会 | [7:0] | 环保委员会 |
应用校准系数
要在最终应用中应用校准系数,请执行以下步骤:
根据需要配置 ADPD188BI 器件。
将0x2写入地址0x10以启动正常的采样操作。
在所需的LED电平上进行测量,并执行以下计算:
归一化输出 (LSB) = AFE_OUT/GAIN_CAL_x
其中:
AFE_OUT = LED 亮起时的原始输出测量。
GAIN_CAL_x = 蓝色 LED 通道的 GAIN_CAL_BLUE,红外 LED 通道GAIN_CAL_IR。
应用校准系数可大大减少器件之间的差异。图 1 和图 2 显示了蓝色 LED 和红外 LED 校准前后的直方图。图1和图2表明,在这两种情况下,器件间差异的分布都缩小到±10%。
应用校准系数可大大减少器件之间的差异。图 1 和图 2 显示了蓝色 LED 和红外 LED 校准前后的直方图。图1和图2表明,在这两种情况下,器件间差异的分布都缩小到±10%。
图1.校准前后的蓝色 LED 响应
图2.校准前后的红外 LED 响应
电子保险丝内容对设备正常运行的影响
写入ADPD188BI电子保险丝寄存器的校准系数不会改变任何器件性能或规格。所有数据手册规格和器件性能本质上不受电子保险丝寄存器编程的影响。
校准系数旨在用于采样数据的后处理,以校准器件间光学特性的变化。无论电子保险丝寄存器是否经过编程,ADPD188BI 的性能都没有差异。在 eFuse 寄存器使用校准系数进行编程的情况下,存储在 eFuse 寄存器中的数据只有在软件中对采样数据实施后处理校准例程时才会产生影响。
使用 ECC 检测和纠正电子保险丝值中的错误
ECC 的 C 代码部分中显示的 C 代码包含利用汉明码检测和纠正存储的电子保险丝寄存器值中的错误的例程。这些函数使用传统的 127,120 汉明码,截断为 119,112。增加了一个额外的全局奇偶校验位,以提供具有 2 位故障检测的单位校正。最终形式是 120,112,它为每个 8 位(112 字节)块添加一个 14 位奇偶校验代码。
此代码检测并修复每个数据块中 100% 的单位错误,并检测每个数据块中 100% 的 2 位故障。
方法如下:将电子保险丝数据和奇偶校验字节读入本地内存。用户必须读取寄存器 0×70 才能寄存器 0×7E。寄存器 0×70 到寄存器 0×7D 与输入指针、数据相关联,并且必须读入数据数组。寄存器 0×7E 与输入指针、奇偶校验相关联,必须作为奇偶校验值读入。使用 fix_hamm_parity 命令验证块。此功能可就地修复单个损坏位。如果 fix_hamm_parity 命令返回错误,请将设备标记为损坏。
此过程修复所有单位故障,检测所有 2 位故障和大约 6% 的 3 位故障,并检测大多数偶数故障。
焊料回流对校准系数的影响
在回流炉中回流焊,其中存在的氧气水平不受控制,会导致光电二极管对蓝色LED的响应降低。平均而言,光电二极管对蓝色LED的响应每次回流的偏移为~7%。由于校准系数是在最终测试中编程的,因此在ADPD188BI进行任何回流之前,当ADPD188BI在氧气水平不受控制的烘箱中进行焊料回流时,蓝色系数不再准确。
图3显示了在氧气水平不受控制的烘箱中回流后的原始和校准蓝色响应。这组设备被重排了三次。数据包括每次重排后的检查点。如数据所示,每次回流后,蓝色LED响应有~7%的偏移。
图3.在焊接回流期间氧气水平不受控制的情况下,蓝色 LED 响应偏移
为避免响应偏移,请使用使用氮气的回流炉来降低烤箱中的氧气水平。当使用氮气控制的回流炉将氧气水平控制在 <1000 ppm 时,蓝色 LED 响应没有偏移。
图 4 中显示的数据显示了在烘箱中回流三次的设备的原始和校准蓝色 LED 响应值,其中使用氮气吹扫将氧气水平降低到 <1000 ppm。数据包括每次重排后的检查点。如图4所示,在这些条件下,回流焊不会发生偏移。
无论烤箱的氧气水平是否不受控制,红外响应都不会受到回流焊的影响。
图4.蓝色 LED 响应偏移,氮气吹扫,以控制焊料回流期间的氧气水平
审核编辑:郭婷
-
led
+关注
关注
240文章
23034浏览量
656573 -
探测器
+关注
关注
14文章
2603浏览量
72834 -
存储器
+关注
关注
38文章
7422浏览量
163485
发布评论请先 登录
相关推荐
评论