Other Parts Discussed in Post: OPT3101, MSP430FR5994, LM2664

作者:Patrick Zeng, South China FAE

摘要

OPT3101是TI新一代基于ToF原理的模拟前端测距芯片,用户可以利用TI官网提供的数据手册,设计工具,评估板等开源资料,根据应用场景实现灵活的定制化设计。同时,在大批量生产期间,需要对每一片OPT3101进行校准,我们把这个环节称为工厂校准。 本文重点介绍在工厂校准环节中的具体步骤,产线工装的搭建指南,以及分享常见问题的调试经验,以帮助用户顺利完成OPT3101系统的量产工作。

目录

1. OPT3101校准概述............................................................................................................................................................................................ 2

2. 工厂校准具体步骤.............................................................................................................................................................................................. 3

2.1 工厂校准流程介绍............................................................................................................................................................................................... 3

2.2 SDK使用介绍...................................................................................................................................................................................................... 5

2.3 工厂校准程序介绍............................................................................................................................................................................................... 5

3. 产线工装搭建..................................................................................................................................................................................................... 7

3.1 工装方案推荐...................................................................................................................................................................................................... 7

3.2案例说明.............................................................................................................................................................................................................. 9

4. 常见问题调试经验............................................................................................................................................................................................. 11

4.1 发射串扰校准失败.............................................................................................................................................................................................. 11

4.2 相位校准失败...................................................................................................................................................................................................... 12

4.3 EEPROM读写失败.............................................................................................................................................................................................. 12

5. 参考文献................................................................................................................................................................................................................ 13

 

1. OPT3101校准概述        

OPT3101与传统红外,超声波等方案对比具体高精度,宽视角,以及对温度,光照免疫等优势,还可以在某些应用场景下避免专利问题(如扫地机器人避障功能)。同时,该方案为1D ToF,从系统成本上同样具备竞争力,因此应用范围非常广泛。但是,无论哪一类型的应用场合,OPT3101一个必须解决的应用挑战便是校准环节。

OPT3101校准指的是:为了补偿OPT3101系统由元器件,PCB布板以及环境干扰带来的负面影响,为了保证测距的性能和一致性,OPT3101在正常使用前用户需要对其进行一系列的校准动作,包括寄存器的操作,数据的计算,转换和存储等。 OPT3101校准大致可以分为两种类型:

第一类校准是串扰校准和相位校准。这类校准无论是在调试阶段,还是在批量生产阶段都需要对每一片OPT3101进行操作。该环节我们称为工厂校准。在工厂校准结束后,数据会存储于外置非易失性存储器中。在OPT3101系统重新上电正常使用时,该数据会自动加载进入OPT3101,从而使其正常稳定工作。 大致步骤如下所示:

图1 OPT3101出厂前后流程示意图

第二类补偿包括温度校准,和环境光校准。这类校准动作在设计确定下来后,只需挑选少量的样品单元(如5片)进行操作即可,而无需对每一片OPT3101进行操作。确认后,该校准参数可以应用于其他所有的单元。

本文重点介绍的是第一类校准环节,即需要在自动化生产线上完成的校准环节 – 工厂校准。要实现该目标,用户需要了解两方面的信息:一、工厂校准的具体步骤是什么;二、如何搭配量产工装一起实现工厂校准。以下分别从这两个方面进行详细展开。


2. 工厂校准具体步骤

2.1 工厂校准流程介绍

工厂校准主要由以下4大部分组成:

1)内部串扰校准:任何芯片本身或者周围器件由于数字开关信号带来的噪声,都可以视为内部串扰。这个串扰的校准步骤只需要在程序中实现即可。

2)发射灯串扰校准:由光电发射管引起的噪声,被定义为发射灯串扰。 该串扰的校准过程描述如下:

首先,需要用黑色遮挡物(不透光)遮挡接收头,以避免任何光线被芯片接收头采样。常用的遮挡物如黑色胶带等。

然后,在程序中通过I2C读取AMP_OUT的数值,通常如果硬件电路设计正确,该数值为几百范围。 如果大于1000,甚至更大,则说明发射灯串扰太大,优先建议重新进行硬件电路设计。

再次,确定AMP_OUT数值在正常范围后,调用SDK中关于发射灯串扰的程序,执行完毕后,再次读取AMP_OUT的数值。 整个过程都保持接收头被遮挡。

最后,通常在校准完毕后,残余串扰值(AMP_OUT)会在10以内(也可能20左右)。 但如果校准完一次后,发现效果不佳,可重复执行第二遍。如果依然不行,则需要重新优化硬件设计。具体调试经验会在第四章内容中说明。

3)相位校准:在完成串扰校准后,需要对相位(距离)信息进行校准。过程描述如下:

首先,把接收头的遮光罩移除。 将一个参考物体放置在OPT3101模块正前方。 该参考物体的选择原则上避免深色,最好保持光滑和连续。典型选择为白色墙面。物体放置的距离不宜太远,需要确保该距离能够使得AMP_OUT的数值大于10000。 可以推荐工程经验值为100mm~150mm。

然后,调用SDK程序中关于相位校准的程序,程序执行完毕后,可以直接读取此时PHASE_OUT,通过判断PHASE_OUT是否满足参考物体的预设距离。 距离与PHASE_OUT的转换关系如下: Distance(mm) = Phase_Out * 0.2287

4)载入存储介质:在完成上述所有校准后,需要把校准数据载入存储介质,如EEPROM。直接调用SDK中的写入EEPROM语句即可。

上述步骤用具体流程图可总结如下:

图2 工厂校准流程图

 

2.2 SDK使用介绍

以上校准步骤以及流程图的描述中有多次提及,校准过程有赖于调用SDK的程序实现。SDK工具包是开发OPT3101必不可少的部分,以下对SDK进行基本介绍:

1)SDK的目的:

OPT3101的工厂校准过程涉及一系列的操作,如配置OPT3101工作模式;将测得数据写入OPT3101;从OPT3101中读取数据;在不同变量和寄存器中进行数据转换;把所有校准相关的参数写入对应EEPROM等。

SDK就是对于OPT3101相关的寄存器读写操作,各类功能(如校准环节)都进行打包,以库文件的形式给用户提供便捷的开发工具包。如果没有SDK,以上所有操作(从底层代码到逻辑执行)都需要用户自行完成,工作量会非常大。因此,SDK可以大大加速软件开发的过程。

2)SDK的资源介绍:

OPT3101的SDK可以在官网页面下载:

http://www.ti.com/product/OPT3101/toolssoftware

其中包含了SDK的C++源文件,SDK详解文档等;

2.3 工厂校准程序介绍

用户可以将以下参考代码介绍结合图2流程图一起阅读,有助于熟悉整个流程的具体细则。以下代码可以在SDK中查询,也可以在TI官网发布的参考设计TIDA-010021相关链接中查询源文件。以下进行工厂校准程序介绍:

首先,工厂校准程序需要调动以下指令集:

然后,我们对工厂校准程序分步骤进行分析:

第一步: 复位,初始化,启动内部串扰校准程序(SDK)

  

第二步: 控制工装把黑色遮挡物覆盖接受管: 用户自定义

第三步:执行发射串扰校准程序。

循环三个发射管的寄存器配置,进行串扰校准并载入校准数据(SDK)

第四步:移除接收头遮光罩,并放置参考物至预设距离。

用户需在程序中编写给目标距离语句赋值:150; 并且控制工装挪开黑色遮挡物, 并且控制弧形墙面的位置距OPT3101模块150mm处: 用户自行定义

第五步:执行相位校准程序。

循环三个发射管的寄存器配置,进行相位校准,并载入相位校准数据;(SDK)

第六步:将校准数据载入EEPROM。

3. 产线工装搭建

3.1 工装方案推荐

产线工装需要满足上述校准的流程,用户可以根据理解自行设计。 以下提供一个系统框架供案例以作参考:

方案一:在测距模块中加入一颗MCU,完成工厂校准的工作。同时,该MCU也执行测距程序,与主机用IC/UART进行通信以输出测距信息。 该MCU的选型需要有足够的存储空间,以确保能够执行SDK语句并且保存数据。

优点:把OPT3101从工厂校准到正常工作测距的代码都集中在一个控制器内,可简化开发复杂度,方便更新升级,以及实现模块化设计。

缺点:增加额外的MCU成本。

 

                                                               图3 工装方案一

方案二:在模块中加入一颗EEPROM,完成存储工厂校准的数据。同时,在产线工作上外置一颗MCU专用于执行工厂校准步骤。而测距程序则放在主机侧的MCU中完成。

优点:整体成本最优。

缺点:软件开发较第一种方案复杂,需要用户在两颗MCU中分别完成程序的编写。

 

                                                                  图4 工装方案二

总的来说,对于成本敏感的应用场合,方案二是更好的选择。 对于希望加速开发进度,以及实现模块化设计的应用场合,可以考虑使用方案一。

 

3.2案例说明

接下来对于方案二,我们举例说明产线工装的搭建细则。

系统框架如图3所示:OTP3101模块中包括一颗OPT3101,以及REERPOM,选型为24C02。

工装上的MCU我们选取了TI的MSP430FR5994评估板。MSP430评估板的作用是1) 通过对OTP3101寄存器进行读写,校准,把数据写入EEPROM。2)控制工装机械装置,配合完成校准步骤。3)用户生产线人机交互的控制(按键,显示等)。 评估板的I/O控制逻辑可以按照用户需求自行定义,该案例中我们定于了STATE, RESET, START, READY, 具体用途如下图所示:

 

图5 MSP430评估板引脚定义

内部串扰校准阶段: STATE信号由低变高,工装就绪。 RESET信号由高变低,MSP430就绪。开始调用SDK语句进行内部串扰校准。

发射串扰校准阶段: START信号由高变低,MSP430发出指令开始遮挡接收头。 等待接收头完全被遮挡后,工装发出READY指令,由高变低,遮挡动作完毕。 开始调用SDK发射串扰校准语句,进行串扰校准。

相位校准阶段:串扰校准完成后,MSP430发出指令开始移除遮挡物。等待遮挡物完全被移除后,工装发出READY指令,由低变高。 发射灯此时直对预置参考物,开始调用SDK相位校准语句,进行相位校准。

校准完毕: 校准完毕后调用SDK语句将数据加载入24C02,然后MSP430发出RESET指令,由低变高,通知工装推出工作模式。 工装退出工作后STATE信号由高变低,完成一次校准循环。

以上步骤用图6流程图可以一一对应如下:

图6 工装执行步骤流程图

4. 常见问题调试经验

4.1 发射串扰校准失败

如上文所述,用户可以通过判断残余串扰数值(AMP_OUT)是否低于20来判断发射串扰是否校准成功。如果判断失败,通常可以从以下几个方面进行调试:

1) 硬件电路问题: 如果残余串扰数值很高,则需要考虑进行优化硬件设计。 常用的有几种途径:

a)    检查INP和INM匹配电容;数字地与模拟地的隔离问题(磁珠在10MHz的阻抗需要足够大,建议500欧姆以上);电源电路中使用低ESR的瓷片电容。

b)    PCB布局不理想。 关于PCB布局的详细介绍可以在OPT3101数据手册第10节以及OPT3101系统设计文档第8节中查询。

c)    使用负电压给接收管阳极进行供电。 采用TI电荷泵方案,如LM2664可以实现低成本,设计简单的负压产生电路,具体如下图所示:

图7 OPT3101接收灯负电压供电

图8 基于LM2664电荷泵负压方案

 

2) 光学隔离问题:在做发射串扰的校准以及验证的过程中,需要保证接收管始终被遮光罩屏蔽。 该遮光罩通常为系统所用波长不透明物体,如黑色胶带,黑色塑料件等。对于发射管和光电二极管之间的光学隔离细节,也可以在OPT3101系统设计文档中查询。

4.2 相位校准失败

OPT3101的相位校准过程中需要借助参考物体。因此,必要确保该参考物体的合理摆放:

1)参考物满足条件: 如上文所述,参考物的距离要足够的近,确保采样的幅值足够的高(AMP_OUT>10000)。 同时注意的是,不同材质,不同颜色的物体,也会对幅值信号产生不同的影响。最后, 发射电流的大小也会对幅值信号产生不同的影响。以上因素,用户都需要根据实际的情况进行调整。

2)无机械装置遮挡视线:在工装上由于机械装置繁多,可能出现部分线缆,支撑臂等装置遮挡了OPT3101视角范围的情况。另外,在程序逻辑的控制中,也需要确保接收头遮光罩完全打开后,程序才进一步执行相位校准环节。

4.3 EEPROM读写失败

OPT3101内部没有非易失性存储器,因此所有工厂校准数据需要存储到外置非易失性存储器中。 一个常用的方式是外置EEPROM。如果发现读写失败,可以从以下两个方面进行检查:

1) 硬件电路:如下图所示,OPT3101有两个I2C接口:I2C_M接外置EEPROM,I2C_S接主机MCU。 在工厂校准结束前,OPT3101通过I2C_M把数据载入EEPROM。在校准结束后OPT3101重新上电初始化后,EEPROM会自动通过I2C_M把工厂校准数据写入OPT3101寄存器。OPT3101则通过I2C_S把测距数据给到主机MCU。因此,可以通过观察I2C_M上的波形,来判断EEPROM是否有数据读写。 如需判断该数据是否正确,则可以通过程序,截取读写前后I2C的数据进行判断。此外,由于大部分EEPRROM具有写保护(WP)引脚,在调试时需要确保该引脚具有正确的电平信号。

图9 OPT3101连接EEPROM示意图

2)OPT3101初始化配置:由于OPT3101可以配置为外接EEPROM模式,或者不外接EEPROM (转而将数据存入主机MCU内存储器)。 其配置需要在初始化函数,即initialize();中完成。TI推荐的方式为利用TI官网提供的OPT3101 Configuration Tool进行设计,生成C++代码后,移植到initialize();函数段内。如下图所示:

图10 OPT3101 Configuration Tool设置EEPROM界面

 

5. 参考文献

Anonymous