好文档 - 专业文书写作范文服务资料分享网站

赛普拉斯触控CapSense - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

使用用户模块对CapSense性能进行调校

4.10.3 SmartSense的建议CCMOD值

基于SmartSense的设计的建议CMOD 值为2.2 nF。建议使用X7R或者NPO类型的电容以保证CINT在不同的温度条件下保持稳定状态。电容的额定电压应不低于5 V。

4.10.4 SmartSense用户模块参数

在该用户模块中,只需要设置四个参数。它们为: ? Sensors Autoreset(传感器自动复位) ? Debounce(去抖动)

? Modulator Capacitor Pin(调制器电容引脚) ? Sensitivity Level(灵敏度级别)

4.10.4.1 Sensors Autoreset(传感器自动复位)

该参数可确定更新基准线的时间:随时更新或只有信号差值低于噪声阈值时才更新。设置为“使能”时,基准线随时会被更新。虽然该设置限制了传感器运行的最长时间(通常是5至10秒),但是可以防止下述情况的发生:由于某种系统故障,虽然未触摸传感器,但原始计数却突然上升,从而导致传感器一直运行。

4.10.4.2 Debounce(去抖动)

去抖动参数为传感器的有效转换添加去抖动计数。对于从无效状态转换到有效状态的传感器,手指信号应连续显示在传感器上去抖计数次扫描。该参数影响所有类似传感器。

4.10.4.3 Modulator Capacitor Pin(调制器电容引脚)

该参数选择的引脚连接着2.2 nF/X7R/额定电压大于5 V的CMOD电容。可选引脚为P0[1]和P0[3]。 注意:必须使用一个2.2 nF的外部电容,这样SmartSense才能正常工作。

4.10.4.4 Sensitivity Level(灵敏度级别)

灵敏度用于增加或减少传感器发出的信号强度。灵敏度值越低(0.1 pF),传感器发出的信号便越强。为了满足要求,覆盖层越厚,传感器信号要更强。 可用的灵敏度选项包括:“高(0.1 pF)”、“中高(0.2 pF)”、“中低 (0.3 pF)”和“低(0.4 pF)”。

要产生更强的传感器信号(高灵敏度),SmartSense用户模块需要更长的传感器扫描时间。这意味着:传感器灵敏度等级设置为0.1 PF(高)与设置为0.2 PF(中高)相比,前者消耗更久的扫描时间。

最佳调校方法是查找传感器的最高灵敏度值,用于生成所需要的5:1信噪比。可以使用最大的灵敏度值(0.4 pF)进行调校,并按要求降低该值,以满足5:1的信噪比。

4.10.5 SmartSense_EMC用户模块的专用指南

适用于SmartSense用户模块的所有指南都适用于SmartSense_EMC用户模块。有关CapSense设计和基于SmartSense设计的通用说明,请参阅《CapSense入门指南》。本节介绍SmartSense_EMC用户模块的几个重要方面。

4.10.5.1 传感器扫描时间、响应时间和存储器的使用情况

当使用SmartSense_EMC用户模块运行传感器时,传感器的扫描时间、传感器的响应时间以及RAM存储器大小均取决于用户模块中所选择的抗噪模式。

? 抗噪级别被设置为“中”时,传感器扫描时间比设置为“低”时大一倍。抗噪模式设置为“高”时,传感器扫描时

间比设置为“低”时大两倍。

AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 41

使用用户模块对CapSense性能进行调校

? 随着扫描时间的增加,传感器的响应时间也同比增加。抗噪模式设置为“中”时,传感器响应时间比它被设置为

“低”时久一倍。同样,抗噪模式设置为“高”时,传感器响应时间比设置为“低”时大两倍。 ? 为实现强大的电磁兼容算法,SmartSense_EMC用户模块使用RAM存储器。因此,最高抗噪音模式(“高”)

所需要的RAM存储器大约比模式为“低”时大两倍。抗噪音模式为“中”时所需要的RAM存储器大约比模式为“低”时大一倍。

4.10.5.2 IMO容差和时间严格的任务

SmartSense_EMC使能部分的IMO容差为+5%和–20%。

? 使用严格时间算法和逻辑时,必须考虑IMO容差,以确保固件的逻辑或避免破坏算法。 ? 如果项目使用中断,则分析中断延迟、ISR执行时间等其他操作时,必须考虑IMO容差。

? 每个基于IMO的时序分析(例如,IMO定时器、固件中使用循环而导致的延迟,API执行时间)必须考虑IMO容

差,以确保应用固件的稳定性。

4.10.5.3 I2C工作速度

I2C接口工作频率的最大为SmartSense_EMC使能部分中用户模块实际工作频率的80%。该限制由IMO容差的20%导致。

? 这意味在I2C用户模块中选择400 kHz的时钟频率时,I2C接口的最大工作频率为320 kHz。同样,在I2C用户模

块中选择100 kHz和50 kHz的时钟模式时,则其最大工作频率分别为80 kHz和40 kHz。 ? 使用I2C从设备接口时,主设备时钟需要运行于前面所提到的降频范围内。否则会导致数据损坏、I2C总线连接或

与I2C用户模块性能不一致。 ? 使用I2C主设备模块只影响该接口的吞吐量。

4.10.6 CapSense传感器的扫描时间

为了保证在多种寄生电容值范围下手指响应灵敏度的一致性,SmartSense用户模块自动选择用户模块的硬件参数。因此,传感器扫描时间并不固定。为大批量生产设计时,传感器扫描时间可根据PCB寄生电容值的变化而变化。 传感器的总扫描时间由四个因素决定。分别为:传感器寄生电容值、IMO频率、CPU的工作频率和SmartSense用户模块的灵敏度水平。

可以使用公式9和下表查找传感器的扫描时间。

???????? ????????= ???????????????? ???????? (????)+ ???????????????????? ???????? (????) 下表显示的是在不同IMO和灵敏度水平下的采样时间值。 表4-5. 传感器IMO = 24 MHz时的采样时间

灵敏度 = 0.2 pF CP(pF) 8到10 10到23 23到41 41到45 ST(μs) 340 680 1360 2730 灵敏度 = 0.3 pF CP(pF) 8到17 17到35 35到41 41到45 ST(μs) 340 680 1360 2730 灵敏度 = 0.4 pF CP(pF) 8到10 10到23 23到41 41到45 ST(μs) 170 340 680 1360 公式9

AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 42

使用用户模块对CapSense性能进行调校

表4-6. 传感器IMO = 12 MHz时的采样时间

灵敏度 = 0.2 pF CP(pF) 8到10 10到23 23到41 41到45 ST(μs) 680 1360 2730 5460 灵敏度 = 0.3 pF CP(pF) 8到17 17到35 35到41 41到45 ST(μs) 680 1360 2730 5460 灵敏度 = 0.4 pF CP(pF) 8到10 10到23 23到41 41到45 ST(μs) 340 680 1360 2730

表4-7. 传感器IMO = 6 MHz时的采样时间

灵敏度 = 0.2 pF CP(pF) 8到11 11到23 23到42 42到45 ST(μs) 680 1360 2730 5460 灵敏度 = 0.3 pF CP(pF) 8到10 10到17 17到35 35到41 41到45 ST(μs) 680 1360 2730 5460 10920 灵敏度 = 0.4 pF CP(pF) 8到11 11到23 23到41 41到45 ST(μs) 680 1360 2730 5460 表4-8显示的是不同CPU频率下的处理时间值。 表4-8. 传感器处理时间

CPU CLK 24 12 6 3 处理时间(PT),单位为μs 71 142 284 568 例如,如果CapSense系统的IMO频率为24 MHz 、CPU时钟频率为6 MHz(IMO/4)且灵敏度水平为0.3 pF,则寄生电容值大约为15 pF的传感器的扫描时间可使用前面表中的数据通过公式9计算得到。

上述所配置(IMO频率为24 MHz,灵敏度为0.3 pF)的采样时间是从表4-5中选出的,该值为680 μs。上面所述配置(CPU时钟频率为6 MHz)的处理时间是从表4-8中选出的,该值为284 μs。

因此,这种配置的总扫描时间为680 + 284 = 964 μs。多个传感器的扫描时间是单个传感器扫描时间的总和。

4.10.7 SmartSense响应时间

考虑使用标准CSD与典型CapSense扫描固件的以下应用。

? 三个CapSense传感器,它们的寄生电容值在5 pF到10 pF的范围内 ? IMO频率为12 MHz,CPU时钟频率为12 MHz ? 传感器灵敏等级为0.4 pF ? 去抖动值 = 3

AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 43

使用用户模块对CapSense性能进行调校

根据前面的表格,每个传感器的扫描时间为482 μs ,三个传感器的总扫描时间为1.45 ms。以下固件示例需要1 ms的额外固件执行时间。因此,循环执行时间为2.45 ms。 while (1) {

SmartSense_ScanAllSensors();

SmartSense _UpdateAllBaselines();

if(SmartSense _bIsAnySensorActive() ) {

//1ms firmware routines } }

这意味着:当CapSense传感器被激活时,固件在7.35 ms内开启传感器状态(传感器应连续处于活动状态去抖数量的扫描时间)。这通常被称为CapSense系统的响应时间。

如果扫描时间随着寄生电容的变化发生相应变化,那么由于程序变化而导致的传感器寄生电容变化对响应时间会产生怎样的影响?在这种情况下,响应时间可能会增加(响应变慢)。这样可能会对传感器的性能产生负面影响。在下一节中将介绍如何设计稳定的固件。

4.10.8 使用SmartSense_EMC用户模块尽量降低信噪比的方法

SmartSense_EMC是先进的电磁器件设计,该设计以CSD的SmartSense用户模块为基础,并且不需要繁琐的调校过程。然而,使用SmartSense_EMC用户模块时,有两个简单的步骤能确保设计的稳定性。

1. 建立实时监测工具来监测CapSense用户模块参数,从而测量传感器信号。在调校期间,可以观察到传感器原始

计数(SmartSense_EMC_waSnsResult)、传感器标准化信号(SmartSense_EMC_baSnsSignal)和传感器手指阈值(SmartSense_EMC_baBtnFThreshold)。不要使用LCD或其他任何数字显示屏来监测计数,因为这些设备太慢,您无法观察到数据的动态变化。建议使用Multi-chart或I2C USB Bridge Control panel。 2. 将灵敏度设置为0.4 pF(低),并计算SNR。图4-7显示的是手指触摸时的典型原始计数图。根据CapSense最

佳实践,强大设计的信噪比应大于5:1。如果测量得到的信噪比大于10:1,则使灵敏度的值下降到下一个可能值,直到获得的信噪比大于5:1或小于10:1为止。

图4-7. 手指触摸典型传感器的原始计数图

3. 如果您在设计中使用自动手指阈值,那么该操作与上一步同时完成。如果您使用灵活手指阈值,您也应该设置手指

阈值以完成该操作。为了设置手指阈值,需要监测传感器信号(SmartSense_EMC_baSnsSignal),并在触摸传感器时,将手指阈值设置为传感器信号的80%。这样,便完成了该操作。图4-8显示了典型传感器信号和手指阈值。

AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 44

使用用户模块对CapSense性能进行调校

图4-8. 手指触摸典型传感器时的传感器信号

4.10.9 固件设计指南

CapSense传感器响应时间可根据传感器寄生电容值的增加而变化。查看循环执行时间同样重要(请看以下示例代码),因为它也会增加。当所有传感器的寄生电容值小于10 pF时,固件程序执行率是2.45 ms。如果增加传感器扫描时间,则频率将会增加,因为此传感器寄生电容的提高是基于处理过程变化的。

下面显示的是根据主循环执行时间切换端口引脚的示例代码。 while (1) {

SmartSense_ScanAllSensors();

SmartSense_UpdateAllBaselines();

if(SmartSense_bIsAnySensorActive() ) {

//1ms firmware routines }

PRT0DR_Shadow ^= 0x01; PRT0DR = PRT0DR_Shadow; }

Port_0[1]引脚上的信号时间段为4.9 ms(由于端口引脚的切换,此时间是循环时间的两倍)。如果一个传感器的寄生电容递增到15 pF左右,则扫描时间将为1.78 ms,因此,Port_0[1]上的信号时间将为5.6 ms。

如果该传感器的寄生电容接近SmartSense电容组的边界(例如:9 pF非常接近10 pF边界),那么由于处理过程所发生的变化,SmartSense可能在应用中选择临近的扫描时间。鉴于此,同一设计的不同产品部件可能有两个不同的主循环执行次数和响应时间。

根据上述内容,在实现其他功能时,固件不应该依赖于传感器的扫描时间(例如,软件PWM,、软件延迟等)。实现看门狗定时器(WDT)的程序在设置WDT到期时间时应该考虑到这一点。

下面显示的是一个简单的固件实现示例,说明了如何使用定时器16用户模块来获取一致的主循环执行时间。

// Main program

BYTE bTimerTicks = 0;

#pragma interrupt_handler myTimer_ISR_Handler; void myTimer_ISR_Handler( void );

void main() {

AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 45

7wpiq12n2l1oirv327pb3jk4h7sglc00psc
领取福利

微信扫码领取福利

微信扫码分享