中科蓝讯 SDK 开发——BT892XA2 芯片内置 Touch 使用

      哈喽,大家好,相信大多数开发过中科蓝讯 BT892XA2 的工程师都知道芯片内置了 Touch,今天就和大家一起试试在开发板上使用芯片内置的 Touch。

一、开发板模拟

      本次演示以中科蓝讯 BT8922D2 SDK 开发板为例,BT8922D2 芯片内置了四路 Touch 通道,分别是 TK0(PB5)、TK1(PB0)、TK2(PB1)、TK3(PB2),可以多路使用。Touch Key 检测原理是检测电容值的变化,在人手去触碰时会改变电容值从而检测到触摸动作,那么在开发板上就可以在引脚处接出杜邦线简单模拟出触摸环境,如下图,将杜邦线一端接到 TK0(PB5),捏住或触碰另一端时就可以模拟出按下的情况。 

            

二、软件配置

2.1 软件宏开关

      在 config.h 中打开 USER_TKEY,使能 Touch 功能;根据功能需求选择USER_TKEY_SOFT_PWR_EN 是否是使用 Touch Key 来做长按开关机功能;如果是无保护板的电池需要打开 USER_TKEY_LOWPWR_WAKEUP_DIS 可以防止电池过放;USER_TKEY_INEAR 在实际应用中可以按照需要选择一路 Touch Key 来做入耳检测,入耳检测使能需要同步打开 USER_INEAR_DETECT_EN;打开 USER_TKEY_DEBUG_EN 用于打印 Touch Key 检测的容值,调试的时候需要打开,调试 Touch Key 相关参数。

            

      这里 Touch Key 如果使用的是 TK0(PB5) 则需要关闭 USER_PWRKEY。

            

2.2 Touch Key 参数

      Touch Key 参数在 port_tkey.c 中 tkey_cfg_hard 里配置。

 
              

      调试 Touch Key 的参数可以在 port_tkey.h 中修改。

              

      CDPR 可以表示采样周期,值越大触摸就会越灵敏,增大 CDPR 采集到的电容值会变大,按下和未按下的差值也会越大,但是 CDPR 不建议设置过大容易导致误触。

      FIL_LOW、FIL_HIGH、FIL_EXCEPT 是内置触摸检测当前状态稳定的检测时间,类似于按键的消抖,值越大时间越长,灵敏度会相应降低。通常只修改按下状态的消抖时间(FIL_HIGH)。

      TKPTHRESH 为按下判断阈值,当前 TKCNT > TKBCNT + TKPTHRESH 则被判断为按下。

      TKRTHRESH 为触摸释放判断阈值,当前 TKCNT < TKBCNT + TKRTHRESH 则判断为触摸释放。

      TKCNT 是当前采集到的容值,跟 CDPR 有关,前面说到增大 CDPR 采集到的电容值会变大即 TKCNT 会变大,根据原厂资料 TKCNT 的寄存器是 12 位,TKCNT 最大值为 0XFFF,如果当前 TKCNT 大于这个值,可以尝试减小 CDPR。TKBCNT 是计算出来的未按压时 TKCNT 的值。



三、SPP 调试

      在调试 Touch Key 的时候,需要实时的查看当前的触摸检测状态以及 TKCNT 和 TKBCNT 的值,需要通过串口打印出来,对于样机来说是不方便飞线连接有线串口的,并且有线的连接方式可能也会对 Touch Key 带来干扰,因此可以采用蓝牙 SPP 串口以无线的方式来打印。

      在 config.h 中打开 BT_SPP_EN,在 setting 中打开蓝牙串口功能。

 
              

      烧录软件后,使用开发板连接电脑蓝牙,查看串口号。

              

      打开串口工具,波特率配置 1.5M ,如下图,打印上部分:State 表示当前的状态,0 为未按下,1 为检测到按下,以及当前 TKBCNT未按压基准值;打印下部分:当前的 TKCNT 容值,浮动一般在 10 以内,如果浮动过大可以调整 CDPR 的值。根据原厂建议,一般需要保证 TKCNT 在未按下和按下差值在 40 左右,TKPTHRESH 配置值小于按下值 10 左右即可,TKRTHRESH 值小于 TKPTHRESH 10 左右即可。如果按下差值过大或者过小也可以调整 CDPR 来改善。

            

      由于目前是基于开发板使用杜邦线模拟因此只做简单模拟,调试好后可以烧录到板子中,基本可以实现长短按功能,以上就是本文的全部内容,如果内容有遗漏或错误欢迎在在评论区中讨论。


[1] 蓝皮书:TOUCH KEY 介绍                                                            — 中科蓝讯
[2] 蓝皮书:BT889X 内置触摸 TOUCHKEY                                        — 中科蓝讯
[3] 蓝皮书:内置触摸硬件注意事项                                                    — 中科蓝讯

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论