How do capacitive touch screen controllers really work?
Mobile devices such as smart phones and tablet computers are essential part of our daily life. Since the first mobile phone that has a capacitive touch screen controller, end-users started to enjoy hassle free user experience along with gesture features such as pinch zoom, and two fingers rotation.
But did we think how this technology works? I mean really. You will find the technical details of working principles of an capacitive touch screen controller as a firmware developer point of view.
Capativie touch screen controllers use (Indium Tin Oxide) conductors to form sensor grid. ITO is both transparent and a conductive material, therefore it is suitable to embed within the glass sheets to form a sensor structure without creating opaque marks on the screen. On the other hand, the major drawback of the ITO material is the dependency for the temperature. Since this dependency, capacitive measurement gets affected by the environment condition, and additional calibration technics need to be implement to increase dynamic range of the measurement.
As you may remember from the basic high school physics, parallel two conductive plates form a capacitor. The capacitance of an capacitor depends on its geometry and the dielectric material between the plates. Voltage between capacitor terminals can be calculated by the formula depicted in Fig.1. What this formula telling us is, you can measure the capacitor voltage by using an integrator circuit. V(t) is proportional to 1/C, thus lower capacitance means higher voltage, and vice versa. This is an important aspect to grasp the main function of the “Charge Amplifier.“
As can be seen in Fig.2, a basic touch screen controller consists of three major building blocks to extract finger location.
Analog front-end : An analog/mixed mode circuit that is responsible to generate sensor excitation voltage to conduct capacitive measurement.
Digital logic : A digital circuit to configure AFE, ADC, and scan logic.
DSP/embedded processor : A major control unit that applies necessary configuration for the digital logic, and extracts touch information from the incoming 2D raw data.
Before I delve into the details, I’d like to share my online research experience regarding the working principles of capacitive touch screen controller. Most of the documents only try to explain the sensor structure and the generic capacitive measurement techniques.
If you plan to design a touch screen controller, first you need to solve the ‘noise’ problem. The lectures and notes you may find online, rather focusing on solving the crucial noise interference, they focus on the theory of the capacitive measurement. When you plan to measure the capacitive change of a touch sensor, you have to deal with fFs (femto Farads) even aFs (atto Farads, depending on the sensor structure). As you can imagine this requires very low amount of charge to be measured, and any noise which gets coupled to the sensor creates huge fluctuation on the measurement. Due to the adverse effects to the measurement from the sensor, it would be beneficial go into details for the noise types.
Major noise sources for mobile devices:
1- Charger noise : Switch Mode Power Supplies (SMPSs) are widely used for mobile device due to their high efficiency. As their name implies, SMPSs are non-linear components, and uses FET transistors to create necessary Pulse Width Modulation (PWM) signal to create supply voltage. Switching operation creates wide spectrum noises. In addition to span of the SMPS noise, characteristics of the noise also depends on the duty-cycle which is dynamically changed by the feedback loop of the controller. For more details, I strongly suggest that to analyze the spectrum of the PWM signal with respect to the different switching frequencies and duty cycles.
2-Display noise : Even they are not like chargers, LCDs also emit plenty amount of noise. Because the LCD and the ITO sensor is glued together, any noise from an LCD degregades the measurement quality.
3-Environment noise : Any light source, power tool, wireless charger, etc. emit noise.
These noise sources unfortunately do not share the same characteristics in terms of time and frequency domain. Some of them are impulsive, while others are similar to the white noise. One of the common effect of them, it is so expensive (even impossible) to solve within software domain.
Until this point, I provided an outline of the challenge of developing a capacitive touch screen controller, and let’s start with a bad example which does not work properly.
As can be seen in the Fig.3, a base band pulse trains have been applied to excite the sensor. If we look at the Fig.5, the noise spectrum can easily overlaps with the measurement frequency. This is a problematic solution, and does not give any immunity for the noise, thus during the sensor measurement you will get the raw data with huge fluctuations (low SNR signal). Unfortunately, for the touch algorithm point of view, this is a sort of operation to analyze a heavy nosy picture with limited processing and memory resources. Keep in mind, extra memory means extra real estate in the chip die, in turn it means extra cost of the production of the controller. Also extra processing power means extra power consumption to run the algorithm in real-time. Long story short, we need to keep the signal as the noise free as possible during the measurement (not during processing) in order to get optimal performance and cost.
We need to apply a way more clever method to escape from the noise in order to overcome the noise interference problem. In this approach, we need to change our perspective dramatically. Instead of thinking the sensor is a raw capacitor, we need to think it as a communication channel. In this paradigm, the gain of the charge amplifier can be changed by the capacitance of the communication channel (in this case ITO sensor lines). When we wrap all theses together, a technique called as Amplitude Modulation (AM) would be our savior to increase our SNR for the measurement. This is a specific type of an AM modulation which is called as the carrier suppressed double side band amplitude modulation. We simply dodge the noise by shifting our measurement frequency to the different spot on the spectrum by applying this technique. Check Fig.6 for the details.
So far I explained how to conduct the capacitive measurement under the noisy environment, but you may wonder how can we know the characteristics of the noise so we can determine the modulation frequency in order to find a nonoverlapping (silent) spot of the spectrum.
There are three methods to solve this issue (although each of them deserves a dedicated article, let’s explain briefly)
1- Extracting characteristics of the environment : You measure the environment noise around the device with a spectrum analyzer, and come up with a predetermined spectral spot. You can hard code this as a LO frequency into the controller firmware. This is a relatively simple approach based on an assumption where environment does not get change over the time vastly.
2-Adaptive frequency hopping : In this approach, the controller sets the modulation (LO) frequency to a predetermined value, then takes noise measurements. This is an alternating approach while the controller measures the sensor noise during the first cycle, acquires the capacitive change during the second one. If SNR value is not within tolerable range, the controller jumps to the next frequency value until it finds the lowest noise value (i.e.: Highest SNR value for the measurement).
3- Spread spectrum : With this method, AFE uses orthogonal signals to excite the sensor instead of using single tone harmonics. I am not going into details, you can check the telecommunication text books for more details.
You managed to read till this point, and probably this topic attracted your attention. All these information I shared in this article is a product of more than two years dedicated work, and my personal passion of this novel technology. I hope it would be helpful for those who are interested to work with capacitive touch screen controllers for their own projects.