软件的应用:

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的例程,例程路径:“..\SimplicityStudio\v4\developer\sdks\8051\v4.1.5\examples\EFM8BB2_SLSTK2021A\CPT212B_Demo”,在C文件smbus.c中,有完整的配置流程代码。该例程中,CRC校验码由EFM8BB2的硬件CRC生成,许多MCU不带硬件CRC功能,可以直接调用配置头文件中的CRC校验值,省掉CRC生成函数。官方是有sdk固件包,有i2c 的样例,移植就可,下载sdk包的方式如下:

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

可以看到没个参数的范围,及它的作用。

cpt212b--- 触摸芯片配置的更多相关文章

  1. VKD224B触摸芯片调试笔记

    1.通过阅读datasheet了解芯片怎么使用,一般datasheet会提供参考电路.和相应的电气参数. 通过上面的表格可以知道芯片的供电,所需电流. 这个芯片可以通过引脚选择模式.通过上面的选项设置 ...

  2. Spartan6系列之芯片配置模式详解

    1.   配置概述 Spartan6系列FPGA通过把应用程序数据导入芯片内部存储器完成芯片的配置.Spart-6 FPGA可以自己从外部非易失性存储器导入编程数据,或者通过外界的微处理器.DSP等对 ...

  3. Archlinux: 优化触摸板配置

    在逛 Archlinuxcn BBS 时看到这个帖子: fcitx 输入法看不到选词,上面键盘也不见了! 等待妹子的 依云 提到了 infinality, 并且给出了这个链接: fix-infinal ...

  4. Linux下时钟框架实践---一款芯片的时钟树配置

    关键词:时钟.PLL.Mux.Divider.Gate.clk_summary等. 时钟和电源是各种设备的基础设施,整个时钟框架可以抽象为几种基本的元器件:负责提供晶振 Linux内核提供了良好的CC ...

  5. 第29章 电容触摸屏—触摸画板—零死角玩转STM32-F429系列

    第29章     电容触摸屏—触摸画板 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  6. 【STM32H7教程】第54章 STM32H7的LTDC应用之LCD电阻触摸和电容触摸

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第54章       STM32H7的LTDC应用之LCD电阻 ...

  7. STM32采集电阻触摸贴膜

    今天为了解决一个测量电阻屏压力的问题,自己直接用STM32做了一个测量电阻屏的程序(直接把触摸屏的四根线接到单片机引脚上),通过AD切换采集,采集X轴电压,Y轴电压,和压力..最后附上自己的程序 先说 ...

  8. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Boot配置. 在上一篇文章 Boot简介 里痞子衡为大家介绍了Boot基本原理以及i.MXRT Bo ...

  9. 对于phy芯片的认识

    一,关于phy芯片 以RTL8211E(G)为例 PHY是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU) 通过SM ...

随机推荐

  1. intellij idea 程序包不可见问题

    刚用intellij idea不久,出现了个程序包不可见的问题. 原因:jdk9的问题,用的是jdk9就会出现这个问题. 解决办法:把jsk9换成jdk1.8就能解决.

  2. windows上传文件到linux云服务器上

    安装putty,将pscp.exe移到 C:\Windows\System32 目录下. 在cmd 中执行,pscp -l rot -pw [password] -ls [ip]:/opt 查看目录 ...

  3. Dangerous well

    Firsttime to develop games throuth Unity3d, such a great platform! You can build your games more qui ...

  4. 连号区间数(2013年第四届c/c++ b组第10题)

    题目描述 标题:连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个 ...

  5. 马凯军201771010116《面向对象与程序设计Java》第十五周学习知识总结

    实验十五  GUI编程练习与应用程序部署 一.知识学习部分 清单文件 每个JAR文件中包含一个用于描述归档特征的清单文件(manifest).清单文件被命名为MANIFEST.MF,它位于JAR文件的 ...

  6. sdn-准备-虚拟机迁移-vxlan

    知识基础: 虚拟机到虚拟机的迁移(Virtual-to-Virtual) V2V 迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件.虚拟机从一个物理机上的 VMM 迁移到另 ...

  7. sdn学习-1(概念:Underlay网络和Overlay网络)

    随着云计算.大数据.移动互联网等新技术的普及,部署大量虚拟机成为一种必然趋势.解决这些虚拟机迁移问题理想的方案是在传统单层网络(Underlay)基础上叠加(Overlay)一层逻辑网络,将网络分成两 ...

  8. 解决tomcat同时部署两个SpringBoot应用提示InstanceAlreadyExistsException

    问题描述:Caused by: javax.management.InstanceAlreadyExistsException: com.alibaba.druid.pool:name=primary ...

  9. JavaScript获取元素尺寸和大小操作总结(转载)

    一.获取元素的行内样式 var obj = document.getElementById("test"); alert(obj.height + "\n" + ...

  10. kafka工作原理介绍

    两张图读懂kafka应用: Kafka 中的术语   broker:中间的kafka cluster,存储消息,是由多个server组成的集群.  topic:kafka给消息提供的分类方式.brok ...