This disclosure laces to the field of user interface devices and, in particular, to capacitive sensor devices.
In general, capacitive sensors are intended to replace mechanical buttons, knobs, and other similar mechanical user interface controls. Capacitive sensors allow the elimination of such complicated mechanical controls and provide reliable operation under harsh conditions. Capacitive sensors are also widely used in modern customer applications, providing new user interface options in existing products.
Capacitive sensing systems generally operate by detecting a change in the capacitance of a capacitive sensor resulting from proximity or contact of an object with the sensor. The ability to resolve changes in capacitance may be impaired if the changes in capacitance to be detected by the sensor are small relative to the capacitance of the sensor.
Capacitive sensors may be sensitive to multiple external influences. Board layout, sensor design, routing, and other system components may impact the parasitic capacitance of a sensor. Differences between sensors make configuring and normalizing sensitivity among a plurality of sensors in an array difficult. Noise sources close to sensors or with frequencies that are more easily received by some sensors than others introduce other variables in the configuring of a capacitive sensor during development.
The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
Described in embodiments herein area method and apparatus for automatically tuning a capacitance sensor. The following description sets forth numerous specific details such as examples of specific systems, components, methods, and so forth, in order to provide a good understanding of several embodiments of the present invention. It will be apparent to one skilled in the art, however, that at least some embodiments of the present invention may be practiced without these specific details. In other instances, well-known components or methods are not described in detail or are presented in simple block diagram format. Particular implementations may vary from these exemplary details and still he contemplated to be within the spirit and scope of the present invention.
Embodiments of a method and apparatus for automatically tuning and configuring a capacitive sensor are described. In one embodiment, a capacitance to code converter includes capacitance sensing circuitry that measures changes in the capacitance CX of the capacitive sensor and generates a digital output with a value based on the measured capacitance CX. Changes in the capacitance CX of the capacitive sensor may be caused by inputs, such as a finger or other object in proximity or in contact with the capacitive sensor. These changes are reflected in the digital output, which can be processed by a computer system or other circuit.
In one embodiment, the capacitance sensing circuitry has several parameters that can be manipulated to change the output of the capacitance sensing circuitry with no input in proximity or in contact with the capacitance sensor or with an input in proximity or contact with the capacitance sensor. The digital output from the capacitance sensing circuitry may have parameters that adjust such variables as such as range, resolution, offset, and a variety of thresholds, as described herein.
A description of capacitance sensor physics and construction can be found in U.S. Published application Ser. No. 11/600,255 (U.S. Published Application 2008/0111714) which is incorporated herein by reference.
The capacitance to digital converter 110 may be any capacitance sensing method including charge transfer (described in U.S. Pat. No. 5,703,165), relaxation oscillator (described in U.S. application Ser. No. 11/502,267, now Published Application 20080036473, herein incorporated by reference), sigma-delta modulation (described in U.S. patent application Ser. No. 11/600,255, now Published Application 20080111714, herein incorporated by reference), successive approximation (described in U.S. Pat. No. 7,312,616, herein incorporated by reference), differential charge sharing (described in U.S. Pat. No. 5,374,787), TX-RX (described in U.S. patent application Ser. No. 12/395,462, herein incorporated by reference) or any other such method that converts a capacitance into a digital value. Sensor 105 may be a single sensor or may be representative of a plurality of sensors coupled to the capacitance to digital converter 110 in unison or at different times. Sensor 105 may be coupled to capacitance to digital converter directly Or it may be coupled to capacitance to digital converter 110 through a bus 107. In the case where there is a plurality of sensors, these sensors may be coupled to bus 107 mutually exclusively or in unison.
The process is started at block 601. The scanDRIVE parameters are set to default values determined in development in block 610. The sensors are then scanned using the default parameters in block 620. The output of the scan is then compared to a windowRANGE of values in decision block 625. If the scan output is within the windowRANGE, the default parameters from block 610 are saved to memory 130 in block 621.
If the scan output is outside the scan output is outside the windowRANGE, it is then determined if the scan output is greater than the windowRANGE in decision block 635. If the scan output is greater than the windowRANGE, the scanDRIVE parameters are adjusted to lower the scan output in block 640. The sensor is then scanned again in block 650 and the output is compared again the windowRANGE in decision block 655. If the output is within the range, the adjusted parameters are saved to memory 130 in block 651. If the output is outside the windowRANGE, the parameters are reduced again in block 640.
If, in decision block 635, the output is determined to not be greater than the windowRANGE, the scanDRIVE parameters are increased to increase the output of the capacitance to digital converter 110 in block 670. The sensor is then scanned in block 680 and the output compared to the windowRANGE again in block 685. If the output is within the windowRANGE, the scanDRIVE parameters are saved to memory 130 in block 681. If the output is outside the windowRANGE in block 683, the scanDRIVE parameters are increased further in block 670 and the sensor is scanned again in block 680.
One embodiment of the change in ScanDRIVE parameters is shown in
The maximum value detected by the sensor is used to calculate the finger threshold. The method 700 for determining the maximum value is illustrated in
If the SX is not greater than SMAX, a variable SampleN is incremented. The variable SampleN is compared to a threshold value SampleMAX in decision block 735.
If SampleN is not greater than the threshold value SampleMAX, the maximum value SMAX is saved to memory 130 in block 751.
If SampleN is greater than SampleMAX, SampleN is reset to “0” in block 740 and the value of SampleMAX is compared to “0” in step 745. If SampleMAX is 0, the maximum value SMAX is saved to memory 130 in block 751. If SampleMAX is greater than 0, SampleMAX is decremented on block 750 and the maximum value SMAX is saved to memory 130 in block 751.
The “Measure Noise” block (block 550,
The “calculate thresholds” step (block 560,
The noise threshold, TN is calculated from:
T
A
=K1·N, (1)
where TN is the noise threshold, K1 is the minimum acceptable signal to noise ratio (SNR) and N is the measured noise (from
The signal threshold, TS is calculated from:
T
S
=K2·SMAX, (2)
where TS is the signal threshold for a finger or other conductive object on the sensor, K2 is the fraction of the recently observed change in capacitance that is due to a touch (typical value may be 0.5) and SMAX is the highest detected signal on the sensor (from
The minimum capacitance change detectable by the sensor s given by:
T
MIN
=K3(pF), (3)
where TMIN is the minimum detectable capacitance change and K3 is the setting (in picofarads) used for the minimum detectable capacitance change.
The finger threshold, TF is the greatest of three values from equations 1, 2 and 3. The baseline adjust threshold, TBASE is the greatest of the signal threshold, TS, produced by a scale factor and the noise threshold, TN. The hysteresis is the finger threshold, TF, produced by a scale factor.
Embodiments of the present invention, described herein, include various operations. These operations may be performed by hardware components, software, firmware, or a combination thereof. As used herein, the term “coupled to” may mean coupled directly or indirectly through one or more intervening components. Any of the signals provided over various buses described herein may be time multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit components or blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be one or more single signal lines and each of the single signal lines may alternatively be buses.
Certain embodiments may be implemented as a computer program that may include instructions stored on a machine-readable medium. These instructions may be used to program a general-purpose or special-purpose processor to perform the described operations. A machine-readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read-only memory (ROM); random-access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; electrical, optical, acoustical, or other form of propagated signal (e.g., carrier waves, infrared signals, digital signals, etc.); or another type of medium suitable for storing electronic instructions.
Additionally, some embodiments may be practiced in distributed computing environments where the machine-readable medium is stored on and/or executed by more than one computer system. In addition, the information transferred between computer systems may either be pulled or pushed across the communication medium connecting the computer systems.
Some embodiments may be practiced during development. Parameters may be determined during development and programmed into the device during manufacturing. Other usage models may include determining and storing parameters to memory: as part of system test in manufacturing, on first power up, on every power up, periodically during normal operation of the sensing device, continuously during normal operation of the sensing device or on command from an external device or command.
Although the operations of the method(s) herein arc shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operation may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be in an intermittent and/or alternating manner.
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This application claims the benefit of U.S. Provisional Patent Application No. 61/114,374, filed Nov. 13, 2008.
| Number | Date | Country | |
|---|---|---|---|
| 61114374 | Nov 2008 | US |