AN-929:针对电容传感应用调整AD714x
简介
The AD714x CapTouch™ 控制器必须针对用户的特定应用进行调 整,以提供最佳性能。调整取决于控制器所连接的传感器 类型,如按钮、滚动条或滚轮等。传感器大小、周围环境 和叠层等因素全都会对性能产生影响。
调整过程包括五个简单的步骤,本应用笔记将详加说明。 这些步骤可以通过两种方法来完成:
- 方法A利用开发系统来读写寄存器,而不是利用AD714x 评估板。
- 方法B则是利用AD714x评估板和软件。
开始调整前,确保您面对的是最终产品或最终设计(与最终产品一致或尽可能接近的传感器PCB)。传感器上的叠层应按照最终产品的要求进行安装。
注意,传感器PCB、安装或叠层材料如有改变,必须再次进行调整。
对于每个传感器,调整的五个步骤如下所列:
- 设置输入连接。
- 抵消体电容或杂散电容。
- 获取高低箝位值。
- 获取高低偏移值。
- 设置灵敏度。
对于每个转换级,重复第1步至第5步。
每级/每个传感器有8个调整寄存器,位于寄存器Bank 2中,分别为:
- STAGEX_CONNECTION Bits[6:0]
- STAGEX_CONNECTION Bits[13:7]
- STAGEX_AFE_OFFSET
- STAGEX_SENSITIVITY
- STAGEX_OFFSET_LOW
- STAGEX_OFFSET_HIGH
- STAGEX_OFFSET_HIGH_CLAMP
- STAGEX_OFFSET_LOW_CLAMP
初始步骤
确保AD714x未经编程
开始调整之前,必须确保AD714x未经编程。为此,应确保各级(X = 0到11)的前三个寄存器设置如下:
- StageX_Connection 位[6:0] = 0xFFFF
- StageX_Connection 位[13:7] = 0x3FFF
- StageX_AFE_Offset = 0x0000
设置好这三个寄存器后,就可以进入调整过程。在两种可能的调整方法中,方法A预设使用AD714x评估板以外的开发系统,方法B预设使用AD714x评估板。
连接一个外部传感器PCB到AD714x评估板(仅针对方法B用户)
可以使用评估板软件和主机微控制器来评估定制传感器(方法B)。开始之前,方法B用户必须按照下列步骤将一个外部传感器PCB连接到评估板:
- 给评估板上电。
- 将S4切换到断开位置。
- 将外部传感器PCB连接到J1或J2。
外部传感器PCB上的AD714x串行接口现已连接到评估板上的ADuC841串行接口。
注意,外部传感器PCB上必须有AD714x,因为无法利用评估板上的AD714x来控制外部传感器。
了解控制器序列器
AD714x序列器(见图1)采用时分多路复用(TDM)方法控制AD714x的转换。AD7142和AD7147有12个转换级,AD7143有8个转换级。
对于传感器各CIN输入,至少有一个转换级用来测量其电容。可以将任意CIN输入指定给任意级。调整是在逐级基础上完成的。
第1步:设置输入连接
各CIN输入可以连接到转换器的正输入端或负输入端(见图2)。各CIN输入可以内部连接到偏置节点,或者保持悬空。任何未连接到CDC的CIN输入应连接到偏置节点。
各CIN输入有2位用来控制此连接。
每个转换级的CIN输入设置是不同的。一般说来,在一个转换级中,CIN输入连接到CDC,以测量连接到该CIN的传感器。
按钮
按钮传感器可以连接到电容数字转换器(CDC)的正输入端或负输入端,如图3所示。两个按钮可以使用同一级(差分),其中一个按钮连接到正CDC输入,另一个连接到负CDC输入。注意,差分连接的按钮无法同时激活,因为它们会互相抵消。
滚动条和滚轮
滚动条和滚轮包括8个独立的传感器段(见图4)。8段分别连接到不同的正CDC输入,像按钮连接一样。
滚动时,用户与多个传感器段发生交互。使用软件算法来获得高分辨率位置。
对于比率式滚动条(见图5),只使用两路CIN输入。应将各CIN输入连接到正CDC输入。
键盘
键盘的各列和各行通过一个连接与正CDC输入相连(见图6)。对于矩阵键盘操作,通过检查行和列的状态来找到激活的键。
控制器支持的最大键盘尺寸如下:
- AD7142和AD7147:6 × 6 = 36键
- AD7143:4 × 4 = 16键
方法A:写入AD714x
- 写入STAGEX_CONNECTION位[6:0]和STAGEX_CONNECTION位[13:7]寄存器,配置CIN连接。
- 配置各级中的各CIN输入的连接。
- 00 = CINx 未连接到CDC输入
- 01 = CINx 连接到CDC负输入
- 10 = CINx 连接到CDC正输入
- 11 = CINx 连接到BIAS(连接不使用的CIN输入)
- 对于大部分应用,只需将一路CIN输入连接到各级中的CDC输入。
- 将所有不使用的CIN输入连接到偏置。
例如,要在转换级2中测量CIN4,应进行如下设置:
STAGE2_CONNECTION [6:0] = 0xFEFF
STAGE2_CONNECTION [13:7] = 0x3FFF
对于每个转换级,重复第1步至第4步。
方法B:使用评估软件
要打开输入配置对话框(见图7),请启动评估软件并选择“Register Conguration”(寄存器配置),然后选择“CIN Conguration Block STAGEX”(CIN配置模块STAGEX)。
将所有CINx连接到正或负CDC输入,或者偏置(如果不使用),如图7所示。对各转换级重复此过程。
第2步:抵消体电容或杂散电容
对于AD7142和AD7143,CBULK是PCB材料所产生的电容。 对于AD7147,CSTRAY是接地电容。注意下列事项:
- 应防止 CBULK 或 CSTRAY影响CIN的测量。
- CIN的衡量单位为飞法(fF)。
- CBULK/CSTRAY的衡量单位为皮法(pF)。
片内7位DAC用于抵消 CBULK/CSTRAY (20 pF抵消能力)。
使用这些DAC将未触摸传感器时的CDC输出值设置为中间电平CDC输出代码(约有32,000个代码)。
方法A:写入AD714x
- 从寄存器CDC_RESULT_SX读取传感器的 CBULK值。
- 如果CINx连接到正CDC输入,则将POS_AFE_OFFSET 值 提 高 1 L S B 。 如 果 C I N x 连 接 到 负 C D C 输 入 , 则 将 NEG_AFE_OFFSET值提高1 LSB。
- 再次回读CDC_RESULT_STAGEX寄存器。
- 重复第2步和第3步,直到CDC_RESULT_STAGEX值尽可能接近32,768。注意,POS_AFE_OFFSET和 NEG_AFE_OFFSET的最佳值可以是0。
方法B:使用评估软件
要打开图8所示的对话框,请启动评估软件并选择“Register Conguration”(寄存器配置),然后选择“CIN Conguration Block STAGEX”(CIN配置模块STAGEX)。
使用快捷按钮获得所需的偏移值。设置正确的偏移值后,CDC的输出应接近中间电平 (约有32, 700个代码 )。另外,也可以点击POS_AFE_OFFSET或NEG_AFE_OFFSET框中的箭头来改变值。
第3步:获取高低箝位值
记录传感器激活活动
当从某个传感器测得的值提高到上限以上,或降低到下限以下时,该传感器激活,如图9所示。
根据环境(背景)电容水平的变化,片内逻辑不断更新阈值。
箝位值
片内数字逻辑需要初始值。
高低箝位值是通过确定传感器可能的最大和最小响应而得到的。
这些箝位值由环境补偿和自适应阈值片内数字逻辑使用。
对于只有一路CIN输入连接到CDC的转换级,高箝位值与低箝位值相等。
如果CINx连接到正CDC输入,而CINy连接到负CDC输入,则高低箝位值可能不同。两个差分连接的按钮就是这种情况。
方法A:写入AD714x
在未触摸传感器的情况下,读取ADC_RESULT_SX(也称为 CDC_RESULT_SX)。
然后触摸传感器,并再次读取ADC_RESULT_SX。最大的 手指产生最大的传感器响应。
箝位值等于触摸值与未触摸值之差。
箝位 = |触摸CDC值 – 未触摸CDC值|
高箝位值写入STAGEX_OFFSET_HIGH_CLAMP,低箝位值写入STAGEX_OFFSET_LOW_CLAMP。
对于只连接一路CIN输入的转换级,高箝位值与低箝位值相同。
对于有两个传感器连接到CDC的转换级,请执行下面的第 1步到第3步。
- 一次触摸一个传感器。
- 从触摸时显示CDC代码提高的传感器获取高箝位值。
- 从触摸时显示CDC代码降低的传感器获取低箝位值。
方法B:使用评估软件
- 使用评估软件绘制各传感器的CDC输出图(见图 10)。
首先启动评估软件,选择Register Conguration(寄存 器配置),然后选择Calibration STAGEX(校准 STAGEX)。点击Read Continuously(连续读取)按钮 绘制CDC值曲线。 - 使用最大的手指获得最大/最小的传感器响应。
- 通过下式计算箝位值:
箝位 = |触摸CDC值 – 未触摸CDC值|
本例中,
箝位 = | 34540 – 33450 |
STAGEX_OFFSET_HIGH _CLAMP = 1090
STAGEX_OFFSET_LOW _CLAMP = 1090
- 将第3步测得的值写入STAGE_OFFSET_CLAMP寄存器。
第4步:获取高低偏移值
无论使用方法A还是方法B,用于获取高低偏移值的过程均相同。
高低偏移值用于计算上电时传感器的激活阈值。实际的阈值还要考虑灵敏度设置。
计算如下:
偏移 = 箝位值 × 0.8
STAGEX_OFFSET_LOW =
STAGEX_OFFSET_LOW_CLAMP × 0.8
STAGEX_OFFSET_HIGH =
(STAGEX_OFFSET_HIGH_CLAMP × 0.8
例如,当LOW_CLAMP = 2000、HIGH_CLAMP =2500时,
STAGEX_OFFSET_LOW = 1600
STAGEX_OFFSET_HIGH = 2000
使用评估软件更改箝位值和偏移值
要打开图11所示的对话框,请启动评估软件并选择“Register Conguration”(寄存器配置),然后选择“Calibration STAGEX”(校准STAGEX)。
要更改STAGEx_OFFSET_CLAMP值和STAGEx_OFFSET值,请使用适当的箭头增大或减小值。
第5步:设置灵敏度
每个传感器可以使用不同的灵敏度设置。灵敏度最多可以设置16级。灵敏度设置激活阈值,范围为平均最大输出(相对于环境)的25%到95%,参见图12。
低灵敏度设置值意味着轻轻触摸就能触发传感器,高灵敏度设置值意味着只有有力触摸才能触发传感器。
方法A:写入AD714x
灵敏度设置完全取决于设计师对用户感觉的把握。
初始设置为53%。
STAGEX_SENSITIVITY = 0110
如果需要更灵敏的响应,请减小灵敏度设置。
例如:
STAGEX_SENSITIVITY = 0001 = 29%
如果需要不那么灵敏的响应,请增大灵敏度设置。
例如:
STAGEX_SENSITIVITY = 1101 = 85%
方法B:使用评估软件
灵敏度设置取决于客户的需求(通过用力触摸还是轻柔触摸来激活传感器),参见图13。
初始设置为标称值50%。
如果需要更高的灵敏度(更轻柔的触摸即可激活传感器),请降低灵敏度百分比。如果需要更低的灵敏度(更有力的触摸才能激活传感器),请提高灵敏度百分比。
总结
本应用笔记详细描述了调整AD714x CapTouch控制器的五步骤程序。
- 设置输入连接。
- 抵消体电容或杂散电容。
- 获取高低箝位值。
- 获取高低偏移值。
- 设置灵敏度。
对每个转换级执行第1步到第5步后,便可获得AD714x的整个寄存器bank 2的配置值。器件上电时,应将这些值写入AD714x,使其具有适合应用的正确配置。
使用评估软件保存AD714x配置
要打开图14所示窗口,请启动评估软件并选择Register Conguration(寄存器配置)。
若要以C代码形式保存配置数据,请选择 Create Config File(创建配置文件)按钮,这将把AD714X寄存器配置保存为C 代码头文件。
若要保存配置数据以便能利用评估软件将它重新加载到 AD714x,请选择 Setup Registers(设置寄存器)按钮,然后 选择 Save(保存)。