Infineon Touch Solutions - inTouch Application Kit

XC83x
AP08126
Infineon Touch Solutions - inTouch Application Kit
Application Note
V1.0, 2012-02
Microcontrollers
Edition 2012-02
Published by
Infineon Technologies AG
81726 Munich, Germany
© 2012 Infineon Technologies AG
All Rights Reserved.
LEGAL DISCLAIMER
THE INFORMATION GIVEN IN THIS APPLICATION NOTE IS GIVEN AS A HINT FOR THE IMPLEMENTATION
OF THE INFINEON TECHNOLOGIES COMPONENT ONLY AND SHALL NOT BE REGARDED AS ANY
DESCRIPTION OR WARRANTY OF A CERTAIN FUNCTIONALITY, CONDITION OR QUALITY OF THE
INFINEON TECHNOLOGIES COMPONENT. THE RECIPIENT OF THIS APPLICATION NOTE MUST VERIFY
ANY FUNCTION DESCRIBED HEREIN IN THE REAL APPLICATION. INFINEON TECHNOLOGIES HEREBY
DISCLAIMS ANY AND ALL WARRANTIES AND LIABILITIES OF ANY KIND (INCLUDING WITHOUT
LIMITATION WARRANTIES OF NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OF ANY
THIRD PARTY) WITH RESPECT TO ANY AND ALL INFORMATION GIVEN IN THIS APPLICATION NOTE.
Information
For further information on technology, delivery terms and conditions and prices, please contact the nearest
Infineon Technologies Office (www.infineon.com).
Warnings
Due to technical requirements, components may contain dangerous substances. For information on the types in
question, please contact the nearest Infineon Technologies Office.
Infineon Technologies components may be used in life-support devices or systems only with the express written
approval of Infineon Technologies, if a failure of such components can reasonably be expected to cause the failure
of that life-support device or system or to affect the safety or effectiveness of that device or system. Life support
devices or systems are intended to be implanted in the human body or to support and/or maintain and sustain
and/or protect human life. If they fail, it is reasonable to assume that the health of the user or other persons may
be endangered.
AP08126
Infineon Touch Solutions - inTouch Application Kit
XC83x
Revision History: V1.0 2012-02
Previous Version(s):
Page
Subjects (major changes since last revision)
–
We Listen to Your Comments
Is there any information in this document that you feel is wrong, unclear or missing? Your feedback will help us to
continuously improve the quality of this document. Please send your proposal (including a reference to this document) to:
[email protected]
Application Note
3
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Table of Contents
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2
2.1
2.2
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Mother Board (USB Stick) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Daughter Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3
3.1
3.1.1
3.1.2
3.1.2.1
3.1.2.2
3.2
3.2.1
3.2.2
3.2.3
3.2.4
Infineon’s Touch Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LEDTS - Relaxation Oscillator (RO) Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LEDTS ROM Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initial Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adaptive Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Charge Redistribution (CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Charge-Time Measurement (CTM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Processing for CR and CTM Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Software Library for CR and CTM Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Programming Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5
5.1
5.2
5.3
Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
U-SPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UART Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
13
13
13
15
17
17
18
19
22
27
27
27
28
Appendix - Schematics and Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Application Note
4
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Introduction
1
Introduction
In today's Human-Machine Interface (HMI) designs, capacitive touch technology is now often more widely used
than traditional mechanical buttons. Capacitive touch technology is the more popular choice because it brings
flexibility, a high-level of customization, and a significant reduction in overall system cost.
The inTouch Application Kit is available to help learn about working with the advanced touch solutions provided
by Infineon. Step-by-step tutorials covers the basics of Infineon's touch solutions, while example application code
can be used to start developing new touch-related projects.
The inTouch Application Kit comprises of a mother board, supplied as a USB stick (Figure 1), and a number of
daughter boards. This application note describes the mother board. The daughter boards, which are in the form
of different HMI designs, are documented in separate applications notes (see References).
Figure 1
USB Stick
Application Note
5
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Hardware
2
Hardware
This section describes the inTouch Application Kit hardware and references the available daughter boards.
2.1
Mother Board (USB Stick)
The USB stick houses Infineon’s XC836MT-2FRI (Figure 2), an 8-bit microcontroller.
Figure 2
Infineon’s XC836MT 2FRI
The XC836MT has a dedicated LED and Touch Sense Control Unit (LEDTS) module which controls touch sensing
and drives LEDs. This is complemented by a ROM library of touch sense routines. In some applications, the
Analog-to-Digital Convertor (ADC) module is also used for touch sensing. These touch solutions will be introduced
in Infineon’s Touch Solutions.
Note: Please refer to the XC836 User’s Manual for a more detailed description of the XC836MT.
The USB stick also contains a UB2232HL chip by FTDI to provide the USB interface, and a 20-pin edge connector
(Figure 3) which offers extension to the daughter boards.
Figure 3
20-pin edge connector
The schematics for the USB stick is available in Appendix - Schematics and Layout.
Application Note
6
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Hardware
2.2
Daughter Boards
The daughter boards that available with the inTouch Application Kit are as follows:
•
•
•
•
•
inTouch Buttons (Figure 4)
inTouch Wheel (Figure 5)
inTouch Slider and inTouch Slider II (Figure 6)
inTouch LED Matrix (Figure 7)
inTouch Adaptor (Figure 8)
– The adapter board provides the flexibility to map the pins from the edge connector to a header. This is
particularly useful for evaluating custom touch sensors.
The daughter boards are only referenced here. For more detailed documentation, please refer to the individual
application notes about each board. For the appropriate application note document numbers, please see
References.
Figure 4
inTouch Buttons Board
Application Note
7
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Hardware
Figure 5
inTouch Wheel Board
Figure 6
inTouch Slider (right) and inTouch Slider II (left) Boards
Application Note
8
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Hardware
Figure 7
inTouch LED Matrix Board
Figure 8
inTouch Adaptor Board
Application Note
9
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
3
Infineon’s Touch Solutions
Infineon offers three solutions for capacitive touch control, that differ in the method used to measure capacitance.
The solutions can be divided into two categories:
1. Using LEDTS - This solution uses the LEDTS - Relaxation Oscillator (RO) Topology.
2. Using ADC - There are 2 ADC solutions:
a) Charge Redistribution (CR)
b) Charge-Time Measurement (CTM)
These solutions are described in the following sub-sections.
3.1
LEDTS - Relaxation Oscillator (RO) Topology
In this solution that uses RO Topology for measuring capacitance, a simple circuit (Figure 9) generates
oscillations (Figure 10) on the sensor pad. The number of oscillations is then monitored in an adjustable time
window. The output frequency, fout, depends on the pad capacitance. The higher the capacitance, the lower the
frequency and the number of pulses will be. Therefore, a touch on the pad will increase the capacitance, resulting
in a lower number of pulses.
Vdd
f out
threshold
sensor pad
Figure 9
fsys
S
RO Circuit
input
threshold
pad turn
enable
pulse
count
Figure 10
1
2
3
4
5
6
Oscillations generated on sensor pad
Application Note
10
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
The LED and Touch Sense (LEDTS) control unit is a dedicated module which generates the oscillations and
counts them in a given time window. Figure 11 provides an overview of the touch-control blocks in the module.
For every measurement, the oscillations on the sensor pad are automatically counted and stored in TSCTRVAL.
This value is then processed by a library function residing in ROM.
Figure 11
Overview of touch-control blocks in the LEDTS
An adaptive averaging function (Figure 12) in this library generates a moving average from the measurements
and detects changes in the capacitance. The moving average eliminates any spurious peaks and troughs in the
pad frequencies to create a stable value from which the trip points can be calculated. The average is derived from
accumulating the number of oscillation counts (total TSCTR) and filtering this total TSCTR value with a first order
low-pass. This filtering is essential to detect the drop in the capacitance. All these parameters can be configured
by the user.
LPF gain
total TSCTR * LPF gain
number of pulses
Σ
total TSCTR
Low-Pass
Filter
Pad +
Averages
LowTrip
HighTrip
comp
+
Pad
Flags
-
offsets
Figure 12
Adaptive average control
Controlled by the Touch Sense State Machine (Figure 13), certain variable flags will be set or cleared when a pad
is touched, released, touched for too long or too short a time, or when touched for the correct amount of time. The
duration of touch is monitored via a pad-down counter (PDC). Figure 14 and Figure 15 illustrate the LEDTS ROM
Library signals in two scenarios (valid touch and long touch).
Application Note
11
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
total TSCTR
>=
LowTrip
IDLE
F R E
0 0 0
total TSCTR
<
LowTrip
ERROR
PDC = 0
error flag
cleared by
user
F R E
0 0 1
PAD
touched
F R E
1 0 0
total TSCTR
>=
LowTrip
RESULT
result flag
cleared by user
Figure 13
PDC <
ShortCount
F R E
0 1 0
PAD
released
F R E
1 1 0
PDC > ShortCount
Touch sense state machine
idle
PAD touched
PAD result
idle
PAD Average
Total TSCTR
offset
PAD Average – offset
= LowTrip
t
PDC
shortcount
PADFLAG
0
1
0
0
PADRESULT
0
0
1
0
PADERROR
0
0
0
0
Figure 14
LEDTS ROM library signals demonstrating a valid touch detected
Application Note
12
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
idle
PAD touched
PAD error
idle
PAD Average
Total TSCTR
offset
PAD Average – offset
= LowTrip
t
PDC
PADFLAG
0
1
0
0
0
PADRESULT
0
0
0
0
0
PADERROR
0
0
1
1
0
Figure 15
LEDTS ROM library signals demonstrating a long touch detected
3.1.1
LEDTS ROM Library
The software library for the LEDTS - Relaxation Oscillator (RO) Topology is provided in ROM. This library
contains five functions:
•
•
•
•
•
LTS_vROMLIB_Init()
– Initializes the ROM Library referred variables based on user configuration.
SET_LDLINE_CMP()
– Programs SFRs LTS_LDLINE and LTS_COMPARE for LED or/and Touch Sense, based on user-defined
input variables.
FINDTOUCHEDPAD()
– Calculates the running average for each pad turn to eliminate any spurious peaks and troughs in the pad
oscillation frequencies. This creates a stable value from which trip points can be calculated.
SpeedErrorDetection()
– Speeds up the error detection process. This is especially useful when both LED and Touch Sense functions
are enabled, where error detection can become very long.
LTS_vInitCalculation()
– Clears all flags for Touch Sense and all pad averages stored in XRAM to start all calculations afresh.
Details regarding the LEDTS ROM library can be found in the XC83x User’s Manual.
3.1.2
Calibration
The purpose of calibration is to adjust the oscillation windows to the desired sizes. The size of the oscillation
window determines the number of oscillations that can be measured for a touch pad per time frame. There are two
types of calibration:
•
•
Initial Calibration
Adaptive Calibration
3.1.2.1
Initial Calibration
Due to variations across application boards and microcontrollers, there may be a need to resize the oscillation
windows to achieve consistent performance. This is done by the initial calibration routine which is called in the
Application Note
13
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
initialisation stage of the application code. This routine is only executed once. The application code will run after
initial calibration completes. Figure 16 provides an overview of the routine. The user will be required to set three
parameters:
•
•
•
TS LowLimit
– the minimum number of oscillation counts (recommended value = 192)
TS HighLimit
– the maximum number of oscillation counts (recommended value = 208)
Min Compare
– the maximum oscillation window size
Start Init Calib
Get oscillation count
(TSVAL) for 1 touch
input pad
Compare TSVAL
with TS LowLimit
Larger
Reduce oscillation
window size by
incrementing
LTS_COMPARE
No
Smaller
Compare TSVAL
with TS HighLimit
Smaller
Compare current window size
(LTS_COMPARE) with max
window size (Min Compare)
End calibration for
current pad
Smaller
Complete
calibration for all
input pads?
Yes
Larger
Enlarge oscillation
window size by
decrementing
LTS_COMPARE
Figure 16
End Init Calib
Flow chart for Initial Calibration routine
Initial calibration can be enabled in DAVETM (Figure 17) and it will be automatically placed in the initialisation stage
of the generated code.
Application Note
14
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
Figure 17
Enabling Initial Calibration routine in DAVETM
3.1.2.2
Adaptive Calibration
The conditions of the boards’ environment may also change over time. Therefore, a need may arise to resize the
oscillation windows during run-time. The adaptive calibration routine performs this (Figure 18). In addition to the
parameter settings as required in Initial Calibration, the user will also need to configure the value for Cool-down
Period. This parameter determines the speed for the adjustment of the oscillation window size. This slow
adjustment of the oscillation windows is only performed when the respective pads are not touched.
Application Note
15
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
Adaptive Calibration
Enter function
Get Pad Average
value for 1 pad
Enough samples
accumulated?
Compare Average with
AverageHighLimit
Yes
Smaller
Compare Average with
AverageLowLimit
No
Smaller
Check Cool-Down
Counter if it’s time for
calibration
Yes
Larger
Reduce oscillation
window size by
incrementing
LTS_COMPARE
Compare current window size
(LTS_COMPARE) with max
window size (Min Compare)
No
Check if currently a touch
is being assessed
Larger
Enlarge oscillation
window size by
decrementing
LTS_COMPARE
Yes
Exit function
Figure 18
Flow chart for Adaptive Calibration routine
When adaptive calibration is enabled (Figure 19), the function will be available in the generated code. The user
can insert this function in the appropriate section of the application code as necessary.
Figure 19
Enabling Adaptive Calibration routine in DAVETM
Application Note
16
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
3.2
Using ADC
Both Charge Redistribution (CR) and Charge-Time Measurement (CTM) methods use the ADC module in the
microcontroller for touch control. The XC836MT’s ADC module allows up to a maximum of 8 channels that can be
utilised for thetouch interface. Figure 20 provides a simple illustration to explain the concept in implementing touch
using the ADC module.
Charge flow
ANx
Ssample
Spull-down
Cfinger
Cpad
CADC
Rpull-down
Touch Pad
XC800
Figure 20
Implementing touch using ADC
Before the ADC starts each sample (Spull-down is closed), the sampling capacitor (CADC) is automatically charged to
VA,REF/2 (e.g. 2.5V). During sampling (Spull-down is opened), the voltage equalizes between CADC and the touch pad
(Cpad) by charge flow. When the pad is touched, Cfinger is introduced causing an increase in the charge flow. The
remaining charge in the sampling capacitor determines the measured value.
Both of these ADC methods are easy to integrate with the LEDTS method via shared interrupts, allowing them to
be implemented together. The CR and CTM methods differ in the output for capacitance measurement, however
the data processing and detection are similar (Chapter 3.2.3).
3.2.1
Charge Redistribution (CR)
The output in the CR method is the voltage measured by the ADC. A touch on a pad will cause an increase in the
charge flow, leaving a lower amount of charge in the sampling capacitor. This translates to a lower voltage
measured by the ADC. Figure 21 provides a graphical illustration of the sampling results in the CR method.
Application Note
17
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
VPAD
VADC
VAref/2
Vuntouched
Vuntouched
Vtouched
Vtouched
t0
Figure 21
Tsampling
t1
t
t0
Tsampling
t1
t
Sampling result in CR Method
After capacitance has been measured, the data is processed. This is elaborated in Chapter 3.2.3.
3.2.2
Charge-Time Measurement (CTM)
In the CTM method, the ADC will keep sampling until the voltage on the touch pad reaches a pre-determined
threshold level. This can be easily implemented using the limit check boundaries and limit check control features
of the ADC module. The output in the CTM method will then be the time required to charge the touch pad to the
threshold voltage which is measured by a timer; For example, Timer 2. A touch on the pad triggers more charge
flow, resulting in a longer time taken to charge. Figure 22 provides a graphical illustration of the sampling results
in the CTM method.
Application Note
18
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
VPAD
Area III
t
tuntouched
ttouched
Figure 22
Sampling result in CTM Method
After capacitance has been measured, the data is processed. This is elaborated in Chapter 3.2.3.
3.2.3
Data Processing for CR and CTM Methods
The capacitance of every pad is regularly measured and the results are further processed by an enhanced
adaptive average control function (Figure 23) in a software library (Chapter 3.2.4) provided by Infineon. A moving
average is generated and changes in the capacitance are detected. The average is derived by first accumulating
the capacitance measurement results. A noise suppression block ensures that the increase in the accumulated
result per sample is capped, to filter out noise spikes. The signal is then put through a first order low-pass filter to
enable detection of changes to the signal. The hysteresis offset increases the trip-point for touch (or decreases
the offset) after a pad touch is detected. This makes the touch more stable by preventing false finger releases. All
parameters are configurable.
LPF gain
total TSCTR * LPF gain
ADC Voltage
or
Charge Time
Σ
Noise
Suppression
total TSCTR
Low-Pass
Filter
Pad +
Averages
LowTrip
HighTrip
comp
+
Pad
Flags
+/-
hysteresis
offsets
Figure 23
Enhanced adaptive average control
Flags in variables will be set or cleared by an updated touch sense state machine depending on the nature of the
finger touch. The updated touch sense state machine has two versions (Figure 24). Version B is similar to the
touch sense state machine in the ROM library (Figure 13) and it supports tapping control. Version A supports
Application Note
19
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
“touch&hold” control; when a pad has been touched for long enough, a respective PADTOUCHED flag will be set.
The PADTOUCHED flag will be reset when the pad has been left untouched long enough.
total TSCTR * LPF gain
>=
LowTrip
total TSCTR * LPF gain
>=
LowTrip
IDLE
Idle
E
?
total TSCTR * LPF gain
<
LowTrip
Pad
touched?
F T E
1 0 ?
F R E
0 0 0
total TSCTR * LPF gain
>=
LowTrip
F T
0 0
total TSCTR * LPF gain
<
LowTrip
PADERROR
error flag
cleared by
user
PDC init to 0xFF
and counting down
F R E
0 0 1
PDC < VT
total TSCTR * LPF gain
>=
HighTrip
PDC init to 0xFF
and counting down
Figure 24
total TSCTR * LPF gain
<
HighTrip
Pad’s been
touched
F R E
1 0 0
PDC init
to 0xFF
and
counting
down
total TSCTR * LPF gain
>=
HighTrip
PDC < VR
Pad
released?
F T E
0 1 ?
PDC = 0
Valid
Touch
F T E
1 1 ?
PADRESULT
result flag
cleared by user
F R E
0 1 0
PDC < SC
Pad’s been
released
F R E
1 1 0
PDC > SC
Set PADERROR
if PDC==0
Updated touch sense state machines versions A and B
The enhanced adaptive average control and the state machine can be executed in the time frame interrupt to
easily integrate the CR or CTM methods with the RO method using shared interrupts.
Application Note
20
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
Pad touched ?
Idle
Pad released ?
Valid Touch
Idle
Pad Average
Total TSCTR
small offset
offset
HighTrip
LowTrip
noise
0xFF
valid touch
PDC
valid release
0
PADFLAG
0
1
1
1
1
0
0
PADTOUCHED
0
0
1
1
1
1
0
PADERROR
0
0
0
1
1
1
1
Figure 25
Software Library version A signals demonstrating hysteresis offset and flag behaviors
Idle
Pad touched
PADRESULT
Idle
Pad Average
Total TSCTR
offset
small offset
HighTrip
LowTrip
noise
0xFF
PDC
valid touch
0
Figure 26
PADFLAG
0
1
0
0
PADRESULT
0
0
1
0
PADERROR
0
0
0
0
Software Library version B signals demonstrating hysteresis offset and valid touch detection
Application Note
21
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
Pad error cleared
without re -initialization
Idle
PAD Error
Pad touched
Pad released
Pad Average
Total TSCTR
offset
Idle
small offset
HighTrip
LowTrip
0xFF
PDC
error touch
0
PADFLAG
0
1
0
0
0
PADRESULT
0
0
0
0
0
PADERROR
0
0
1
1
0
Figure 27
Software Library version B signals demonstrating hysteresis offset and long touch detection
3.2.4
Software Library for CR and CTM Methods
The software library is provided as a source file called ADC_LIB.C. The library contains a total of five functions,
namely:
•
•
•
•
•
ADC_vROMLIB_Init()
– Initializes the variables used in the ADC touch software library.
ADC_vGetpadchargelevel()
– Gathers the ADC conversion results which indicate the charge level at the touch pads.
ADC_vFindtouchedpad()
– Calculates, based on the ADC conversion results, to determine whether there is a touch on a pad. This
function then updates the flags (ADC_PadX) accordingly.
ADC_vSpeedErrorDetection()
– Provides the option to speed up the error detection process.
ADC_vInitCalculation()
– Clears all flags (ADC_PadX), average and accumulated values for the pad that had an error (long) touch.
A block of user-defines is available at the beginning of the source file (Figure 28). The parameters in this block
can be altered to influence the performance of the software library. Table 1 lists down the description of these
parameters.
Application Note
22
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
Figure 28
Software Library User-Defines
Table 1
Description of Software Library User-Defines
Parameter
Description
Min Value
Max Value
NO_OF_PADS
Number of touch pad
inputs (ADC channels)
used in the application.
1
8
NO_OF_AD_
CONVERSIONS_
PADx
Number of times to charge 1
each touch pad in each
sample.
-
NO_OF_SAMPLES_TO_
ACCUMULATE
Number of samples to
accumulate before postdetection processing.
1
-
OFFSET_SETTING
Option for common or
individual pad offsets.
0 - for individual pad offset FFFFH
option, else any other
value will be used as the
common offset.
PADx_OFFSET
Individual pad offsets if
OFFSET_SETTING = 0.
0001H
FFFFH
SMALL_OFFSET
0001H
This value is part of the
hysteresis offset algorithm.
This value will be used in
place of the pad offset after
a pad is touched.
FFFFH
LOW_PASS_FILTER_
GAIN_FACTOR
First order low pass filter
gain factor value.
-
Application Note
1
23
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Infineon’s Touch Solutions
Table 1
Description of Software Library User-Defines
Parameter
Description
Min Value
Max Value
VALID_TOUCH1)
FFH
When the pad-down
counter (ADC_Pdc) counts
down to this value, a valid
touch is detected.
01H
LONG_TOUCH1)
FEH
When ADC_Pdc counts
down to this value, an
invalid (long/error) touch is
detected.
00H
TRUNCATION_
FACTOR
This factor value is used to 0
scale down the
accumulated conversion
result to avoid an overflow
in the calculated average2).
-
MAX_NOISE_JUMP /
MAX_NOISE_DROP3)
The maximum noise spike 0
or dip allowed for
consecutive accumulated
conversion results. This is
to prevent false finger
release triggers.
-
1) The value of VALID_TOUCH should be set to be higher than the value of LONG_TOUCH.
2) This value is recommended to be the same as the LOW_PASS_FILTER_GAIN_FACTOR.
3) x_JUMP is used in CR method while x_DROP is used in CTM method.
Application Note
24
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Programming Access
4
Programming Access
The USB Stick provides programming access to the microcontroller via an FTDI chip, FT2232, which acts as a
USB-to-UART bridge. Programming access is wired for half-duplex UART on pin P3.2. Flash content can be
modified with the XC800 FLOAD tool which is integrated into DAVE™ Bench (Figure 29) and is also available in
a stand-alone version.
Figure 29
Launching FLOAD from DAVETM Bench
The XC836 boot configuration does not depend on any pin status during reset. Instead, a Boot Mode Index (BMI)
configuration determines the entry to various boot modes such as User Mode, Boot-Loader (BSL) Mode and Onchip Debug (OCDS) Mode. After reset, the BMI value is read and the respective boot mode entry is automatically
executed.
The onboard microcontroller is programmed to “User Mode (Diagnostic)”. In this mode, the Boot ROM jumps to
the program memory address 0x0000 on startup to execute the user code in the Flash memory. This mode
provides Flash memory protection from external access (read/write), but with the SPD port automatically
configured to allow hot-attach. This allows the user to change the contents of the Flash memory using FLOAD
(Figure 30).
Application Note
25
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Programming Access
Figure 30
XC800 FLOAD
Application Note
26
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Monitoring
5
Monitoring
This section provides general information on signal monitoring via U-SPY.
5.1
U-SPY
U-SPY is a UART terminal program which allows the user to view a serial communication through a PC serial port.
Its features include transmission of a byte or group of bytes, configuration of protocol for bytes
transmission/reception and creation of dedicated control buttons, display fields, progress bars and an oscilloscope
for better visualization.
For more information, please refer to the Help menu in U-SPY.
U-SPY can be launched as a stand-alone or directly from DAVETM Bench by clicking the icon provided on the
toolbar (Figure 31).
Figure 31
Launching U-SPY from DAVETM Bench
5.2
Settings
The custom configuration and user interface for a particular task or application can be saved in the format “xxx.ini”.
This allows specific setting files to be shared among users. Figure 32 provides an example of a setting file.
Application Note
27
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Monitoring
Figure 32
An example of a U-SPY .ini file
For the inTouch Application Kit, various .ini files have been configured to be used on different daughter boards.
The individual application notes on the daughter boards will cover in more depth regarding the specific settings for
their respective .ini files.
Serial communication is via full-duplex UART protocol at a baudrate of 57.6 kbps, using microcontroller port pins
0.7 as transmit pin and 2.7 as receive pin.
5.3
UART Interrupt
Any data transmission to or from U-SPY will trigger the UART interrupt in the XC836 microcontroller. Checks are
performed during the interrupt to determine whether data is to be transmitted or received. The data transmit or
receive process is then carried out automatically.
Application Note
28
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Appendix - Schematics and Layout
Appendix - Schematics and Layout
Figure 33
inTouch USB Stick Schematics
Application Note
29
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Appendix - Schematics and Layout
R6
R8
LED3
R11
R3
LED1
X1
C15
C8
R5
R4
2
GND1 C18
C3
C4
C14
C13
3
L3
R7
R13
Figure 34
IC5
IC2
IC3
LED2
4
C19
L2
L1
VDD
inTouch USB Stick Component Top Layout
R16
R15
C9
C12
C10
R2
C6
C5
1
C17
C11
R10
R1
C1
C7
C16
C2
R14
Figure 35
inTouch USB Stick Component Bottom Layout
Figure 36
inTouch USB Stick Top Layout
Application Note
30
R9 R12
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Appendix - Schematics and Layout
Figure 37
inTouch USB Stick Bottom Layout
Application Note
31
V1.0, 2012-02
Figure 38
Application Note
32
D
C
B
A
1
1
JP2
7
6
5
4
3
2
1
2
COL5
COL4
COL3
2
20
18
16
14
12
10
8
6
4
2
AN0
AN1
AN2
AN3
AN4
AN5
AN6
COL2
COL1
COL0
LINE6
LINE5
LINE4
LINE3
COL5 LINE2
COL4 LINE1
COL3 LINE0
19
17
15
13
11
9
7
5
3
1
3
3
COL5
COL4
COL3
1
2
3
4
5
6
JP3
1
2
3
4
5
6
7
JP1
4
4
Adapter
5
Touch Sense Application Kit
5
6
6
D
C
B
A
AP08126
Infineon Touch Solutions - inTouch Application Kit
Appendix - Schematics and Layout
inTouch Adapter Schematics
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
Appendix - Schematics and Layout
Figure 39
inTouch Adapter Top Layout
Figure 40
inTouch Adapter Bottom Layout
Application Note
33
V1.0, 2012-02
AP08126
Infineon Touch Solutions - inTouch Application Kit
References
References
The list below provides resources that may be useful to the user.
1.
2.
3.
4.
5.
6.
7.
8.
User’s Manual - XC83x; 8-Bit Single-Chip Microcontroller
Application Note - AP08100 - Configuration for Capacitive Touch-Sense Application
Application Note - AP08110 - Design Guidelines for XC82x and XC83x Board Layout
Application Note - AP08113 - Capacitive-Touch Color Wheel Implementation
Application Note - AP08115 - Design Guidelines for Capacitive Touch-Sensing Application
Application Note - AP08121 - Infrared Remote Controller with Capacitive Touch Interface
Application Note - AP08122 - 16-Button Capacitive Touch Interface with XC836T
Application Note - AP08124 - XC82/83x Design Guidelines for Electrical Fast Transient (EFT) Protection in
Touch-Sense Applications
9. Application Note - AP08127 - inTouch Application Kit - Buttons
10. Application Note - AP08128 - inTouch Application Kit - Touch Wheel
11. Application Note - AP08129 - inTouch Application Kit - Touch Sliders
12. Application Note - AP08130 - inTouch Application Kit - LED Matrix
13. Link to XC83x-Series - www.infineon.com/xc83x
14. Link to Solutions for advanced touch control - www.infineon.com/intouch
Application Note
34
V1.0, 2012-02
w w w . i n f i n e o n . c o m
Published by Infineon Technologies AG