首页 > 产品 > 微控制器 (MCU) > CapTIvate™:引爆触摸新体验_2016 TI 嵌入式产品研讨会实录 >

微控制器 (MCU)

最新课程

热门课程

CapTIvate™:引爆触摸新体验.2

后面的内容就给大家介绍一下什么是触摸按键 触摸按键的一个大概原理是怎么样子的 那我们这个这种电容触摸呢 或者是叫电容式这种接近感应 它能够做什么 第一呢就是 电容式触摸实现一个触摸按键的一个功能 或者是滑条啊或是滚轮这种功能 另外是接近感应 就把我的产品给唤醒 或者说实现一个不同的效果的一个功能 然后另外就是手势识别 从原理上来讲的话 那主要就是我们知道第一代的这个 我们的基于 MSP43072 或者是 F4 系列的 这个触摸按键的话 它主要是基于 RC 震荡这么一个原理 它是用一个 timer 做时机 然后如果是 然后基于内部的一个比较器 如果是你就是让外部 这个 RC 电路进行震荡 它通过内部的这个 timer 去测它的频率或测它的周期 去计算它 当你的手指摁下去 或你的手指不摁下去的时候 这个频率的一个差值 通过这个差值呢它就可以把这个外部触摸按键 有没有按键按下去有没有响应 然后给测算出来 那它其实从我们开发者的角度来说 它的缺点其实很多了 第一个就是这种受环境的影响是比较大的 因为它是用 RC 震荡的这种方式 如果是你的外部的电路 比如说你的电容值或者是电阻值 受外部电路影响比较大的话 那它的测算是很不准的 另外呢就是从开发者角度来说 那我们当时那套工具 其实只提供了 library 没提供很好的一个就是上位机的一个开发工具 所以说调试起来很麻烦 另外呢像一些 除此之外像一些滤波的算法啊 或者是一些这种长期可靠性的 一些保证的话其实它是没有的 那很多都是基于我们比较有经验的工程师 自己的一些理解去做的 然后我们新的这套方案呢 它其实采用电荷转移的这种方式 它是把这种电容里面的电荷呢 转移到我们一个叫 sample 电容里面去 看它的一个转移的次数 然后当你的外部这个电容发生变化的时候 它这个转移次数是发生变化的 就是它会测算出了一个 delta 值来 这种方式其实它是比较 要比前面的一种要好很多 下面这个 PPT 呢 是介绍这个基本的一个电路了 主要是有电压和电阻这两个物理量 那电压呢我们知道其实它是为 是提供能量的一个物理量 它主要是 在测算一个单位面积一个电荷的 一个能量的这么一个量纲 那在我们这个 PCB 板上 或者是我们的系统中 电压的一个提供量主要是由电池来提供的 它一般电流的方向呢它主要是从 电池的正极然后通过电阻流向负极 然后电阻呢就是阻碍 我的自由电子流动的这么一个物理量 那因为它在我的导体内部呢 它这个自由电子会跟我的晶格发生碰撞 所以说 发生碰撞过程中它会表现出一定的 阻碍电流流动这么一个效果 所以说它在碰撞过程中它也会产生热能 这个是我们电阻为什么会发热 然后另外呢就是 这个电路中也表示是最简单的一个电路了 也表明了这个有电压有电阻 然后会形成回路以后 它会有电流形成 其实电容就是我们电容触摸按键的一个 最基本的一个物理量了 如果是当我的这个电容里边 没有任何电荷的话 比如说这个电路中有个开关合上以后 那我的电流会通过这个电池电源也好 或者是叫电压也好 然后通过电阻给这个电容充电 然后充电充满了以后 然后如果说我把这个开关给断开 那里边电容里边是有电荷的 电荷多少呢它还与这个电容的容量是有关系的 那这时候呢这个电容就表现了一个特性 就是因为它能储存电荷 所以说它跟电池就表现的其实很相似了 然后另外呢就是这个电荷 就是这个电容呢 可以给我们很多的这个 比如像超级电容 它可以给我们430来供电 然后如果是我们在这个下面这个回路上 就是架一个电线上去 然后把这个开关接到下面这条线上 形成另外一条回路 那这个电容完全就跟电池一样了 它开始放电通过 然后经过这个电阻然后形成一个回路 然后会有电流的生成 然后这个电流的大小呢 这个是完全与我的电容的大小是成比例关系的 然后电容呢它其实从物理结构上来说呢 也很简单那是有两个电极 然后中间有个绝缘层 中间会储存一些电荷来形成的 那下面来讨论一下触摸按键的一个应用 那这个就是很简单一个 PCB 板 或者是一个电容触摸的一个结构了 那最上面这一层就是我的这个丝印层 然后呢中间这个是我的绝缘层 就是这个覆盖层 一般是由亚克力或玻璃来形成的 然后还有中间的这个细的这一层 它是一个粘合层 用胶啊或用其它方式把它压合 跟我的PCB压合到一起 然后再就是下面这个结构 就是我的 PCB 板 最上边这层是铜皮 就是我的电极或是叫 sensor 就是主要用来接到我们的 MCU 引脚上去 然后中间这层就是我的 FR4 的 PCB 板 最下边这层就是我底层的这个铜皮 那其实大家做过电子就知道 它中间会有很多一些电荷效应在里面 或者一些寄生电容在里头 最简单的一个就是我的这个 铜皮这个 sensor 与大地之间是有个寄生电容 然后另外呢就是从我的板子上来讲的话 我的 PCB 电极跟我周边的电路 它是有一定的电容效应 另外就是我的铜皮跟 MCU 之间的走线 跟周围的电路也是有一定电容效应 那我们统一把它抽象出来放到这个位置 跟大地形成一个电容效应 那当我的手摁下去以后 主要是有两部分电容组成 第一部分就是我的手指跟底层的 这个 sensor 之间有一个电容存在 然后另外我的人体跟大地之间是有个电容存在 所以说当我的手摁或者不摁的时候 对于铜皮跟大地之间的电容值 它是会发生一些变化的 那就是接到我们 MCU 引脚上这个电容呢 它是有一定的变化 那它也是通过检测电容的一个这种 靠近跟不靠近的时候 这个电容的一个变化来实现触摸按键的 那我们实现的方式就是叫电荷转移法 那它是把这个储存在外部的这些 包括说我的手指跟地 或者其它的这几个电容里面的电荷 转移到内部一个采样电容里面去 然后通过这个电荷转移这种方式 来实现触摸按键 那这个从容值上来说的话 它的大小大概是在 pF 级别 基本是在一个皮法到二十个皮法之间 这个都是有的 从名字来说我们是叫电荷转移 所以说那我们知道电容其实是把 电荷储存的一个容器了 我们可以把它抽象成这个一个杯子 外部这个呢它是一个小点的一个杯子 就是跟我铜皮跟大地之间的一个电容呢 用一个小点的杯子来表示 那在我的 MCU 内部呢 我会有一个大点的电容 叫采样电容 来做计量用的 那就是在外部电容上储存的电荷呢 我可以通过内部这个采样电容来测量出来 它实现的方式它是通过 这个将外部电容 就黄色这部分就是电荷一个表现形式 一个抽象的一个形式了 就像水一样 然后我们是通过从这个小杯子往大杯子倒水 那能够到多少次来实现 通过这个次数来知道大概的外面这个 小杯子容量也好或者是电容的容值也好 这个红线呢就是我倒满的一个标志 说白了也是电压的一个值吧 那内部的大杯子大概是有64个皮法 容值是64个皮法 然后外部呢它是一个皮法级别 但是它大小是不知道 所以我通过小杯子往大杯子里转移电荷 或倒水也好 然后转移一次还没有满 然后再转移一次 再倒第二次还是没有满然后继续来转移 那直到我最后倒了64次 那这个到了我红线这个区域 那我可以把这个倒水的次数能知道 那我这时候可以有个转换的一个基础值 就是等于64 那这个值呢就是叫转换次数 叫 conversion count 总共呢我是转移了64次 然后呢将内部采样的电容装满了 所以说我们能够知道能够估算出外部小电容呢 只有 1/64 oz 1/64 的内部电容的大小 所以说大概是在 1oz 左右 如果是当我们的手指摁到我们按键的时候 那这个容值是会变大的 所以说当手摁下去以后 那我们就换一个大电杯子 那这个大杯子会大概是在32次 会灌32次能够把这个内部的 这个64 oz 的大杯子灌满 那通过这个次数的一个变化 从64次变到32次 那我们能够知道说 这时候外部的电容发生变化了 那可以是不是可以理解说 有手指摁下去或有按键摁下去了 基本的原理就是这么个原理 就是通过一系列的电路 然后去实现这么一个 通过内部的电荷往外面 通过外部的电容电荷往内部的电容去转移 通过这个转移次数 那我们知道这个电容的一个变化 相比传统那种通过测频率或者是测 其实最终的目的都是知道 外部电容的一个容值变化 然后来实现一个按键的监测 那内部这个采样电容呢或者这个大杯子呢 它是集成在我们 MCU 的硅片上去的 然后它是在 MCU 的带上面去 然后它的名字叫采样电容叫 Cs 然后外部这个呢 然后其实这个电容的大小是没有关系的 因为这个电容值一旦确定了以后 那我的这个 往这个电容里面充电的次数 其实也是会发生变化 但是只要我能检测每次 有没有手指摁下去每次的这个差值就可以了 知道这个差值以后我就可以很好检测按键了 那对于我们整个系统来说 它有用的信息其实就是 每次外部电容一个充电次数的一个变化 这是我们的一个框图 那首先呢 就是前面说到那个小杯子是在这个位置 小杯子是在这个位置 叫 Cx 这是我们小杯子的位置 大杯子的位置是在我们这个里面有个寄存器 Cs是在这个位置 那从框图上来说 那首先我们会有这个叫 IO Mux 它是我们引脚的一个分配了 我的电容是直接接到 MCU 的引脚上来的 然后接过来以后内部是有一个叫 Measurement Block 就是测量模块 主要由这几个方面组成 第一个是电荷转移的引擎 它是通过一定的手段去将 外部电容上电荷往里边转移 然后最终呢它会通过这个电荷转移的引擎呢 它会输出一个转移的次数 中间这部分叫信号调理 它会增加一个增益 跟 OFFSET 这么一个子模块 那对于电荷过来以后它会有些进行一些处理 最终送到我的采样电容上来 这是一个叫个计分器 然后这个电容上最终会有个电压在上边 然后通过这个电压跟我的参考电压相比较 通过这个比较器 最终生成一个转换完成的这么一个标志位 转化完成以后 我们 MCU 会把这个转换的次数 这个值给记录下来 记录下来以后就可以大概的能够 知道外部电容的一个情况了 从这个测量模块上来说呢 那我们每个测量模块内部呢 是有4个小的一个小 Block 然后外面其实它还挂了一些辅助的一些外设 比如像专门的 LDO 用于电容这种充电的 另外就是前面介绍的这个 电压的一个基准 reference 然后就是这个采样电容 另外呢它也通过一些 还有一些 oscillator 振荡器 做一些一定的一些 比如像跳频特性或扩频这种特性 用于 EMC 或 EMI 的一些预防 然后最后呢是有一个状态机可以实现 跑一些状态在里面可以实现接近唤醒啊 或者一些其它一些处理 另外它自己有一个单独的一个 timer 不占用系统的 timer 叫事件 timer 它跟那个 timerA 是类似的 正是由于这些单独的这些部分 比如像这个内部的这个 LDO 其实它的作用是很大的 我们知道像做第一代的 GR 系列的触摸按键的话 如果是外部供电会发生一定的变化 或说你 I/O 口上挂的 LED 过多的话 那对于按键其实它是影响比较大的 因为我们都是 我们知道 RC 震荡的曲线 是一个指数的一个曲线 所以说它如果是你的 LDO 就是3.3V 供电发生变化的话 那内部的 reference 也是变化比较大 所以它第一代的触摸按键 其实它如果说外面挂的 LED 过多 对于整个触摸的效果是影响比较大的 那我们这是独立于内部的 LDO 外部的 LDO 那我们内部会有一个1.5V的一个 LDO 那如果说外面发生一些波动的话 其实对内部的影响基本没有的 另外这个跳频 oscillator 呢 它可以有四种频率可以输出 从16M到11M之间 它的一个优点就是比如说做一些这种测试 或者是 EMC 要求比较严格的地方的话 那我四个频率会同时去 就是我一个按键呢会采样4次 用四个频率去同时去采 如果是同时采的四个结果是一样的话 那我们认为是一个有效的一个触摸 然后扩频技术其实主要是针对 EMI 的 对于将我的尖峰的一个频点的这个能量 给它扩到周边去 然后另外单独的这个 timer 就是它是可以有做这个 就是使用源去给它主动配置的 然后转换完成以后呢 我们可以输出一个中断 去告诉 MCU 去唤醒 MCU 去做处理 或做是做一些其它一些处理 这个是整个的一个的模块的运行情况 上午的时候我们同事也介绍说 它是有这种自电容或者互电容这种形式 那互电容一般是做这种按键矩阵用的 那我们知道最简单的一种形式 比如像左下角这种 它是我的电容跟大地之间的一个电容值 然后还有另外一种形式就是 我的两个引脚之间的一个电容值 那就是有一个叫 Tx 有一个叫 Rx 然后电场是从 Tx sensor 开始往外发出 然后到了 Rx sensor 上面去 它两个之间也是一个电容效应存在的 那通过这种呢我们可以很容易去做 这种矩阵式的一个触摸 可以支持更多的一个按键 那我们像这种形式的话 我们容值测量是在 Tx Rx 接点之间的 那像这种自电容的形式呢 它的测量都是我的引脚 或是我的电极跟地之间的 那我们这个所有的配置都是很灵活 都可以通过软件 或是我们的一个 design center 都可以很简单去配置 正是由于自电容跟互电容的存在呢 那我们在开发的时候 其实如果是你按键多也不要紧 我们也可以去处理 那如果是采用这种自电容形式的 它的电场形成是这种来形成的 那红色这部分就是我们的 sensor 电极 那电场是通过这个电极往外去辐射 然后形成这种电场 这个呢就是采用这种自电容的形式呢 它是每一个 sensor 都会接到 我们一个 CapTIvate 的 I/O 上面去的 那我们最多的 GR 系列的 CapTIvate 的 MCU 呢 它可以有16个I/O 所以说它最多支持16个触摸按键 那对于比如说像 高分辨率的 slider 或 wheel 的话 它支持是比较好的 另外呢像这种接近感应 我们也是推荐用自电容的检测的这种方式 那互电容呢我们通过昨天也可以看出 它是其实在这个 Tx 跟 Rx 两个电极之间 形成这么一个电场 因为都是这个 其实也是有一定电容效应在里边的 那如果是我手接近它了以后会破坏它这个电场 所以说它幅值可能发生变化的 所有的节点都是由这个 Tx 跟 Rx 两部分组成 那很容易实现就是这种按键矩阵的形式 最多可以支持到8x8 64个按键 另外呢它也支持多点触摸这种效果 比如说像我这个 类似于我电脑上这个触摸 pad 这个效果 然后第三种呢其实比如说我需要20个按键 那我就只好采取这种组合的方式 那可以这种自电容跟互电容都是同时存在的 这种形式也是比较灵活的 然后我们所有的软件都是很好的支持 下面给大家介绍一下 采取电荷转移这种方式的一些优点了 第一就是高分辨率 高分辨率主要体现在两个方面 第一就是支持一个低功耗3D的手势识别 比如说像上午介绍的我可以实现一个 左滑动右滑动的这么一个效果 最高的距离可以到30个厘米 然后如果是同时采样四个sensor 的话 那我们只需要在500个微秒以内 就可以完成这个采样 所以说它速度还是很快的 另外就像针对这种 slider 跟 wheel 的话 它分辨率最高呢可以到0.29个厘米 就是我下边会放四个 sensor 在下面 然后呢最近分辨率是0.029个厘米 其实分辨率还是蛮不错的 另外最后一个呢就是 我们会支持比较厚的这个玻璃 或者是塑料的一个介质层的 一种触摸效果 那比如说像有些应用中 比如有些锅炉的这种温度检测 或者一些特殊应用的话 那它可能这种触摸按键上面的 亚克力层是比较厚 那我们因为它有比较高的分辨率 它是可以支持的 我们有个 TI 的参考设计 它是实现了一个60厘米的一个玻璃 在玻璃上面实现这么一个触摸按键效果 不好意思 60毫米 对 60毫米实现了一个触摸按键的效果 它这个分辨率呢 最低是到了10个伏法左右 对电容的一个分辨率 那另外高分辨率来说的话 那主要是有下面这两个模块来实现的 第一就是增益这个 然后另外就有一个 Offset 增益呢 因为我们很多时候在设计触摸按键的时候 它外部这个电容的容量其实没法控制的 有大或有小 然后另外你手摁上去以后 它对于电容的一个变化也是有大有小的 那我们是通过这个增益 Gain 也是提供了两个变量 去来动态的调整外部电容的大小 就是它内部转移过电荷以后 会去动态调整它这个大小 然后让它能够适应外部电容的一个变化 另外一个就是 Offset 那它主要是跟我们灵敏度有关系的 它是将类似于 比如说我们外部电容有些寄生电容 或者有一些这种其它一些容性的影响的话 它是将那的部分电容的影响给去掉 就相当于减去一个直流的量 那它会把变化的量会放大 然后就是可靠性 那我们对于这个液体啊 或者是手掌的一个这种误触发的一个效果 是能够处理的很不错 那它主要的实现呢就是 以我们这个板子为例 它是在这个按键外面包了一层铜皮 那这个铜皮呢 它是接到我们触摸按键的 IO 上面去的 那如果说当我的水倒上去 或者是当我的手触碰到我这个按键板的话 那最先变化比较大的就是 我这个外面这个叫防护这个通道 变化比较大 那如果是它 我们通过一定的软件算法去检测防护通道 如果是它变化比较大的话 那么我们可以认为它是有水 或者是有手放上去 有误触发 就可以给你一个防止误触发的处理了 它的这个阈值可以设置的 可以动态的调整 那可以设的很高或者很低 这都是可以设置的 那它这个叫防护通道呢 它也是直接接到我们的芯片的 IO 上面去 也是作为一个触摸按键来存在的 因为它的面积比较大 所以说它能感测这个容量什么的 灵敏度也是相比其它的要高一些 对于这种噪声的一些抑制 或是过一些安规的一些测试的话 那我们也提供了很多的方法 第一就是前面介绍的就是 有那个跳频的 oslator 它是提供了四个频率 从16M到11.2M的一个频率出来 那用这四个频率 同时去采样这个电容的一个变化 如果是四个同时有按键的话 有按键反应的话 那我认为是一次正确的触发 另外就是扩频这种技术的话 有助于降低这个往外辐射能量的一个幅值 另外从软件上来说 我们也提供了一些滤波的一些算法 比如像这种触摸按键的一些采样的话 那进行一个很好的一个滤波效果 另外针对这种长期 比如说 我的产品会工作5年10年 或随着环境它会发生一些材质的一些变化的话 那我又是有一些长期的动态阈值调整 也会随着温度啊 或是随着湿度我们材质会发生变化 所以这个动态调整的时间的话 都是在程序里面可以设置 那这个图就是 这两个图就是我们做的一个实验了 就是当做的一个注入电流的一个实验 我是在电源上打入了一个3V这个信号上去 那像这种自感的方式 它采样出的结果是这样的 那实际的信号是这样的 那我最终通过我的一些处理 或者是一些算法处理以后呢 那蓝色这个就是我滤除后的一个基础值 那我们可以看到它这个值还是比较平稳的 有效的将我们的干扰信号给滤除掉 然后你可以看出在这个 在打入这个干扰的时候呢 这个阈值也是随着发生了一些变化 这个绿色这条线呢就是我们阈值 还有发生了一些变化 那由于 delta 值就变化比较大 所以说呢它会认为它是一次有效的一次按键 然后另外呢针对这种 IEC61000的一些 常用的一些测试的话 那我们也是有一颗板子针对这种测试 已经拿到了一些相应的一些认证 我们也知道就是很多时候呢就是 基本上所有的产品都是要经过这个认证的 我们针对这种 从硬件上我们会在意 触摸按键这些外围的这些外设啊 或者是一些模块 我们进行了一些优化 比如说跳频就是 另外就是有一些交流信号的 我们会检测它的过零点 在过零点的时候有个同步信号发出来 通过检测这个同步信号得到以后我们开始检测 那会把 会有效的避开交流信号幅值比较高的地方 这个也是在我们的硅片上完全能实现的 另外就是从软件上来说呢 我们有这个过采样 包括就是抗误触发 然后就是 AC 噪音的滤除的一些软件算法 去实现这种误触发的检测 然后从系统来说呢 我们也提供了很好的一个参考设计 去满足一些 EMC 的一些规则 针对这种液体倒到 我们触摸按板上的一个误触发的一个检测 我们是 就是前面介绍到的有这个防护通道的一个设置 然后来实现这种误触发的检测 另外就是针对这种 EMI 的问题的话 我们会有这种跳频 就是扩频的这个 oslator 然后可以有效的将这个辐射出去的频率 辐射出去的能量减少 这个模块就是针对这种 EMC 或 EMI 的 一些防护或者是保护的一些 一个模块了 就是这个跳频这个模块 还有扩频的 oslator 那通过这个 oslator 的引入呢 还是会把这个辐射频率 给扩散到这个频点周围去 那除此之外呢 我们这个系统也是支持金属触摸的效果 因为我们对于这个 电容检测的一个分辨率是比较高的 所以说 如果是你在金属板 跟我的 sensor 之间形成的电容效应 它也是可以检测出来的 所以说 后面会有详细介绍这个金属触摸的一个原理 另外就是针对这个 我们可以支持自电容检测和互电容检测的 它可以支持多达64个按键 这个3D手势识别前面都介绍了都 另外就接近感应都是可以支持 我们其实是针对这个基于我们 大家拿到的一个板子 它是有一个金属触摸的参考设计 上面有8个按键 那从结构上来说的话 我们这个金属触摸的结构呢主要分这五层 第一上面就是我的金属层 然后金属层跟我的 PCB 之间呢 会有一个介质层 就是用于把这个金属层和 PCB 板 进行绝缘的这么个层 正是因为这个介质层的存在呢 让这个上面这个金属板 跟我的 PCB 上的 sensor 之间呢 可以形成一个电容效应 然后再下边呢就是我的这个底板上 其实在我们的实际产品中 这下边这两个底板是可有可无的 那它是形成一个让 PCB 板 跟底下这个固定的板子粘合的这么两层 那从这种简化结构上来说的话 其实起作用的主要这三层 第一就是我的金属板还有介质层 然后介质层跟金属板还有 PCB 之间呢 会有一个就是叫空气层也好 或者是叫绝缘层也好 然后呢 PCB 板上面有个 sensor 然后 sensor 跟金属层之间呢 会有个电容效应存在 如果是当我的手摁到这个金属板子之后 因为金属板会有一定的 金属上会有一定的形变 所以说形变它会有一个 delta 的电容的一个变化 那我可以通过检测 delta 电容的一个变化 来实现一个触摸按键的一个检测 那在我们最新的参考设计上边呢 它可以实现一个手指摁压力度的一个检测 那因为我 大家都知道根据我力度的一个变化 那这个 delta 值其实变化是很明显的 也是随着变化的 那它是通过这个基础值 然后也可以把手指摁下去这个力度来检测出来 这是更详细的一个介绍 那我们知道就是 这个就是我们通常电容的一个表达有个公式呢 就是这个公式 那最主要的就是 我们知道比较重要的一个量就是 d 就是我的上面这金属层跟我下面这个 sensor 层之间的一个距离 当我的手摁下去以后 那它这个距离其实是发生变化的 那发生变化以后 其实我的电容值相应的也发生变化 那距离越近那个电容值会越大 就是通过这个公式 那也可以直观的知道它大概的原理了 那下面介绍一下低功耗的性能 那它首先它从分两个方面 第一呢就是 MCU 本身的这么一个 因为我们是基于 FRAM 的这个 MCU 它的每兆赫兹的功耗大概只有一百个微安左右 那会比这个 flash 版本的会低一半 那基于这个 FRAM 的 MCU 的话 我们可以实现每个按键是 大概是0.9个微安的一个电流消耗 那它的测试前提是扫描四个按键 那如果是我们使用单节电池供电的话 能够持续工作15年 另外呢就是我们铁电本身的一些优点就是 保证了这个功耗是比较低的 那整个电容触摸的这个检测 以及数据处理是不需要 MCU 干预的 那这个左边的流程图呢 也大概给大家介绍一个 然后首先 MCU 上电以后 它会把将这些按键进行一个初始化 包括我们通道啊 包括我们的 timer 的一个初始化 初始化完了以后 那我的 MCU 就处于休眠模式 整个这个 CapTIvate 这个模块呢 会自己会进行一个定期的会进行一个检测 检测的比如说我的阈值 检测到阈值 基础值呢已经超出了我的阈值了 那我会触发一个中断 将 MCU 唤醒 那大部分时间呢 MCU 就处于一个休眠模式 那这个模块是自己来工作的 这个唤醒这个机制呢主要是由 这个状态机的这么个逻辑来实现的 另外呢 像很多应用中 就是如果是你想实现这种低功耗的效果的话 也可以跟我们的一些无线的产品相配合 比如这个应用就是一个电子门锁的一个应用 那它是基于我们 FR26x 配合我们的一些 WIFI 啊 或者是 1GHz 以下或 BLE 将我的数据给发出去 然后按键的话 它可以采用这种塑料健或者金属按健 直接接到 MCU 上面去 然后外设的话可以加一些 NFC RFID 或者说指纹识别 然后最终呢是通过一个低功耗的马达驱动芯片 去驱动我的马达进行开门或者关门 那工具的话前面介绍的就是我们有这个 CapTIvate Design Center 这个工具 就是在第一代的 基于 GR 系列的那个电容触摸开发的话 那我们是缺少这个工具的 那对于有些阈值的设定啊 我们很多时候都是通过 我们开发工具 IAR 或 CCS 去检测这个 变量的一个变化来实现的 那在最新的这个呢 我们会提供一整套的这个 从按键设计到代码生成一整套的这么一个工具 大大简化了电容触摸的开发的难度 主要分几步来 第一步就是将我的按键通过控件的拖拉 放到我的窗口里面来 然后呢根据我的 PCB 或者我原理图通往的一个设置 然后将我的 MCU 的管脚 跟铜皮之间进行一个连接的一个配置 连接配置完了以后 我会有一个实时的一个 tunin 这么一个界面 那我会实时的看到我当前的检测的基础值 然后就是 delta 值都可以实时检测到 检测到了以后 那我可以就是通过生成代码这个按键 然后可以生成可以支持 CCS 或是支持 IER 的这个工程代码出来 那最后呢通过在 CCS 或 IER里面 将我生成的工程导入到 IDE 里面去 然后进行进一步的开发 整个流程都是还是比较简单的 然后也是支持按键滑条滚轮接近感应 这些 sensor 都是支持的 除此之外呢 针对有一些这些抗干扰啊 或者是一些软件算法在里面都是可以 都是集成的 都可以实时的来调整 另外呢 这个就是我们主要的一个软件开发的框图了 大部分的电容触摸的 API 都是集成在 ROM 里面去的 那我们通过一些回掉函数 去在我们应用程序中 去调用这些相应的 API 函数 然后去控制我们底层的外设 因为我们片上集成的16K的 ROM 所以说这个包括像 Driver-Lib 啊 或者是 CapTIvate 这个库 都是放在 ROM 里面的 都是放在 ROM 里面的 另外 BSL 也是放在 ROM 里面的 所以说你需要做的就是将你的这个通信程序 或者是软件初始化的一个程序 放在你的 FRAM 里面去 那还有很多的这个 大量的代码空间可以被你的系统来用 你可以放一个无线 或者是放一些其它的特殊的处理在里面 硬件开发工具的话那主要就是 大家拿到的一个板子叫 MSP CapTLvate FR2633 它是基于我们的 FR2633 MCU 做的这么一个开发工具 然后支持六个 上面里面有六个板子 支持多种的这种触摸按键 比如像这个滚轮滑条按键 然后另外就是一些接近感应它都是 能够很好的来评估的 如果是大家是对这个金属触摸有兴趣的话 那我们也是有金属触摸的一个板子 也可以接到这上面去 然后做金属触摸的一个评估 然后还有就是很多时候呢 我们在做按键设计的时候 可能说它需要一个反馈 那用来告知你有没有按键按下去 需要有这种金属 需要有这种按键的一个反馈出来 那我们也是后面会有 基于我们 haptic 的一个开发工具 它是基于线性马达驱动 叫 DRV2605L 这么一个开发工具 如果是按键手按上去以后 它会有一个振动效果出来 或者有一些呼吸灯的效果出来 上午我们同事也介绍说 这个最新的这个 MSP430 它都是有一些库函数支持的 那我们可以通过在我们的 MSPWare 里头 找到这些相应的一些库函数的支持 包括像很多外设都是有一些参考例程出来的 大家记住这些参考例程 就可以很快的完成触摸按键以外的 这些外设的一些使用 那下面我们来做第二个实验就是 就是我们这个 BSWP 的一个板子 然后可以通过这个 design center 去拖拉控件然后生成代码 然后最终在我们 CCS 里面 把程序下载到我们的芯片里面去 了解整个开发的一个过程 大家可以打开我们就是发给大家资料里面 有个 Lbs 然后有个 Lab_2 Lab_2 是介绍了整个实验的一个流程 那我们一步一步来 第一步呢就是先生成一个新的设计 那它的主要的步骤就是 首先在我们 CCS 里边 或者说单独的这个 design center 这个工具栏打开以后 然后创建一个新的工程 然后将我们的 MCU 拖到这个设计窗口来 然后对 MCU 进行配置 配置完了以后将控件拖进来 然后最后呢 将我的每一个控件的一些按键 跟我的 MCU 相对应起来 对应起来以后 然后最终生成可执行的代码 然后将可执行的代码然后进行保存 这是第一步 我们先做第一步吧 步骤的话就按这个 Lab_2 来进行就可以了

后面的内容就给大家介绍一下什么是触摸按键

触摸按键的一个大概原理是怎么样子的

那我们这个这种电容触摸呢

或者是叫电容式这种接近感应

它能够做什么

第一呢就是

电容式触摸实现一个触摸按键的一个功能

或者是滑条啊或是滚轮这种功能

另外是接近感应

就把我的产品给唤醒

或者说实现一个不同的效果的一个功能

然后另外就是手势识别

从原理上来讲的话

那主要就是我们知道第一代的这个

我们的基于 MSP43072

或者是 F4 系列的

这个触摸按键的话

它主要是基于 RC 震荡这么一个原理

它是用一个 timer 做时机

然后如果是

然后基于内部的一个比较器

如果是你就是让外部

这个 RC 电路进行震荡

它通过内部的这个 timer

去测它的频率或测它的周期

去计算它

当你的手指摁下去

或你的手指不摁下去的时候

这个频率的一个差值

通过这个差值呢它就可以把这个外部触摸按键

有没有按键按下去有没有响应

然后给测算出来

那它其实从我们开发者的角度来说

它的缺点其实很多了

第一个就是这种受环境的影响是比较大的

因为它是用 RC 震荡的这种方式

如果是你的外部的电路

比如说你的电容值或者是电阻值

受外部电路影响比较大的话

那它的测算是很不准的

另外呢就是从开发者角度来说

那我们当时那套工具

其实只提供了 library

没提供很好的一个就是上位机的一个开发工具

所以说调试起来很麻烦

另外呢像一些

除此之外像一些滤波的算法啊

或者是一些这种长期可靠性的

一些保证的话其实它是没有的

那很多都是基于我们比较有经验的工程师

自己的一些理解去做的

然后我们新的这套方案呢

它其实采用电荷转移的这种方式

它是把这种电容里面的电荷呢

转移到我们一个叫 sample 电容里面去

看它的一个转移的次数

然后当你的外部这个电容发生变化的时候

它这个转移次数是发生变化的

就是它会测算出了一个 delta 值来

这种方式其实它是比较

要比前面的一种要好很多

下面这个 PPT 呢

是介绍这个基本的一个电路了

主要是有电压和电阻这两个物理量

那电压呢我们知道其实它是为

是提供能量的一个物理量

它主要是

在测算一个单位面积一个电荷的

一个能量的这么一个量纲

那在我们这个 PCB 板上

或者是我们的系统中

电压的一个提供量主要是由电池来提供的

它一般电流的方向呢它主要是从

电池的正极然后通过电阻流向负极

然后电阻呢就是阻碍

我的自由电子流动的这么一个物理量

那因为它在我的导体内部呢

它这个自由电子会跟我的晶格发生碰撞

所以说

发生碰撞过程中它会表现出一定的

阻碍电流流动这么一个效果

所以说它在碰撞过程中它也会产生热能

这个是我们电阻为什么会发热

然后另外呢就是

这个电路中也表示是最简单的一个电路了

也表明了这个有电压有电阻

然后会形成回路以后

它会有电流形成

其实电容就是我们电容触摸按键的一个

最基本的一个物理量了

如果是当我的这个电容里边

没有任何电荷的话

比如说这个电路中有个开关合上以后

那我的电流会通过这个电池电源也好

或者是叫电压也好

然后通过电阻给这个电容充电

然后充电充满了以后

然后如果说我把这个开关给断开

那里边电容里边是有电荷的

电荷多少呢它还与这个电容的容量是有关系的

那这时候呢这个电容就表现了一个特性

就是因为它能储存电荷

所以说它跟电池就表现的其实很相似了

然后另外呢就是这个电荷

就是这个电容呢

可以给我们很多的这个

比如像超级电容

它可以给我们430来供电

然后如果是我们在这个下面这个回路上

就是架一个电线上去

然后把这个开关接到下面这条线上

形成另外一条回路

那这个电容完全就跟电池一样了

它开始放电通过

然后经过这个电阻然后形成一个回路

然后会有电流的生成

然后这个电流的大小呢

这个是完全与我的电容的大小是成比例关系的

然后电容呢它其实从物理结构上来说呢

也很简单那是有两个电极

然后中间有个绝缘层

中间会储存一些电荷来形成的

那下面来讨论一下触摸按键的一个应用

那这个就是很简单一个 PCB 板

或者是一个电容触摸的一个结构了

那最上面这一层就是我的这个丝印层

然后呢中间这个是我的绝缘层

就是这个覆盖层

一般是由亚克力或玻璃来形成的

然后还有中间的这个细的这一层

它是一个粘合层

用胶啊或用其它方式把它压合

跟我的PCB压合到一起

然后再就是下面这个结构

就是我的 PCB 板

最上边这层是铜皮

就是我的电极或是叫 sensor

就是主要用来接到我们的 MCU 引脚上去

然后中间这层就是我的 FR4 的 PCB 板

最下边这层就是我底层的这个铜皮

那其实大家做过电子就知道

它中间会有很多一些电荷效应在里面

或者一些寄生电容在里头

最简单的一个就是我的这个

铜皮这个 sensor 与大地之间是有个寄生电容

然后另外呢就是从我的板子上来讲的话

我的 PCB 电极跟我周边的电路

它是有一定的电容效应

另外就是我的铜皮跟 MCU 之间的走线

跟周围的电路也是有一定电容效应

那我们统一把它抽象出来放到这个位置

跟大地形成一个电容效应

那当我的手摁下去以后

主要是有两部分电容组成

第一部分就是我的手指跟底层的

这个 sensor 之间有一个电容存在

然后另外我的人体跟大地之间是有个电容存在

所以说当我的手摁或者不摁的时候

对于铜皮跟大地之间的电容值

它是会发生一些变化的

那就是接到我们 MCU 引脚上这个电容呢

它是有一定的变化

那它也是通过检测电容的一个这种

靠近跟不靠近的时候

这个电容的一个变化来实现触摸按键的

那我们实现的方式就是叫电荷转移法

那它是把这个储存在外部的这些

包括说我的手指跟地

或者其它的这几个电容里面的电荷

转移到内部一个采样电容里面去

然后通过这个电荷转移这种方式

来实现触摸按键

那这个从容值上来说的话

它的大小大概是在 pF 级别

基本是在一个皮法到二十个皮法之间

这个都是有的

从名字来说我们是叫电荷转移

所以说那我们知道电容其实是把

电荷储存的一个容器了

我们可以把它抽象成这个一个杯子

外部这个呢它是一个小点的一个杯子

就是跟我铜皮跟大地之间的一个电容呢

用一个小点的杯子来表示

那在我的 MCU 内部呢

我会有一个大点的电容

叫采样电容

来做计量用的

那就是在外部电容上储存的电荷呢

我可以通过内部这个采样电容来测量出来

它实现的方式它是通过

这个将外部电容

就黄色这部分就是电荷一个表现形式

一个抽象的一个形式了

就像水一样

然后我们是通过从这个小杯子往大杯子倒水

那能够到多少次来实现

通过这个次数来知道大概的外面这个

小杯子容量也好或者是电容的容值也好

这个红线呢就是我倒满的一个标志

说白了也是电压的一个值吧

那内部的大杯子大概是有64个皮法

容值是64个皮法

然后外部呢它是一个皮法级别

但是它大小是不知道

所以我通过小杯子往大杯子里转移电荷

或倒水也好

然后转移一次还没有满

然后再转移一次

再倒第二次还是没有满然后继续来转移

那直到我最后倒了64次

那这个到了我红线这个区域

那我可以把这个倒水的次数能知道

那我这时候可以有个转换的一个基础值

就是等于64

那这个值呢就是叫转换次数

叫 conversion count

总共呢我是转移了64次

然后呢将内部采样的电容装满了

所以说我们能够知道能够估算出外部小电容呢

只有 1/64 oz

1/64 的内部电容的大小

所以说大概是在 1oz 左右

如果是当我们的手指摁到我们按键的时候

那这个容值是会变大的

所以说当手摁下去以后

那我们就换一个大电杯子

那这个大杯子会大概是在32次

会灌32次能够把这个内部的

这个64 oz 的大杯子灌满

那通过这个次数的一个变化

从64次变到32次

那我们能够知道说

这时候外部的电容发生变化了

那可以是不是可以理解说

有手指摁下去或有按键摁下去了

基本的原理就是这么个原理

就是通过一系列的电路

然后去实现这么一个

通过内部的电荷往外面

通过外部的电容电荷往内部的电容去转移

通过这个转移次数

那我们知道这个电容的一个变化

相比传统那种通过测频率或者是测

其实最终的目的都是知道

外部电容的一个容值变化

然后来实现一个按键的监测

那内部这个采样电容呢或者这个大杯子呢

它是集成在我们 MCU 的硅片上去的

然后它是在 MCU 的带上面去

然后它的名字叫采样电容叫 Cs

然后外部这个呢

然后其实这个电容的大小是没有关系的

因为这个电容值一旦确定了以后

那我的这个

往这个电容里面充电的次数

其实也是会发生变化

但是只要我能检测每次

有没有手指摁下去每次的这个差值就可以了

知道这个差值以后我就可以很好检测按键了

那对于我们整个系统来说

它有用的信息其实就是

每次外部电容一个充电次数的一个变化

这是我们的一个框图

那首先呢

就是前面说到那个小杯子是在这个位置

小杯子是在这个位置

叫 Cx

这是我们小杯子的位置

大杯子的位置是在我们这个里面有个寄存器

Cs是在这个位置

那从框图上来说

那首先我们会有这个叫 IO Mux

它是我们引脚的一个分配了

我的电容是直接接到 MCU 的引脚上来的

然后接过来以后内部是有一个叫

Measurement Block

就是测量模块

主要由这几个方面组成

第一个是电荷转移的引擎

它是通过一定的手段去将

外部电容上电荷往里边转移

然后最终呢它会通过这个电荷转移的引擎呢

它会输出一个转移的次数

中间这部分叫信号调理

它会增加一个增益

跟 OFFSET 这么一个子模块

那对于电荷过来以后它会有些进行一些处理

最终送到我的采样电容上来

这是一个叫个计分器

然后这个电容上最终会有个电压在上边

然后通过这个电压跟我的参考电压相比较

通过这个比较器

最终生成一个转换完成的这么一个标志位

转化完成以后

我们 MCU 会把这个转换的次数

这个值给记录下来

记录下来以后就可以大概的能够

知道外部电容的一个情况了

从这个测量模块上来说呢

那我们每个测量模块内部呢

是有4个小的一个小 Block

然后外面其实它还挂了一些辅助的一些外设

比如像专门的 LDO

用于电容这种充电的

另外就是前面介绍的这个

电压的一个基准 reference

然后就是这个采样电容

另外呢它也通过一些

还有一些 oscillator 振荡器

做一些一定的一些

比如像跳频特性或扩频这种特性

用于 EMC 或 EMI 的一些预防

然后最后呢是有一个状态机可以实现

跑一些状态在里面可以实现接近唤醒啊

或者一些其它一些处理

另外它自己有一个单独的一个 timer

不占用系统的 timer

叫事件 timer

它跟那个 timerA 是类似的

正是由于这些单独的这些部分

比如像这个内部的这个 LDO

其实它的作用是很大的

我们知道像做第一代的

GR 系列的触摸按键的话

如果是外部供电会发生一定的变化

或说你 I/O 口上挂的 LED 过多的话

那对于按键其实它是影响比较大的

因为我们都是

我们知道 RC 震荡的曲线

是一个指数的一个曲线

所以说它如果是你的 LDO

就是3.3V 供电发生变化的话

那内部的 reference 也是变化比较大

所以它第一代的触摸按键

其实它如果说外面挂的 LED 过多

对于整个触摸的效果是影响比较大的

那我们这是独立于内部的 LDO

外部的 LDO

那我们内部会有一个1.5V的一个 LDO

那如果说外面发生一些波动的话

其实对内部的影响基本没有的

另外这个跳频 oscillator 呢

它可以有四种频率可以输出

从16M到11M之间

它的一个优点就是比如说做一些这种测试

或者是 EMC 要求比较严格的地方的话

那我四个频率会同时去

就是我一个按键呢会采样4次

用四个频率去同时去采

如果是同时采的四个结果是一样的话

那我们认为是一个有效的一个触摸

然后扩频技术其实主要是针对 EMI 的

对于将我的尖峰的一个频点的这个能量

给它扩到周边去

然后另外单独的这个 timer

就是它是可以有做这个

就是使用源去给它主动配置的

然后转换完成以后呢

我们可以输出一个中断

去告诉 MCU 去唤醒 MCU 去做处理

或做是做一些其它一些处理

这个是整个的一个的模块的运行情况

上午的时候我们同事也介绍说

它是有这种自电容或者互电容这种形式

那互电容一般是做这种按键矩阵用的

那我们知道最简单的一种形式

比如像左下角这种

它是我的电容跟大地之间的一个电容值

然后还有另外一种形式就是

我的两个引脚之间的一个电容值

那就是有一个叫 Tx

有一个叫 Rx

然后电场是从 Tx sensor 开始往外发出

然后到了 Rx sensor 上面去

它两个之间也是一个电容效应存在的

那通过这种呢我们可以很容易去做

这种矩阵式的一个触摸

可以支持更多的一个按键

那我们像这种形式的话

我们容值测量是在 Tx Rx 接点之间的

那像这种自电容的形式呢

它的测量都是我的引脚

或是我的电极跟地之间的

那我们这个所有的配置都是很灵活

都可以通过软件

或是我们的一个 design center

都可以很简单去配置

正是由于自电容跟互电容的存在呢

那我们在开发的时候

其实如果是你按键多也不要紧

我们也可以去处理

那如果是采用这种自电容形式的

它的电场形成是这种来形成的

那红色这部分就是我们的 sensor 电极

那电场是通过这个电极往外去辐射

然后形成这种电场

这个呢就是采用这种自电容的形式呢

它是每一个 sensor 都会接到

我们一个 CapTIvate 的 I/O 上面去的

那我们最多的 GR 系列的

CapTIvate 的 MCU 呢

它可以有16个I/O

所以说它最多支持16个触摸按键

那对于比如说像

高分辨率的 slider 或 wheel 的话

它支持是比较好的

另外呢像这种接近感应

我们也是推荐用自电容的检测的这种方式

那互电容呢我们通过昨天也可以看出

它是其实在这个 Tx 跟 Rx 两个电极之间

形成这么一个电场

因为都是这个

其实也是有一定电容效应在里边的

那如果是我手接近它了以后会破坏它这个电场

所以说它幅值可能发生变化的

所有的节点都是由这个 Tx 跟 Rx 两部分组成

那很容易实现就是这种按键矩阵的形式

最多可以支持到8x8 64个按键

另外呢它也支持多点触摸这种效果

比如说像我这个

类似于我电脑上这个触摸 pad 这个效果

然后第三种呢其实比如说我需要20个按键

那我就只好采取这种组合的方式

那可以这种自电容跟互电容都是同时存在的

这种形式也是比较灵活的

然后我们所有的软件都是很好的支持

下面给大家介绍一下

采取电荷转移这种方式的一些优点了

第一就是高分辨率

高分辨率主要体现在两个方面

第一就是支持一个低功耗3D的手势识别

比如说像上午介绍的我可以实现一个

左滑动右滑动的这么一个效果

最高的距离可以到30个厘米

然后如果是同时采样四个sensor 的话

那我们只需要在500个微秒以内

就可以完成这个采样

所以说它速度还是很快的

另外就像针对这种

slider 跟 wheel 的话

它分辨率最高呢可以到0.29个厘米

就是我下边会放四个 sensor 在下面

然后呢最近分辨率是0.029个厘米

其实分辨率还是蛮不错的

另外最后一个呢就是

我们会支持比较厚的这个玻璃

或者是塑料的一个介质层的

一种触摸效果

那比如说像有些应用中

比如有些锅炉的这种温度检测

或者一些特殊应用的话

那它可能这种触摸按键上面的

亚克力层是比较厚

那我们因为它有比较高的分辨率

它是可以支持的

我们有个 TI 的参考设计

它是实现了一个60厘米的一个玻璃

在玻璃上面实现这么一个触摸按键效果

不好意思 60毫米 对

60毫米实现了一个触摸按键的效果

它这个分辨率呢

最低是到了10个伏法左右

对电容的一个分辨率

那另外高分辨率来说的话

那主要是有下面这两个模块来实现的

第一就是增益这个

然后另外就有一个 Offset

增益呢

因为我们很多时候在设计触摸按键的时候

它外部这个电容的容量其实没法控制的

有大或有小

然后另外你手摁上去以后

它对于电容的一个变化也是有大有小的

那我们是通过这个增益 Gain

也是提供了两个变量

去来动态的调整外部电容的大小

就是它内部转移过电荷以后

会去动态调整它这个大小

然后让它能够适应外部电容的一个变化

另外一个就是 Offset

那它主要是跟我们灵敏度有关系的

它是将类似于

比如说我们外部电容有些寄生电容

或者有一些这种其它一些容性的影响的话

它是将那的部分电容的影响给去掉

就相当于减去一个直流的量

那它会把变化的量会放大

然后就是可靠性

那我们对于这个液体啊

或者是手掌的一个这种误触发的一个效果

是能够处理的很不错

那它主要的实现呢就是

以我们这个板子为例

它是在这个按键外面包了一层铜皮

那这个铜皮呢

它是接到我们触摸按键的 IO 上面去的

那如果说当我的水倒上去

或者是当我的手触碰到我这个按键板的话

那最先变化比较大的就是

我这个外面这个叫防护这个通道

变化比较大

那如果是它

我们通过一定的软件算法去检测防护通道

如果是它变化比较大的话

那么我们可以认为它是有水

或者是有手放上去

有误触发

就可以给你一个防止误触发的处理了

它的这个阈值可以设置的

可以动态的调整

那可以设的很高或者很低

这都是可以设置的

那它这个叫防护通道呢

它也是直接接到我们的芯片的 IO 上面去

也是作为一个触摸按键来存在的

因为它的面积比较大

所以说它能感测这个容量什么的

灵敏度也是相比其它的要高一些

对于这种噪声的一些抑制

或是过一些安规的一些测试的话

那我们也提供了很多的方法

第一就是前面介绍的就是

有那个跳频的 oslator

它是提供了四个频率

从16M到11.2M的一个频率出来

那用这四个频率

同时去采样这个电容的一个变化

如果是四个同时有按键的话

有按键反应的话

那我认为是一次正确的触发

另外就是扩频这种技术的话

有助于降低这个往外辐射能量的一个幅值

另外从软件上来说

我们也提供了一些滤波的一些算法

比如像这种触摸按键的一些采样的话

那进行一个很好的一个滤波效果

另外针对这种长期

比如说

我的产品会工作5年10年

或随着环境它会发生一些材质的一些变化的话

那我又是有一些长期的动态阈值调整

也会随着温度啊

或是随着湿度我们材质会发生变化

所以这个动态调整的时间的话

都是在程序里面可以设置

那这个图就是

这两个图就是我们做的一个实验了

就是当做的一个注入电流的一个实验

我是在电源上打入了一个3V这个信号上去

那像这种自感的方式

它采样出的结果是这样的

那实际的信号是这样的

那我最终通过我的一些处理

或者是一些算法处理以后呢

那蓝色这个就是我滤除后的一个基础值

那我们可以看到它这个值还是比较平稳的

有效的将我们的干扰信号给滤除掉

然后你可以看出在这个

在打入这个干扰的时候呢

这个阈值也是随着发生了一些变化

这个绿色这条线呢就是我们阈值

还有发生了一些变化

那由于 delta 值就变化比较大

所以说呢它会认为它是一次有效的一次按键

然后另外呢针对这种

IEC61000的一些

常用的一些测试的话

那我们也是有一颗板子针对这种测试

已经拿到了一些相应的一些认证

我们也知道就是很多时候呢就是

基本上所有的产品都是要经过这个认证的

我们针对这种

从硬件上我们会在意

触摸按键这些外围的这些外设啊

或者是一些模块

我们进行了一些优化

比如说跳频就是

另外就是有一些交流信号的

我们会检测它的过零点

在过零点的时候有个同步信号发出来

通过检测这个同步信号得到以后我们开始检测

那会把

会有效的避开交流信号幅值比较高的地方

这个也是在我们的硅片上完全能实现的

另外就是从软件上来说呢

我们有这个过采样

包括就是抗误触发

然后就是 AC 噪音的滤除的一些软件算法

去实现这种误触发的检测

然后从系统来说呢

我们也提供了很好的一个参考设计

去满足一些 EMC 的一些规则

针对这种液体倒到

我们触摸按板上的一个误触发的一个检测

我们是

就是前面介绍到的有这个防护通道的一个设置

然后来实现这种误触发的检测

另外就是针对这种 EMI 的问题的话

我们会有这种跳频

就是扩频的这个 oslator

然后可以有效的将这个辐射出去的频率

辐射出去的能量减少

这个模块就是针对这种 EMC 或 EMI 的

一些防护或者是保护的一些

一个模块了

就是这个跳频这个模块

还有扩频的 oslator

那通过这个 oslator 的引入呢

还是会把这个辐射频率

给扩散到这个频点周围去

那除此之外呢

我们这个系统也是支持金属触摸的效果

因为我们对于这个

电容检测的一个分辨率是比较高的

所以说

如果是你在金属板

跟我的 sensor 之间形成的电容效应

它也是可以检测出来的

所以说

后面会有详细介绍这个金属触摸的一个原理

另外就是针对这个

我们可以支持自电容检测和互电容检测的

它可以支持多达64个按键

这个3D手势识别前面都介绍了都

另外就接近感应都是可以支持

我们其实是针对这个基于我们

大家拿到的一个板子

它是有一个金属触摸的参考设计

上面有8个按键

那从结构上来说的话

我们这个金属触摸的结构呢主要分这五层

第一上面就是我的金属层

然后金属层跟我的 PCB 之间呢

会有一个介质层

就是用于把这个金属层和 PCB 板

进行绝缘的这么个层

正是因为这个介质层的存在呢

让这个上面这个金属板

跟我的 PCB 上的 sensor 之间呢

可以形成一个电容效应

然后再下边呢就是我的这个底板上

其实在我们的实际产品中

这下边这两个底板是可有可无的

那它是形成一个让 PCB 板

跟底下这个固定的板子粘合的这么两层

那从这种简化结构上来说的话

其实起作用的主要这三层

第一就是我的金属板还有介质层

然后介质层跟金属板还有 PCB 之间呢

会有一个就是叫空气层也好

或者是叫绝缘层也好

然后呢 PCB 板上面有个 sensor

然后 sensor 跟金属层之间呢

会有个电容效应存在

如果是当我的手摁到这个金属板子之后

因为金属板会有一定的

金属上会有一定的形变

所以说形变它会有一个

delta 的电容的一个变化

那我可以通过检测 delta 电容的一个变化

来实现一个触摸按键的一个检测

那在我们最新的参考设计上边呢

它可以实现一个手指摁压力度的一个检测

那因为我

大家都知道根据我力度的一个变化

那这个 delta 值其实变化是很明显的

也是随着变化的

那它是通过这个基础值

然后也可以把手指摁下去这个力度来检测出来

这是更详细的一个介绍

那我们知道就是

这个就是我们通常电容的一个表达有个公式呢

就是这个公式

那最主要的就是

我们知道比较重要的一个量就是 d

就是我的上面这金属层跟我下面这个

sensor 层之间的一个距离

当我的手摁下去以后

那它这个距离其实是发生变化的

那发生变化以后

其实我的电容值相应的也发生变化

那距离越近那个电容值会越大

就是通过这个公式

那也可以直观的知道它大概的原理了

那下面介绍一下低功耗的性能

那它首先它从分两个方面

第一呢就是 MCU 本身的这么一个

因为我们是基于 FRAM 的这个 MCU

它的每兆赫兹的功耗大概只有一百个微安左右

那会比这个 flash 版本的会低一半

那基于这个 FRAM 的 MCU 的话

我们可以实现每个按键是

大概是0.9个微安的一个电流消耗

那它的测试前提是扫描四个按键

那如果是我们使用单节电池供电的话

能够持续工作15年

另外呢就是我们铁电本身的一些优点就是

保证了这个功耗是比较低的

那整个电容触摸的这个检测

以及数据处理是不需要 MCU 干预的

那这个左边的流程图呢

也大概给大家介绍一个

然后首先 MCU 上电以后

它会把将这些按键进行一个初始化

包括我们通道啊

包括我们的 timer 的一个初始化

初始化完了以后

那我的 MCU 就处于休眠模式

整个这个 CapTIvate 这个模块呢

会自己会进行一个定期的会进行一个检测

检测的比如说我的阈值

检测到阈值 基础值呢已经超出了我的阈值了

那我会触发一个中断

将 MCU 唤醒

那大部分时间呢

MCU 就处于一个休眠模式

那这个模块是自己来工作的

这个唤醒这个机制呢主要是由

这个状态机的这么个逻辑来实现的

另外呢

像很多应用中

就是如果是你想实现这种低功耗的效果的话

也可以跟我们的一些无线的产品相配合

比如这个应用就是一个电子门锁的一个应用

那它是基于我们 FR26x

配合我们的一些 WIFI 啊

或者是 1GHz 以下或 BLE

将我的数据给发出去

然后按键的话

它可以采用这种塑料健或者金属按健

直接接到 MCU 上面去

然后外设的话可以加一些 NFC RFID

或者说指纹识别

然后最终呢是通过一个低功耗的马达驱动芯片

去驱动我的马达进行开门或者关门

那工具的话前面介绍的就是我们有这个

CapTIvate Design Center 这个工具

就是在第一代的

基于 GR 系列的那个电容触摸开发的话

那我们是缺少这个工具的

那对于有些阈值的设定啊

我们很多时候都是通过

我们开发工具 IAR 或 CCS 去检测这个

变量的一个变化来实现的

那在最新的这个呢

我们会提供一整套的这个

从按键设计到代码生成一整套的这么一个工具

大大简化了电容触摸的开发的难度

主要分几步来

第一步就是将我的按键通过控件的拖拉

放到我的窗口里面来

然后呢根据我的 PCB

或者我原理图通往的一个设置

然后将我的 MCU 的管脚

跟铜皮之间进行一个连接的一个配置

连接配置完了以后

我会有一个实时的一个 tunin 这么一个界面

那我会实时的看到我当前的检测的基础值

然后就是 delta 值都可以实时检测到

检测到了以后

那我可以就是通过生成代码这个按键

然后可以生成可以支持 CCS

或是支持 IER 的这个工程代码出来

那最后呢通过在 CCS 或 IER里面

将我生成的工程导入到 IDE 里面去

然后进行进一步的开发

整个流程都是还是比较简单的

然后也是支持按键滑条滚轮接近感应

这些 sensor 都是支持的

除此之外呢

针对有一些这些抗干扰啊

或者是一些软件算法在里面都是可以

都是集成的

都可以实时的来调整

另外呢

这个就是我们主要的一个软件开发的框图了

大部分的电容触摸的 API

都是集成在 ROM 里面去的

那我们通过一些回掉函数

去在我们应用程序中

去调用这些相应的 API 函数

然后去控制我们底层的外设

因为我们片上集成的16K的 ROM

所以说这个包括像 Driver-Lib 啊

或者是 CapTIvate 这个库

都是放在 ROM 里面的

都是放在 ROM 里面的

另外 BSL 也是放在 ROM 里面的

所以说你需要做的就是将你的这个通信程序

或者是软件初始化的一个程序

放在你的 FRAM 里面去

那还有很多的这个

大量的代码空间可以被你的系统来用

你可以放一个无线

或者是放一些其它的特殊的处理在里面

硬件开发工具的话那主要就是

大家拿到的一个板子叫

MSP CapTLvate FR2633

它是基于我们的 FR2633 MCU

做的这么一个开发工具

然后支持六个

上面里面有六个板子

支持多种的这种触摸按键

比如像这个滚轮滑条按键

然后另外就是一些接近感应它都是

能够很好的来评估的

如果是大家是对这个金属触摸有兴趣的话

那我们也是有金属触摸的一个板子

也可以接到这上面去

然后做金属触摸的一个评估

然后还有就是很多时候呢

我们在做按键设计的时候

可能说它需要一个反馈

那用来告知你有没有按键按下去

需要有这种金属

需要有这种按键的一个反馈出来

那我们也是后面会有

基于我们 haptic 的一个开发工具

它是基于线性马达驱动

叫 DRV2605L 这么一个开发工具

如果是按键手按上去以后

它会有一个振动效果出来

或者有一些呼吸灯的效果出来

上午我们同事也介绍说

这个最新的这个 MSP430

它都是有一些库函数支持的

那我们可以通过在我们的 MSPWare 里头

找到这些相应的一些库函数的支持

包括像很多外设都是有一些参考例程出来的

大家记住这些参考例程

就可以很快的完成触摸按键以外的

这些外设的一些使用

那下面我们来做第二个实验就是

就是我们这个 BSWP 的一个板子

然后可以通过这个 design center

去拖拉控件然后生成代码

然后最终在我们 CCS 里面

把程序下载到我们的芯片里面去

了解整个开发的一个过程

大家可以打开我们就是发给大家资料里面

有个 Lbs

然后有个 Lab_2

Lab_2 是介绍了整个实验的一个流程

那我们一步一步来

第一步呢就是先生成一个新的设计

那它的主要的步骤就是

首先在我们 CCS 里边

或者说单独的这个 design center

这个工具栏打开以后

然后创建一个新的工程

然后将我们的 MCU 拖到这个设计窗口来

然后对 MCU 进行配置

配置完了以后将控件拖进来

然后最后呢

将我的每一个控件的一些按键

跟我的 MCU 相对应起来

对应起来以后

然后最终生成可执行的代码

然后将可执行的代码然后进行保存

这是第一步

我们先做第一步吧

步骤的话就按这个 Lab_2 来进行就可以了

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

CapTIvate™:引爆触摸新体验.2

所属课程:CapTIvate™:引爆触摸新体验_2016 TI 嵌入式产品研讨会实录 发布时间:2016.08.30 视频集数:4 本节视频时长:00:50:00

相关下载

暂无内容

技术支持

new
关闭广告