Abstract:
A low power capacitive detector is disclosed. The detector includes a mechanism to measure and detect touch on capacitive sensors. The detector uses signal processing to suppress noise and increase sensitivity. The detector does not require dedicated analog circuitry, making it easy to adopt in a microcontroller system. The detector can be scaled to a larger number of capacitive sensors without noticeable increase in silicon cost.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of and claims priority to U.S. application Ser. No. 13/233,589, entitled “Low Power Capacitive Touch Detector,” filed on Sep. 15, 2011, the entire contents of which are incorporated herein by reference. 
     
    
     TECHNICAL FIELD 
       [0002]    This disclosure relates generally to electronics and more particularly to capacitive touch sensors. 
       BACKGROUND 
       [0003]    Capacitive sensors increasingly replace mechanical buttons in consumer and handheld equipment. They are low cost and robust, as they require no mechanical components, and can sense the presence of a finger through a dielectric material, such as an encapsulation or glass. The capacitive sensors are usually detected by measuring the self-capacitance of the sensor, which will change up to a few percent when touched. If the detection is sensitive enough then proximity detection is also possible. Proximity detection allows detection of an approaching finger from a distance. This can be used to wake a device from a low power state before the application is physically touched. It is therefore particularly important to be able to detect proximity while using as little power as possible. 
         [0004]    A disadvantage with capacitive sensors is that they have high impedance, making the sensors sensitive to electrical noise in the environment. The capacitance value can drift with environmental conditions, such as temperature and moisture. The challenge in capacitive sensing is producing an accurate capacitance measurement and distinguishing the signal from the noise and drift while consuming as little power as possible. 
         [0005]    There are several conventional techniques in use to detect a change in self-capacitance of a capacitive sensor when touched or approached by a finger. One technique uses two I/O pins with a sensing capacitor between them. One of the input/output (I/O) pins is connected to the sensor. A switching sequence on each I/O driver pumps capacitance into the sensor capacitance until the I/O pin input threshold is reached. The drawback to this technique is that two I/O pins are needed, an external capacitor is needed and power is wasted by charging and discharging the sensor. In addition, noise rejection is limited. 
         [0006]    Another technique uses an I/O pin to charge the sensor before sampling it with an analog-to-digital converter (ADC). The charge is shared between the sensor and a sample and hold (S/H) capacitor. The measurement is repeated with opposite charge on the sensor. This dual-slope measurement cancels low-frequency noise. However, there is no suppression of high frequency noise, apart from oversampling a large number of times, which is slow and requires power. In addition, the ADC must be used for sensing, limiting its use for other functions in an application. Only pins connected to the ADC input can be sensed, limiting the number of sensors in the system. Software is required for touch processing and detection. 
         [0007]    In yet another technique, a microcontroller includes circuitry that can inject a fixed charge into the sensor capacitance and the S/H capacitor of the ADC. The resulting voltage on the ADC S/H capacitor can then be measured during conversion. This does not provide any noise rejection and software is required to process and detect touch. 
         [0008]    In still another technique, the sensor pin is made to oscillate by charging it with a known current and comparing it to a fixed reference voltage. The resulting frequency is compared to a known frequency. The measurement sequence is long, and a large number of charge/discharge cycles are needed, resulting in wasted power. In addition, there is no noise rejection. 
       SUMMARY 
       [0009]    A capacitive sensor is coupled between digital I/O pins of an integrated circuit (IC) package, such as a microcontroller. A parasitic capacitor of the capacitive sensor is charged through one of the digital I/O pins, and then discharged through an external resistor coupled between the digital I/O pins. A discharge of the parasitic capacitor is timed using a capacitance counter. The count value at the end of the discharge period reflects a resistor-capacitor (RC) time constant of an RC circuit formed by the parasitic capacitor and the external resistor. The raw count representing the sensor&#39;s self-capacitance can be filtered to remove low, medium and high frequency noise in the count, and then compared to one or more threshold values of one or more state detectors, the output(s) of which can be used to determine a touch event (e.g., physical touch, proximity touch, out-of-touch). 
         [0010]    Particular implementations of a low power capacitive touch detector provide one or more of the following advantages. The detector allows capacitive touch detection with small and low cost external components. The detector can be used on any digital I/O pins in a microcontroller. The detector does not depend on an ADC. The detector suppresses noise in all frequency bands, providing increased sensitivity. The detector allows both touch and proximity detection. 
         [0011]    The details of one or more disclosed implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings and the claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  is a simplified block diagram of an exemplary low power capacitive touch detector system coupled to a capacitive sensor. 
           [0013]      FIG. 2  illustrates an exemplary differential capacitive sensor. 
           [0014]      FIG. 3  is a flow diagram of an exemplary process for detecting capacitive touch. 
       
    
    
     DETAILED DESCRIPTION 
     Exemplary Low Power Touch System 
       [0015]      FIG. 1  is a simplified block diagram of an exemplary low power capacitive touch detection system coupled to a capacitive sensor. In some implementations, system  100  is part of an integrated circuit, such as a microcontroller or application-specific integrated circuit (ASIC). In the example, system  100  is integrated with drivers  126   a ,  126   b  and input buffer  128  in an IC package having digital I/O pins  122   a  (“A”) and  122   b  (“B”). System  100  can include control module  102 , capacitance counter  104 , idle tracker  106 , median filter  108 , averaging filter  110 , threshold detectors  112   a ,  112   b  and state detectors  114   a  and  114   b.    
         [0016]    System  100  can be coupled to capacitive sensor  118  through digital I/O pins  122   a  and  122   b . The self-capacitance of capacitive sensor  118  can be modeled as a parasitic capacitor  120  (“Cs”) between capacitive sensor  118  and “Earth” (free-space return). External resistor  124  (“R”) is coupled between pins  122   a  and  122   b , which are coupled to digital I/O pads, preferably with slew-rate control to reduce electromagnetic interference (EMI). Drivers  126   a ,  126   b  and input buffer  128  are typically part of the I/O pad circuitry. I/O pad circuitry can also include protective circuitry (e.g., diodes). 
         [0017]    Oscillator  101  (e.g., a high-frequency RC oscillator) provides a clock to capacitance counter  104 . Oscillator  101  can be included in the IC package or external to the IC package. Real-time Clock  116  (RTC) is coupled to control module  102  and provides periodic event signals to control module  102 . RTC  116  can be included in the IC package or external to the IC package. 
       Exemplary Acquisition 
       [0018]    In some implementations, a capacitance acquisition starts by driver  126   a  driving digital I/O pin  122   a  and charging parasitic capacitor  120  to a first voltage level (e.g., Vdd). Driver  126   b  then drives digital I/O pin  122   b  to a second voltage level that is lower than the first voltage level, resulting in parasitic capacitor  120  discharging through resistor  124 . During discharging, capacitance counter  104  counts the number of clock cycles that input buffer  128  reads as logic “0”. For example, a series of data read from input buffer  128  over 32 clock cycles can be 00000010000000000010111111111111. For this data series example, capacitance counter  104  counts “18” (the number of zeros in the data series). The resulting count value provided by capacitance counter  104  is proportional to the parasitic capacitance of capacitive sensor  118 . The counting can continue for a fixed number of clock cycles. For example, if the maximum expected count value is 1024, capacitance counter  104  can count for 1024 clock cycles. 
         [0019]    The sequence described above can be repeated, but with digital I/O pin  122   a  driven to “0” and digital I/O pin  122   b  driven to “1”. During the discharging, capacitance counter  104  counts the number of clock cycles that input buffer  128  reads as logic “1”. Using the example series of data above, the count would be “14”, which is the number of ones in the example data series. 
         [0020]    The count values from the two measurements can then be added with the resulting value being a single measurement of capacitance. These “dual-slope” capacitance measurements performed in rapid succession cancel any low frequency noise, such as 50-60 Hz noise usually contributed by a main power supply. 
         [0021]    The measured count value is proportional to the product of parasitic capacitance  120  and resistor  124  (RC time constant) and the frequency of oscillator  101 . For a given application, resistor  124  can be a variable resistor that can be adjusted to give sufficient time (count value) for the signal to be measured. Typically, this count value is in the range of 100 counts for touch detection and 1000 counts for proximity detection. 
       Exemplary Signal Processing 
       [0022]    Even if low frequency noise is rejected by the dual-slope measurement technique, medium and high frequency noise can also be picked up by capacitive sensor  118 . High frequency noise is seen as a “white” uncorrelated noise added to the correct capacitance value. This additive noise can be removed by median filter  108 . In some implementations, median filter  108  can be a median-3 filter and use memory  115  to store three consecutive count values to compute the median of those count values. 
         [0023]    The output of median filter  108  is fed to averaging filter  110 . In some implementations, averaging filter  110  can be a fast moving average filter, which suppresses medium-frequency noise in the acquired measurement. 
         [0024]    Idle tracker  106  compensates for capacitance drift by feeding the output of median filter  108  to a slow moving average filter. Idle tracker  106  uses the output of median filter  108  to determine a baseline or “idle” capacitance value that is output by capacitive sensor  118  when untouched. Filters  108 ,  110  and  106  can be implemented in hardware, firmware, or software or some combination thereof. For low power applications, filters  108 ,  110  and  106  are preferably implemented in hardware. 
         [0025]    In some implementations, an integer part of the “idle” value computed by idle tracker  106  is subtracted from the measured capacitance output from capacitance counter  104  by means of a saturating subtraction. Saturating subtraction limits the difference to a fixed range between a minimum and maximum value. If the result of the subtraction is greater than the maximum value, it is set to the maximum. If the result is below the minimum, value it is set to the minimum. Since the absolute value of this difference is much smaller than the measured capacitance output from capacitance counter  104 , the number of bits needed for processing is reduced, resulting in reduced cost and power consumption. 
         [0026]    This implementation has the further advantage that the average value of median filter  108  output is zero. The output of average filter  110  then represents the difference between the “idle” value and the measured capacitance output by capacitance counter  104 . This allows a direct comparison against threshold  112  without subtracting the “idle” value first. 
       Exemplary Detection 
       [0027]    One or more state detectors (e.g., state detectors  114   a ,  114   b ), perform detection by comparing the fast moving average output by averaging filter  110  to one or more thresholds (e.g., thresholds  112   a  and  112   b ). The one or more thresholds  112  can be defined by a user. Capacitive sensor  118  is “in detect” when the fast moving average exceeds threshold  112 . In some implementations, an “in detect” condition produces an interrupt to a Central Processing Unit (CPU) or other device. In the example shown, two state detectors  114   a ,  114   b  and their corresponding thresholds  112   a ,  112   b  allow varying degrees of sensitivity for capacitive sensor  118 . For example, threshold  112   a  can be used to detect physical touch events and threshold  112   b  can be used to detect proximity events. In some implementations, a threshold and detector can be used to detect long touches, which could cause idle tracker  106  to output negative values. 
       Optional Extensions 
     Differential Sensor Support 
       [0028]    The process described above describes sensing conventional self-capacitance sensors. One drawback of these sensors is that the signal is sensitive to the coupling of the sensor as well as the sensing circuit to Earth. This coupling can be small for handheld equipment, reducing the signal strength to the point that a touch is not detected. 
         [0029]    To overcome this issue, it is possible to use a mutual capacitance sensor, which includes two sensor halves, where the capacitance changes according to the electric field between the sensors. The mutual capacitance does not depend on the coupling to Earth. 
         [0030]      FIG. 2  illustrates an exemplary differential capacitive sensor. In some implementations, mutual capacitance sensors can be used instead of self-capacitance sensors, as shown in  FIG. 2 . In this case, each half of capacitive sensor  201   a ,  201   b  is connected to digital I/O pins  122   a ,  122   b . The process described above is otherwise unchanged. The measured capacitance will be sensitive to changes in self-capacitance  202   a ,  202   b  and mutual capacitance  204 . Capacitive sensor  201  thus provides a signal even in an application with poor Earth coupling, providing a more robust solution than a pure self-capacitance solution. 
       Sampled Operation 
       [0031]    System  100  contains the control logic for starting oscillator  101 , performing acquisition, signal processing and detection. System  100  can thus operate in a “sampled” manner, by which an ultra-low power RTC  116  (e.g., a 32 KHz real-time RTC) can produce periodic events, which activate system  100  periodically. The average power can then be determined by the time required to perform the measurement, the current consumption when active, and the interval between sampling periods. Since system  100  does not require any high power consumption analog circuits, and the signal processing allows even weak signals to be identified rapidly, the “on” time of system  100  is limited, saving power considerably compared to conventional. 
       Internal Discharge 
       [0032]    It is possible to eliminate external resistor  124  by relying on pull-up and pull-down functions in I/O pads. The resistive value of the internal pull-up resistors of conventional I/O pads is relatively low when compared to external resistor  124 , so the measured count value will be low. This can still be an option if only physical touch should be detected, and Earth coupling is good, providing a strong signal from capacitive sensor  118 . A drawback of this method is that the signal value is small due to the rapid discharge caused by the low resistance value of the internal pull-ups resistors. This can be compensated by repeating the measurement cycle and accumulating multiple measurements to produce a single result to be processed by the digital filters. 
       Multiple Sensors 
       [0033]    System  100  only relies on conventional I/O pads, so it can be extended to support multiple sensors at relatively little cost. Since the time it takes to measure and detect a sensor is much shorter than the sampling interval, it is possible to use the same logic to support multiple sensors. In this case, the sensors can be sequentially measured and detected, controlled by a sequencer. The sequencer can configure idle tracker  104 , averaging filter  110 , and state detectors  114   a ,  114   b  for each sensor before the measurement. After the measurement and detection, the new state of idle tracker  104  and averaging filter  110  can be stored, before progressing to the next sensor. A register bank or circular buffer in memory can be used to store the affected registers. The cost of this approach may be less than supporting multiple sensors by multiple independent instances of system  100 . 
       Exemplary Process 
       [0034]      FIG. 3  is a flow diagram of an exemplary process  300  for detecting capacitive touch. Process  300  can be implemented by system  100  of  FIG. 1 . 
         [0035]    In some implementations, process  300  can begin by charging a sensor capacitor ( 302 ). For example, the capacitive sensor can be coupled to a first digital I/O pin of an IC package (e.g., a microcontroller). A driver of an digital I/O pad for the first digital I/O pin can be used to charge a parasitic capacitor of the capacitive sensor. 
         [0036]    Process  300  can continue by enabling the sensor capacitor to discharge through a resistor ( 304 ). For example, the capacitive sensor can also be coupled to a second digital I/O pin of the IC package. A driver of an digital I/O pad for the second I/O pin can be used to drive voltage onto the second digital I/O pin, resulting in the charge on the parasitic capacitor discharging through an external resistor coupled between the I/O pins. 
         [0037]    Process  300  can continue by timing the discharge of the sensor capacitor through the resistor ( 306 ). For example, an oscillator can be coupled to a capacitance counter to time the discharge of the parasitic capacitor through the external resistor. A count value at the end of the discharge period reflects the RC time constant of the RC circuit formed from the parasitic capacitor and the external resistor. The end of discharge period can be determined by examining an input buffer value for the first I/O pin and monitoring when it changes its logic value. 
         [0038]    Process  300  can continue by detecting a touch event based on the time of discharge ( 308 ). For example, the raw capacitance measurement can be filtered to remove low, medium and high frequency noise, and then compared to one or more threshold values of one or more state detectors to determine the touch event (e.g., physical touch, proximity touch, out-of-touch). The one or more state detectors can provide an interrupt to a CPU or other device based on results of the comparison. 
         [0039]    The disclosed implementations of a low power capacitive touch detector allow low cost, low power, high sensitivity robust capacitance measurements by a combination of several mechanisms. Instead of depending on dedicated analog circuitry, the disclosed implementations rely on integration with conventional microcontroller features, such as I/O pads, an RC oscillator and a real-time clock. Sensitivity can be selected by the user by tuning an external resistor. The implementations work with single-ended self-capacitance sensors and differential mutual-capacitance sensors, ensuring robustness even in poor earth coupling conditions. The implementations use effective acquisition and filtering techniques to remove low, medium, and high frequency noise, as well as capacitance drift. Due to the efficient noise rejection, the capacitive sensor does not need to be charged and discharged many times, which saves a significant amount of power compared to traditional techniques. The implementations can be self-controlled, allowing it to work in sampled operation, only consuming power during the actual measurement and signal processing. The implementations work without software interaction, making it suitable to process touch detection and wake the CPU. This makes it ideal for use in low-power modes, unlike software-dependent algorithms. The implementations can easily be scaled to a high number of sensors by dynamic reconfiguration and sequential operation of the invention. 
         [0040]    While this document contains many specific implementation details, these should not be construed as limitations on the scope what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can, in some cases, be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a sub combination.