Bridging the capacitive touch gap with more processing power

Other Parts Discussed in Post: MSP432P401R

Capacitive touch, or capacitive sensing, is commonly used in applications that need human machine interfaces (HMI), proximity detection, fluid level monitoring, acceleration and/or displacement. The basic principal is simple: a change in the sensing environment has a measurable effect on an electric field about a capacitive electrode. This can be done by altering parasitic capacitance to the ground (self-capacitance) or by altering the mutual capacitive coupling between neighboring electrodes (mutual capacitance). This change is then measured and processed by the application processor.  As one could imagine, this presents a number of design challenges to the engineer:

  • What happens if the sensor(s) get wet?
  • How do we design around electrical field noise? 
  • How do we remain sensitive enough to detect through gloves or product housings, but not so sensitive that we detect false positives or lose resolution?

From ultra-low power devices providing portability on mobile platforms to deployment in hazardous environments, TI’s MSP430™ microcontrollers (MCUs) with CapTIvate™ touch technology has you covered with IEC61000-4-x noise immunity, the ability to reject moisture, and detect through gloves or even 60 mm thick glass overlays. To accommodate smarter and smarter devices, we can achieve more immersive interfaces with force touch and 3D gesturing on a myriad of different button, wheel and slider configurations, which are the highest resolution in the industry and configurable in under five minutes with CapTIvate Design Center

While MSP430 MCUs with CapTIvate technology are very capable application processors on their own, you can bolster your design’s performance by integrating a host processor. This opens the door to virtually limitless additional technologies, platforms and adaptability, all while operating a UI at very low power.

The SimpleLink™ MSP432P401R MCU makes for an excellent example as a host processor. As a 32-bit ARM® Cortex®-M4F MCU capable of speeds up to 48 Mhz with 256KB of flash, it is well equipped for larger or  or  intensive applications. The SimpleLink MSP432™ MCU is also in its wheelhouse when it comes to resolution, with two onboard 32-bit timers and a 14-bit analog-to-digital converter (ADC) that’s arguably as valuable as the processor itself. Eight Enhanced Universal Serial Communication Interfaces (eUSCIs, four A’s and four B’s) accommodate communication with a large count of external devices. Add to that TI’s DSP, Graphics, and Driver Libraries and TI-RTOS support, MSP432 MCU offers development of powerful software with multitasking capabilities, all while maximizing both power and CPU efficiency.

Interfacing a CapTIvate MCU with a host processor has been made simple for you with the Communications Module, included in the CapTIvate Software Library, and the MSP432™ MCU host Communications Module provided with the MSP432 MCU with MSP430 Capacitive Touch MCU, Haptics, and LCD Reference Design reference design software package. Together these two modules allow sensor data to be quickly offloaded to a host for further processing.

On the CapTIvate MCU side, the communications module consists of four layers. The interface layer is the highest level, implementing the top-level API. Once initialized, it uses the protocol layer to receive and process packets of capacitive data. The Interface Layer then transfers that data with the serial driver layer‘s configured I2C or UART port. The lowest is the data structure layer, which implements abstract data types. For more information, check out the CapTIvate technology guide.

The key to interfacing with a host processor is to design it to work in tandem with the Communications Module. To illustrate how to do this, we have built an example with MSP432 MCU utilizing the MSP432 Host Communications Module (explained in Figure 1), though several of the layers in this module are platform independent. This simple API, at a high level, processes read requests for sensor packets (containing specific sensor information such as a sensor’s status, a slider or wheel’s position, etc.) and cycle packets (providing count, touch, proximity and long-term averages for groupings of elements) by returning a pointer to the most recent packet data. Lower layers of the API handle the data structures, protocol implementations for correct data handling, and UART/I2C drivers and configuration. The key difference here is that the UART implementation streams data constantly (250k baud default), while the I2C implementation requires a request for specific packets of data each time new data is needed by the host. Our implementation only utilizes cycle and sensor packets, but this could be expanded to include general purpose and/or bidirectional parameter packets.


Figure 1: Combination of MSP430 MCU with CapTIvate technology

The combination of MSP430 MCU with CapTIvate technology, aided by the intuitive CapTIvate Designer Center, and the SimpleLink MSP432 MCU gives you a quick path to implementing a robust capacitive touch solution and opens up countless possibilities to expand your application further by connecting to more accurate sensors high-resolution display and a broad range of wireless connectivity options.

What HMI challenges do you find in your latest design? I’d love to learn from your comments.

Additional resources: