ST STM32F0 Series, STM32F3 Series, STM32L0 Series, STM32L1 Series, STM32L4 Series Application Note

...
Page 1
AN5105
Getting started with touch sensing control on STM32 microcontrollers
Introduction
This document helps customers to quickly locate information regarding touch sensing on STM32 microcontrollers.
It is applicable to STM32F0, STM32F3, STM32L0, STM32L1 and STM32L4 Series products. It lists all the existing application notes and user manuals covering touch sensing. It indicates where the key aspects of touch sensing are documented.
It also explains how to build touch sensing applications on STM32L0538-DISCO and STM32F072B-DISCO discovery boards using the STM32CubeMx graphical interface.
AN5105 - Rev 1 - September 2018 For further information contact your local STMicroelectronics sales office.
www.st.com
Page 2

1 General information

This document applies to Arm®-based devices.
Note: Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
AN5105
General information
AN5105 - Rev 1
page 2/52
Page 3

2 Terminology and principle

2.1 Terminology

The touch sensing most relevant acronyms are described below:
Acquisition mode
CT: Charge-Transfer acquisition principle. This mode is used on STM32 microcontrollers.
Touch sensing STM32 peripheral
TSC: touch sensing controller peripheral
Bank: set of channels acquired simultaneously
Channel: elementary acquisition item
Group: set of 1..3 channels plus 1 sampling capacitor (Cs)
Sensors
Touchkey or TKey: single channel sensor
Linear sensor: multi-channels sensor with the electrodes positioned in a linear way
Rotary sensor: multi-channels sensor with the electrodes positioned in a circular way
Active shield: track running along or copper plane surrounding the sensor track and/or sensor itself.
Active shield is driven similarly to the sensor. Improve noise robustness without decreasing the sensitivity.
STM32 software
TSL: touch sensing library
Delta: difference between the measure and the reference
Measure or meas: current signal measured on a channel
Reference or ref: reference signal based on the average of a sample of measures
DTO: detection time out. Time out is defined by TSLPRM_DTO. See TSLPRM_DTO in tsl_conf.h file.
DXS: detection exclusion system. Exclusion system is defined by TSLPRM_USE_DXS. See
TSLPRM_USE_DXS in tsl_conf.h file.
ECS: environment change system. See TSLPRM_ECS_DELAY in tsl_conf.h file.
Hardware Involved
Cx: sensor capacitance (typical value is few pF)
Cp: parasitic capacitance (typical value few pF)
Ct: equivalent touch capacitance
Cs/Cskey/Csshield: sampling capacitor (typical value from 2.2 to 100nF)
Rs/Rskey/Rsshield: serial resistor, ESD protection (typical value from 100Ohms to 10K)
AN5105
Terminology and principle
2.2
AN5105 - Rev 1

Principle

The STM32 touch sensing feature is based on charge transfer.
The surface charge transfer acquisition principle consists in charging a sensor capacitance (Cx) and in transferring the accumulated charge into a sampling capacitor (Cs).
This sequence is repeated until the voltage across Cs reaches VIH.
The number of charge transfers required to reach the threshold is a direct representation of the size of the electrode capacitance. When the sensor is touched, the sensor capacitance to the earth is increased. This mean the C voltage reaches VIH with less count and the measurement value decreases. When this measurement goes
below a threshold, a detection is reported by the TSL. The schematic below do not take into account the parasitic capacitor.
page 3/52
Page 4
AN5105
Principle
Figure 1. Change transfer principle
V
DD
User finger
STM32
MCU
V
SS
Sampling capacitor
Cs
Sensor capacitor
Cx
touchkey
sensor
eletrode
Human
body
coupling
to earth
Table 1. Change transfer principle documentation gives a list of documents containing information about the
change transfer principle.
Table 1. Change transfer principle documentation
Id
AN4299
AN4310
AN4312
AN4316 Tuning a STMTouch-based application Charge transfer periode tuning
OLT STM32L4 On Line Training Touch sensing controller (TSC)
Guidelines to improve conducted noise robustness on STM32F0/F3/L0/L4 series touch sensing applications
Sampling capacitor selection guide for MCU based touch sensing applications
Guidelines for designing touch sensing applications with surface sensors
Title Chapters
Surface charge transfert acquisition principle overview
Charge transfert acquisition principle overview
Capacitive sensing technology in ST
AN5105 - Rev 1
page 4/52
Page 5

3 Document reference

Figure 2. Main documentation tree shows the main documentation tree related to TSC and TSL.
AN5105
Document reference
Figure 2. Main documentation tree
Application Note
overview
(AN5105)
STM32 On-line
Training
TSC
Getting Started
with TSL
(UM1913)
Sensors
(AN4312)
ESD
(AN3960)
Tuning
(AN4316)
Conducted Noise
(AN4299)
Table 2. References documentation
Document name
UM1913 Developing applications on STM32Cube with STMTouch® touch sensing library
AN3960 ESD considerations for touch sensing applications
AN4299
AN4310 Sampling capacitor selection guide for MCU based touch sensing applications
AN4312 Guidelines for designing touch sensing applications with surface sensors
AN4316 Tuning a STMTouch-based application
Guidelines to improve conducted noise robustness on STM32F0/F3/L0/L4 series touch sensing applications
Document title
Sampling Capacitor (AN4310)
AN5105 - Rev 1
page 5/52
Page 6
STM32L4 touch sensing controller online presentation

4 STM32L4 touch sensing controller online presentation

An online training is available under our website www.st.com.
Insert the STM32L4 Online Training” string in the "Search" fuction and press enter.
To find it use the function "Search" and insert the strings “STM32L4 Online Training”. Figure 4. STM32L4 Touch
Sensing Controller online training shows the online page available .
Figure 3. STM32L4 online training
AN5105
Figure 4. STM32L4 Touch Sensing Controller online training
AN5105 - Rev 1
page 6/52
Page 7

5 Main characteristics

5.1 Description

The following Figure 5. TSC characteristics shows all touch sensing controller (TSC) characteristics and their correlation.
The TSC main characteristics are described in the following pages.
AN5105
Main characteristics
Figure 5. TSC characteristics
TSC
5.2
Signal
threshold
Charge transfer
PCBSensorSensitivity
Guard ringShieldRotaryLinearKeys
Power supply
False
detection
Noise
Noise
immunity
Conducted
Noise

Signal threshold

To tune the detection thresholds, it must determine the sensitivity of each touchkey. For each touchkey, can be used few parameters to adjust these signal thresholds.
For debug purpose, it can get touchkey parameters using printf or STMStudio tool:
for (Index = 0;Index < NUMBER_OF_TOUCHKEYS;Index++) { printf("K%1d [%2d][%4d %3d %3d %4d] %d %d %d %d %d" ,Index ,MyTKeys[Index].p_Data->StateId ,MyTKeys[Index].p_ChD->Ref ,MyTKeys[Index].p_ChD->RefRest ,MyTKeys[Index].p_ChD->Delta ,MyTKeys[Index].p_ChD->Meas ,MyTKeys[Index].p_Param->ProxInTh ,MyTKeys[Index].p_Param->ProxOutTh ,MyTKeys[Index].p_Param->DetectInTh ,MyTKeys[Index].p_Param->DetectOutTh ,MyTKeys[Index].p_Param->CalibTh ); }
Note: ProxInTh and ProxOutTh are defined for proximity detection feature only, when TSLPRM_USE_PROX = 1.
AN5105 - Rev 1
page 7/52
Page 8
Figure 6. STMStudio outputs
AN5105
Signal threshold
On software side:
Relevant information are located in tsl_conf.h and tscl_user.c files.
Threshold (xx_TH) can be adjust in tsl_conf_tsc.h file.:
See below an example:
#define TSLPRM_TKEY_DETECT_IN_TH (64) #define TSLPRM_TKEY_DETECT_OUT_TH (60) #define TSLPRM_TKEY_CALIB_TH (56) #define TSLPRM_LINROT_DETECT_IN_TH (50) #define TSLPRM_LINROT_DETECT_OUT_TH (40)
The TSL api, tsl_user_SetThresholds, located in tsl_user.c allows to adjust each channel independently. See below an example:
void tsl_user_SetThresholds(void) { /* USER CODE BEGIN Tsl_user_SetThresholds */ /* Example: Decrease the Detect thresholds for the TKEY 0*/ MyTKeys_Param[0].DetectInTh -= 10; MyTKeys_Param[0].DetectOutTh -= 10; /* USER CODE END Tsl_user_SetThresholds */ }
Table 3. Signal threshold usage documentation gives a list of documents containing information about the signal
threshold usage.
AN5105 - Rev 1
page 8/52
Page 9
Id Title Chapters
UM1913
AN4316 Tuning a STMTouch-based application
Developing applications on STM32Cube with STMTouch® touch sensing library

5.3 Charge transfer

The acquisition is based on the measurement of the sensor channel capacitance.
To ensure that the Cx capacitance is correctly charged, it is necessary to monitor the pin connected to the sensor. On sensors and shield sides, it must observe a complete Charge/Discharge cycle.
AN5105
Charge transfer
Table 3. Signal threshold usage documentation
Debug with STMStudio
Monitoring STMTouch driver variables using STMStudio
Tuning of the Thresholds
Touchkeys thersholds
Linear and Rotary touch sensors thresholds
Figure 7. Incomplete and complete charge transfert cycle
In this example , to complete the charge transfer cycles, the following parameter must be modified as below:
INCREASE:
htsc.Init.PulseGeneratorPrescaler
htsc.Init.CTPulseHighLength
htsc.Init.CTPulseLowLength
DECREASE:
Sysclk
Table 4. Charge transfer documentation gives a list of documents containing information about the charge
transfer.
Table 4. Charge transfer documentation
Id
AN4299
AN4316 Tuning a STMTouch-based application Charge transfer period tuning
Guidelines to improve conducted noise robustness on STM32F0/F3/L0/L4 series touch sensing applications
Title Chapters
Active shield
AN5105 - Rev 1
page 9/52
Page 10

5.4 Sensitivity

Sensitivity is a key point in touch sensing applications. The sensitivity can be improved by:
Reduce air gap
Reduce panel thickness
Choose dielectric with higher ε
GND plane must not too close from shield and sensors
Avoid metallic paint near shield and sensors
Table 5. Sensitivity documentation gives a list of documents containing information about the sensitivity.
Id Title Chapter
AN1913
AN4312
AN4316 Tuning a STMTouch-based application All chapter
R
Table 5. Sensitivity documentation
Developing applications on STM32Cube with STMTouch® touch sensing library
Guidelines for designing touch sensing applications with surface sensors
AN5105
Sensitivity
GPIO mode (table)
Air Gap:
Reduce air gap
Changing the Panel material:
Reduce Panel thickness
Choose dielectric with higher ε
Metal chassis:
GND not too closed from Shield and Sensors
Avoid Metallic paint near Shield and Sensors
Mechanical construction and PCB to panel bonding. Surface sensor design
R
Dielectric example
Table 6. Dielectric constants of common materials used in a panel construction
Polyethylene terephthalate (PET) 3.7
FR4 (fiberglass + epoxy 4.2
PMMA (Poly methyl methacrylate) 2.6 to 4
Material
Air 1.00059
Glass 4 to 10
Sapphire glass 9 to 11
Mica 4 to 8
Nylon 3
Plexiglass 3.4
Polyethylene 2.2
Polystyrene 2.56
Typical PSA 2.0 - 3.0 (approximately)
ε
R
AN5105 - Rev 1
page 10/52
Page 11
5.5 Sensors
It is recommended to use the same shape for all electrodes.
The touchkeys can be customized by the drawing on the panel. TSL compensates capacitance differences.
Acquisition time and processing parameters can be optimized when electrodes have similar capacitance.
Sensor size example

5.5.1 Key

Key sensors are used in common application
You can get deeper key information in following documents:
Table 7. Key documentation gives a list of documents containing information about the key.
AN5105
Sensors
Figure 8. Sensor size
Table 7. Key documentation
Id Title Chapters
UM1913
AN4312
Developing applications on STM32Cube with STMTouch® touch sensing library
Guidelines for designing touch sensing applications with surface sensors
Touchkey sensor
Touchkey sensor
AN5105 - Rev 1
page 11/52
Page 12

5.5.2 Linear or slider

A linear is a set of contiguous capacitive electrodes. Figure 9. Interlaced linear touch sensor with 3 channels / 4
electrodes (half-ended electrodes design) shows a slider used on a discovery board.
Figure 9. Interlaced linear touch sensor with 3 channels / 4 electrodes (half-ended electrodes design)
AN5105
Sensors
Up to 60 mm
Full band width 3.6 mm
Tooth pitch
2.4 mm
Squared end
0.2~0.3 mm
Electrode/ground gap 2 mm
Electrode gap 0.2~0.3 mm
Legend:
Via between layers
10% meshed ground plane
Copper electrode
Table 8. Linear touch sensor documentation gives a list of documents containing information about the linear
touch sensor.
Table 8. Linear touch sensor documentation
Id
UM1913
AN4312
Developing applications on STM32Cube with STMTouch® touch sensing library
Guidelines for designing touch sensing applications with surface sensors
Title Chapters
Linear and rotary touch sensors
Linear sensor
AN5105 - Rev 1
page 12/52
Page 13

5.5.3 Rotary or wheel

A rotary is a set of contiguous capacitive electrodes.
Figure 10. Interlaced patterned rotary sensor with 3 channels / 3 electrodes
Full band width 2.0 - 4.0 mm
Tooth pitch
2.0 - 4.0 mm
AN5105
Sensors
0.2 - 0.3 mm
0.2 - 0.3 mm
0.2 - 0.3 mm
2 mm
LEGEND:
Via between layers
10 % meshed ground plane
Copper electrode
Table 9. Rotary sensor documentation gives a list of documents containing information about the rotary sensor.
Table 9. Rotary sensor documentation
Id
UM1913
AN4312
Developing applications on STM32Cube with STMTouch® touch sensing library
Guidelines for designing touch sensing applications with surface sensors
Title Chapters
Linear and rotary touch sensors
Rotary sensor
AN5105 - Rev 1
page 13/52
Page 14

5.5.4 Active shield or driven shield

Active shield or driven shield. (this name is used in some application notes) drives the shield plane with the same signal as the electrode.
There are several advantages using Active Shield instead of a grounded shield:
The parasitic capacitance between the electrode and the shield no longer needs to be charged.
Protect the touch electrodes from a noise source.
Increase system stability and performance when a moving metal part is close to the electrode.
Figure 11. Active shield principle
Rs
key
IO1
AN5105
Sensors
Touchkey
group X
Shield
group Y
IO2
IO3
IO4
IO1
IO2
IO3
IO4
Cs
Cs
key
shield
Rs
shield
Table 10. Active shield documentation gives a list of documents containing information about the active shield.
Table 10. Active shield documentation
AN5105 - Rev 1
Id
AN4299
AN4312
AN4316 Tuning a STMTouch-based application Shield adjustment
OLT STM32L4 Online Training Touch sensing controller (TSC)
Guidelines to improve conducted noise robustness on STM32F0/F3/L0/L4 series touch sensing applications
Guidelines for designing touch sensing applications with surface sensors
Title Chapters
Active Shield
Driven shield
page 14/52
Page 15

5.6 Layout and PCB

Rules to follow to improve TSC systems

5.6.1 Led rules

AN5105
Layout and PCB
Figure 12. Led layout example
Figure 13. Example of cases where a LED bypass capacitor is required
V
DD
V
DD
V
DD
Table 11. Led rules documentation gives a list of documents containing information about led rules.
Table 11. Led rules documentation
Id
AN4312
Guidelines for designing touch sensing applications with surface sensors
Title Chapters
LEDs and Sensors.
Placing of LEDs close to sensor
AN5105 - Rev 1
page 15/52
Page 16

5.6.2 Electrode not located on PCB

It is possible but it is not recommended, because when the electrode it isn't located on PCB, the sensitivity decreases and additional extra parasitic capacitances are added.
Figure 14. Electrode not located on PCB example
AN5105
Layout and PCB
Front panel (plexiglass or other suitable
material)
Controller
PCB
Spring
Printed
electrode
Printed electrode (optional)
PCB pad
Spacer (cylinder
of hard foam or
other suitable
material)
Flex PCB
ACF/ACP
connection
Flex
connector
Table 12. Electrode documentation gives a list of documents containing information about the electrode .
Table 12. Electrode documentation
Id
AN4312
Guidelines for designing touch sensing applications
Title Chapters
with surface sensors
Using electrodes separated from the PCB
AN5105 - Rev 1
page 16/52
Page 17

5.6.3 Ground, shield and sensors

Table 13 gives a list of documents containing information about the layout .
Id Title Chapters
AN4312
Figure 15 shows the ground plane and the signal tracks.
Guidelines for designing touch sensing applications with surface sensors
AN5105
Layout and PCB
Table 13. Layout documentation
PCB and Layout
Ground considerations
Rotary and linear sensor recommendations
Figure 15. Hatched ground and signal tracks
Must be avoided
Track is OK
Figure 16. Ground plane example
Tkey2
Tkey3
Hatched ground plane (optional)
Tkey1
Tkey4
Rx
Rx
Rx
Rx
Flood ground plane (mandatory)
GPIO1 GPIO2 GPIO3 GPIO4
C
S
AN5105 - Rev 1
page 17/52
Page 18
Figure 17. Track routing
Figure 18. Track routing recommendation
At least 2 mm (4 - 5 mm is recommended)
AN5105
Layout and PCB
Ground plane or
ground track
Touchkey bank 1
At least
twice the
track width
As thin as
PCB
technology
allows
Any application track
(LED, power, Com.)
At least twice the
panel thickness
Touchkey bank 2
AN5105 - Rev 1
page 18/52
Page 19
(W)
Figure 19. Shield
Top layer Bottom layer
Ground plane
Track width (W)
AN5105
Layout and PCB
~ 0.21
3-4 mm
Active shield
Sense plate
3 x W
AN5105 - Rev 1
page 19/52
Page 20

5.6.4 FAQ

System keys points:
Direct connection between earth and board ground is required to avoid conducted noise issues.
Conductive painting on the front panel must be avoid.
Robust mechanical assembly is required.
Layout keys points:
GND plane is mandatory under MCU, sampling capacitors and up to serial resistors
Hatched GND plane recommended for sensor traces from both sides of the PCB:
Route the sensors and ground on the same layer while the components and other tracks are routed on the
Driven shield, or Active shield, is recommended.
If there will be LEDs close to sensors, to indicate a touch event, they must be bypassed by a capacitor.
External LDO regulator should be used to power the MCU only to provide a stable power supply voltage
It is strongly recommended to dedicate pins to be used as touch sensors and do not share them with other
RS and CS keys points:
PPS or NPO sampling capacitors are recommended. Possible X5R or X7R.
Never use tantalium sampling capacitors.
Serial ESD 10 K (down to 1 K) resistors are recommended to be placed as close as possible to the MCU
No track crossing or via between these resistors and the MCU
The value of sampling capacitor of active shield should be different than the value of the sampling capacitors
The capacitance of active shield is higher (larger area) than CX of a single touch sensing channel. In order to
AN5105
Layout and PCB
minimize parasitic capacitance
mesh plane possible with 25% to 40% copper
other layers
typically 10 nF.
without any ripple, especially all the switching components like transistors, LEDs, in the application mustn't be powered from the same voltage. This regulator should not be placed close to the sensors and their tracks, but close to MCU.
features
used for acquisition.
achieve the same waveform on active shield and active touch sensing channel, the ratios CS/CX of active shield and active touch sensing channel (touchkey). therefore, the CS of the active shield should also have
higher value (k x CS of touch sensing channel).
AN5105 - Rev 1
Sensor key points:
Other traces must not cross the touch sensing traces or the whole touch sensing area
The touch sensing traces should be as thin as technology allows and as short as possible.
No longer than 10 cm
The space between traces and GND plane should be ideally 5 mm
TC pins are more robust against external interference than FT:
Consider modification of PCB layout to allow connection of external VDD clamping diode to touch sensing electrode traces.
Use lowcapacitance diode like BAR18, BAS70 with Cmax = 2 pF.
In case it is later needed, add pads and connection to the PCB without assembling components.
Floating panes must never be placed close to the sensors.
page 20/52
Page 21

5.7 Noise

Noise is a key point for touch sensing applications. Noise can come from Power supply.

5.7.1 Power supply

Main rules to follow:
Place Buzzer and LED before LDO.
Place LDO close to MCU.
Supply
input
Figure 20. Typical power supply schematic
LEDs
V
DD
V
1 μF 100 μF 100 μF 1 μF
IN
LDO
regulator
V
SS
V
OUT
(1)
AN5105
Noise
V
DD
V
DD
Touch sensing
device (MCU)
GPIO
V
SS
LED
10 nF
Table 14. Power supply documentation gives a list of documents containing information about the power supply.
Id
AN4312
Guidelines for designing touch sensing applications with surface sensors

5.7.2 False detection

To avoid false detection TSL embed ECS, DXS and DTO algorithms.
Table 15. False detection documentation gives a list of documents containing information about the false
detection.
Id Title Chapters
UM1913
Developing applications on STM32Cube with STMTouch® touch sensing library
Table 14. Power supply documentation
Title Chapters
Power supply
Table 15. False detection documentation
Environment Change System (ECS)
Power supply voltage, temperature and
air humidity
Detection Exclusion System (DXS)
Detection Time Out (DTO)
AN5105 - Rev 1
page 21/52
Page 22

5.7.3 Noise immunity

Noise filtering can be done on hardware and software (TSL) sides.
Table 16. Noise immunity documentation gives a list of documents containing information about the noise
immunity.
Id Title Chapters
UM1913
AN4299
OLT STM32L4 Online Training Touch sensing controller (TSC)
Developing applications on STM32Cube with STMTouch® touch sensing library
Guidelines to improve conducted noise robustness on STM32F0/F3/L0/L4 series touch sensing applications

5.7.4 Conducted noise

Touch sensing systems requires the conducted noise immunity.
A key point is the signal to noise ratio (SNR).
The test condition to be followed by the user is described in the standard IEC61000-4-6.
Table 17. Conducted noise documentation gives a list of documents containing information about the conducted
noise.
AN5105
Noise
Table 16. Noise immunity documentation
Noise filters
How to improve noise immunity
AN4299
Table 17. Conducted noise documentation
Id Title Chapters
Guidelines to improve conducted noise robustness on STM32F0/F3/L0/L4 series touch sensing applications
All chapters
AN5105 - Rev 1
page 22/52
Page 23

6 Tuning

For tuning purpose dedicated application note are available.
Sensors
Table 18. Sensors documentation gives a list of documents containing information about the sensor.
Id Title Chapters
AN4312
ESD
Table 19. ESD documentation gives a list of documents containing information about the ESD
Table 18. Sensors documentation
Guidelines for designing touch sensing applications
with surface sensors
AN5105
Tuning
All chapters
Table 19. ESD documentation
Id Title Chapters
AN3960 ESD considerations for touch sensing applications All chapters
CN
Table 20. Conducted noise documentation gives a list of documents containing information about the conducted
noise.
Table 20. Conducted noise documentation
Id
AN4299
Guidelines to improve conducted noise robustness on
STM32F0/F3/L0/L4 series touch sensing applications
Title Chapters
All chapters
CS
Table 21. Sampling capacitor documentation gives a list of documents containing information about the sampling
capacitor.
Table 21. Sampling capacitor documentation
AN5105 - Rev 1
Id
AN4310
Title Chapters
Sampling capacitor selection guide for MCU based touch sensing applications
All chapters
page 23/52
Page 24

7 Getting started TSC with STM32CubeMX

7.1 Uses cases

How to set-up an TSC application based on TSL is esplained in the following two examples. These examples describe the way to set-up TLS on STM32F072B-DISCO and STM32L0538-DISCO discovery boards.
This description can be used as example to set-up others TSC series such us L4, F3, L0, L1 and L4.
An STM32CubeMX new feature is available from version 4.24.0. This new feature can help to speed-up TSL, TouchSensingLib, installation.
Figure 21. Main project panel
AN5105
AN5105 - Rev 1
page 24/52
Page 25

7.2 Discovery board: STM32F072B-DISCO

The STM32F072 Discovery kit helps the user to discover the STM32F072, which has the full set of features available in the STM32F0 Series, and to develop his applications easily. It includes everything required for beginners and experienced users to get started quickly.
Based on the STM32F072RBT6, it includes an ST-LINK/V2 embedded debug tool interface, an ST MEMS gyroscope, LEDs, push-buttons, linear touch sensor, RF EEPROM connector and a USB mini-B connector.
This discovery board provide a three channels linear (or slider) sensor. the main characteristics of these sensor are:
On-board ST-LINK/V2
Supply through ST-Link USB
External Supply: 3V and 5V
JP2 (Idd) for current measurement
Full-Speed USB with mini-B Connector
Motion sensor, 3-axis digital output gyroscope (L3GD20)
One Linear Touch Sensor or four Touch Keys
Two Push-buttons: User and Reset
Six LEDs: USB COM, 3.3 V Power, User (Orange/Green/Red/Blue)
Extension header: (2 x 33) with 2.54 mm Pitch
Discovery Board Formfactor
AN5105
Discovery board: STM32F072B-DISCO

7.2.1 STM32F072B-DISCO board selection

Start to select STM32F072B-DISCO board.
Figure 22. STM32F072B-DISCO board selection
To start Linear Touch Sensor channel acquisition at the same time, three groups are used. (See
Figure 23. STM32F072B-DISCO board schematics
AN5105 - Rev 1
page 25/52
Page 26
Discovery board: STM32F072B-DISCO
Figure 23. STM32F072B-DISCO board schematics
AN5105
AN5105 - Rev 1
page 26/52
Page 27

7.2.2 STM32F072B-DISCO TSC group and sensor activation

To activate the TSC group, sampling capacitors and sensor channels follows the below steps:
activate TSC according schematics information.
desactivate unrelevant peripheral like USB, SPI, NCF(L0), EPaper(L0), MFX(L0)
SWD peripheral must be set according to Figure 24
Figure 24. STM32F072B-DISCO pinout SWD
AN5105
Discovery board: STM32F072B-DISCO
TSC peripheral must be set according to Figure 25.
Figure 25. STM32F072B-DISCO pinout TSC
AN5105 - Rev 1
page 27/52
Page 28
Figure 26 shows the results obtained.
Figure 26. STM32F072B-DISCO pinout overview
AN5105
Discovery board: STM32F072B-DISCO

7.2.3 STM32F072B-DISCO clock tree

It uses the default clock tree setting.
Figure 27. STM32F072B-DISCO clock configuration
AN5105 - Rev 1
page 28/52
Page 29

7.2.4 STM32F072B-DISCO touchsensing library

To activate the TLS usage, switch on TOUCHSENSING box configuration.
Figure 28. TOUCHSENSING box configuration
AN5105
Discovery board: STM32F072B-DISCO
Select three channels Linear slider and assign dedicated Gx_IOy (see previous chapter or schematics for details).
For training purpose, we can used three channels Linear slider as three keys sensors.
Select three keys and assign dedicated Gx_IOy (see previous chapter or schematics for details).
Figure 29 to Figure 33 show these steps.
Figure 29. STM32F072B-DISCO sensor selection
AN5105 - Rev 1
page 29/52
Page 30
Discovery board: STM32F072B-DISCO
Figure 30. STM32F072B-DISCO sensor selection step2
AN5105
Figure 31. STM32F072B-DISCO sensor selection step3
AN5105 - Rev 1
page 30/52
Page 31
Discovery board: STM32F072B-DISCO
Figure 32. STM32F072B-DISCO sensor selection step4
AN5105
Figure 33. STM32F072B-DISCO sensor selection step5
AN5105 - Rev 1
page 31/52
Page 32

7.2.5 STM32F072B-DISCO software project generation

Now, it is possible to generate the complete software project based on TSC HAL and TSL.
Figure 34 to Figure 37 show all these steps.
Figure 34. STM32F072B-DISCO software generation step1
AN5105
Discovery board: STM32F072B-DISCO
Figure 35. STM32F072B-DISCO software generation step2
AN5105 - Rev 1
page 32/52
Page 33
Discovery board: STM32F072B-DISCO
Figure 36. STM32F072B-DISCO software generation step3
Figure 37. STM32F072B-DISCO IDE workspace
AN5105
AN5105 - Rev 1
page 33/52
Page 34

7.2.6 STM32F072B-DISCO software basic algorythm

The user needs now to write the main application loop.
Example to show keys usage instead of slider usage.
Open your IDE and in main.c file add the following lines:
/* USER CODE BEGIN 3 */ extern TSL_LinRot_T MyLinRots[]; static uint32_t cnt=0; tsl_user_status_t status = TSL_USER_STATUS_BUSY; status = tsl_user_Exec(); if(TSL_USER_STATUS_BUSY == status) { // Nothing to do if(cnt++%50==0){ HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin); } HAL_Delay(1); } else { if(MyLinRots[0].p_Data->StateId == TSL_STATEID_DETECT) { //TSLPRM_LINROT_RESOLUTION if(MyLinRots[0].p_Data->Position >= 5 && MyLinRots[0].p_Data->Position < 50) { HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); } if(MyLinRots[0].p_Data->Position >= 50 && MyLinRots[0].p_Data->Position < 80) { HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); } if(MyLinRots[0].p_Data->Position >= 80 && MyLinRots[0].p_Data->Position < 120) { HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_RESET); } } else //if(MyLinRots[0].p_Data->StateId == TSL_STATEID_RELEASE) { HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LD6_GPIO_Port, LD6_Pin, GPIO_PIN_RESET); } } } /* USER CODE END 3 */
AN5105
Discovery board: STM32F072B-DISCO
AN5105 - Rev 1
Take care of ST-Link setup, see Figure 38. STM32F072B-DISCO setup.
page 34/52
Page 35
Figure 38. STM32F072B-DISCO setup
AN5105
Discovery board: STM32F072B-DISCO
Now the system is functional and ready to be used. Led will blink according finger position on slider.
AN5105 - Rev 1
page 35/52
Page 36

7.3 Discovery board: STM32L0538-DISCO

The STM32L053 discovery kit helps you to discover the ultra-low-power microcontrollers of the STM32L0 series. It offers everything required for beginners and experienced users to get started quickly and develop applications easily.
Based on an STM32L053C8T6, it includes an ST-LINK/V2-1 embedded debug tool interface, linear touch sensor, IDD current measurement, 2.04” E-paper display, NFC connector for PLUG-CR95HF-B board, LEDs, pushbuttons and a USB Mini-B connector.
This discovery board provide a three channels linear (or slider) sensor. Their main characteristics are:
On-board ST-LINK/V2-1
Supply through ST-Link USB
External Supply : 3V and 5V
JP4 (Idd) for current measurement
Full-Speed USB with mini-B Connector
E-paper 2.04" display (172 x 72)
One Linear Touch Sensor or four Touch Keys
Two Push-buttons: User and Reset
Four LEDs: USB COM, 3.3 V Power, user (Green/Red)
Extension header: (2 x 25) with 2.54 mm Pitch
Discovery Board Formfactor
AN5105
Discovery board: STM32L0538-DISCO

7.3.1 STM32L0538-DISCO board selection

Start to select STM32L0538-DISCO board.
Figure 39. STM32L0538-DISCO board selection
To start linear touch sensor channel acquisition at the same time, three groups are used.
AN5105 - Rev 1
page 36/52
Page 37
Discovery board: STM32L0538-DISCO
Figure 40. STM32L0538-DISCO board schematics
AN5105
AN5105 - Rev 1
page 37/52
Page 38

7.3.2 STM32L0538-DISCO TSC group and sensor activation

To activate the TSC group, sampling capacitors and sensor channels follows the below steps:
Activate TSC according schematics information.
You can deactivate unrelevant peripheral like USB, SPI, NCF(L0), EPaper(L0), MFX(L0)
SWD peripheral must be set according to Figure 41.
Figure 41. Pinout SWD
AN5105
Discovery board: STM32L0538-DISCO
TSC peripheral must be set according to Figure 42.
Figure 42. Pinout TSC
AN5105 - Rev 1
page 38/52
Page 39
Figure 43 shows the results obtained.
AN5105
Discovery board: STM32L0538-DISCO
Figure 43. Pinout overview

7.3.3 STM32L0538-DISCO clock tree

It uses the default clock tree setting.
Figure 44. Clock configuration
AN5105 - Rev 1
page 39/52
Page 40

7.3.4 STM32L0538-DISCO touchsensing library

To activate the TLS usage, switch on TOUCHSENSING box configuration.
Figure 45. TOUCHSENSING box configuration
AN5105
Discovery board: STM32L0538-DISCO
Select 3 channels Linear slider and assign dedicated Gx_IOy (see previous chapter or schematics for details).
For training purpose, the user can:
use three channels linear slider as three keys sensors
Select three keys and assign dedicated Gx_IOy (see previous chapter or schematics for tedails).
Follow Figure 46 to Figure 50 to set sensors.
Figure 46. STM32L0538-DISCO sensor selection step1
AN5105 - Rev 1
page 40/52
Page 41
Discovery board: STM32L0538-DISCO
Figure 47. STM32L0538-DISCO sensor selection step2
AN5105
Figure 48. STM32L0538-DISCO sensor selection step3
AN5105 - Rev 1
page 41/52
Page 42
Discovery board: STM32L0538-DISCO
Figure 49. STM32L0538-DISCO sensor selection step4
AN5105
Figure 50. STM32L0538-DISCO sensor selection step5
AN5105 - Rev 1
page 42/52
Page 43

7.3.5 STM32L0538-DISCO software project generation

Now, it is possible to generate the complete software project based on TSC HAL and TSL.
See details in Figure 51 to Figure 55.
Figure 51. STM32L0538-DISCO software generation step1
AN5105
Discovery board: STM32L0538-DISCO
Figure 52. STM32L0538-DISCO software generation step2
AN5105 - Rev 1
page 43/52
Page 44
Discovery board: STM32L0538-DISCO
Figure 53. STM32L0538-DISCO complete project overview
Figure 54. STM32L0538-DISCO IDE workspace
AN5105
Figure 55. SWD settings
AN5105 - Rev 1
page 44/52
Page 45

7.3.6 STM32L0538-DISCO software basic algorithm

Below is showed an example to show keys usage instead of slider usage.
Open your IDE and in main.c file add the following lines:
/* USER CODE BEGIN 3 */ extern TSL_TouchKey_T MyTKeys[]; static uint32_t cnt=0; tsl_user_status_t status = TSL_USER_STATUS_BUSY;
status = tsl_user_Exec(); if(TSL_USER_STATUS_BUSY == status) { // Nothing to do if(cnt++%50==0){ } HAL_Delay(1); } else { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_RESET); //00 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_RESET); if(MyTKeys[0].p_Data->StateId == TSL_STATEID_DETECT) { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_SET); //11 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_SET); } if(MyTKeys[1].p_Data->StateId == TSL_STATEID_DETECT) { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_SET); //01 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_RESET); } if(MyTKeys[2].p_Data->StateId == TSL_STATEID_DETECT) { HAL_GPIO_WritePin(LD_R_GPIO_Port, LD_R_Pin, GPIO_PIN_RESET);//01 HAL_GPIO_WritePin(LD_G_GPIO_Port, LD_G_Pin, GPIO_PIN_SET); } } } /* USER CODE BEGIN 3 */
AN5105
Discovery board: STM32L0538-DISCO
Now the system is functional and ready to be used.
The Led is blink according to the position of the on slider.
AN5105 - Rev 1
page 45/52
Page 46

Revision history

AN5105
Table 22. Document revision history
Date Version Changes
19-Sep-2018 1 Initial release.
AN5105 - Rev 1
page 46/52
Page 47
AN5105
Contents
Contents
1 General information ...............................................................2
2 Terminology and principle .........................................................3
2.1 Terminology ...................................................................3
2.2 Principle ......................................................................3
3 Document reference ...............................................................5
4 STM32L4 touch sensing controller online presentation .............................6
5 Main characteristics ...............................................................7
5.1 Description ....................................................................7
5.2 Signal threshold................................................................7
5.3 Charge transfer ................................................................9
5.4 Sensitivity ....................................................................10
5.5 Sensor ......................................................................10
5.5.1 Key ..................................................................11
5.5.2 Linear or slider .........................................................12
5.5.3 Rotary or wheel.........................................................13
5.5.4 Active shield or driven shield...............................................14
5.6 Layout and PCB ..............................................................15
5.6.1 Led rules ..............................................................15
5.6.2 Electrode not located on PCB ..............................................16
5.6.3 Ground, shield and sensors ...............................................17
5.6.4 FAQ .................................................................20
5.7 Noise........................................................................21
5.7.1 Power supply ..........................................................21
5.7.2 False detection .........................................................21
5.7.3 Noise immunity .........................................................22
5.7.4 Conducted noise ........................................................22
6 Tuning............................................................................23
7 Getting started TSC with STM32CubeMX ..........................................24
7.1 Uses cases ..................................................................24
AN5105 - Rev 1
page 47/52
Page 48
AN5105
Contents
7.2 Discovery board: STM32F072B-DISCO...........................................25
7.2.1 STM32F072B-DISCO board selection .......................................25
7.2.2 TSC group and sensor activation ...........................................27
7.2.3 STM32F072B-DISCO clock tree ............................................28
7.2.4 STM32F072B-DISCO touchsensing library ....................................29
7.2.5 STM32F072B-DISCO software project generation ..............................32
7.2.6 Software basic algorythm .................................................34
7.3 Discovery board: STM32L0538-DISCO ...........................................36
7.3.1 STM32L0538-DISCO board selection ........................................36
7.3.2 STM32L0538-DISCO TSC group and sensor activation ..........................38
7.3.3 STM32L0538-DISCO clock tree ............................................39
7.3.4 STM32L0538-DISCO touchsensing library ....................................40
7.3.5 STM32L0538-DISCO software project generation ..............................43
7.3.6 STM32L0538-DISCO software basic algorythm ................................45
Revision history .......................................................................46
AN5105 - Rev 1
page 48/52
Page 49
AN5105
List of tables
List of tables
Table 1. Change transfer principle documentation ...................................................4
Table 2. References documentation ............................................................. 5
Table 3. Signal threshold usage documentation .....................................................9
Table 4. Charge transfer documentation ..........................................................9
Table 5. Sensitivity documentation ............................................................. 10
Table 6. Dielectric constants of common materials used in a panel construction ..............................10
Table 7. Key documentation ................................................................. 11
Table 8. Linear touch sensor documentation ...................................................... 12
Table 9. Rotary sensor documentation .......................................................... 13
Table 10. Active shield documentation ...........................................................14
Table 11. Led rules documentation .............................................................. 15
Table 12. Electrode documentation ............................................................. 16
Table 13. Layout documentation ............................................................... 17
Table 14. Power supply documentation........................................................... 21
Table 15. False detection documentation ......................................................... 21
Table 16. Noise immunity documentation ......................................................... 22
Table 17. Conducted noise documentation ........................................................22
Table 18. Sensors documentation .............................................................. 23
Table 19. ESD documentation .................................................................23
Table 20. Conducted noise documentation ........................................................23
Table 21. Sampling capacitor documentation ....................................................... 23
Table 22. Document revision history .............................................................46
AN5105 - Rev 1
page 49/52
Page 50
AN5105
List of figures
List of figures
Figure 1. Change transfer principle .............................................................4
Figure 2. Main documentation tree ............................................................. 5
Figure 3. STM32L4 online training .............................................................6
Figure 4. STM32L4 Touch Sensing Controller online training ...........................................6
Figure 5. TSC characteristics ................................................................. 7
Figure 6. STMStudio outputs .................................................................8
Figure 7. Incomplete and complete charge transfert cycle .............................................9
Figure 8. Sensor size ..................................................................... 11
Figure 9. Interlaced linear touch sensor with 3 channels / 4 electrodes (half-ended electrodes design) ............. 12
Figure 10. Interlaced patterned rotary sensor with 3 channels / 3 electrodes ................................ 13
Figure 11. Active shield principle ..............................................................14
Figure 12. Led layout example................................................................ 15
Figure 13. Example of cases where a LED bypass capacitor is required ................................... 15
Figure 14. Electrode not located on PCB example .................................................. 16
Figure 15. Hatched ground and signal tracks ......................................................17
Figure 16. Ground plane example ............................................................. 17
Figure 17. Track routing .................................................................... 18
Figure 18. Track routing recommendation ........................................................ 18
Figure 19. Shield ......................................................................... 19
Figure 20. Typical power supply schematic ....................................................... 21
Figure 21. Main project panel.................................................................24
Figure 22. STM32F072B-DISCO board selection ...................................................25
Figure 23. STM32F072B-DISCO board schematics .................................................26
Figure 24. STM32F072B-DISCO pinout SWD ..................................................... 27
Figure 25. STM32F072B-DISCO pinout TSC...................................................... 27
Figure 26. STM32F072B-DISCO pinout overview................................................... 28
Figure 27. STM32F072B-DISCO clock configuration................................................. 28
Figure 28. TOUCHSENSING box configuration .................................................... 29
Figure 29. STM32F072B-DISCO sensor selection .................................................. 29
Figure 30. STM32F072B-DISCO sensor selection step2 ..............................................30
Figure 31. STM32F072B-DISCO sensor selection step3 ..............................................30
Figure 32. STM32F072B-DISCO sensor selection step4 ..............................................31
Figure 33. STM32F072B-DISCO sensor selection step5 ..............................................31
Figure 34. STM32F072B-DISCO software generation step1 ........................................... 32
Figure 35. STM32F072B-DISCO software generation step2 ........................................... 32
Figure 36. STM32F072B-DISCO software generation step3 ........................................... 33
Figure 37. STM32F072B-DISCO IDE workspace ................................................... 33
Figure 38. STM32F072B-DISCO setup .......................................................... 35
Figure 39. STM32L0538-DISCO board selection ................................................... 36
Figure 40. STM32L0538-DISCO board schematics..................................................37
Figure 41. Pinout SWD .....................................................................38
Figure 42. Pinout TSC ..................................................................... 38
Figure 43. Pinout overview .................................................................. 39
Figure 44. Clock configuration ................................................................ 39
Figure 45. TOUCHSENSING box configuration .................................................... 40
Figure 46. STM32L0538-DISCO sensor selection step1 .............................................. 40
Figure 47. STM32L0538-DISCO sensor selection step2 .............................................. 41
Figure 48. STM32L0538-DISCO sensor selection step3 .............................................. 41
Figure 49. STM32L0538-DISCO sensor selection step4 .............................................. 42
Figure 50. STM32L0538-DISCO sensor selection step5 .............................................. 42
Figure 51. STM32L0538-DISCO software generation step1............................................ 43
Figure 52. STM32L0538-DISCO software generation step2............................................ 43
AN5105 - Rev 1
page 50/52
Page 51
AN5105
List of figures
Figure 53. STM32L0538-DISCO complete project overview............................................ 44
Figure 54. STM32L0538-DISCO IDE workspace ................................................... 44
Figure 55. SWD settings .................................................................... 44
AN5105 - Rev 1
page 51/52
Page 52
AN5105
IMPORTANT NOTICE – PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2018 STMicroelectronics – All rights reserved
AN5105 - Rev 1
page 52/52
Loading...