CapSense技术
图2-7. 21英寸笔记本电脑模型的多媒体按键设计
图2-8. 15英寸笔记本电脑模型的多媒体按键设计(该模型与21英寸模型具有相同的功能和按键大小)
2.3.1.2 缩短了设计周期时间
通常,电容式传感器接口设计最耗时的任务是固件开发和传感器调校。使用典型触摸感应控制器时,如果将相同的设计移植到不同的模型,或者PCB或传感器PCB布局的机械尺寸发生了变化,那么需要重新调校传感器。SmartSense设计解决了这些问题,因为SmartSense需要较少的固件开发工程,无须进行调校和重新调校过程。这大大加快了常规设计周期的进程。图2-9对典型触摸感应控制器和SmartSense的设计周期进行了比较。
图2-9. 典型电容式界面设计周期的比较
Typical Capacitive User Interface Design CycleSmartSense based Capacitive User Interface Design CycleSchematics DesignPCB Layout DesignFeasibility StudyMechanical DesignSchematics DesignPCB Layout DesignReviewFirmware DevelopmentFeasibility StudyReviewMechanical DesignSystem IntegrationDesign ValidationFirmware DevelopmentRe-tuning for any changesProduction Fine TuningSystem IntegrationDesign ValidationTuning ProcessProductionProduction
AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 16
3. CapSense设计工具
3.1 概况
赛普拉斯提供用于开发CapSense电容式触摸感应应用的全套硬件和软件开发工具。CY8C20xx6A/H/AS系列的基本开发系统包括以下部分。有关订购信息,请参见资源。
3.1.1 PSoC Designer和用户模块
赛普拉斯独有的集成设计环境(PSoC Designer)支持配置模拟和数字模块、开发固件和调校和调试设计。在拖放式设计环境中使用用户模块库开发这些应用程序。如果想要配置用户模块,可通过器件编辑器GUI实现,或通过固件写入特定的寄存器内实现。PSoC Designer附带内置的C语言编译器和嵌入式编程器。专业版编译器可用于复杂设计。 CSA_EMC用户模块使用开关式电容电路、模拟复用器、电压比较器、数字计数功能和高级软件子程序(API)来实现电容式触摸传感器。其他模拟和数字外设的用户模块可用于实现其他功能,如I2C、SPI、TX8和定时器。
图3-1. PSoC Designer器件编辑器
AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 17
CapSense设计工具
3.1.1.1 CapSense用户模块入门
在PSoC Designer中创建一个新的CY8C20xx6A/H/AS项目:
1. 创建一个带有CY8C20xx6的PSoC Designer项目,并将它作为目标器件。 2. 选择并放置CSD/CSA_EMC/SmartSense用户模块。 3. 右键单击用户模块,以访问用户模块向导。
4. 设置按键传感器计数、滑条配置、引脚分配及相关项。 5. 设置引脚和全局用户模块参数。 6. 生成应用,并切换到应用编辑器。
7. 根据用户模块数据手册调整示例代码,使按键或滑条生效。
欲了解创建PSoC Designer项目及配置用户模块向导的详细分步过程,请参见特定用户模块的数据手册。欲了解CapSense用户模块的代码示例,请参见代码示例。
3.1.2 通用的CapSense控制器套件
通用的CY3280-20xx6 CapSense控制器评估套件带有预定义的控制电路和插入硬件,用来简化原型设计和调试系统。该套件包含用于编程的MiniProg硬件以及用于调校和数据采集的I2C-USB桥接器硬件。
图3-2. CY3280-20xx6 CapSense控制器套件
3.1.3 通用CapSense控制器模块电路板
赛普拉斯模块电路板具有一系列的传感器、LED和接口,以满足您应用的要求。 ? CY3280-BSM的简单按键模块 ? CY3280-BMM矩阵按键模块 ? CY3280-SLM线性滑条模块 ? CY3280-SRM辐射滑条模块
? CY3280-BBM通用CapSense原型设计模块
AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 18
CapSense设计工具
3.1.4 CapSense数据查看工具
在CapSense设计过程中,您需要监测用于调校和调试的CapSense数据(原始计数、基准线、计数差值等)。通过两种CapSense数据查看工具(即MultiChart和桥接控制面板(BCP))可实现该操作。应用笔记AN2397 — CapSense数据查看工具详细介绍了这些工具。
3.2 用户模块概述
图3-3. 用户模块框图
用户模块包含整个CapSense系统,即从物理感应到数据处理。通过使用各种参数定义用户模块的行为。这些参数影响感应系统的不同器件,可分为低级参数和高级参数,在这些参数之间使用全局阵列进行通信。
低级参数(如扫描传感器的速度和分辨率)定义物理层上感应方法的性能,并与电容到原始计数的转换相关。每种感应方法都具有单独的低级参数,相关描述请参见CSD用户模块低级参数、CSA_EMC用户模式低级参数和SmartSense用户模块参数等部分。
高级参数(如去抖动计数和噪声阈值)定义如何处理原始计数,以产生相关信息,例如:传感器ON/OFF(触摸/离开)状态和手指在滑条上的大致位置。这些参数在所有的感应方法中都相同。相关描述请参见用户模块高级参数。
AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 19
CapSense设计工具
3.3 CapSense用户模块全局阵列
学习CapSense用户模块参数之前,您必须熟悉CapSense系统所使用的某些全局阵列。不能手动更改这些阵列,但如果需要进行调试,您可以对其进行检查。
图3-4. 原始计数、基准线、计数差值和传感器状态
原始计数 计数差值 (信号值)
3.3.1 原始计数
CapSense控制器中的硬件电路用于测量传感器的电容。在调用用户模块API UMname_ScanSensor()函数(UMname可以是CSD、SmartSense或CSA_EMC)之后,以数字形式(称为原始计数)存储测量结果。 传感器的原始计数与其传感器电容成比例。当传感器电容值增加时,原始计数也随之增加。
传感器的原始计数值存储在UMname_waSnsResult[]整数数组中。在头文件UMname.h中定义该阵列。
3.3.2 基准线
渐变的环境改变(如温度和湿度)会影响传感器原始计数,这会导致计数差异。
用户模块使用复杂的基准线算法来补偿这些差异。该算法使用基准线变量来完成该功能。基准线变量记录原始计数值的所有渐变差异。实际上,基准线变量存储数字低通滤波器的输出,而输入的原始计数值被馈送到数字低通滤波器中。 基准线算法由用户模块API UMname_UpdateSensorBaseline执行(UMname可以为CSD、SmartSense或CSA_EMC)。
传感器的基准线值被存储在UMname_waSnsBaseline[]整数型阵列中。在头文件UMname.h中定义该阵列。
3.3.3 计数差值(信号)
计数差值也被称为传感器信号,被定义为传感器原始计数和基准线值的计数差值。当传感器处于非活动状态时,计数差值为零。激活传感器(通过触摸方式)使计数差值为正。
传感器的计数差值存储在UMname_waSnsDiff[]整数型阵列中,这里UMname可以是CSD、SmartSense或CSA_EMC。在头文件UMname.h中定义该阵列。
差值变量通过用户模块API UMname_UpdateSensorBaseline()更新。
3.3.4 传感器状态
传感器状态表示物理传感器的活动/非活动状态。当手指触摸传感器时,传感器的状态从0变为1,而手指释放时,传感器的状态返回到0。
AN65973 — CY8C20xx6A/H/AS CapSense?设计指南,文档编号:001-78419版本*B 20
相关推荐: