前言
    在需要用户界面的应用方案中,传统的机电开关正在被电容式触摸感应控制所替代。
    Sino wealth已经开发了一套触摸感应软件,使得任意一款8位的中颖微控制器都可以作为一个电容式触摸按键控制器使用。通过对由一个电阻和触摸电极电容组成的RC充放电时间的控制,该触摸感应软件可以检测到人手的触摸。由于电极电容的改变,导致的RC充放电时间的改变,能够被检测出来,然后经过滤波等,最终通过专用的I/O端口,或者I2C/SPI接口发送给主机系统。该软件库所需的元器件BOM表,成本低廉,因为每个通道只需要两个电阻就可以实现触摸检测功能。
 
RC感应原理

RC采样原理就是通过测量触摸电极电容的微小变化,来感知人体对电容式触摸感应器(按键、滚轮或者滑条)的触摸。

电极电容(C)通过一个固定的电阻(R)周期性地充放电。 电容值取决于以下几个参数:电极面积(A),绝缘体相对介电常数( ),空气相对湿度( ),以及两个电极之间的距离(d)。电容值可由下列公式得出:

 
图1  RC电压检测
 
固定电压施加在 , 的电压随着电容值的变化而相应增加或者降低, 如图2所示。

图2    测量充电时间
 
      通过计算 的电压达到阀值 所需要的充电时间( ),来得到电容值(C)。 在触摸感应应用中,电容值(C)由两部分组成:固定电容(电极电容, )和当人手接触或者靠近电极时,由人手带来的电容(感应电容, )。电极电容应该尽可能的小,以保证检测到人手触摸。因为通常人手触摸与否,带来的电容变化一般就是几个pF(通常5pF)。 利用该原理,就可以检测到手指是否触摸了电极。

图3    触摸感应

这就是用于检测人手触摸的触摸感应软件中感应层所采用的基本原理。

硬件实现
      图4显示了一个实现的实例。由R1,R2以及电容电极( )和手指电容( )并联的电容(大约5pF) 形成一个RC网络,通过对该RC网络充放电时间的测量,可以检测到人手的触摸。 所有电极共享一个“负载I/O”引脚。电阻R1和R2尽量靠近MCU放置。电容R1(阻值在几百欧到 几兆欧之间)是主要电容,用于调节触摸检测的灵敏度。电容R2(10KΩ)是可选的,用于减少对噪声影响。

图4    电容触摸感应实现实例

3    软件实现
     本章描述了触摸感应RC原理的实现。
3.1    充电时间测量原理
     为了保证健壮的电容触摸感应的应用,充电时间的测量需要足够的精确。
采用一个简单的定时器(无需IC功能)和一系列简单的软件操作,即定时地检查感应I/O端口上的电压是否达到阀值。这样的话,时间测量的精确度就取决于执行一次完整软件查询需要的CPU周期数。这种测量方法会由于多次测量带来一些抖动,但是由于没有硬件限制,这种方法适用于需要很多电极的场合。

基本测量
     使用普通定时器进行充电时间的测量。对电容充电开始之前,定时器的计数器数值被记录下来。当采样I/O端口上的电压达到某个阀值( )时,再次记录定时器计数器的值。二者之差就是 充电或者放电的时间。

图5    定时器计数器值

过采样
      过采样的目的是以CPU时钟的精度,对输入电压达到高电平和低电平( 和 )的时间测量。 为了跨越所有的取值范围,每次测量都比上一次测量延迟一个CPU时钟周期的时间。 为了跨越所有的取值范围,测量的次数是和MCU核相关的。图6说明了这个概念的应用情况。

图6  输入电压测量

输入电压测量的原理
     为了提高在电压和温度变动情况下的稳定性,对电极会进行连续两次的测量:第一次测量对电容的充电时间,直到输入电压升至 。第二次测量电容的放电时间,直到输入电压降至 。下图以及以下的表格详细说明了对感应电极(感应I/O)和负载I/O引脚上的操作流程。

图7    电容充放电时间测量
 
表2    电容充放电测量步骤
步骤    描述
1    1. 负载I/O引脚设置成输出模式,输出VDD
2. 感应I/O引脚设置成输出模式,输出VDD
3. 保存定时器计数器的初始值(vih_start)

2    感应I/O设置成输入高阻模式
于是电极电容 开始充电

3    当感应I/O引脚上的电压达到 :
1. 保存定时器计数器的值(vih_stop),并由此计算达到高电平 的时间(vih_stop – vih_start),并保存
2. 感应I/O引脚设置成输出模式,输出VDD
3. 负载I/O引脚设置成输出模式,输出到地
4. 保存定时器计数器的初值(vil_start)

4    感应I/O引脚设置成输入高阻模式 于是电极电容 开始放电

5    当感应I/O引脚上的电压降至 :
1. 保存定时器计数器的值(vil_stop),并由此计算降到低电平 的时间(vil_stop – vil_start),并保存
2. 将两次测量值“vih_meas”和“vil_meas”相加并保存
3. 重复步骤1的操作

触摸的效果
     电极的电容值( )取决于以下几个主要因素:电极的形状、大小,触摸感应控制器到电极之间的 布线(尤其是地耦合),以及介电面板的材料和厚度。因此,RC充放电时间直接和 有关。图8说明了这种“触摸的效果”。 时间<t1’>(即达到了 电平的时刻)比<t1>长;同样对于降至 电平的时间<t2’>也比<t2>长。
图8    触摸效果实例
 

多次测量以及高频噪声的去除
      为了提高测量的精确度,并去除高频噪声,有必要对 和 进行多次的测量,然后再决定是否有按键被有效“触摸”。

图9    测量的种类

注意:    下图说明了去除噪声的实例。如果测量次数(N)设置为4,那么对一个电极的完整测量将包括4次正确的“连续组测量”(BGs)。

这些实例展示了不同噪声影响下的测量。绿色线条表示正确的 / 测量;而红色线条表示不正确的 / 测量。

图10 显示了没有噪声的影响,所有测量都有效的情况。 这个例子中,每个连续组测量中的测量都有效,使得一个完整的测量很快就可以完成。

图10      实例1
 

图11 显示了有一些噪声使得某些测量无效的情况(即r1和r2)。 在这个例子中,连续组测量BG3重复了好几次,直到其中的所有测量都有效,该次组测量才算通过。这样就需要较多的时间来完成一次完整的测量。

图11      实例2
 

图12 显示了有很多噪声,使得无效的组测量次数达到了最大限制 (比如20)。这样的话,整个电极测量都无效。 这个例子中,达到了无效的组测量次数的最大限制,因此停止对该电极的测量。

图12      实例3
 

基于中颖8位MCU的触摸按键方案相关推荐

  1. 电力线载波SoC实现路灯远程监控应用实例(中颖SH99F01)

    城市路灯是人们日常生活中必不可少的公共设施,近年来,具备远程监控功能的智能化路灯监控系统逐渐得到推广应用,除了传统的高压钠灯.卤素灯外,新型的LED路灯更是广泛采用远程监控接口,以达到节能降耗,集约化 ...

  2. Contiki开发1:Contiki与8位MCU

    Contiki开发1:Contiki与8位MCU 1 8位MCU重生 10年前,我们怀着激动的心情努力学习ARM,铺天盖地的ARM教材和开发平台板宣示:8位单片机的时代已经过去,以至于开发8位MCU都 ...

  3. 开源基于涂鸦模组和沁恒RISC-V 架构32位MCU的IOT物联网生活环境监测系统及涂鸦模组使用

    文章目录 前言 一.项目简介 二.硬件介绍 1.硬件原理图 1.1核心板 1.2涂鸦模组 1.3供电电路设计 1.4外设电路 1.4总结 二.涂鸦模块通信协议使用 2.1涂鸦模组协议移植 2.2移植步 ...

  4. 文末赠书《GD32 MCU原理及固件库开发指南》5本 | 国产MCU中GD32系列有望成为未来32位MCU的主流

    学习优秀博文([guo产MCU移植]手把手教你使用RT-Thread制作GD32系列BSP)有感 一篇优秀的博文是什么样的?它有什么规律可循吗?优秀的guo产32位单片机处理器是否真的能成功替换掉st ...

  5. 基于Arm Cortex内核的32位MCU和MPU(M0、M0+、M3、M4、M33、M7、A7)

    基于Arm Cortex内核的32位MCU和MPU ST意法半导体产品矩阵 M3典型--STM32 F1系列Cortex-M3基础型MCU M4典型--带有DSP和FPU指令的STM32F4系列高性能 ...

  6. 为什么嵌入式工程师会对8位MCU有误解?

    近年来,随着工艺与IP的逐渐成熟,32位的MCU增长迅速,风头之劲乃至16位的MCU基本上被跳过了.现在说嵌入式MCU,要么就是8位,要么就是32位,16位的MCU产品型号屈指可数. 那么8位的MCU ...

  7. 32怎么将mcu内的代码擦除_8位和32位MCU该如何选择?

    该如何对8位以及32位的MCU进行选择?8位和32位MCU在功能上仍是互为辅助.各有千秋,这其中的诀窍就在于,需先了解什么样的应用适合什么样的MCU架构. 本文对比了8位MCU和32位MCU的使用案例 ...

  8. CSM32RV20--RISCV核单片机RISC-V低功耗MCU开发板核心板国产32位MCU替代STM32F030系列

    目录 CSM32RV20是一款基于RISC-V核的低功耗MCU芯片. 芯片主要特性 芯片引脚信息图 ​引脚功能描述 CSM32RV20架构图​外设 CSM32RV20开发环境 4种低功耗模式应用领域​ ...

  9. 锂电池 保护板方案 中颖SH367309方案 原理图 PCB 源代码 锂电池电池管理系统 中颖SH367309保护板方案

    锂电池 保护板方案 中颖SH367309方案 原理图 PCB 源代码 保护板方案 中颖SH367309方案 原理图 PCB 源代码 应用注意事项 该部分主要针对SH367309在使用过程中,软件编程和 ...

最新文章

  1. Rust语言——无虚拟机、无垃圾收集器、无运行时、无空指针/野指针/内存越界/缓冲区溢出/段错误、无数据竞争...
  2. 数据结构与算法 -- 链表
  3. 异常-简单的异常捕获
  4. Android Studio下jni应用
  5. Spark API 详解(转)
  6. mysql查找大小写_mysql查询不区分大小写
  7. java+map申明_Java中两种HashMap申明方式区别?
  8. 2019 outlook 数据迁移_清华开源迁移学习算法库
  9. 【java学习之路】(java框架)004.Mybatis SQL映射文件详解
  10. SQL Server 2012:SQL Server体系结构
  11. 2022年计算机软件水平考试数据库系统工程师(中级)练习题及答案
  12. Machine Learning 资讯 : 经济学家谈人工智能
  13. C#使用Windows全局钩子(Winform) SetWindowsHookEx
  14. html 文件怎么改类型,怎么更改文件类型
  15. Moviepy音视频剪辑:视频添加雪花飘落特效
  16. 身份证实名认证API接口介绍
  17. 怎么把PWM信号转为模拟量
  18. 基于OpenCV的图片电影换背景小实验(可用于证件照替换背景)_计算机视觉
  19. ICMAX解析无线路由器WAN口应该怎么设置
  20. 使用potplayer 录制视频

热门文章

  1. 无线路由器桥接的设置
  2. ScyllaDB 介绍
  3. 字符串多模式匹配:AC算法
  4. [ 新出漏洞篇 ] 核弹级漏洞 Log4j2 RCE 漏洞爆出,开发圈苦逼,安全圈过年,你赶上了吗 ?(外行都能看懂的漏洞分析)
  5. 学web前端开发和学习其他编程语言一样吗?
  6. 基于USRP-2945-2955和LABVIEW的 AOA 估计的相位检校问题记录
  7. 神笔马良? AI 绘画?GitHub 上这几个项目教你怎么玩!
  8. 工厂智能电表远程抄表系统项目,成功案例
  9. 一文搞懂CAS,CAS原理分析及ABA问题详解
  10. FLStudio水果编曲软件21.0版本下载及功能详细介绍