打印
[PIC®/AVR®/dsPIC®产品]

START工具使用——QTouch参数调整

[复制链接]
1969|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 JackTang1994 于 2021-10-18 14:50 编辑

#技术资源# #申请原创#
START工具:https://start.atmel.com/
Data Visualizer工具下载:https://gallery.microchip.com/api/v2/package/AtmelDataVisualizerInstaller-Standalone/2.20.674

打开START网页开发工具,点击Parameters按钮打开QTouch库的参数设置窗口。


调试设置(Data Streamer)
作用:结合可视化工具Atmel Data Visualizer显示触摸信号波形,方便我们后续调整相关参数以满足我们设计要求。
说明:这个调试功能使用了串口作为与可视化工具的通信接口,所以需要芯片预留出串口。
操作:勾选Enable Touch Tuning Data Connection使能调试功能,START软件会自动帮我们添加串口组件并设置好串口引脚,如果不想使用START软件自动分配的串口引脚,用户也可以直接在Tune窗口中修改串口引脚。
使用START工具设置


使用代码设置
在qTouch/touch.h文件设置可视化调度功能:定义DEF_TOUCH_DATA_STREAMER_ENABLE宏定义为1即可

/**********************************************************/
/***************** Communication - Data Streamer ******************/
/**********************************************************/

#define DEF_TOUCH_DATA_STREAMER_ENABLE 1u

屏蔽(Driven Shield)层
作用:提高触摸按钮的抗水雾能力,即如果触摸按钮上有水雾时它也可以正常工作。
说明:需要提供一个PTC功能引脚作为屏蔽层输入引脚
使用START工具设置


使用代码设置
在qTouch/touch.h文件设置屏蔽
/* Defines the Type of sensor
* Default value: NODE_MUTUAL.
*/
#define DEF_SENSOR_TYPE NODE_SELFCAP_SHIELD
START工具和代码中设置任选一种实现方式即可。

屏蔽层Layout图:


阈值(Threshold)设置
作用:当触摸信号高于阈值时才能被qTouch库认为是有效信号。
说明:比如当触摸按钮上覆盖有其他保护层时感应电容的数值会变小,这时可以适当减少阈值使触摸更加灵敏有效。
取值范围:0~255使用START工具设置


使用代码设置
说明:KEY_x_PARAMS第一个参数就是阈值,其中x为0,1,2...等值
/* Defines Key Sensor setting
* {Sensor Threshold, Sensor Hysterisis, Sensor AKS}
*/
#define KEY_0_PARAMS                                                                                                   \
        {                                                                                                                  \
                20, HYST_25, NO_AKS_GROUP                                                                                      \
        }
START工具和代码中设置任选一种实现方式即可。

响应速度(Detect Integration)设置
作用:响应速度数值越小,说明响应速度越快。说明:当快速触摸时也能有输出,反应到输出波形就是会有窄的脉冲波形。

使用START工具设置


使用代码设置
/* De-bounce counter for additional measurements to confirm touch detection
* Range: 0 to 255.
* Default value: 4.
*/
#define DEF_TOUCH_DET_INT 4
START工具和代码中设置任选一种实现方式即可。

滤波器(Filtering)设置
作用:使用滤波器可以使输出的触摸信号波形水平部分更加平滑。
说明:设置的数值越高,过滤效果更加明显。
取值:
typedef enum tag_filter_level_t {
        FILTER_LEVEL_1,
        FILTER_LEVEL_2,
        FILTER_LEVEL_4,
        FILTER_LEVEL_8,
        FILTER_LEVEL_16,
        FILTER_LEVEL_32,
        FILTER_LEVEL_64
} filter_level_t;


使用START工具设置
点击START工具中的Parameters >> Channel中设置


使用代码中设置
//NODE_x_PARAMS最后一个参数就是过滤等级设置,其中x为0,1,2...等值。
/* Defines node parameter setting
* {Shield line, Y-line, Charge Share Delay, Prescaler, NODE_G(Analog Gain , Digital Gain), filter level}
*/
#define NODE_0_PARAMS                                                                                                  \
        {                                                                                                                  \
                Y(0) | Y(17), Y(16), 20, PRSC_DIV_SEL_12, NODE_GAIN(GAIN_1, GAIN_1), FILTER_LEVEL_16                           \
        }
START工具和代码中设置任选一种实现方式即可。

数字增益(Digital Gain)设置
作用:增加输出信号大小。
说明:信号的增量值大小,即高于阈值那一部分的大小。
取值:
/* Touch library GAIN setting */
typedef enum tag_gain_t { GAIN_1, GAIN_2, GAIN_4, GAIN_8, GAIN_16 } gain_t;

使用START工具设置
点击Parameters >> Channel打开增益设置窗口


使用代码设置
NODE_GAIN(GAIN_1, GAIN_1)中的第二个参数GAIN_1就是数字增益设置值
#define NODE_0_PARAMS                                                                                                  \
        {                                                                                                                  \
                Y(0) | Y(17), Y(16), 20, PRSC_DIV_SEL_12, NODE_GAIN(GAIN_1, GAIN_1), FILTER_LEVEL_16                           \
        }


START工具和代码中设置任选一种实现方式即可。

防误触(AKS)设置
作用:可以避免当同时触摸到两个触摸按钮时响应两次触摸。

说明:将相邻的触摸按钮分配到同一组,这样当同时触摸到两个触摸按钮时就不会响应两次触摸。
取值:
typedef enum tag_aks_group_t {
        NO_AKS_GROUP,
        AKS_GROUP_1,
        AKS_GROUP_2,
        AKS_GROUP_3,
        AKS_GROUP_4,
        AKS_GROUP_5,
        AKS_GROUP_6,
        AKS_GROUP_7,
        MAX_AKS_GROUP
} QTM_aks_group_t;


使用START工具设置
点击Parameters >> Channel打开AKS设置窗口



使用代码设置
KEY_x_PARAMS最后一个参数就是AKS了,其中x取0,1,2..。如果需要将KEY0、KEY1分成组1,只需要将两个NO_AKS_GROUP修改为AKS_GROUP_1即可。
/* Defines Key Sensor setting
* {Sensor Threshold, Sensor Hysterisis, Sensor AKS}
*/
#define KEY_0_PARAMS                                                                                                   \
        {                                                                                                                  \
                20, HYST_25, NO_AKS_GROUP                                                                                      \
        }

START工具和代码中设置任选一种实现方式即可。

跳频(Frequency Hop)设置
作用:降频以增强抗干扰能力

使用START工具设置
点击Parameters >> Sensor打开Enable Frequency Hop设置窗口



使用代码设置
将宏定义DEF_FREQ_AUTOTUNE_ENABLE值修改为1即可启动跳频功能
/* Enable / Disable the frequency hop auto tune
* Range: 0 / 1
* Default value: 1
*/
#define DEF_FREQ_AUTOTUNE_ENABLE 1
START工具和代码中设置任选一种实现方式即可。

使用特权

评论回复
沙发
chenqianqian| | 2021-10-19 07:58 | 只看该作者
学习了,谢谢楼主分享。

使用特权

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

本版积分规则

27

主题

60

帖子

0

粉丝