ke15z touch sensing interface - nxp semiconductors history .....22 tsi methods ke15z touch sensing...
TRANSCRIPT
© 2016 NXP B.V.
KE15Z Touch Sensing Interface
1. Introduction
The purpose of this document is to explain the new TSI
(Touch Sensing Interface) measurement and how to
develop the software and hardware board from the
application point of view.
2. TSI Methods
Touch sensing interface (TSI) provides touch sensing
detection on capacitive touch sensors. The external
capacitive touch sensor is typically formed on PCB and
the sensor electrodes are connected to TSI input
channels through the I/O pins in the device.
KE15Z TSI supports 2 kinds of touch sensing methods,
the self-capacitive mode and the mutual-capacitive
mode, as showing in the figure below. Figure 1 shows
the self-capacitive mode, and Figure 2 shows the
mutual-capacitive mode.
NXP Semiconductors Document Number: KE15ZTSIUG
User's Guide Rev. 0 , 12/2016
Contents
1. Introduction ........................................................................ 1 2. TSI Methods ....................................................................... 1
2.1. Self-capacitive mode ............................................... 2 2.2. Mutual-capacitive mode .......................................... 5
3. TSI software configurations ................................................ 7 3.1. Self-capacitive mode configurations ........................ 7 3.2. Mutual capacitive mode configurations ................. 14 3.3. Q&A for software configurations .......................... 17
4. Hardware design guide ..................................................... 18 4.1. Electrode shapes .................................................... 18 4.2. PCB trace routing .................................................. 19 4.3. Ground plane ......................................................... 20 4.4. Electrodes placement ............................................. 21 4.5. Hardware checklist ................................................ 21
5. References ........................................................................ 22 6. Revision history ................................................................ 22
TSI Methods
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
2 NXP Semiconductors
Self-capacitive mode
Mutual-capacitive mode
2.1. Self-capacitive mode
2.1.1. Basic measurement
The self-capacitive mode requires single pin for each touch sensor and measures the capacitance on an
electrode connected to a single TSI channel. It then converts the capacitance into a digital count by
driving average current on the electrode and measuring the charge/discharge times.
TSI Methods
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 3
Self-capacitive mode
The figure describes the touch sensor structure of the self-capacitive mode:
• Cs: Intrinsic self-capacitance. 10pF ~ 50pF as usual.
• ΔCs: Touch generated self-capacitance. 0.3pF ~ 2pF as usual.
• Sensitivity of sensor: ΔCs/Cs. 1% 10% as usual.
Inside the TSI IP module, the charge transfer is operated by non-overlapping clock ph1/ph2 and trans-
conductance amplifier. The averaging current (icx) generates on Analog Front End and charges the
integration cap then the voltage ramp generates on vci as figure shown which is used to trigger the
comparator.
Block diagram of TSI self-capacitive mode
The following figure shows the timing of TSI measurement for the self-capacitive mode.
TSI Methods
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
4 NXP Semiconductors
Timing of TSI self-capacitive mode
The basic formula of the self-capacitive mode is listed below, NSTEP is the result of TSI single scan:
NSTEP =𝐶𝑖 × (𝑉𝑝 − 𝑉𝑚)
𝑣𝑑𝑑3𝑣 × 𝐶𝑠 × 𝑆_𝑋𝐼𝑁 × 𝑆_𝑋𝐶𝐻
The basic formula of the scan time is listed below, Tnstep is the time costed of TSI single scan:
Tnstep =𝐶𝑖 × (𝑉𝑝 − 𝑉𝑚)
𝑣𝑑𝑑3𝑣 × 𝐶𝑠 × 𝑆_𝑋𝐼𝑁 × 𝑆_𝑋𝐶𝐻 ×
1
𝐹𝑠𝑤
• Ci: Fixed 90pF, the integrated capacitance inside TSI module.
• Vdd3v: Fixed 3.3V, the analog power supply voltage.
• Vp, Vm: Configurable, dual reference voltage which can be configured by DVOLT<1:0>.
• S_XIN, S_XCH: Configurable, the parameters of analog front end.
• Fsw: Configurable, the switching clock frequency.
2.1.2. Sensitivity boost
The low sensitivity is caused by the big parasitic capacitance, and result in difficulty to recognize the
touch event. For example, when the touch overlay is very thick (like 12mm), it becomes very hard to
detect a touch event correctly, because of the poor sensitivity caused by the huge parasitic capacitance.
Enabling sensitivity-boost feature can increase sensitivity by removing part parasitic capacitance
virtually. So touch works well under the 12mm thick overlay with sensitivity boost enabled. Note that
the capacitance to be removed cannot be configured more than the intrinsic capacitance of the touch key,
else it causes the sensitivity invalid.
Attached below is the definition of the sensitivity:
TSI Methods
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 5
Sensitivity =𝑇𝑆𝐼𝐶𝑜𝑢𝑛𝑡𝑒𝑟𝐷𝑒𝑙𝑡𝑎
𝑇𝑆𝐼𝐵𝑎𝑠𝑒𝑙𝑖𝑛𝑒 × 100%
The large sensitivity value means the stronger signal caused by finger touch.
Sensitivity around 10% is recommended.
The TSI self-capacitive mode implements the sensitivity boost by cancelling the external intrinsic
capacitance, and the value of the capacitance to be cancelled ranges from 2.5pF to 20pF, which is
configurable in register TSI_MODE[S_CTRIM]. For example, given the intrinsic capacitance of the
touch electrode is 20pF (it can be calculated by NSTEP formula), setting the S_CTRIM value as 5.0pF
can make the effective intrinsic capacitance become 15pF. As the intrinsic sensitivity of the touch key is
given by ∆Cs/Cs, The less intrinsic capacitance would result in more sensitive touch response. With this
sensitivity boost enabled, sensitivity can be improved to ∆Cs/ (Cs-S_CTRIM*(S_XDN/S_XCH)). So
the formula to calculate the NSTEP under sensitivity boost is listed below:
NSTEP =𝐶𝑖 × (𝑉𝑝 − 𝑉𝑚)
𝑣𝑑𝑑3𝑣 × (𝐶𝑠 − 𝑆_𝐶𝑇𝑅𝐼𝑀 × (𝑆_𝑋𝐷𝑁 ÷ 𝑆_𝑋𝐶𝐻)) × 𝑆_𝑋𝐼𝑁 × 𝑆_𝑋𝐶𝐻
• S_CTRIM: configurable, the capacitance to be removed.
• S_XDN/S_XCH: configurable, the capacitance multiplier.
• The actual capacitance to be removed is 𝑆_𝐶𝑇𝑅𝐼𝑀 × (𝑆_𝑋𝐷𝑁 ÷ 𝑆_𝑋𝐶𝐻).
2.2. Mutual-capacitive mode
2.2.1. Basic Measurement
Mutual capacitive mode measures the capacitance between two electrodes connected to two TSI
channels. One of the TSI channels is used as transmit (TX) channel and the other one is used as receive
(RX) channel.
Figure 6 shows the connections of TSI channel in mutual-capacitive mode.
TSI Methods
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
6 NXP Semiconductors
Channel connections in mutual-capacitive mode
The transmit channel outputs pulses which couple through mutual-capacitance and then reach receive
channel. The receiver amplifies the signal and converts to averaging charge current on integration cap Ci
which creates step voltage Vci. The step number of each scanning is accumulated to give final count
TSICNT for each trigger.
Block diagram of TSI mutual-capacitive mode
There is no Cs in the formula below, since for mutual cap the effect of parasitic cap has been already
translated to dV=100mV. TX pulse goes the parasitic cap and mutual cap model and reaches RX
terminal. Signal you get from RX (ex: 100mV) is decided by Cs, Cm.
NSTEP =𝐶𝑖 × (𝑉𝑝 − 𝑉𝑚) × 𝑅𝑠
∆𝑉 ×
𝑀_𝑃𝑀𝐼𝑅𝑅𝑂𝑅𝐿
𝑀_𝑃𝑀𝐼𝑅𝑅𝑂𝑅𝑅 ×
1
𝑇3
• Ci: fixed 90pF, the integrated capacitance inside TSI module.
• Vp, Vm: configurable, dual reference voltage which can be configured by DVOLT<1:0>.
• ∆𝑉: signal voltage Rx received, decided by VDD5V×𝐶𝑚
𝐶𝑚+𝐶𝑠 , Cm is the mutual-capacitance, Cs is
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 7
the parastic capacitance.
• Rs: Configurable, parameter of analog front end which can be configured by
M_SEN_RES<3:0>.
• 𝑀_𝑃𝑀𝐼𝑅𝑅𝑂𝑅𝐿
𝑀_𝑃𝑀𝐼𝑅𝑅𝑂𝑅𝑅: Configurable, the current multiplier
• T3: Configurable, SSC output low period
The basic formula of the scan time is listed below, Tnstep is the time costed of TSI single scan:
Tnstep =𝐶𝑖 × (𝑉𝑝 − 𝑉𝑚) × 𝑅𝑠
∆𝑉 ×
𝑀_𝑃𝑀𝐼𝑅𝑅𝑂𝑅𝐿
𝑀_𝑃𝑀𝐼𝑅𝑅𝑂𝑅𝑅 ×
1
𝑇3 ×
1
𝐹𝑠𝑤
• Fsw: Configurable, the switching clock frequency.
For example, Ci=90pF, vp-vm=1v, Rs=10k, dV=100mV, M_L/M_R=4, Tsw/T3=4, so it will cost 160us
single scan time for TSI mutual mode.
2.2.2. Sensitivity boost
If the mutual touch sensor intrinsic sensitivity is limited due to parasitic, sensitivity boost feature can be
activated by setting M_SEN_BOOST<4:0>. The basis average charge current will be subtracted by
boost current which enlarge the signal current.
In one typical case, ΔV=100mV, Rs=10k, Vp-Vm=1V, Fsw=1MHz, Ci=90pF,
M_PMIRRORL=16, M_PMIRRORR= M_NMIRROR= 2; Dec=8, Order=2.
NSTEP=72; TSICNT=4608;
Note: Keep M_PMIRRORR and M_NMIRROR the same.
3. TSI software configurations
3.1. Self-capacitive mode configurations
The software configurations for the self-capacitive mode include:
clock generation
scan time
comparator
sensitivity boost
Attached below is an example of the configurations for the self-capacitive mode.
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
8 NXP Semiconductors
Example of the configurations for the self-capacitive mode
3.1.1. Clock generation
The clock generation determines the TSI scan speed.
The TSI module is clocked by the main clock, which is generated by TSI module itself without any
other external clock source. The main clock has four ranges of frequency, and can be divided into the
switching clock which is used to control the ph1/ph2 switching speed (SwitchingClock), and finally
determines the whole scan time, as showing in the figure below.
Block Diagram of Clock Generation
When SSC_MODE=10b, then the switching clock is divided from main clock directly, as the basic
clock generation;
When SSC_MODE=00b/01b, then the switching clock is generated from SSC module, as the advanced
clock generation.
3.1.1.1. Basic clock generation
Attached below is the formula of the basic clock generation, when TSI_SSC0[SSC_MODE] = 10b.
SwitchingClock =𝑀𝑎𝑖𝑛𝐶𝑙𝑜𝑐𝑘
𝐷𝑖𝑣𝑖𝑑𝑒𝑟
Main clock setting
Setting: Main Clock
Register Value Main Clock(MHz)
TSI_MODE[SETCLK]
00 20.72
01 16.65
10 13.87
11 11.91
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 9
Divider setting
Setting: Divider
Register Value Divider
TSI_SSC0.SSC_PRESCALE_NUM[7:0]
0000001 divide 2
0000011 divide 4
… …
11111111 divide 512
There is an example of the basic clock generation, configure the main clock as 16.65MHz, and the
divider as 16, then the result of switching clock is 1.04Mhz.
Example: Basic Clock Generation
Main Clock(MHz) Divider Switching Clock (MHz)
16.65 16 1.04
3.1.1.2. Advanced clock generation, spread spectrum clocking
The spread spectrum clocking (SSC) increases the noise immunity to RF interference and spreads the
emissions. With the SSC enabled (TSI_SSC0[SSC_MODE] = 00/01), the switching clock is generated
by the SSC module, other than the direct divided main clock.
To improve the noise immunity, the Switching Clock can also be generated as a pseudo random clock
using the PRBS (Pseudo-Random Binary Sequence) method by setting TSI_SSC0[SSC_MODE] = 00,
then the SSCHighRandomWidth(t2) is configured as the random width.
Attached below is the formula of the advanced clock generation, with SSC enabled when
TSI_SSC0[SSC_MODE] = 00/01:
SwitchingClock =𝑀𝑎𝑖𝑛𝐶𝑙𝑜𝑐𝑘
𝑆𝑆𝐶𝐻𝑖𝑔ℎ𝑊𝑖𝑑𝑡ℎ(𝑡1) + 𝑆𝑆𝐶𝐻𝑖𝑔ℎ𝑅𝑎𝑛𝑑𝑜𝑚𝑊𝑖𝑑𝑡ℎ(𝑡2) + 𝑆𝑆𝐶𝐿𝑜𝑤𝑊𝑖𝑑𝑡ℎ(𝑡3)
*When TSI_SSC0[SSC_MODE] = 00, the SSCHighRandomWidth can be random(PRBS).
Figure below shows the timing of the switching clock generation.
Timing of the Advance Clock Generation with SSC enabled
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
10 NXP Semiconductors
There’s an example of the advance clock generation attached below.
PRBS is enabled by setting SSC Mode = 00, then the SSC t2 is random. Setting SSCHighRandomWith
as 6 means the t2 ranges from 1×MainClock to 6×MainClock. As a result, the average t2 is
(1+6)/2=3.5×MainClock.
According to the formula of clock generation, the SwitchingClock = MainClock/(t1+t2+t3) =
16.65/(6+3.5+3) = 1.33MHz
3.1.2. Scan time
The scan time determines how long the TSI finishes the scan and get the conversion result. The typical
single scan time of the self-mode is around 200us, when the TSI acquisition time (switching clock) is
configured as 1us. In order to minimize the noise deviation on the single scan, TSI supports multiple
scan per channel, which means TSI performs scan operation for many times. The final scan result will
be accumulated in TSI_DATA[TSICNT] as the NSTEP of the single scan multiples scan number, and
the scan time will be the scan time of the single scan multiples scan number.
Multiple Scan per Channel
The scan number is configured by TSI_SINC[DECIMATION], [ORDER] and [CUTOFF], which allows
the scan number from 1 to322. When the decimation is set to 0 (only once), the single scan is engaged.
The 16-bit counter accumulates all scan results until the scan number reaches predefined number, and
users can read TSI_DATA[TSICNT] to get the final scan result.
Variable Register Descriptions
t1 TSI_SSC0[BASE_NOCHARGE_NUM] SSCHighWidth
t2 TSI_SSC0[PRBS_OUTSEL] SSCHighRandomWidth
t3 TSI_SSC0[CHARGE_NUM] SSCLowWidth
Main Clock(MHz) SSC Mode SSCHighWidth(t1) SSCHighRandomWidth(t2) SSCLowWidth(t3) Switching Clock(MHz)
16.65 00 6 6 3 1.33
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 11
Please note there’re 2 kinds of scan number: one is for digital calculation to accumulate the final TSI
scan result, and the other is for TSI IP to execute the scan action practically.
𝑆𝑐𝑎𝑛𝑁𝑢𝑚𝑏𝑒𝑟𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 =𝐷𝑒𝑐𝑖𝑚𝑎𝑡𝑖𝑜𝑛𝑂𝑟𝑑𝑒𝑟
𝐶𝑢𝑡𝑜𝑓𝑓
𝑆𝑐𝑎𝑛𝑁𝑢𝑚𝑏𝑒𝑟𝑒𝑥𝑒𝑐𝑢𝑡𝑒𝑑 =𝐷𝑒𝑐𝑖𝑚𝑎𝑡𝑖𝑜𝑛 × 𝑂𝑟𝑑𝑒𝑟
𝐶𝑢𝑡𝑜𝑓𝑓
So the parameters of Decimation, Order and Cutoff affects the final accumulated scan result and total
scan time as well. Setting the Order as 2 is recommended as it can save scan time to achieve the same
digital scan result.
Attached below is the formula of the scan result and the scan time:
ScanResult = 𝑁𝑆𝑇𝐸𝑃 × 𝑆𝑐𝑎𝑛𝑁𝑢𝑚𝑏𝑒𝑟𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑡𝑒𝑑 = 𝑁𝑆𝑇𝐸𝑃 × 𝐷𝑒𝑐𝑖𝑚𝑎𝑡𝑖𝑜𝑛𝑂𝑟𝑑𝑒𝑟
𝐶𝑢𝑡𝑜𝑓𝑓
ScanTime = 𝑇𝑛𝑠𝑡𝑒𝑝 × 𝑆𝑐𝑎𝑛𝑁𝑢𝑚𝑏𝑒𝑟𝑒𝑥𝑒𝑐𝑢𝑡𝑒𝑑 =𝑇𝑛𝑠𝑡𝑒𝑝 × 𝐷𝑒𝑐𝑖𝑚𝑎𝑡𝑖𝑜𝑛 × 𝑂𝑟𝑑𝑒𝑟
𝐶𝑢𝑡𝑜𝑓𝑓
There’re examples for the scan time configurations as attached below. Given the NSTEP is 161 and
Tnstep is 179us by the measurement of single scan.
Example 1, the Decimation, Order, and Cutoff are configured as 1, then the final scan result is 161, as
TSI performs scan operation for one time, and the scan time is 179us.
Example 2, change the Decimation to 2, then the final scan result becomes 321, as TSI performs scan
twice, and the scan time is 333, about twice of the previous 179.
Example 10, is recommended. Change the order to 2, then the final scan result becomes 161*64=10304,
but TSI only performs scan for 8*2=16 times, and the scan time is 2480us, saving a lot of time by
setting order =2.
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
12 NXP Semiconductors
Please note that the scan time in this table is measured by the LPTMR module, that is starting LPTMR
on the TSI scan start, and stopping LPTMR on the TSI scan end, then read the LPTMR counter to
estimate the time costed, so there’re some inevitable small errors, i.e. small difference between the
LPTMR measurement and real TSI scan time. Overall, the bigger TSI conversion result means longer
scan time, as showing in the figure below:
Decimation Order CutoffNSTEP
Multiple
Scan
Result
Scan
Number
TSI IP
Performs
Scan Time
(us)
161 179 1 1 1 1 161 1 179
161 179 2 1 1 2 321 2 333
161 179 4 1 1 4 644 4 640
161 179 8 1 1 8 1288 8 1253
161 179 16 1 1 16 2576 16 2480
161 179 32 1 1 32 5152 32 4937
161 179 1 2 1 1 161 2 333
161 179 2 2 1 4 644 4 644
161 179 4 2 1 16 2576 8 1253
161 179 8 2 1 64 10304 16 2480
161 179 8 2 2 32 5152 16 2480
Configurations
Tnstep
(us)
Result
NSTEP
179 333640
1253
2480
4937
0
1000
2000
3000
4000
5000
6000
161 321 644 1288 2576 5152
TSI S
can
Tim
e (u
s)
TSI Conversion Result(Counter)
TSI Scan Time / Conversion Result(Counter)
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 13
3.1.3. Sensitivity boost
The sensitivity boost configurations include: S_SEN Enable, S_CTRIM, and
Multiplier(S_XDN/S_XCH).
The capacitance actually removed is:
Cremoved = 𝑆_𝐶𝑇𝑅𝐼𝑀 ×𝑆_𝑋𝐷𝑁
𝑆_𝑋𝐶𝐻
Attached below is an example for sensitivity boost configurations.
From the example above, we can find out that the Cremoved is the key configuration to the sensitivity
boost feature, as Cremoved increases, the sensitivity becomes better, which means it’s easier to
recognize touch event.
Variable Register Descriptions
S_SEN Enable TSI_MODE[S_SEN] Enable sensitivity boost
S_CTRIM TSI_MODE[S_CTRIM] Remove the parasitic capacitance virtually
TSI_MODE[S_XDN] Sensitivity adjust
TSI_MODE[S_XCH] Charge/discharge multiple
Setting: Sensitivity Boost
Multiplier:
S_XDN/S_XCH
S_XIN S_XCH
Current
Amplifier
(S_XIN*S_XCH)
S_SEN
EnableS_XDN
S_Ctrim
(pF)
Cremoved
(pF)
1/4 1/2 1/8 OFF 1/2 2.5 0.0 12 10.5%
1/4 1/2 1/8 ON 1/2 2.5 2.5 12 11.9%
1/4 1/2 1/8 ON 1/2 5.0 5.0 12 19.4%
1/4 1/2 1/8 ON 1/2 7.5 7.5 12 30.2%
1/4 1/2 1/8 ON 1/2 10.0 10.0 12 66.9%
1/4 1/2 1/8 ON 1/2 12.5 12.5 12 0.0%
Sensitivity Boost Intrinsic
Capacitcance
Calculated
Cx
Sensitivity
Calculated
Current Amplifier
10.5% 11.9%19.4%
30.2%
66.9%
0.0%
20.0%
40.0%
60.0%
80.0%
OFF 2.5 5.0 7.5 10.0
Sen
siti
vity
Key Configuration: Capacitance Removed (pF)
Sensitivity Boost / Key ConfigurationTSI Channel 12
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
14 NXP Semiconductors
3.1.4. Comparator configuration
The comparator configuration of DeltaVoltage (TSI_GENCS[DVOLT]) controls the internal comparator
which is used to determine when TSI scan stops. Attached below is the detailed configurations, in most
cases, DeltaVoltage=1.0V is recommended.
3.2. Mutual capacitive mode configurations
The configurations for the mutual-capacitive mode include:
clock generation
scan times
sensitivity boost
Attached below is an example of the configurations for mutual mode.
3.2.1. Clock generation
The mutual mode shares the same clock generation of the self-mode, please refer to self-mode clock
generation for detailed configurations. Attached below is the same formula of SwitchingClock
generation:
SwitchingClock =𝑀𝑎𝑖𝑛𝐶𝑙𝑜𝑐𝑘
𝑆𝑆𝐶𝐻𝑖𝑔ℎ𝑊𝑖𝑑𝑡ℎ(𝑡1) + 𝑆𝑆𝐶𝐻𝑖𝑔ℎ𝑅𝑎𝑛𝑑𝑜𝑚𝑊𝑖𝑑𝑡ℎ(𝑡2) + 𝑆𝑆𝐶𝐿𝑜𝑤𝑊𝑖𝑑𝑡ℎ(𝑡3)
One difference to the self-mode clock, the SSC must be enabled for mutual mode to generate switching
clock, because the TSI Rx signal in the mutual mode depends on the TSI_SSC0[CHARGE_NUM](i.e.
t3) as showing in the figure below.
Variable Register Descriptions
DeltaVoltage TSI_GENCS[DVOLT]
Select comparator Vm, Vp.
00 Vm=0.3V; Vp=1.3V; dvolt=1.0V.
01 Vm=0.3V; Vp=1.6V; dvolt=1.3V.
10 Vm=0.3V; Vp=1.9V; dvolt=1.6V.
11 Vm=0.3V; Vp=2.3V; dvolt=2.0V.
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 15
There’s an example of the clock generation configuration for the mutual mode.
PRBS is enabled by setting SSC Mode = 00, then the SSC t2 is random. Setting SSCHighRandomWith
as 6 means the t2 ranges from 1×MainClock to 6×MainClock. As a result, the average t2 is
(1+6)/2=3.5×MainClock.
According to the formula of clock generation, the SwitchingClock = MainClock/(t1+t2+t3) =
16.65/(6+3.5+3) = 1.33MHz, as the parameter of prescale doesn’t take effect here.
SwitchingClock = 16.65/(6+(6+1)/2+3) = 1.33MHz
3.2.2. Scan time
The scan time determines how long the TSI finishes the scan and get conversion result. The typical
single scan time of the mutual mode is around 100us, when the TSI acquisition time (switching clock) is
configured as 1us. Similar to the self-mode configurations, the mutual mode also support multiple scan
per channel, and the scan number is configured by TSI_SINC [DECIMATION], [ORDER], and
[CUTOFF].
Please refer to the chapter of self-mode scan time for the detailed descriptions.
Untouched Touched Delta
Main
Clock
(MHz)
Prescale SSC
SSC High Width
ChargeNumber
t1
SSC High
Random
Width
t2
SSC
Low
Width
t3
Switching
Clock
(MHz)
5765 5920 155 16.65 16 ON 6 6 3 1.33
Counter Clock Generation
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
16 NXP Semiconductors
There’re examples for scan time configurations as attached below. Given the NSTEP is 95 and Tnstep is
90us by the measurement of single scan.
Example 1, the Decimation, Order, and Cutoff are configured as 1, then the final scan result is 95, as TSI
performs scan operation for one time, and the scan time is 90us.
Example 2, change the Decimation to 2, then the final scan result becomes 190, as TSI performs scan
twice, and the scan time is 159us, about twice of the previous 90us.
Example 10, is recommended. Change the order to 2, then the final scan result becomes 95*64=6080,
but TSI only performs scan for 8*2=16 times, and the scan time is 1128us, saving a lot of time by
setting order =2.
3.2.3. Sensitivity boost
Mutual capacitive mode supports sensitivity boost. Different to self-capacitive mode, mutual-capacitive
mode implement sensitivity boost by changing the current, which is configurable in register
TSI_MUL0[M_SEN_BOOST]. The current value ranges from 0uA to 62uA.
From the configuration above, we can find out that the boost current is the key configuration to the
sensitivity boost feature, as the boost current increases, the sensitivity becomes better, which means it’s
easier to recognize touch event, as showing in the figure below.
Decimation Order CutoffNSTEP
Multiple
Scan
Result
Scan
Number
TSI IP
Performs
Scan
Time
(us)
95 90 1 1 1 1 95 1 90
95 90 2 1 1 2 190 2 159
95 90 4 1 1 4 380 4 297
95 90 8 1 1 8 760 8 574
95 90 16 1 1 16 1520 16 1128
95 90 32 1 1 32 3040 32 2235
95 90 1 2 1 1 95 2 159
95 90 2 2 1 4 380 4 297
95 90 4 2 1 16 1520 8 574
95 90 8 2 1 64 6080 16 1128
95 90 8 2 2 32 3040 16 1128
NSTEPTnstep
(us)
Configurations Result
Variable Register Descriptions
Sensitivity Boost Current TSI_MUL0[M_SEN_BOOST] Choose the sensitivity boost current to change sensitivity
TSI software configurations
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 17
Configuration: TSI Sensitivity vs. Current Boost
3.2.4. NOTES
If TSI mutual mode is enabled, all 6 Tx channels/pins are supposed to be used as TSI functions, any
unused Tx channel (e.g. PTD1/Channel5) can't be used as other functions(e.g. GPIO). For example, if 4
Tx pins are used by user for mutual touch keys, the left 2 unused Tx pins can't be used as GPIO or other
functions. The root cause is, when scanning one Tx channel, TSI IP pulls down all other Tx channels
(not in scan). All Rx channels don't have such limitation, as Rx channels keep hi-z during scanning.
3.3. Q&A for software configurations
1. Q: What is the purpose of TSI_MUL1[M_MODE]?
A: The bit of M_MODE determines the Rx signal received from Tx channel, as showing in the
figure below.
Setting M_MODE as 0 (i.e. -5V ~ +5V) is recommend as it’s more energy efficient.
Setting M_MODE
0.0%
1.0%
2.0%
3.0%
4.0%
0 2 4 6 8 10 12
Sen
siti
vity
Current boost configuration (uA)
TSI Sensitivity / Current Boost Configuration
Hardware design guide
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
18 NXP Semiconductors
2. Q: If I use SSC in the self-mode and change SSC charge time, can I see some difference, is that
changing the result?
A: In the self-mode, changing the SSC charge time won’t affect the final scan result, but changes
the total scan time as it changes the switching clock frequency. While in the mutual mode,
changing the SSC charge time will change the Rx signal coupled from Tx channel, and will
affect the final scan result.
3. Q: How to set the parameters of the decimation, order and cutoff in TSI_SINC register properly?
A: These parameters affect the final accumulated TSI scan result, and the scan time as well. For
cost efficiency, setting decimation 8, order 2, cutoff 0 is recommended.
4. Hardware design guide
4.1. Electrode shapes
4.1.1. Electrode shapes for self mode
To maximize the electrodes area from the capacitor plates, it is recommended that the size of the
electrode be similar to a human finger (10×10mm is considered a good size).
Electrode shapes for self-mode
4.1.2. Electrode shapes for mutual mode
The following figure is the recommended mutual key shape. Please note that the numbers of finger has
much impact on the touch sensitivity. In general, more fingers result in stronger noise immunity but less
touch sensitivity. Customer should select the right finger numbers for the thickness of touch overlay. For
example, if the touch overlay is 3mm in thickness, 4 fingers is the best choice. If the touch overlay is
2mm in thickness, 5 fingers is ok.
Hardware design guide
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 19
Electrode shapes for mutual mode
4.2. PCB trace routing
The following are recommendations for correctly routing the traces of capacitive electrodes.
• Width — Keep traces width as thin as possible. 5-7mil trace is recommended. A 5mil trace has
half the capacitive coupling with the planes compared to a 10mil trace.
• Length — As short as possible. Trace length must be less than 300mm, minimize trace length
from TSI pins to touch pads in order to optimize signal strength.
• Clearance — To ensure signal integrity, leave a minimum clearance of 10 mils for the lines that
run parallel to each other in the same layer, and route perpendicularly the ones running in
adjacent layers. Good design practice is to keep traces separated by as much as the design allows.
At the sensor's end, where typically the pitch is lower than 10 mils, a bottleneck mode
connection is recommended as shown in Figure 6. The figure below is an example for
maintaining adequate clearance in touch sensing traces.
PCB trace routing
• Avoid crossover with other signal.
• Avoid routing under touch electrode, do not route traces directly under any touch pad.
• For the mutual mode key, keep the Tx trace as far as possible from the Rx trace.
Hardware design guide
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
20 NXP Semiconductors
4.3. Ground plane
A ground plane prevents coupling of external electromagnetic interference to the touch sensing
electrodes, and acts as a shield for undesired electric fields. However, abusing the ground planes or
simply filling open areas with ground planes might affect the sensor's sensitivity.
Following are a few recommendations and best practices for ground planes usage.
Use X-hatch pattern on the top layer, 25% ground fill, 7mil line, 45mil spacing.
Use X-hatch pattern on the bottom layer (e.g. underneath the electrodes area), 17% ground fill,
7mil line, 70mil spacing.
Ground plane
Annular gap size should be equal to the overlay thickness, but no smaller than 0.5 mm, and no larger
than 2 mm. For example, a PCB layout for a system with a 1-mm overlay should have a 1-mm annular
gap, while a 3-mm overlay design should have a 2-mm annular gap.
Hardware design guide
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
NXP Semiconductors 21
Annual gap size
4.4. Electrodes placement
The following are recommendations for placing the touch sensing electrodes on a PCB or FlexPCB.
• All touch electrodes should be placed as close to the MCU as possible. As the long trace loops in
layout causes extra intrinsic capacitance and easily coupled noise, placing touch electrodes closer
to the chip is always better.
• Components underneath electrodes — It is not recommended to place any component underneath
the touch sensing electrode's area, especially in two layer boards.
• Keep electrodes far away power module, RF antenna, etc.
4.5. Hardware checklist
The following is a checklist based on the recommendations in this application note. Before having a
board, film, ITO, and the touch sensing board made, make sure the design follows all or most of these
rules:
• GND return path is provided per specifications (GND hatch below or at least around the
electrode keypad).
• No pull-ups present in TSI-enabled (touch sensing input module) pins.
Revision history
KE15Z Touch Sensing Interface, User's Guide, Rev. 0, 12/2016
22 NXP Semiconductors
• Series resistors in cases where series current protection is desired should be lower than 100ohm.
• Make sure no signals that are not touch sensing run parallel to the touch sensing signals. If
signals need to go through the touch sensing traces, have them go in a different layer and
perpendicular.
• Make sure to fill in ground between groups of traces (analog, digital, and touch), if possible, fill
in ground between touch sensing traces.
• Traces as thin as the PCB or film technology will allow.
• Short traces (<300mm. from electrode to MCU, ideally < 50mm.)
• Electrode shape corners as rounded as the layout will allow.
5. References
Following references are available on NXP website.
1. Designing Touch Sensing Electrodes (Document: AN3863)
2. KE15Z Reference Manual (Document: KE1xZP100M72SF0RM)
6. Revision history Revision history
Revision number Date Substantive changes
0 12/2016 Initial release
Document Number: KE15ZTSIUG Rev. 0
12/2016
How to Reach Us:
Home Page:
nxp.com
Web Support:
nxp.com/support
Information in this document is provided solely to enable system and software
implementers to use NXP products. There are no express or implied copyright licenses
granted hereunder to design or fabricate any integrated circuits based on the
information in this document. NXP reserves the right to make changes without further
notice to any products herein.
NXP makes no warranty, representation, or guarantee regarding the suitability of its
products for any particular purpose, nor does NXP assume any liability arising out of
the application or use of any product or circuit, and specifically disclaims any and all
liability, including without limitation consequential or incidental damages. “Typical”
parameters that may be provided in NXP data sheets and/or specifications can and do
vary in different applications, and actual performance may vary over time. All operating
parameters, including “typicals,” must be validated for each customer application by
customer’s technical experts. NXP does not convey any license under its patent rights
nor the rights of others. NXP sells products pursuant to standard terms and conditions
of sale, which can be found at the following address: nxp.com/SalesTermsandConditions.
NXP, the NXP logo, NXP SECURE CONNECTIONS FOR A SMARTER WORLD,
Freescale, the Freescale logo, and Kinetis, are trademarks of NXP B.V. All other
product or service names are the property of their respective owners.
ARM, the ARM Powered logo, and Cortex are registered trademarks of ARM Limited (or
its subsidiaries) in the EU and/or elsewhere. All rights reserved.
© 2016 NXP B.V.