How can I implement capacitive touch with EFM32 MCUs?
Capacitive sensing as a technology finds use in EFM32 MCUs in the form of low cost capacitive touch sensors that measure the capacitance change on human-device interfaces when a user's finger is near by. The EFM32 capacitive touch feature is primarily made for implementing capacitive touch buttons and sliders with very low energy consumption, but it can also be adapted to other capacitive sensing applications.
Fig: Capacitive sensing for EFM32
The analog comparators in the EFM32 include specialized hardware for capacitive sensing of capacitive pads. The capacitance is measured by including the pad as a capacitance to ground in a free-running RC oscillator.
EFM32 MCUs with the Low Energy Sensor Interface (LESENSE) can use this peripheral to scan several touch pads and only wake the CPU when a touch is detected.
Fig: LESENSE overview
LESENSE for capacitive touch requires only the sample delay phase out of all the advanced features available. Correct configuration of both LESENSE and analog comparators also ensures the lowest noise level and the highest signal-to-noise ratio.
Read the complete application note here for a detailed description of the theory behind capacitive sensing and for software examples. See https://www.silabs.com/documents/public/application-notes/AN0040.pdf for hardware design considerations for the LESENSE based capsense.
A more advanced software algorithm for capacitive sensing is now available for LESENSE based capsense devices, see application note AN0828 (https://www.silabs.com/documents/public/application-notes/an0828-capacitive-sensing-library-overview.pdf) for details, and Simplicity Studio for software examples.
Newer series 1 devices such as EFM32PG12, EFR32xG12, EFR32xG13, EFR32xG14, EFM32TG11 and EFM32GG1x have CSEN based capacitive sensing, similar to what is available for 8 bit products. See application note AN447 for hardware design suggestions (https://www.silabs.com/documents/public/application-notes/AN447.pdf), application note AN0828 for information on CSLIB, and Simplicity Studio for software examples