psoc4的capsense算是个比较实用的东西,触摸按键,显得有点高大上,呵呵。今天试用了一下,对照着数据手册,现在总结一下。

1,先说原理,官方做文档的时候应该把原理讲一下,不要上来就讲怎么用,怎么配置,如果不知道原理的话那只能照葫芦画瓢了,大致原理就是传感器获得外部电容值的大小然后减去内部基准得到一个差值,这个差值与设定的阈值比较,如果大于阈值就认为有手指按动,否则判断为没有按动,就这么简单。内部基准psoc起了个名字叫基线。基线是通过一定的算法得到的。

2,模块用的是capsense_csd2.1,关于模块的配置因为用的是便宜的cy8ckit-049-42xx套件,没有所谓的slider,但是片子的io都通过引线引出来了,板子边上都是过孔,这就够了。但是需要注意的是需要调节的灵敏一点,否则检测不到。

3,下面是一些细节性的东西。

1),基线官方给了如下定义

基线值的计算是在噪声阈值下计算的,举个例子,假如我设置的噪声阈值是10,而现在环境中有噪声,这些噪声造成了即使在没有点击按键的情况下传感器的读数也不是0,而是大于0小于10的值,假设是5,那么此时基线就会变成5,但是如果噪声阈值仍然是10,但是噪声较大,是20,那么此时基线值是不会改变的,依然是0,而此时就会判断为有按动按键。

2)迟滞

迟滞其实就是当外部电容增大的时候减去基线的差值自然也是增大的,增大到设定的阈值的时候并不会立即认为有触摸,而是需要大于阈值加迟滞值。而当外部电容减小到阈值下的时候也不会立即认为没有触摸,而是需要小于阈值减去迟滞值,才会认为没有触摸。

3)官方推荐的各个值设置

我的设置

手指阈值是10,噪声阈值是5,迟滞是2,防抖动是1,也就是不防抖了,采用8位计数。

4)对于capsense的具体硬件部分的工作原理就不是很清楚了,只知道用到了idac,和一个外部电容cmod,至于是怎么工作的,找不到资料。

5)软件部分用到几个函数,但是需要先了解一些数据结构。

用到的几个函数

关于capsense_checkiswidgetactive()其实比较的两个对象分别是阈值和capsence_sensorsignal[];而非官方说的capsense_signal[].官方的说法让人不知所云,专门找了英文文档也是这么写的,看来不是翻译的问题。

那么整个软件的流程其实就可以用数据的变化来总结,先是是获取原始数据,获取基线值,之后就是差值获取,然后差值与阈值比较得到结果,所以每次要想获得结果需要三个函数1,updateenabledbaselines()会获得baseline的值,并且用sensorraw的值减去baseline的值获得sensorsignal的值。2,scanenabledwidgets()获得sensorraw的值。3,checkiswidgetactive 将sensorsignal的值与阈值比较得到结果。

psoc4的capsense总结的更多相关文章

  1. psoc4的中断笔记

    psoc可以自定义中断服务函数.

  2. 蓝牙BLE实用教程

    蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...

  3. 蓝牙BLE实用教程(转载)

    欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Ready 和 Smart 以及传统蓝牙之间是什么关 ...

  4. 用了这么多年的MCU,你知道哪些MCU原厂最牛?

    单片机诞生于1971年,经历了SCM.MCU.SoC三大阶段.单片机由以前的1位.4位.8位.16位,发展到现在的32位甚至64位. 90年代后随着消费电子产品大发展,单片机技术得到了巨大提高,相继诞 ...

  5. psoc做dds

    今天用psoc做了dds,现在总结一下. 1dds用到的相位累加器是用verilog写的,本来准备用一下datapath,这是和fpga不一样的一点,用了类似alu的结构,但是看手册后发现,虽然可以执 ...

  6. 2018.5.28 PSOC第一枪:基于cypress的蓝牙开发

    Cypress-BLE 开发套件可以快速开发 物联网电子产品. PSOC编程特点: A 拖放各PSoC 组件到工作区中,以设计原理图B 完成各组件之间的布线,并配置GPIOC 使用所包含的组件API ...

  7. (转)I2C 上拉大小

    中断,GPIO,I2C等一般都是OC或者OD门,芯片内部无上拉电阻时,则外部必须加上拉电阻才能输出高电平.一般I/O端的驱动能力在2-4mA量级,OC或者OD门的导通电压为0.4V左右,手机中加在上拉 ...

  8. 触摸板PCB制作-TM12

    1.布局: 使 PSoC 与Sensor之间的距离保持最小化是一个不错的做法. 通常将 PSoC 与其他组件一起贴装到底层,而将 CapSense Sensor置于顶层上.  Sensor和栅格地层位 ...

  9. 上拉电阻大小对i2c总线的影响

    漏极开路上拉电阻取值为何不能很大或很小? 如果上拉电阻值过小,Vcc灌入端口的电流(Ic)将较大,这样会导致MOS管V2(三极管)不完全导通(Ib*β<Ic),有饱和状态变成放大状态,这样端口输 ...

随机推荐

  1. mongodb复制集开启安全认证

    之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权 ...

  2. 实例化后的map的默认值

    public class map默认值 { public static void main(String[] args) { Map<String, String> resultMap = ...

  3. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  4. Excel如何关闭进程

    在使用Microsoft.Interop.Excel对象的时候_application.Quit()并不能彻底关闭Excel进程,原因是没有释放掉非托管组建的引用. System.Runtime.In ...

  5. @Primary-在spring中常被忽视的注解

    在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的.但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary  ...

  6. 【Python MySQLdb】Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib解决办法

    使用MySQLdb遇到以下错误 ImportError: dlopen(/Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2./site ...

  7. section和div

    section和div 一.DIV div即division(区块),把文档分割为独立的.不同的部份.作用,以下三种情况应该用div标签: 1.用于页面布局,且不是 header.footer 之类的 ...

  8. js自定义对象.属性 笔记

    <一> js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtabl ...

  9. c# 三种取整方法 向上取整 向下取整 四舍五入

    Math.Round:四舍六入五取整 Math.Ceiling:向上取整,只要有小数都加1 Math.Floor:向下取整,总是舍去小数

  10. ElasticSearch6.0 高级应用之 多字段聚合Aggregation(二)

    ElasticSearch6.0 多字段聚合网上完整的资料很少 ,所以作者经过查阅资料,编写了聚合高级使用例子 例子是根据电商搜索实际场景模拟出来的 希望给大家带来帮助! 下面我们开始吧! 1. 创建 ...