Designing MCU-based touch-enabled wireless HIDs for Windows 8
Editor’s Note: In this Product How-To article, Santhosh Kumar Vojjala and Utsav Ghosh of Cypress Semiconductor analyze the challenges facing designers of MCU-based HIDs (human-interface devices) for Windows 8-based computers and explain how the company’s PRoC-UI can be used to reduce component count and cost.
In October 2012, the world witnessed one of the biggest product launches ever as Microsoft released Windows 8 with its modern user interface (UI) and windows-style apps. While it has had its critics, the fact remains that the new OS marks a fundamental change in the way customers interact with their PCs.
Windows 8’s modern UI is designed to support tablets as well as PCs and laptops. The Windows GUI has undergone several modifications to make it more tablet-friendly:
- The Start Button and Start Menu have been removed. Instead there is a full-fledged Start Screen (Figure 1), with tiles for apps, websites, folders, etc.
- Inclusion of touch-based gestures for frequently used functions:
- The Charms Bar, which contains features like Search, Settings, etc., can be accessed with a single finger swipe from right edge to center.
- The commands menu for any application can be accessed with a single finger swipe from top edge to center
- Scrolling through all open applications is possible with a single finger swipe from left edge to center
The inclusion of touch-based gestures for frequently-used features makes it imperative that touch- handling capability be present on hardware for Windows 8.
Figure 2: Microsoft's Wedge Touch Mouse
Figure 3: Logitech T650 Wireless Trackpad
As Windows 8 is adopted by a larger customer base, the demand for touch-based HIDs is expected to increase significantly. In keeping with the current trends in HID, the majority of these peripheral devices will be wireless enabled. As a result, OEMs across the world are looking for efficient, cost-competitive, and good-quality components for building touch-enabled wireless HID.
Basic building blocks for touch-enabled wireless HID
Any touch-enabled wireless HID needs three key components – a microcontroller (MCU), a radio, and a capacitive touch controller (Figure 4).
The interface for communication between MCU, capacitive touch controller, and radio is assumed to be a serial peripheral interface (SPI), while other components are connected to their respective controllers over general purpose input/output (GPIO) pins. The HID communicates via a dongle plugged into the USB port of a PC or laptop. A detailed understanding of the functionality of each of these three basic building blocks is essential for HID designers.
Capacitive touch controllers
A capacitive touch controller detects change in capacitance on the surface of a touchpad to determine the location of fingers. A touchpad is usually created on a printed circuit board (PCB) or on a flexible printed circuit (FPC). Sensor patterns on the touchpad are created using a conductive material like copper. The touchpad consists of row and column sensors arranged in a grid format (Figure 5).
The touchpad and capacitive touch controller can be on same board or on different boards. In cases where the touchpad and capacitive touch controller are on different boards, metal traces from the sensor grid are brought out on a header, and an FPC cable is used as a connector between the two boards. If both are on the same board, metal traces connect the sensor grid to the capacitive touch controller.
Typical operation of a capacitive touch controller
The touch controller scans all sensors periodically and records the capacitance value for each sensor. The presence of fingers on the touchpad changes the capacitance of any sensor over which fingers are placed. The touch controller senses the relative change in capacitance and calculates actual finger positions (X and Y position). Current finger positions are compared with previously recorded positions to decode gestures. Gestures need to be computed on the chip to avoid having an extra driver deployed on the Windows OS. Once a new gesture is detected, the capacitive touch controller reports availability of data via an interrupt to the MCU and waits for the MCU to read the data.
Capacitive touch design considerations
Refresh time: Refresh time is the time interval between two consecutive reports by the capacitive touch controller. As the number of capacitive sensors to be scanned increases, the total time to scan all sensors will increase, thereby increasing refresh time.
Overlay material and thickness: Capacitance induced by a finger is inversely proportional to the thickness of the overlay material and directly proportional to its dielectric constant. To achieve the best finger response, the dielectric constant of overlay material should be high and its thickness should be low.
Sensor pitch: Sensor pitch is the distance between centers of neighboring sensors. A typical pitch in X and Y dimension is 5 mm (Figure 7). Higher sensor pitch can result in a loss of accuracy and linearity.
Capacitive sensing pins: Each sensor on a capacitive touchpad needs to be connected to a capacitive sensing pin. If the touch controller does not have enough capacitive sensing pins, the sensor pitch can be increased to support the required touchpad area. This approach, however, can lead to a loss in accuracy and linearity. Hence, choosing a capacitive touch controller with sufficient capacitive sensing pins is vital.
Accuracy and linearity: Accuracy is a measure of the finger position being reported for the capacitive touch controller versus the actual finger position. Linearity error refers to the delta between the coordinates reported by the capacitive touch controller and the expected coordinates as the finger moves along a straight line. These measures are affected by:
- Sensor pitch: The higher the sensor pitch, the lower the accuracy and linearity
- Firmware algorithm: Accuracy and linearity may vary, depending on the accuracy of finger position prediction algorithm.
Firmware configurability: Firmware for touch controllers can be configured to map different actions to different gestures and even to dynamically develop custom gestures to improve end user experience.