第14章 电容感应模块_第1页
第14章 电容感应模块_第2页
第14章 电容感应模块_第3页
第14章 电容感应模块_第4页
第14章 电容感应模块_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第14章章 电容感应模块电容感应模块 何宾 2012.05本章内容本章内容 本章主要是介绍PSoC5内的电容总线模块,电容感应模块是PSoC芯片最重要,也是最有特点的功能单元,电容感应触摸被广泛的应用在各种嵌入式应用中。 本章内容主要包括:n电容感应模块的结构;n电容感应-算法;n电容触摸感应的实现; 电容感应触摸电容感应触摸模块的结构模块的结构 电容感应触摸系统提供了丰富和高效的手段来测量电容量,比如触摸感应按键,滑动块,接近度检测。下图给出了电容感应模块的结构图。 电容感应触摸系统使用系统资源配置,包括一些用于电容感应触摸的硬件功能。该模块的主要特点有:n同时支持扫描两个电容传感器;n可

2、配置的低通滤波器来消除开关噪声,用于精确测量;n用于更快速测量的带有高驱动模式的参考缓冲区。 电容感应触摸电容感应触摸模块的结构模块的结构电容感应触摸电容感应触摸模块的结构模块的结构 1参考驱动 这个驱动器用来快速的初始化网络到独立于供电电源的一个电压。这个能力加速了电容扫描,并且改善了电源抑制比。两个参考驱动独立运行;一个驱动到AMUXBUSL,另一个驱动到AMUXBUSR。通过设置CAPSX_CFG0寄存器的out_en位,将驱动器连接到AMUXBUS。 参考驱动支持普通和高驱动模式,通过设置CAPSX_CFG0寄存器的boost位选择驱动模式。n在普通模式下,在600ns内驱动电容最大到

3、100pF;n在高驱动模式下,在15us内驱动电容最大到30nF。电容感应触摸电容感应触摸模块的结构模块的结构 2低通滤波器 提供两个可调的低通滤波器(Low Pass Filter,LPF)。每个LPF通过2:1复用开关选择输入。n在左侧,LPF输入是AMUXBUSL和AGL0;n在右侧,LPF输入是AMUXBUSR和AGR0。 使用LPF.CRO寄存器的swin1:0位选择LPF的输入。通过开关将LPF的输出连接到abusl0和abusr0。可调的LPF允许用户选择R值为200k或者1000k,C值为5pF或者为10pF。 LPFx_CR0寄存器内的rsel和csel位用来选择电阻和电容。

4、LPF的控制寄存器为LPF0_CR0和LPF1_CR0。电容感应触摸电容感应触摸模块的结构模块的结构 3模拟复用总线 除了SIO和USB引脚外,所有的GPIO引脚均支持电容感应操作。用于电容感应基本模拟复用总线是AMUXBUS,该总线有两个网络(AMUXBUSL和AMUXBUSR)用于两个同步的感应操作。这些也能被短路生成单个网络,该网络连接到所有的GPIO。 AMUXBUSL和AMUXBUSR网络连接到各自一半的GPIO,支持电容感应方法的所有特征。电容感应使用AMUXBUS网络、AMUXBUSR的模拟全局网络AGR0和AMUXBUSL的模拟全局网络AGL0,提供到参考源的反馈。这个反馈通常

5、是来自于外部电容连接的引脚,这个电容用于积分或者调制电容。电容感应触摸电容感应触摸模块的结构模块的结构 4GPIO配置 右图给出了GPIO结构。端口模拟全局复用寄存器(PRTx_AMUX)被用来连接端口引脚到模拟复用总线。设置CAPSx_CFG1寄存器的io_ctrl1:0来使能上拉或下拉。 下图给出了在两种配置的感应电容的切换,用来将电容转换成相对应的电阻进行测量。 电容感应触摸模块的结构电容感应触摸模块的结构(a) 通过感应电阻对通过感应电阻对MUXBUS充电充电(b) 通过感应电阻对通过感应电阻对MUXBUS放电放电电容感应触摸电容感应触摸模块的结构模块的结构 用下式计算等效电阻: 其中

6、:nCs=传感器电容n1,2=非重叠的时钟,可以用伪随机序列发生器产生 (pseudo random sequence, PRS)。nfs=时钟频率nCmod=外部调制电容; 电容感应的方法通过将GPIO引脚在高低电平之间切换实现。硬件的剩余部分配置成合适的极性来匹配上拉或下拉电阻。)(1ssSCfR 电容感应模块的结构电容感应模块的结构 电容感应时钟用于切换。可以使用两种方法来产生CapSense时钟: 1)UDB产生两个全局时钟(caps_dsi_lft和caps_dsi_rt),并且布线到各自一侧的I/O引脚的GPIO逻辑。设置PRTx_CAPS_SELy寄存器(基于每端口/每引脚模式)

7、来选择用于在测量期间切换传感器的全局时钟; 2)到I/O引脚的DSI输出能用于来自UDB的电容感应的时钟源。编程PRTx_BIEy用于输入(每端口/每引脚),并且清除PRTx_CAPS_SELy选择DSI输出作为电容感应的时钟。 电容感应模块的结构电容感应模块的结构 注意:静态连接外部的集成电容Cmod(没有切换),使用PRTx_AMUX寄存器将其连接到AMUXBUS,并且PRTx_CAPS_ SELy=0,PRTx_BIEy=0。 GPIO引脚能作为屏蔽电极。屏蔽电极用于帮助在出现水膜或水滴的情况下,提高操作的可靠性。测量这些影响因素在屏蔽电极的影响,并且从电容感应按键中消除。下面讨论的电容

8、感应算法支持屏蔽电容。 电容感应电容感应-算法算法 下图给出了电容感应-(Capsense Delta Sigma, CSD)的硬件配置。 电容感应算法电容感应算法 -电容感应电容感应-算法算法下图给出了CSD算法的波形图。 电容感应算法电容感应算法 -电容感应电容感应-算法算法 电容感应-通过将积分电容的电压保持在目标门限的附近,并且基于目前的比较器的输出状态对电容进行充电和放电操作来实现的。 感应电容在Vdd和积分电容之间进行连续的切换,用来在每个切换周期内驱动积分电压升高。电容感应算法电容感应算法 电容感应电容感应-算法算法 下面给出CSD算法的具体实现步骤: 1当积分电压达到参考电压时

9、,比较器将使电流DAC对电容进行放电。 2当电容放电电压低于参考电压时,禁止IDAC,以允许电容连续的充电。 3当积分电容电压在比较器门限附近波动的时候,在一个间隔内对比较器的低输出进行计数,然后给出感应电容的测量结果。 电容感应算法电容感应算法 -电容感应电容感应-算法算法 4触摸时感应电容增加,因此等效电阻减少。这样就引起流经感应等效电阻的电流增加。 5在触摸时,为了将Cmod的电压保持在VREF附近,IDAC的吸收电流用于长期补偿较大的感应电容。这样就相应的改变计数值。 一个PRS时钟用来替换固定的时钟源来驱动预充电开关。与固定时钟源相比较,PRS时钟降低了感应电容上的辐射噪声,因此改善

10、了EMI和干扰性能。电容感应算法电容感应算法 -电容感应电容感应-算法算法 PSoC也支持其它CSD算法: 1)基于比较器的输出,开关电容电阻用来对积分电容进行充电,外部的泄漏电阻器用来对积分电容进行放电。 2)基于比较器的输出,翻转极性,IDAC就能被用于对积分电容进行充电,开关电容电阻将积分电容对地进行放电(图7.32(b)。电容触摸感应实现 该设计实现电容感应的应用。开发板首先初始化液晶屏和元件。在主循环中,它扫描两个按钮是否有激活。并且在LCD上显示触摸感应的状态。电容触摸感应实现电容触摸感应实现-创建和配置工程创建和配置工程 1在计算机上的桌面上,选择开始-所有程序-Cypress-

11、PSoC Creator 2.0-PsoC Creator 2.0。打开PSoC Creator软件; 2在PSoC Creator 2.0软件的主界面下,选择File-New-Project.; 3在New Project窗口,选择Empty PSoC5 Design模板,并将工程命命名为CapSense_CSD _Design。选择工程保存路径,点击“OK”按钮; 创建和配置工程创建和配置工程-添加并配置添加并配置CapSense 下面给出添加并配置CapSense的步骤,主要步骤包括: 1拖动并且放置CapSense到原理图内(Component Catalog-CapSense- Ca

12、pSense_CSD)。 2双击器件原理图内的CapSense_CSD符号,打开配置窗口。如下图所示,在Widget(部件)配置窗口中按下面步骤添加触摸按键和触摸滑块部件: 创建和配置工程创建和配置工程-添加并配置添加并配置CapSense创建和配置工程创建和配置工程-添加并配置添加并配置CapSensen选择Buttons条目,在按钮 上,连续点击两次, 添加两个触摸按键部件Button0和Button1;n 选择Linear Sliders条目,在按钮 上,点击一次,添加触摸滑块部件LinearSlider0;n选择Button0,出现下图所示的界面,按下面参数设置触摸按键的属性。创建和配

13、置工程创建和配置工程-添加并配置添加并配置CapSensen 选择Buutton1,按照Button0的属性来设置Button1的属性,即 两个触摸按键的属性一样。下图设置触摸滑块的属性。n选择LinearSlider0,出现下图所示的界面,按下面的参数设置 触摸滑块的属性。n接受其它参数默认设置;n点击“OK”按钮,关闭属性设置界面。创建和配置工程创建和配置工程-添加并配置字符添加并配置字符LCD 下面给出添加并配置字符的步骤,主要步骤包括: 1拖动Character LCD并将其放置在原理图中(Component Catalog-Display- Character LCD)。 2双击LC

14、D_Char_1元件。 3设置参数如下:nName: LCDnLCD Custom Character Set: Horizontal Bargraph。nInclude ASCII to Number Conversion Routines:选中n其它按照默认设置 4点击“OK”,关闭属性设置界面。创建和配置工程创建和配置工程-配置引脚配置引脚 下面给出配置管脚的步骤,主要步骤包括: 1从Workspace Explore,双击CapSense_CSD_Design.cydwr文件。 2点击pin标签。 3如下图所示,为Cmod_CH0、Button0_BTN0、Button1_BTN、Li

15、nearSlider0_e0_LS LinearSlider0_e4_LS、和LCD:LCDPort6:0 分配引脚。创建和配置工程创建和配置工程-配置引脚配置引脚创建和配置工程创建和配置工程-编写程序编写程序n#include nn/* Need for Bargraph */nextern uint8 const CYCODE LCD_customFonts;nuint16 curPos, oldPos;nnvoid main()nn /* 使能全局中断*/n CyGlobalIntEnable;n LCD_Start();n LCD_LoadCustomFonts(LCD_customF

16、onts);n LCD_Position(0u, 0u);n LCD_PrintString(CSD01);创建和配置工程创建和配置工程-编写程序编写程序/* 初始化CapSense CSD ,并且启动传感器扫描循环*/ /*启动CapSense和基线*/ CapSense_CSD_Start(); /* I初始化基线 */ CapSense_CSD_InitializeAllBaselines(); /* 启动扫描所有使能的传感器*/ CapSense_CSD_ScanEnabledWidgets(); while(1u) /* 更新所有的基线*/ CapSense_CSD_UpdateEn

17、abledBaselines(); 创建和配置工程创建和配置工程-编写程序编写程序/* 启动扫描所有的传感器*/ CapSense_CSD_ScanEnabledWidgets(); /*显示CapSense状态*/ while(CapSense_CSD_IsBusy() != 0) LCD_DisplayState(); /*函数名字: LCD_DisplayState*/创建和配置工程创建和配置工程-编写程序编写程序void LCD_DisplayState(void) /* 显示BUTTON0的状态*/ LCD_Position(1u, 0u); if (CapSense_CSD_Che

18、ckIsWidgetActive(CapSense_CSD_BUTTON0_BTN) LCD_PrintString(A); else LCD_PrintString(B); /* 显示BUTTON1的状态*/ LCD_Position(1u, 2u); if (CapSense_CSD_CheckIsWidgetActive(CapSense_CSD_BUTTON1_BTN) LCD_PrintString(A); 创建和配置工程创建和配置工程-编写程序编写程序 else LCD_PrintString(B); /* 找到滑块的位置*/ curPos = CapSense_CSD_GetCentroidPos(CapSense_CSD_LINEARSLIDER0_LS); /* 复位位置 */ if(curPos = 0 xFFFFu) curPos = 0u; /*移动条形图 */创建和配置工程创建和配置工程-编写程序编写程序 if (curPos != oldPos) oldPos = curPos; /* 显示滑块条形图*/ if (curPos !=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论