NXP MCU 技术论坛
直播中

刘洋

10年用户 1157经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[经验]

官方介绍KL25 TSI基本原理

本篇主要介绍TSI模块(Touch Sensing Interface)的基本原理,TSI模块是飞思卡尔为简化硬件设计人员开发而嵌入到Kinetis架构的电容触摸感应模块,图1TSI模块的框图,从KL25的的芯片手册截得。
1.png


  图1

我们把这张图分成三部分,
第一部分为虚线框左边从上到下依次为:1 选择Delta电压的大小(Delta电压会在下面讲到),然后是TSI模块的16个通道,接着是选择触发模式:硬件触发还是软件触发。

第二部分为虚线框里面这部分,就是TSI原理的核心部分。电容的充放电的过程随时间变化如下图所示是一个三角波。图中的Hysteresis Voltage Delta是滞回比较器的滞回宽度,也就是三角波的峰峰值。
2.png


图2

如图3,触摸板等效于一个对地的电容,手指也等效于一个对地的电容,手指按上时相当于2电容并联,不按时只有一个电容。RC电路充电时间常数T=RC,当上拉电阻阻值固定时,电容增加会导致充电时间增加。所以手指按上时电容变大,充电时间变长(图4中的T2),不按时的充电时间短(图4中的T1)。
3.png 4.png

                                       图3                                                           图4
这里简要阐述下下电极振荡器输出的三角波是如何产生的。
   5.png

图5

如图5所示一个简单的三角波发生电路由两个恒流源,两个mos管和一个滞回比较器构成。开始时,A点低电平,输出低电平,两个MOS管上面一个低电平导通,下面一个高电平导通,此时两个栅极C均为低电平,上面一个NMOS导通,下面的PMOS截止,于是电流源经过BA给电容充电,同时A点电压升高,当到达滞回比较器的阈值Vth+时,输出变为高电平,此时下面的PMOS导通,上面的NMOS截止,这是,电容还是从AB经过下面的电流源放电。放电放到电压等于另外一个阈值Vth-时,又开始充电。这样就在B点输出了三角波(因为本人的电路基础比较差,所以搞懂这一块花的时间比较久,关于滞回比较器会在接下来讲到)。电极振荡器的频率计算公式为:
6.png


在图1的虚线部分还有一个参考振荡器,参考振荡器与电极振荡器类似。计算公式如下:

7.png

参考振荡器使用的是内部参考电容,参考振荡器输出的三角波的周期是恒定的,用作图116位计数器的参考时钟信号输入。而电极振荡器的输出经过分频和每个电极的扫描次数NSCN之后作为计数器的使能信号输入。这样当电极振荡器的输出信号周期变大时,一个电极振荡器的输出信号周期中对应的参考振荡器周期的数目也就会增加(如图6),芯片手册中定义采样周期为采样周期是定义为模块计数器从0计数到最大值的时间。计算公式如下。我根据计算式将采样周期理解为电极振荡周期*连续扫描电极的次数,这样理解起来更加容易一点。
   8.png

其中NSCN为连续扫描电极的次数。

9.png


图6

测得电容值定义为在采样周期中的TSI参考振荡器的周期数目。存在TSICNT字段中。计算公式如下:
10.png


第三部分也就是中断部分。KL25TSI模块中,中断有两种,一种是End of scan中断另外一种是out-of-range interrupt中断,由GENCS[ESOR]位决定。


如果定义了End of scan中断,那么在每次扫描结束之后【EOSF】位会被置。如果定义了Out-of-range interrupt中断,那么在每次扫描结束之后如果TSICNT的值超过阈值寄存器TSIx_TSHD中定义的阈值范围, [OUTRGF]位会被置,值得注意的是每次扫描完[EOSF]位会还是会被置位,但是不产生中断。KL25TSI模块不像K60可以定义持续扫描和周期性扫描,每次都要自己重新触发扫描,在使用的时候不是很方便。比如使用软件触发,每次扫描完需要通过设置TSI_DATA_SWTS_MASK来重新开始扫描。两种中断方式各有利弊,需自己权衡。

附上pdf下载
TSI原理.pdf (228.41 KB)
(下载次数: 29, 2014-12-26 17:03 上传)


回帖(2)

weiweiweimei11

2016-6-3 15:44:52
学习一下,谢谢!
举报

weiweiweimei11

2016-6-3 15:45:22
谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分