在线情况
楼主
  • 头像
  • 级别
  • 门派
  • 职务总版主
  • 声望+9
  • 财富5
  • 积分3065
  • 经验390701
  • 文章6744
  • 注册2006-03-07
MSP430实现电容感应式触摸按键[TI曾经热推一时]
  [COLOR=blue]微控技术论坛原创  作者:DC[/COLOR]

  在2007年430DAY中,TI公司送出的电容感应式触摸按键功能演示模块,主片为F2001。

  [IMGA=0,absMiddle]http://www.microcontrol.cn/430images/MC430DIY/touch_key/touch_key_02.gif[/IMGA]
                以下是演示模块的实物图

  [IMGA=0,absMiddle]http://www.microcontrol.cn/430images/MC430DIY/touch_key/touch_key_01.gif[/IMGA]
              MSP430电容感应式触摸按键功能原理

                      [IMGA=0,absMiddle]http://www.microcontrol.cn/430images/MC430DIY/touch_key/touch_key_03.gif[/IMGA]
                           软件基础流程序图

                       [IMGA=0,absMiddle]http://www.microcontrol.cn/430images/MC430DIY/touch_key/touch_key_04.gif[/IMGA]
                             用TA实现检测
[COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
在线情况
2
  • 头像
  • 级别
    • 积分31
    • 经验5985
    • 文章202
    • 注册2006-05-28
    这个东西有什么意义,是使按键有一点延时的功能吗?
    微控网感谢您的参与
    在线情况
    3
    • 头像
    • 级别
      • 积分1
      • 经验129
      • 文章1
      • 注册2007-07-12
      我也上传点资料让大家共享一下
      !!!
      电容式感应技术正在迅速成为面板操作和多媒体交互的全新应用技术,其耐用性和降低BOM成本方面的优势,使这种技术在非接触式操作界面上得到广泛的应用。本文采用PSoC片上系统芯片,实现了非接触式、稳定可靠的电容式感应按键的设计。
      1 PSoC片上系统
      PSoC 微处理器由处理器内核、系统资源、数字系统和模拟系统组成。PSoC片上系统包含8个数字模块和12个模拟模块。这些模块都可进行配置,用户通过对这些模 块进行配置,定义出用户所需要的功能。数字模块可配置成定时器、计数器、串行通信口(UARTS)、CRC发生器、PWM脉宽调制等功能模块。模拟模块可 配置成模数转换器、数模转换器、可编程增益放大器、可编程滤波器、差分比较器等功能模块。数字模块和模拟模块也可构成调制解调器、复杂的马达控制器、传感 器信号的处理电路等[1]。

      2 电容式感应原理
      电 容开关是一对相邻电极,在电极之间有很小的电容。当一个导体接近两个电极时,在电极与导体之间会产生一个耦合电容。在这里,手指就是这个导体,通常电容开 关的形式是一边接地的电容,导体的存在增加了开关到地之间的电容。检测是否有手指靠近,也就是检测是否有按键按下,可依据电容的变化来判断。检测电容变化 的方法有很多:电流与电压相位差检测、电容构成振荡器进行频率检测、电容桥电荷转换检测。因为电容桥电荷转换检测的方法较适用于大量按键扫描和PSoC的 性能,所以在此采用该方法进行检测[2]。
      电荷转换电路从概念上来说与R-C充放电电路相似,如图1所示。电荷转移的优点是不需要附加电阻器件。CP感应的电容,它的值随着电极材料上所加导体而改变。Csum是参考总电容。
       
      在检测周期开始,通过一个复位开关把Csum上的电荷全部放掉。然后通过单刀双向开关使Cp工作在非重迭的周期上。在第一半周,Cp连接到VDD充电。当CP上的电荷以由CP值决定的速度充到VDD时,开关断开,然后把开关连接到Csum,Cp上的电荷转移到Csum中[3]。
      在图1中,因为Csum的电容值比Cp大得多,所以Csum上的电压值在充电的每一周期内只有微小的增加。这个Cp到Csum上的电荷转换周期重复许多次,以使Csum上积累到一个大的信号值。当连接到VDD时,电容Cp上的电荷为:
      Q=CV (1)
      不是Cp上的所有电荷都转移到Csum中。当Cp上的电压跌落到Csum上的预存电压时,转换便不再进行。为检测感应的电容值是否有改变,可通过Cp-Csum的充放电方式,把Csum充到固定的阈值VTH,再计算到达这个阈值时的周期数。在任意采样点n,Csum上的电压值为:
       
      图2示出了充放电115ms后的电荷转换波形。其充放频率为6MHz,所以其转换次数为700次。
      式(2)很明显是一个指数函数,即电压值Vsum为:
       
       
      检测Cp的变化率,可通过比较Vsum和VTH得到。即计算Vsum充到VTH时的充放电次数n:
       
      当手指靠近时,Cp变成电极感应电容和手指接近产生的耦合电容之和CF+P,所以Csum充电到阈值VTH的速度更快,充放电周期数n也就更小:
       
      这样,检测是否有键按下就简化成了检测周期数的变化率Δn=n-nF+P。当Δn>nTH时,表明有手指靠近。
      3 电容式非接触按键的设计与实现
      3.1 电容式非接触按键的硬件电路设计
      电 容式非接触按键的硬件电路如图3所示。该设计中,通过PSoC芯片CY8C2714循环检测感应电极的状态来判断是否有按键按下。该系统的硬件设计非常简 单,感应电极不需要附加任何元器件。I/O口P0.2-P0.6共连接4个按键感应电极,芯片通过内部硬件配置和软件算法,对感应电机上是否有手指按下进 行检测。另外,PSoC芯片可外接ISSP接口实现在线编程[4]。
       
      3.2 电容式非接触按键的软件实现
      非接触按键的检测,须通过比较器、充电电流源和复位开关组成一个张弛振荡器,来对按键电极电容充放电。PSoC内部用户模块配置如图4所示。比较器占用一个模拟模块。它的同相输入端多路模拟开关连接到I/O口上,反相输入端接内部参考电压VBG作为电容充电阈值VTH, 与同时输入端进行比较。输出端连接比较逻辑输出总线0。总线与通用输出口连通,再把通用输出口4和通用输入口4连接在一起,作为PWM的时钟输入线。 PWM脉宽调制模块占用1个数字模块,其时钟输入连到比较器的输出,PWM的输出连接到定时器的捕获脚。1个16位定时器占用2个数字模块,对PWM输出 的脉冲进行定时。
       
      非接触式感应按键的实现过程为:首先设置I/O口的输出驱动模式,开始扫描按键,把按键连接到模拟多通道输入口,使能振荡器。当Cp上的电压线性增加到阈值时,比较器输出高电平。刷新定时器和PWM的周期数,重设计数值,置完成标志位。当扫描完成,停止PWM,定时器中断服务完成。最后根据电容感应原理,计算出定时器的周期数来判断是否有按键按下。在本设计中,如式(5)所示,选取Csum值,使充放电周期数n=1000次时,Vsum到达VTH。当检测到n F+P<800,即Δn>nTH=200时,认为有按键下。
      结语
      本设计中,基于PSoC片上系统芯片的非接触式感应按键界面,有着非接触、可靠和设计简单的特点。这种方便、灵活的操作界面已在家电和控制系统中得到了应用和推广,所以关于电容式感应按键技术的应用将会是嵌入式系统中的一个研究热点。
       
      我也是位爱好者!!!
      在线情况
      4
      • 头像
      • 级别
        • 积分5
        • 经验854
        • 文章10
        • 注册2007-03-16
        有实验成功的PCB吗?这个就是要PCB画得合适才行啊!不然很难检测得到!
        微控网感谢您的参与
        在线情况
        5
        • 头像
        • 级别
        • 门派
        • 职务总版主
        • 声望+9
        • 财富5
        • 积分3065
        • 经验390701
        • 文章6744
        • 注册2006-03-07
        阿莫恩,你从何得PCB设计需要严格要求?希望指教...
        [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
        在线情况
        6
        • 头像
        • 级别
          • 积分7
          • 经验820
          • 文章27
          • 注册2007-11-04
          上面电路中的PCB线路电容多大适合?
          电阻是PCB和集成引脚漏电电阻吗?
          不同的PCB材料漏电电阻大小都不一样,如何选择才合适?
          放电时间T取值要多少?
          如何去掉邻键干扰问题?
          如呵去掉人手惯性收缩容值变化问题?
          微控网感谢您的参与
          在线情况
          7
          • 头像
          • 级别
            • 积分1
            • 经验9
            • 文章1
            • 注册2006-10-11
            这个东西很垃圾的,我买了一块,很不灵
            微控网感谢您的参与
            在线情况
            8
            • 头像
            • 级别
              • 积分51
              • 经验2657
              • 文章206
              • 注册2007-03-18
              回6楼,你问的问题TI官方有应用文档介绍的,我大概记得一些。
              PCB电容好像推荐是在十几到几十pF之间,太小了感应不到,太大的会影响反应速度。
              电阻不是PCB和集成引脚漏电电阻,而是专门加的一个放电电阻,其原理和SLOPE AD一样。
              上一个问题你理解错了,所以不存在“不同的PCB材料漏电电阻大小都不一样”的问题,但是却存在不同的板材其电容量不同的问题,官方文档中有专门介面积、绍厚度和材质与电容量关系的一节,我记得推荐使用FR-4板材。我不是专业的,谁告诉我FR-4是什么板子?环氧的?
              放电时间T不是取值取出来的,而是放电电阻R和指触区的容量决定的,你要测量的是放电时间T从而确定了容量的变化情况。另外一定要在不触的状态下设置基值,也就是底噪,这个需要事先测定。
              去掉邻键干扰比较复杂,比较好的方法是类似图像识别的方法,因为手触的中央总是比远的地方容量变化更明显的,它会呈一个曲线,对于滑棒就是这种情况,对积分后的值进行识别是相对容易的,官方应用文档中也有图示。
              去掉人手惯性收缩容值变化的方法有两种:方法一是一刀切,超过阈值就认为按下了,这样可比较方便处理,但是不理想的地方是容易被干扰,所以通常会动态的取得底噪基线,再动态的确定这个门限,就是说,如果所有的触板容量一起变化,你就要调整基线了;方法二就是使用相对法,和上一个问题类似,只对对比超过一定程度的触板事件响应,这样除非是极局部的干扰,否则很难误动作。
              不知6楼的疑问是否已清楚。我也只是看过文档,如果我说的有错还请大家指正。
              微控论坛特约嘉宾
              在线情况
              9
              • 头像
              • 级别
                • 积分51
                • 经验2657
                • 文章206
                • 注册2007-03-18
                刚才忘了回7楼,那个板子我试了还是挺灵的,它的设计不错,巧妙的利用了人体工学。
                上边共有四个触板,顺序如下图:
                 3 | 2
                 —+—
                 4 | 1
                当触到1时,LED亮度最低,依次的越来越亮,4亮度最高,可能大家奇怪为什么这样排顺序,为什么不是一横排依次是1234按哪个就是什么亮度,其实仔细看看就明白了,这四个触区的大小刚好一个手指头大,也就是说,本来也没让你当成四个键来用的。
                按我的指导做个实验吧!
                1、伸出你最习惯用来按按钮的手——什么?左撇子?那麻烦你先换成右手。
                2、再伸出你最方便按按钮的手指——食指残疾?只要不是只剩大姆指就行,换一个也行。
                3、现在对准触摸区的中间,就是那个十字的部位轻轻的按,停!看看,手指主要接触到的区域是几号?
                4、稍微加重一点,再看看,这次压住的是哪几个区?——如果你的手指尖有很厚的老茧这一步可能会有不同。
                5、压到最重,看看LED。并重复轻重触压的过程,观看LED。

                看明白的人可以继续回贴,呵呵。
                微控论坛特约嘉宾
                在线情况
                10
                • 头像
                • 级别
                  • 积分2
                  • 经验373
                  • 文章17
                  • 注册2008-01-10
                  版主能发一份MSP430实现电容感应式触摸按键评估板的电路图给我看看,谢谢!我的邮箱是:welzyk@163.com
                  微控网感谢您的参与
                  在线情况
                  11
                  • 头像
                  • 级别
                    • 积分1
                    • 经验0
                    • 文章1
                    • 注册2008-02-19
                    我正在做这个实验,给我也发份原理图或相关资料吧,谢谢了!我的邮箱:yd024@163.com
                    微控网感谢您的参与
                    在线情况
                    12
                    • 头像
                    • 级别
                      • 积分8
                      • 经验1085
                      • 文章55
                      • 注册2008-04-14
                      不错的东西,今年怎么不送了
                      微控网感谢您的参与
                      Powered by LeadBBS 9.2 .
                      Page created in 0.1758 seconds with 5 queries.