zoukankan      html  css  js  c++  java
  • cpt212b--- 触摸芯片在Simplicity Studio中的配置

    1.软件的应用:

    可以依照你所需要的芯片类型建立适当的工程,下面是在没有j-link的情况时的一种操作方式

    建立完工程后,cpt212b的配置参数页面如上,更改参数点击Save 按钮,软件自动生成 .h 的文件,如下图,我们配置cpt212b的参数生成完毕,可以直接拿来用。

    做到这一步,你可以用官方的开发版将数据直接下载到芯片中,若果选择i2c的配置方式,继续向下走。先看官方的手册文档。

    摘自电子世界:https://www.sekorm.com/news/64319252.html

    CPT212BSilicon Labs公司推出的支持12个电容式触摸按键的触摸芯片,可以很方便的实现4*3的矩阵键盘。CPT212B高度集成化,只需要简单调整触摸参数,就可以实现触摸功能。CPT212B的触摸参数配置有两种方式,一种是通过C2接口,使用烧录器直接烧写Hex文件进行配置;一种是使用MCU通过I2C接口进行配置。

    因为CPT212B需要MCU协助完成触摸按键实现具体功能,所以使用MCU配置触摸按键参数,只需要增加配置参数的程序代码,就可以省略使用烧写工具烧写配置参数的生产流程,节约生产成本。

    使用MCU配置触摸按键参数,需要先把触摸按键的参数导入MCU的工程中。参数的获取可以从上文步骤操作,会生成一个“cpt212b_a01_gm_init.h”的头文件,将该头文件拷贝到工程中,以备程序调用。

    CPT212B复位后,进入参数配置模式,此时触摸按键不会动作。如果想直接进入触摸按键传感器模式,需要通过0x8指令进行配置,指令格式如图一所示。

                                                                       图1 模式切换指令

    配置模式时,CPT212B的I2C从地址固定为0xC0。传感器模式时,I2C的从地址是由配置参数时配置的从地址。所以在程序中需要定义两个不同的从地址。

        在配置模式时,将触摸按键参数写入CPT212B,需要通过以下步骤进行操作,且每一步操作成功,才能写入配置参数。每一条指令完成时,CPT212B会返回ACK。

    1.       CPT212B解锁

    向I2C的0xC0地址写入0x9,0xA5,0xF1三个数据。0x9为解锁指令,0xA5和0xF1为解锁参数。参数固定不变,使用其他参数无法完成解锁操作。

    2.       擦除原有配置参数

    向I2C的0xC0地址写入0xA指令开始擦除参数。完成后I2C会返回ACK。

    3.       写入新参数

    向I2C的0xC0地址写入0xB指令写入新参数,每条指令只能写入8个字节的参数,所以要将所有参数写入CPT212B,需要重复使用0xB指令。

    4.       写入CRC校验码

    向I2C的0xC0地址写入0xC指令,后面带两个字节的校验码值。该校验码在“cpt212b_a01_gm_init.h”头文件中自动生成:#define CPT212B_A01_GM_DEFAULT_CONFIG_CHECKSUM (0xA95B),可以直接调用该值。

    5.       验证写入正确性

    向I2C的0xC0地址发送读命令,返回一个字节值。如果返回0x80,表示写入正确,成功完成参数更新;如果返回0x01,表示出现错误,未能正确写入。

    整个参数写入流程的指令格式如图2所示。

                                                                                               图2 写入配置参数指令集

    Silicon Labs公司的开发SLSTK2021上有提供CPT212B的例程,例程路径:“..SimplicityStudiov4developersdks8051v4.1.5examplesEFM8BB2_SLSTK2021ACPT212B_Demo”,在C文件smbus.c中,有完整的配置流程代码。该例程中,CRC校验码由EFM8BB2的硬件CRC生成,许多MCU不带硬件CRC功能,可以直接调用配置头文件中的CRC校验值,省掉CRC生成函数。官方是有sdk固件包,有i2c 的样例,移植就可,下载sdk包的方式如下:

    具体的配置步骤按住官方demo 操作实现,可以看官方手册和函数手册

    2.开发问题点一:静电影响越过了Active threshold产生了激活显现,芯片功耗在800uA 持续跳动,问题主要是外接影响芯片的误检测,对功耗有要求的产品需要手动调节参数阀值。

    原厂手册工作原理如下:

       上图意思就是活动值是可以用来做侦测使用的。

      首先要知道触摸是如何产生的,判断的依据是触摸值 满足你的设置Touch delta要求,且越过Active threshold表示激活,满足touch delta及满足一个按键的波形就会产生一个按键。

    你这个现象很明显是因为越过了Active threshold产生了激活显现,请认真阅读并按需调整对应的值。如附件所示。
     
    button_debounce
    如果要设置防反跳可以在下面寄存器里填写, 这项参数设置可以有效的防止800uA 的唤醒,官方初始化是2 ,后期可以在8~10范围内调试, 如下图:

  • 相关阅读:
    将font-size设置为 12px 以下,Chrome浏览器只能显示12px怎么办?
    如何创建.gitignore文件,忽略不必要提交的文件
    linux中将网速设置成10baseT/Half用于测试
    点击checkbox后满足条件才改变状态
    使用parted和kpartx 来对sdcard镜像进行分区调整,顺便用一下losetup
    linux添加具有root权限的管理员账号
    windows下获取系统的UUID
    pip修改镜像源
    linux中umount和mount
    mac安装brew
  • 原文地址:https://www.cnblogs.com/LVNG2018/p/10514433.html
Copyright © 2011-2022 走看看