Registered User mNo edit summary |
Registered User mNo edit summary Tag: 2017 source edit |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:Introduction to touch sensing with STM32}} | |||
This page contains application examples, document references, tips and tricks and so on related to STM32 touch sensing. | This page contains application examples, document references, tips and tricks and so on related to STM32 touch sensing. | ||
==What is touch sensing?== | ==What is touch sensing?== | ||
Line 35: | Line 36: | ||
! scope="col" style=" text-align:center" | STM32F3 | ! scope="col" style=" text-align:center" | STM32F3 | ||
! scope="col" style=" text-align:center" | STM32WB | ! scope="col" style=" text-align:center" | STM32WB | ||
! scope="col" style=" text-align:center" | STM32WBA | |||
! scope="col" style=" text-align:center" | STM32U0 | |||
! scope="col" style=" text-align:center" | STM32U5 | |||
|- | |- | ||
! scope="row" | Peripheral | ! scope="row" | Peripheral | ||
| style=" text-align:center" | TSC | | style=" text-align:center" | TSC | ||
| style=" text-align:center" | Software assist | | style=" text-align:center" | Software assist | ||
| style=" text-align:center" | TSC | |||
| style=" text-align:center" | TSC | |||
| style=" text-align:center" | TSC | |||
| style=" text-align:center" | TSC | | style=" text-align:center" | TSC | ||
| style=" text-align:center" | TSC | | style=" text-align:center" | TSC | ||
Line 55: | Line 62: | ||
| style=" text-align:center" | 8 | | style=" text-align:center" | 8 | ||
| style=" text-align:center" | 7 | | style=" text-align:center" | 7 | ||
| style=" text-align:center" | 5 | |||
| style=" text-align:center" | 7 | |||
| style=" text-align:center" | 8 | |||
|- | |- | ||
! scope="row" | Channels | ! scope="row" | Channels | ||
Line 65: | Line 75: | ||
| style=" text-align:center" | 32 | | style=" text-align:center" | 32 | ||
| style=" text-align:center" | 28 | | style=" text-align:center" | 28 | ||
| style=" text-align:center" | 20 | |||
| style=" text-align:center" | 28 | |||
| style=" text-align:center" | 32 | |||
|- | |- | ||
! scope="row" | Sampling capacitors | ! scope="row" | Sampling capacitors | ||
Line 75: | Line 88: | ||
| style=" text-align:center" | 8 | | style=" text-align:center" | 8 | ||
| style=" text-align:center" | 7 | | style=" text-align:center" | 7 | ||
| style=" text-align:center" | 5 | |||
| style=" text-align:center" | 7 | |||
| style=" text-align:center" | 8 | |||
|- | |- | ||
! scope="row" | Sensors | ! scope="row" | Sensors | ||
Line 85: | Line 101: | ||
| style=" text-align:center" | 24 | | style=" text-align:center" | 24 | ||
| style=" text-align:center" | 21 | | style=" text-align:center" | 21 | ||
| style=" text-align:center" | 15 | |||
| style=" text-align:center" | 21 | |||
| style=" text-align:center" | 24 | |||
|} | |} | ||
Line 97: | Line 116: | ||
! scope="col"; style=" text-align:center" | STM32F0 | ! scope="col"; style=" text-align:center" | STM32F0 | ||
! scope="col"; style=" text-align:center" | STM32F3 | ! scope="col"; style=" text-align:center" | STM32F3 | ||
! scope="col"; style=" text-align:center" | STM32U0 | |||
! scope="col"; style=" text-align:center" | STM32U5 | |||
|- | |- | ||
! scope="row" | Peripheral | ! scope="row" | Peripheral | ||
| style=" text-align:center" | TSC | | style=" text-align:center" | TSC | ||
| style=" text-align:center" | Software assist | | style=" text-align:center" | Software assist | ||
| style=" text-align:center" | TSC | |||
| style=" text-align:center" | TSC | |||
| style=" text-align:center" | TSC | | style=" text-align:center" | TSC | ||
| style=" text-align:center" | TSC | | style=" text-align:center" | TSC | ||
Line 113: | Line 136: | ||
| style=" text-align:center" | 6 | | style=" text-align:center" | 6 | ||
| style=" text-align:center" | 6 | | style=" text-align:center" | 6 | ||
| style=" text-align:center" | 6 | |||
| style=" text-align:center" | 4 | |||
|- | |- | ||
! scope="row" | Channels | ! scope="row" | Channels | ||
Line 121: | Line 146: | ||
| style=" text-align:center" | 24 | | style=" text-align:center" | 24 | ||
| style=" text-align:center" | 24 | | style=" text-align:center" | 24 | ||
| style=" text-align:center" | 24 | |||
| style=" text-align:center" | 14 | |||
|- | |- | ||
! scope="row" | Sampling capacitors | ! scope="row" | Sampling capacitors | ||
Line 129: | Line 156: | ||
| style=" text-align:center" | 6 | | style=" text-align:center" | 6 | ||
| style=" text-align:center" | 6 | | style=" text-align:center" | 6 | ||
| style=" text-align:center" | 6 | |||
| style=" text-align:center" | 4 | |||
|- | |- | ||
! scope="row" | Sensors | ! scope="row" | Sensors | ||
Line 137: | Line 166: | ||
| style=" text-align:center" | 18 | | style=" text-align:center" | 18 | ||
| style=" text-align:center" | 18 | | style=" text-align:center" | 18 | ||
| style=" text-align:center" | 18 | |||
| style=" text-align:center" | 10 | |||
|} | |} | ||
Latest revision as of 18:17, 21 May 2025
This page contains application examples, document references, tips and tricks and so on related to STM32 touch sensing.
1. What is touch sensing?
Touch sensors are used in HMIs (human-machine interfaces)
- Instead of using mechanical switches, actuation is achieved by touching the finger touch on a surface.
There are three methods:
- Capacitance switch:
- the electrode is placed behind a non-conductive panel
- the change in capacitance is detected
- Resistive touch switch:
- two electrodes are bridged by the user's fingertip
- the resistance of the fingertip is detected
- Piezo touch switch:
- a voltage is generated by pushing/bending a piezoelectric material
- the voltage change is detected
The TSC (touch sense controller) peripheral is based on the capacitance switch method - when a human touches the surface of the sensor area, the capacitance changes.
Basic TSC working mode description
2. Getting started with STM32 and touch sensing
Application note AN5105 summarizes all information regarding touch-sense controller usage.
This application note explain step-by-step how to handle touch sensors using STM32F072BDISCO[1] and STM32L0538DISCO[2] discovery boards[3].
3. STM32 compliance with touch sensing
3.1. Maximum number of sensors on STM32 Series products
STM32L0 | STM32L1 | STM32L4 | STM32L4+ | STM32L5 | STM32F0 | STM32F3 | STM32WB | STM32WBA | STM32U0 | STM32U5 | |
---|---|---|---|---|---|---|---|---|---|---|---|
Peripheral | TSC | Software assist | TSC | TSC | TSC | TSC | TSC | TSC | TSC | TSC | TSC |
Groups | 8 | 11 | 8 | 8 | 8 | 8 | 8 | 7 | 5 | 7 | 8 |
Channels | 32 | 48 | 32 | 32 | 30 | 32 | 32 | 28 | 20 | 28 | 32 |
Sampling capacitors | 8 | 11 | 8 | 8 | 8 | 8 | 8 | 7 | 5 | 7 | 8 |
Sensors | 24 | 37 | 24 | 24 | 22 | 24 | 24 | 21 | 15 | 21 | 24 |
3.2. Maximum number of sensors on LQFP64 packages
STM32L0 | STM32L1 | STM32L4 | STM32L5 | STM32F0 | STM32F3 | STM32U0 | STM32U5 | |
---|---|---|---|---|---|---|---|---|
Peripheral | TSC | Software assist | TSC | TSC | TSC | TSC | TSC | TSC |
Groups | 8 | 10 | 4 | 8 | 6 | 6 | 6 | 4 |
Channels | 32 | 33 | 16 | 30 | 24 | 24 | 24 | 14 |
Sampling capacitors | 8 | 10 | 4 | 8 | 6 | 6 | 6 | 4 |
Sensors | 24 | 23 | 12 | 22 | 18 | 18 | 18 | 10 |
4. STMicroelectronics resources
AN5105 Getting Started with Touch control
UM1913 Developing applications on STM32Cube with STMTouch touch sensing library
AN4316 Tuning a STMTouch-based application
AN4312 Guidelines for designing touch sensing applications with surface sensors
AN4299 Guidelines to improve conducted noise robustness on STM32 series touch sensing applications
AN4310 Sampling capacitor selection guide for MCU based touch sensing applications
AN3960 ESD considerations for touch sensing applications
5. References