基于 NXP LPC804 Cortex-M0 的 Touch Slider 方案

在此要介绍一个LPC80X: Low-Cost Microcontrollers (MCUs) based on Arm Cortex-M0+ Core 的Touch Slider 应用.LPC800 MCU集成了CapTouch 模组以支援触摸解决方案。CapTouch 模组是一种可以感知电容值的通用转换器。它扫描触控式萤幕上每个键盘的电容,并指示触摸的键盘。此方案中使用CapTouch 模组的X0、X1、 X2 、YL 和YH P接脚,再加上一Comparator input 接脚,另外为了能显示出slider 数值变化,使用了3 个GPIO 来控制LED。

 在Firmware 开发方面,我们是使用NXP 提供的MCU开发环境MCUXpresso, 可于下列网址下载安装.

https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE

此方案使用下列LPC804 建议使用 SDK 的Sample code来进行开发, 首先取的LPC804 SDK, 如图所示Import CapTouch sample code 以进行开发。

import SDK sample code

首先修改Project name和 src档案夹下的档案名称如下:

rename file


修改CapTouch_Sensor_Slider_main.c 如下设定,再此先设定Cap Touch CTRL 暂存器设定:




选取致能使用的X Pins,并且致能触摸模组中断机制:

select xpins


在主程式打印出当使用者触摸Slider Bar 时X Pins 的CAP 值,以及相对应Slider 数值以利侦错,在此同时也能撷取出Slider 数值,
并依照数值范围来显示LED的明灭,由此可让使用者得知Touch Slider的动作。


main fiunction



在使用CapTouch 模组之前,需透过MCU的Switch Matrix接脚设置功能,依照线路的规画,
设置使用的脚位,并透过设置GPIO脚位来使用Cap Touch 功能相关设置如下图所示:

swm setting


修改CapTouch_Sensor_Slider_ISRs.c, 即修改IRQ Routine 内CapTouch 模组 input 存取方式如下设定:

Touch ISR

 

程控流程图

flow chart


方案线路图
schematic 2-1


schematic 2-2

 

应用场景描述

Touch slider 的应用是很广泛的, 举凡需要调整控制值大小都很适合。
这里以一个实际应用的IOT 的调光控制, 来描述应用场景。由手指的滑动触控Slider bar,触控模组侦测到Slider bar上的电容变化,将电容值转换成相对的调光控制值, 再由LPC804透过控制界面(UART) 将调光值传送给无线发射控制器,无线发射器再将调光值发送给远端的调光控制接收器,此调光控制器依接收到的调光值来控制灯光明暗, 如应用场景图示:

下图是使用另一个MCU 来接收模拟接收UART 控制界面控制值,再将此控制大小显示在LCD上。

 demoall

为了在低成本和硬体资源受限的平台下实现触摸用例,考虑了更低的 CPU 工作负载和更低的 CPU 频率。在本方案中,使用简单的软体启用 CapTouch 功能。它用于使用 CapTouch 硬体,并仅在必要时启用中断。要扫描通道,将重复步骤 1 到步骤 3
步骤 1. 重置
步骤 2. 充电
步骤 3. 转换充电Cs
步骤 4. 测量电压

直到 ACMP达到阈值是触摸或无接触事件。当发生任何事件时,可用计数器值作为测量结果存储在 CAPT_TOUCH 寄存器中。然后返回步骤 0 以扫描下一个通道。其扫描步骤如下图(转载自NXP Application note) 。


校准和配置的系统正常运行后,每个 X 感应器都会生成。每次轮询感应器时,都会有"无接触"或"触摸"事件。这些事件可以是用于生成中断。
在电容式触摸系统中,触摸时的电容变化将从充电时间转换为微控制器中的计数。在 LPC804触摸界面中,可以以如下方式对互电容进行建模:(转载自NXP application note AN12082)


以这线上性滑块的方案中,每个 Cap Touch 感应器连接到一个滑块段。对于滑块段,方案中使用锯齿形图案(双 V),如图 所示(转载自NXP application note AN12082)


每个上限触摸的顺序应该是连续的,以确保正确的扫描如CAPTX1 ->CAPTX2 ->CAPTX3
滑动手势(转载自NXP application note AN12082)


关于更多的CapTouch 模组的周边应用技术,可参考下列技术来源连结:https://www.nxp.com/docs/en/application-note/AN12082.pdf

►场景应用图

►产品实体图

►方案方块图

►核心技术优势

这是基于MCU Capacitive Touch 模组的主要应用,在电容式触摸系统中,触摸时的电容变化将从充电时间转换为微控制器中的计数。 LPC804微控制器采用互电容法,其中发射电极和接收电极用于生成电容,并检测到这些节点之间的电容变化。 电容式触控模组是测量电极板电容的变化,简单地说,该模组为 X 电容器提供少量电荷,然后将电荷传输到较大的 Y 电容器,并计算电压跨越Y电容器。 应用程式必须启用,其位识别模组控制寄存器的 XPINSEL 栏位中的位Capacitive Touch 模组对 YH 连接埠引脚进行取样。当 YH 连接埠引脚或模拟比较器在计数时触发时,将设定 YESTOUCH 标志。当 YH 连接埠引脚或模拟比较器在计数时触发时,将设定 NOTOUCH 标志。关于更多的Capacitive Touch 模组的周边应用技术,可参考下列技术来源连结:https://www.nxp.com/docs/en/application-note/AN12082.pdf

►方案规格

电容式触摸支援: •支援三个互电容触摸感应器, 最多可到五个互电容触摸感应器。 •使用比较器测量方法。在测量电压状态中,模组使用类比比较器输出。 类比比较器必须启用并正确配置,并且这个比较器类连接到 YH 埠引脚。 •电容式触摸模组有五种类型的中断,每种类型的中断都带有一个独特的标志。状态寄存器。 •电容式触摸模组具有以下轮询模式,基于 POLLMODE •阈值计数 (TCNT) 设置触摸和无接触之间的计数边界。