打印
[技术问答]

新定义的触摸开发板TBK-RD8T3x开发板,到底是如何实现触摸的? (1)

[复制链接]
396|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Anrenly 于 2023-4-8 21:07 编辑

#申请原创#
看到新定义可以免费申请开发板,毫不犹豫的申请了一个,主要是因为开发板提供了触摸按键和触摸滑条功能,触摸的应用越来越多,我对触摸一直都不太清楚,好奇到底是怎么做的?
TBK-RD8T3x开发板使用的是新定义的8位MCU RD8T37P48,128KFlash, 48pin ,MCU的资源相当丰富,可以查看规格书或者其它帖的介绍。
我主要是看触摸的相关信息,资料包含了原理图,PCB,DEMO例程。

第一个问题: 触摸工程到底是怎么做的,如何实现的?
打开工程,main函数里相当简洁,SC_Init()初始化;TouchKeyInit()触摸的初始化函数,这个函数没有开放是通过LIB库的方式提供的;然后在while里一直调用 Sys_Scan()触摸按键扫描函数。


继续看Sys_Scan函数
1)(SOCAPI_TouchKeyStatus & 0x80)首先判断触摸键扫描一轮标志,Bit7为1时 表示当前一轮扫描按键完成;是否调用 TouchKeyScan()一定要根据此标志位置起后
2)(SOCAPI_TouchKeyStatus &= 0x7f)清除触摸键标志位,手工清除
3)exKeyValueFlag = TouchKeyScan() 分析按键数据, 并返回结果出来
4)应用层对获取的键值进行处理
5)最后调用TouchKeyRestart()启动下一轮转换触摸扫描  

查看《新定义RD8系列TouchKey MCU 应用指南 V1.0.pdf》, 对库文件的调用流程有详细的介绍,本Demo中的使用的是RD8T3X_HighSensitive_Lib_T1Slide_L_V2.1.0.LIB
弹簧库文件调用流程(简称 T1 库)
① 将 TK 对应的 IO 设置为强推挽输出高。
② 主程序调用接口函数“TouchKeyInit()”用于配置触控按键通道的参数,并初始化 Baseline 基线;
③ 主程序通过查看全局变量 SOCAPI_ToucKeyStatus&0x80 来判定一轮触控按键扫描是否完成;
④ 主程序调用接口函数“TouchKeyScan()”用于读取触控按键值;
      ⑤ 主程序调用“TouchKeyRestart()”启动下一轮扫描。

到这里算是大致看懂了弹簧触摸的实现过程,厂家提供了LIB, 看起来还好,不是很难。
遗留任务是 滑条触摸没看懂,以后再看。


第二个问题: exKeyValueFlag = TouchKeyScan() 分析按键数据,并返回结果出来, 返回的到底是什么?
回答: 查看《新定义RD8系列TouchKey MCU 应用指南 V1.0.pdf》,TouchKeyScan(void)函数返回值:
返回值对应 bit 1 即该通道有按键,0 为无按键。
若使能双键,且有两键触发,则会有两个 bit 位置起。

举例:switch(exKeyValueFlag)
{
        case 0x00400000:exKeyValue = 1;break;  //表示TK22有按键
        case 0x00800000:exKeyValue = 2;break;  //表示TK23有按键
        case 0x01000000:exKeyValue = 3;break;        //表示TK24有按键  
        case 0x02000000:exKeyValue = 4;break;  // TK25
        case 0x04000000:exKeyValue = 5;break;         //TK26
        case 0x08000000:exKeyValue = 6;break;        //TK27
        default:exKeyValue = 0xff;break;            
    }


第三个问题:工程里,触摸的驱动路径是Drivers 目录下一共4个文件,分别是什么意思?
Drivers目录下触控库包括以下几个文件:
TKDriver.h(或者为SensorMethod.h: 该文件是触控库对外的接口函数声明。用户需要在主程序引用该头文件。
RD8TXXX_X_X_Vx.x.x.LIB:该文件是触控库算法部分,用户需要将该文件加入工程进行编译
S_TOUCHKEYCFG.H:该文件是触控相关参数的配置文件。(用户通过魔盒软件调试后生成)
TKDriver.C (或者为S_TouchKeyCFG.C:该文件包含触控参数头文件与触控库交互的相关接口,用户需要将文件加入工程编译。


新的问题:S_TOUCHKEYCFG.H这个文件是通过魔盒软件调试触摸后的相关参数配置文件,那如何在魔盒里调试触摸获得触摸参数?下次再写



使用特权

评论回复
沙发
qcliu| | 2023-5-4 15:10 | 只看该作者
一般来说  触摸滑条都是应用在哪些应用上的呢

使用特权

评论回复
板凳
drer| | 2023-5-4 15:45 | 只看该作者
触摸滑条功能的实现需要外接其他芯片吗

使用特权

评论回复
地板
RDS小新| | 2023-5-4 15:49 | 只看该作者
qcliu 发表于 2023-5-4 15:10
一般来说  触摸滑条都是应用在哪些应用上的呢

多用于无级调节,如灯光亮度调节,温度调节,音量调节,水的流速调节等等

使用特权

评论回复
5
RDS小新| | 2023-5-4 15:56 | 只看该作者
drer 发表于 2023-5-4 15:45
触摸滑条功能的实现需要外接其他芯片吗

不需要外接其它芯片

使用特权

评论回复
6
coshi| | 2023-5-4 16:21 | 只看该作者
RDS小新 发表于 2023-5-4 15:56
不需要外接其它芯片

那么它的原理是单片机采集的模拟量的连续变化吗

使用特权

评论回复
7
tpgf| | 2023-5-4 16:48 | 只看该作者
这种触摸条的程序 是不是需要跑一下系统呢

使用特权

评论回复
8
chenqianqian| | 2023-5-4 20:14 | 只看该作者
就是电容触摸原理啊,IO检查电容充放电时间。

使用特权

评论回复
9
kxsi| | 2023-5-5 07:56 | 只看该作者
请问检测的原理是什么  是模拟量还是开关量啊

使用特权

评论回复
10
wiba| | 2023-5-5 09:14 | 只看该作者
kxsi 发表于 2023-5-5 07:56
请问检测的原理是什么  是模拟量还是开关量啊

电容式触摸滑条原理滑条算法的实现:通过对有限的电容触摸按键的检测结果,加上插值算法,实现大分辨率的位置感应

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

42

帖子

0

粉丝