Flexible capacitive sensor array

A method for detecting force applied to a capacitive sensor array and compensating for coordinate inaccuracy due to force includes receiving a plurality of capacitance measurements from the capacitive sensor array, where the plurality of capacitance measurements includes a first capacitance measurement and a second capacitance measurement, and detecting pressure on the capacitive sensor array based on a comparison between the first capacitance measurement and the second capacitance measurement.

TECHNICAL FIELD

This disclosure relates to the field of capacitance sensors and, in particular, to a flexible capacitive sensor array.

BACKGROUND

Computing devices, such as notebook computers, personal data assistants (PDAs), kiosks, and mobile handsets, have user interface devices, which are also known as human interface devices (HID). One user interface device that has become more common is a touch-sensor pad (also commonly referred to as a touchpad). A basic notebook computer touch-sensor pad emulates the function of a personal computer (PC) mouse. A touch-sensor pad is typically embedded into a PC notebook for built-in portability. A touch-sensor pad replicates mouse X/Y movement by using two defined axes which contain a collection of sensor elements that detect the position of one or more conductive objects, such as a finger. Mouse right/left button clicks can be replicated by two mechanical buttons, located in the vicinity of the touchpad, or by tapping commands on the touch-sensor pad itself. The touch-sensor pad provides a user interface device for performing such functions as positioning a pointer, or selecting an item on a display. These touch-sensor pads may include multi-dimensional sensor arrays for detecting movement in multiple axes. The sensor array may include a one-dimensional sensor array, detecting movement in one axis. The sensor array may also be two dimensional, detecting movements in two axes.

Another user interface device that has become more common is a touch screen. Touch screens, also known as touchscreens, touch windows, touch panels, or touchscreen panels, are transparent display overlays which are typically either pressure-sensitive (resistive or piezoelectric), electrically-sensitive (capacitive), acoustically-sensitive (surface acoustic wave (SAW)) or photo-sensitive (infra-red). The effect of such overlays allows a display to be used as an input device, removing the keyboard and/or the mouse as the primary input device for interacting with the display's content. Such displays can be attached to computers or, as terminals, to networks. Touch screens have become familiar in retail settings, on point-of-sale systems, on ATMs, on mobile handsets, on kiosks, on game consoles, and on PDAs where a stylus is sometimes used to manipulate the graphical user interface (GUI) and to enter data. A user can touch a touch screen or a touch-sensor pad to manipulate data. For example, a user can apply a single touch, by using a finger to touch the surface of a touch screen, to select an item from a menu.

DETAILED DESCRIPTION

One embodiment of a flexible touch-sensing surface may include a capacitive sensor array with a highly flexible overlay made of a material such as Poly(methyl methacrylate), or PMMA. In this embodiment, the capacitive sensor array may use a single layer low-cost pattern that is made using a PET substrate and a flexible (e.g., PMMA) overlay without a shield. There is no glass in the sensor stack-up and therefore the sensor is very easy to bend. There are two basic issues when the shield layer is removed in such design. Both issues are related to the ease with which the sensor can bend due to pressure which causes the sensor to approach the LCD that is mounted behind it. The issues caused by bending are: (1) a non-conductive object that bends the screen will cause false touches; and (2) a hard finger press will cause inaccurate coordinates to be reported. In one embodiment, the capacitive sensor array may respond to changes in capacitance resulting from proximity of a conductive object to the capacitive sensor array, or to pressure applied by a conductive or nonconductive object to the surface of the sensor array.

In one embodiment, the flexible touch-sensing surface implemented using a capacitive sensor array may overlay a display panel, such as a liquid crystal display (LCD) screen to implement a touchscreen. In this arrangement, coupling between the sensor electrodes of the capacitive sensor array and the display panel may cause reported touch coordinates to shift substantially in response to pressure on the flexible touch-sensing surface. For example, the two main problems with low-cost single layer sensors with a flexible (e.g., PMMA) overlay without a shield between the sensor and the display panel are coordinate shift due to sensor deflection and false reports due to a non-conductive object touch. In some embodiments, the signal processing methods described herein are used to address both of these problems.

For example, when a conductive object touches the touch-sensing surface without applying pressure, the system reports a first set of touch coordinates indicating the location of the touch. If the conductive object then applies pressure to the touch-sensing surface, the reported touch coordinates may shift towards the center of the capacitive sensor array. A nonconductive object touching the flexible touch-sensing surface may result in no touch being detected; however, if the nonconductive object applies pressure to the touch-sensing surface, the system may detect the pressure as a false touch, which may cause problems if it is not distinguished from an actual touch by a conductive object.

In one embodiment, these effects are caused by displacement of some of the sensor elements of the capacitive sensor array, which may be moved closer to the display panel, thus increasing the capacitive coupling between the display panel and the displaced sensor elements.

One embodiment of a method for compensating for the coordinate shift and false touch effects seen with flexible touch-sensing surfaces includes receiving capacitance measurements from a first and a second sensor element of the capacitive sensor array and detecting whether pressure has been applied to the touch-sensing surface, based on a comparison between the first and second capacitance measurements. The comparison may include, for example, calculating a ratio of the first and second capacitance measurements and detecting the pressure when the ratio exceeds a threshold.

A processing device implementing the above method may receive the first and second capacitance measurements at a capacitive sensor input, then detect the presence of pressure applied to the touch-sensing surface based on the comparison between the first and second capacitance measurements. In one embodiment, the processing device may further calculate touch coordinates indicating a location of the touch at the touch-sensing surface, and transmit the touch coordinates to a host for further processing.

FIG. 1illustrates a block diagram of one embodiment of an electronic system100including a processing device110that may be configured to measure capacitances from a flexible touch-sensing surface and compensate for coordinate shifting and false touch effects. The electronic system100includes a touch-sensing surface116(e.g., a touchscreen, or a touch pad) coupled to the processing device110and a host150. In one embodiment, the touch-sensing surface116is a two-dimensional user interface that uses a sensor array121to detect touches on the surface116.

In one embodiment, the sensor array121includes sensor elements121(1)-121(N) (where N is a positive integer) that are disposed as a two-dimensional matrix (also referred to as an XY matrix). The sensor array121is coupled to pins113(1)-113(N) of the processing device110via one or more analog buses115transporting multiple signals. In this embodiment, each sensor element121(1)-121(N) is represented as a capacitor. The self capacitance of each sensor in the sensor array121is measured by a capacitance sensor101in the processing device110.

In one embodiment, the capacitance sensor101may include a relaxation oscillator or other means to convert a capacitance into a measured value. The capacitance sensor101may also include a counter or timer to measure the oscillator output. The capacitance sensor101may further include software components to convert the count value (e.g., capacitance value) into a sensor element detection decision (also referred to as switch detection decision) or relative magnitude. It should be noted that there are various known methods for measuring capacitance, such as current versus voltage phase shift measurement, resistor-capacitor charge timing, capacitive bridge divider, charge transfer, successive approximation, sigma-delta modulators, charge-accumulation circuits, field effect, mutual capacitance, frequency shift, or other capacitance measurement algorithms. It should be noted however, instead of evaluating the raw counts relative to a threshold, the capacitance sensor101may be evaluating other measurements to determine the user interaction. For example, in the capacitance sensor101having a sigma-delta modulator, the capacitance sensor101is evaluating the ratio of pulse widths of the output, instead of the raw counts being over or under a certain threshold.

In one embodiment, the processing device110further includes processing logic102. Operations of the processing logic102may be implemented in firmware; alternatively, it may be implemented in hardware or software. The processing logic102may receive signals from the capacitance sensor101, and determine the state of the sensor array121, such as whether an object (e.g., a finger) is detected on or in proximity to the sensor array121(e.g., determining the presence of the object), where the object is detected on the sensor array (e.g., determining the location of the object), tracking the motion of the object, or other information related to an object detected at the touch sensor.

In another embodiment, instead of performing the operations of the processing logic102in the processing device110, the processing device110may send the raw data or partially-processed data to the host150. The host150, as illustrated inFIG. 1, may include decision logic151that performs some or all of the operations of the processing logic102. Operations of the decision logic151may be implemented in firmware, hardware, software, or a combination thereof. The host150may include a high-level Application Programming Interface (API) in applications152that perform routines on the received data, such as compensating for sensitivity differences, other compensation algorithms, baseline update routines, start-up and/or initialization routines, interpolation operations, or scaling operations. The operations described with respect to the processing logic102may be implemented in the decision logic151, the applications152, or in other hardware, software, and/or firmware external to the processing device110. In some other embodiments, the processing device110is the host150.

In another embodiment, the processing device110may also include a non-sensing actions block103. This block103may be used to process and/or receive/transmit data to and from the host150. For example, additional components may be implemented to operate with the processing device110along with the sensor array121(e.g., keyboard, keypad, mouse, trackball, LEDs, displays, or other peripheral devices).

The processing device110may reside on a common carrier substrate such as, for example, an integrated circuit (IC) die substrate, or a multi-chip module substrate. Alternatively, the components of the processing device110may be one or more separate integrated circuits and/or discrete components. In one embodiment, the processing device110may be the Programmable System on a Chip (PSoC™) processing device, developed by Cypress Semiconductor Corporation, San Jose, Calif. Alternatively, the processing device110may be one or more other processing devices known by those of ordinary skill in the art, such as a microprocessor or central processing unit, a controller, special-purpose processor, digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable device. In an alternative embodiment, for example, the processing device110may be a network processor having multiple processors including a core unit and multiple micro-engines. Additionally, the processing device110may include any combination of general-purpose processing device(s) and special-purpose processing device(s).

In one embodiment, the electronic system100is implemented in a device that includes the touch-sensing surface116as the user interface, such as handheld electronics, portable telephones, cellular telephones, notebook computers, personal computers, personal data assistants (PDAs), kiosks, keyboards, televisions, remote controls, monitors, handheld multi-media devices, handheld video players, gaming devices, control panels of a household or industrial appliances, or other computer peripheral or input devices. Alternatively, the electronic system100may be used in other types of devices. It should be noted that the components of electronic system100may include all the components described above. Alternatively, electronic system100may include only some of the components described above, or include additional components not listed herein.

FIG. 2is a block diagram illustrating one embodiment of a capacitive touch sensor array121and a capacitance sensor101that converts measured capacitances to coordinates. The coordinates are calculated based on measured capacitances. In one embodiment, sensor array121and capacitance sensor101are implemented in a system such as electronic system100. Sensor array121includes a matrix225of N×M electrodes (N receive electrodes and M transmit electrodes), which further includes transmit (TX) electrode222and receive (RX) electrode223. Each of the electrodes in matrix225is connected with capacitance sensing circuit201through demultiplexer212and multiplexer213.

Capacitance sensor101includes multiplexer control211, demultiplexer212and multiplexer213, clock generator214, signal generator215, demodulation circuit216, and analog to digital converter (ADC)217. ADC217is further coupled with touch coordinate converter218. Touch coordinate converter218outputs a signal to the processing logic102.

The transmit and receive electrodes in the electrode matrix225may be arranged so that each of the transmit electrodes overlap and cross each of the receive electrodes such as to form an array of intersections, while maintaining galvanic isolation from each other. Thus, each transmit electrode may be capacitively coupled with each of the receive electrodes. For example, transmit electrode222is capacitively coupled with receive electrode223at the point where transmit electrode222and receive electrode223overlap.

Clock generator214supplies a clock signal to signal generator215, which produces a TX signal224to be supplied to the transmit electrodes of touch sensor121. In one embodiment, the signal generator215includes a set of switches that operate according to the clock signal from clock generator214. The switches may generate a TX signal224by periodically connecting the output of signal generator215to a first voltage and then to a second voltage, wherein said first and second voltages are different.

The output of signal generator215is connected with demultiplexer212, which allows the TX signal224to be applied to any of the M transmit electrodes of touch sensor121. In one embodiment, multiplexer control211controls demultiplexer212so that the TX signal224is applied to each transmit electrode222in a controlled sequence. Demultiplexer212may also be used to ground, float, or connect an alternate signal to the other transmit electrodes to which the TX signal224is not currently being applied.

Because of the capacitive coupling between the transmit and receive electrodes, the TX signal224applied to each transmit electrode induces a current within each of the receive electrodes. For instance, when the TX signal224is applied to transmit electrode222through demultiplexer212, the TX signal224induces an RX signal227on the receive electrodes in matrix225. The RX signal227on each of the receive electrodes can then be measured in sequence by using multiplexer213to connect each of the N receive electrodes to demodulation circuit216in sequence.

The mutual capacitance associated with each intersection between a TX electrode and an RX electrode can be sensed by selecting every available combination of TX electrode and an RX electrode using demultiplexer212and multiplexer213. To improve performance, multiplexer213may also be segmented to allow more than one of the receive electrodes in matrix225to be routed to additional demodulation circuits216. In an optimized configuration, wherein there is a 1-to-1 correspondence of instances of demodulation circuit216with receive electrodes, multiplexer213may not be present in the system.

When an object, such as a finger, approaches the electrode matrix225, the object causes a decrease in the mutual capacitance between only some of the electrodes. For example, if a finger is placed near the intersection of transmit electrode222and receive electrode223, the presence of the finger will decrease the mutual capacitance between electrodes222and223. Thus, the location of the finger on the touchpad can be determined by identifying the one or more receive electrodes having a decreased mutual capacitance in addition to identifying the transmit electrode to which the TX signal224was applied at the time the decreased mutual capacitance was measured on the one or more receive electrodes.

By determining the mutual capacitances associated with each intersection of electrodes in the matrix225, the locations of one or more touch contacts may be determined. The determination may be sequential, in parallel, or may occur more frequently at commonly used electrodes.

In alternative embodiments, other methods for detecting the presence of a finger or conductive object may be used where the finger or conductive object causes an increase in capacitance at one or more electrodes, which may be arranged in a grid or other pattern. For example, a finger placed near an electrode of a capacitive sensor may introduce an additional capacitance to ground that increases the total capacitance between the electrode and ground. The location of the finger can be determined from the locations of one or more electrodes at which an increased capacitance is detected.

The induced current signal227is rectified by demodulation circuit216. The rectified current output by demodulation circuit216can then be filtered and converted to a digital code by ADC217.

The digital code is converted to touch coordinates indicating a position of an input on touch sensor array121by touch coordinate converter218. The touch coordinates are transmitted as an input signal to the processing logic102. In one embodiment, the input signal is received at an input to the processing logic102. In one embodiment, the input may be configured to receive capacitance measurements indicating a plurality of row coordinates and a plurality of column coordinates. Alternatively, the input may be configured to receive row coordinates and column coordinates.

FIG. 3illustrates one embodiment of a flexible touch-sensing surface300that may be connected to a capacitance sensor such as capacitance sensor101. Touch-sensing surface300includes a number of sensor elements301that may be part of a capacitive sensor array such as sensor array121, as illustrated inFIG. 2.

Touch-sensing surface300includes the sensor elements301formed on a substrate303and covered by an overlay302. In one embodiment, the substrate303is made from a material such as Polyethylene terephthalate (PET). In one embodiment, the substrate303is flexible and transparent. The layer of sensor elements301may be additionally covered with an overlay302, which may be manufactured from a material such as PMMA. In one embodiment, the overlay302is also flexible and transparent. The flexible touch-sensing surface300overlays a display panel310, which may be a LCD display, LED display, OLED display, or some other type of display panel. As illustrated inFIG. 3, there is no shield layer between substrate303and display panel310.

As illustrated inFIG. 3, pressure may be applied to the touch-sensing surface300by an object such as stylus320. The pressure applied by the stylus320displaces the sensor elements301such that sensor elements nearer to the location where the pressure is applied are pushed closer to the display panel. As illustrated inFIG. 3, the displacement of the sensor elements is exaggerated for clarity. In the following description, the terms “force” and “pressure” may be used interchangeably to describe a condition that causes displacement of sensor elements or deformation of the touch-sensing surface or sensor array.

The deflection of some of the sensor elements301can result in an increase in the signal strengths measured by an ADC such as ADC217.FIG. 4illustrates a sensor array401of a flexible touch-sensing surface that includes row sensor elements411-420and column sensor elements421-428. The row and column sensor elements411-428are connected to a processing device110, which measures capacitance values from each of the sensor elements411-428. In one embodiment, the capacitance values A (unshaded bars) represent capacitance values measured from the row sensor elements411-420when a contact430by a conductive object is near or touching the sensor array401, but is not exerting force on the sensor array401and is not deforming sensor array401. Capacitance values B (shaded bars) represent capacitance values measured from the row sensor elements411-420when the conductive object additionally exerts a force deforming the sensor array at contact location430. Individual capacitance values from sets A and B are referenced according to the sensor elements from which they are measured, i.e., capacitance measurement416A or416B from row element416.

The set of capacitance values A illustrates that a contact430that does not apply force to the sensor array401and does not displace the sensor elements411-428results in a sharper drop in magnitude of the capacitance signal farther away from the center of contact430. In contrast, the set of capacitance values B resulting from an object applying force to the sensor array401at contact430illustrates a more gradual drop in magnitude of the capacitance signals farther from the center of contact430, which is caused by the displacement of the sensor elements near the contact430.

Thus, in one embodiment, the contact430from a conductive object not applying force results in a sharper profile, while the contact430from an object applying force and deforming the sensor array results in a wider, flatter profile. In some cases, even a nonconductive object applying force at contact location430may sufficiently increase the capacitance signals B such that a false touch is detected.

In one embodiment, a processing device such as processing device110that is connected to a capacitive sensor array401may detect deformation caused by pressure on the sensor array401based on a comparison between a first capacitance measurement and a second capacitance measurement from the set of capacitance measurements taken from the row elements (or column elements) of sensor array401. In one embodiment, the capacitance measurement with the highest magnitude may be selected as the first capacitance value, while the second capacitance value may be chosen the nth strongest capacitance signal, where n is a predetermined integer. Alternatively, the second capacitance value may be measured from a sensor element that is a predetermined distance from the first capacitance value. For example, a first capacitance value416A may be compared with a second value419A.

In one embodiment, a profile ratio between the first and second capacitance values may be calculated, and an amount of force applied to the sensor elements or an amount of sensor deformation or displacement of the sensor elements may be inferred based on the profile ratio. For example, a profile ratio below a specific profile ratio threshold may be used to indicate that excessive force is being applied to the sensor array401, and may trigger a compensation process for maintaining accuracy of the reported touch-coordinates. In one embodiment, the compensation may be performed by the processing device110.

In one embodiment, the compensation process avoids false touch reports caused by force applied by non-conductive objects based on a shape of the capacitance measurement profile. Since deformation of the sensor array resulting from force applied by a non-conductive object causes a wider profile (smaller drop-off farther from the contact) when compared to a narrow profile (larger drop-off farther from the contact) caused by a conductive object, a shape of the profile may be used to distinguish the cases.

For example, a ratio that characterizes the shape of the profile may be calculated using Equation 1 below:

profile_ratio=CpeakCn(Equation⁢⁢1)
In one embodiment, Cpeak is the first capacitance value, having the highest magnitude, while Cn is the second capacitance value, which is chosen such that Cn is the nth strongest signal. For example, for n=4, and when signal416A is the first capacitance value Cpeak, signal418A may be chosen as the second capacitance value Cn, since418A is the 4thstrongest capacitance value. Alternatively, Cn may be a capacitance signal corresponding to a sensor element n elements away from the sensor element corresponding to the first capacitance value. For example, for n=4, and while416A is chosen as the first capacitance value Cpeak,412A or420A may be chosen as the second capacitive value Cn.

In one embodiment, the value for n may be chosen such that a capacitance value that is affected by the sensor element displacement, and that is less affected by proximity of a conductive object is chosen as the second capacitance value. The value for n may be determined empirically by comparing profiles caused by conductive contacts and non-conductive contacts that apply force. The value of n may also differ based on the pitch of the sensor elements in sensor array401.

In one embodiment, if a non-conductive object applies force to the sensor array401at a high speed, the first few profiles may have profile ratios that are comparable to those that may be caused by a conductive contact that does not apply force. This may cause difficulty in distinguishing between the conductive and non-conductive contacts. To resolve this problem, a debouncing technique may be implemented so that a number of initial sampled profiles may be discarded. For example, the first one or two profiles sampled after detecting the initial contact may be discarded so that the touching object settles to its normal profile.

In response to receiving an apparent touch at the touch-sensing surface, one embodiment of a compensation process may determine based on the profile whether the touch is caused by a conductive object near or contacting the surface, or caused by a non-conductive object applying force to the surface. If the apparent touch is caused by a non-conductive object applying force to the surface, the compensation process may discard the apparent touch input or assert a signal indicating to a host that the apparent touch is caused by a non-conductive object.

In one embodiment, a compensation process may be initiated in response to detecting that a force is being applied to the touch-sensing surface resulting in deformation that may cause inaccuracies in the reported touch coordinates. One embodiment of such a compensation process may cease calculation of touch coordinates when the force is detected. For example, when a conductive object applies pressure to the touch sensing surface, the processing device110may detect that force is being applied and cease calculation of new touch coordinates. Thus, the inaccurate touch coordinates (which are affected by the applied force) are not reported to the host.

In one embodiment, during the time that no new touch coordinates are being reported to the host, the processing device110may report a set of default touch coordinates to the host. For example, the default touch coordinates may be a set of “last known” coordinates, which is the last set of touch coordinates calculated before initiation of the compensation process.

In one embodiment, the processing device110may resume normal calculation and reporting of the touch coordinates to the host in response to detecting that the force applied to the touch-sensor is no longer being applied. For example, the processing device110may determine that the force is no longer applied when the profile ratio no longer exceeds the predetermined profile ratio threshold.

FIG. 5is a flow diagram illustrating one embodiment of a process500for compensating for force effects on a flexible touch-sensing surface. One embodiment of compensation process500may be performed in a processing device, such as processing device110, as illustrated inFIG. 4.

At block502, the processing device receives capacitance measurements from the capacitive sensor array, such as sensor array401. From block502, the process500continues at block504.

At block504, the processing device determines whether the sensor elements of the sensor array have been displaced. In one embodiment, the processing device determines a profile ratio based on a first and a second capacitance measurement of the capacitance measurements received at block502. If, at block504, the processing device determines that the sensor elements are not being deflected, the process500continues at block506, where, the processing device may calculate touch coordinates using a standard method.

If, at block504, the processing device determines that the sensor elements are being deflected, for example, as a result of force applied to the touch-sensing surface, the process500continues at block508. At block508, the processing device determines whether the contact represented in the capacitive measurements received at block502are caused by proximity or touch of a conductive object. If the touch is from a conductive object, the process500continues at block510. Otherwise, if the touch is from a non-conductive object, the process500continues at block512, where no new touch coordinates are calculated or reported.

The process500arrives at block510when the touch-sensing surface has been contacted by a conductive object that is applying force to the touch-sensing surface, displacing the sensor elements and possibly leading to inaccurate touch coordinates. Thus, at block510, the processing device may compensate for touch-coordinate inaccuracies caused by force applied to the touch-sensing surface. For example, one method for compensation may include reporting the last known coordinates of the touch to the host, which may be the last set of coordinates that was calculated. In an alternative embodiment, the processing device may report some other set of default coordinates or may interpolate replacement coordinates to replace the inaccurate coordinates.

Another alternative embodiment of a compensation process may determine an amount of each capacitance value that is attributable to the applied force and subtract it from the raw set of capacitance signals. For example, for a given set of capacitance values measured from the sensor array, a portion of each signal may be attributable to the proximity or contact of a conductive object, while the remainder of the signal may be attributable to a force applied by the conductive object that causes displacement of the sensor elements. One method for compensating for coordinate shift due to the applied force may determine the amount of signal that is attributable to the force, then subtract this amount from the capacitance signals.

In one embodiment, the processing element may access a lookup table that stores one or more compensation profiles. Each of the compensation profiles in the lookup table stores sets of correction values that can be used to adjust the measured raw capacitance values from the sensor array. In response to detecting displacement of the sensor elements due to force, the processing element may calculate a corrected touch location based on one of the compensation profiles, which may be determined based on the amount of force detected.

In one embodiment, a compensation profile may be modeled using a general equation that most closely fits the shape of the profile. In one embodiment, the set of capacitance values resulting when a force is applied by a non-conductive object results in a profile that can be modeled using a quadratic formula. The shape of the profile of capacitance values B, as illustrated inFIG. 4, for instance, may be modeled using a quadratic curve. Thus, a set of compensation values may be generated based on the quadratic formula, and each of the compensation values may be subtracted from its corresponding measured raw capacitance value to generate a set of corrected capacitance values more closely approximating the values that would have resulted had force not been applied to the sensor array.

In one embodiment, the quadratic compensation profile is determined based on at least a first and a second point (Ppeak, Pn) of the curve, and the position of the peak. For example, in a system where the 4thlargest capacitance value has significant magnitude only when the sensor elements are displaced by force, the 4thlargest capacitance value may be chosen as the second point Pn. Generally, the second point may be chosen to be a point that is affected by force, but is not affected by the proximity of a conductive object applying the force. Hereafter, n is assumed to be 4; however the value of n may differ in other embodiments. Ppeak is also assumed to be P1, which is the signal having the highest magnitude.

In one embodiment, Ppeak and Pn values may be gathered empirically by applying a known force to the touch-sensing surface using a non-conductive object. The applied force may result in a set of capacitance values similar to capacitance values B, as illustrated inFIG. 4, having a flatter profile. The capacitance signal with the highest magnitude may be stored as P1, while the 4th strongest signal is stored as P4. In one embodiment, the (P4, P1) values may be measured for 16 points associated with known (x,y) locations on the touch-sensing surface. This set of 16 (P4, P1) values may constitute one layer of a 3 dimensional (3D) correction table.

FIG. 6illustrates an embodiment of a 3D correction table600having 16 sets of (P4, P1) values such as value pair602for each layer601. Each layer of 3D correction table600represents an amount of force that may be applied to the touch-sensing surface. For example, when determining the values in the correction table600empirically, each of the values in the same layer may have been determined by applying the same amount of force to the touch-sensing surface.

In one embodiment, the 3D correction table600may store, for each of the 16 points, more values in addition to the 1stand 4thlargest values P1and P4. This may consume more memory space, but may decrease the amount of computation required and time required to perform the compensation.

In one such alternative embodiment that stores more values in addition to P4and P1, only the top n values may be stored. For example, the values P1, P2, P3, and P4may be stored, representing the four values having the highest magnitude. In one embodiment, any sensor element having a value less than the top n sensors may be given a corrected value of 0, based on the assumption that any signal on those sensors is completely attributable to displacement of the sensor elements and not from the proximity of a conductive object. This system may decrease accuracy of the compensation, but may also reduce the amount of data storage used, as compared to storing all of the values.

In one embodiment, the 16 (P4, P1) value pairs may correspond to intersections in the sensor array. Alternatively, the value pairs may only be stored for some intersections of sensor elements, or may be stored for other points distributed across the surface of the sensor array that are not associated with an intersection. In one embodiment, fewer or more than 16 value pairs are stored in each layer. A 3D correction table may also include fewer or more than 3 layers.

FIG. 7is a flow diagram illustrating one embodiment of a compensation process510that compensates for the effects of force applied to a capacitive touch-sensing surface using a 3D correction table such as table600illustrated inFIG. 6. In one embodiment, the operations performed during compensation process510correspond to block510, as illustrated inFIG. 5. In one embodiment, the process510may also be performed by a processing device such as processing device110. Compensation process510may determine a set of compensation values (approximated as a quadratic curve) based on two points (P4, P1) of the quadratic curve and a location (x, y) of a peak of the quadratic curve.

At block702of process510, when a finger or other conductive object is present at the touch-sensing surface, the capacitance signals are measured and touch coordinates (x, y) are calculated. From block702, the process510continues at block704.

At block704, the value for P4corresponding to the measured touch location (x, y) is retrieved from each layer of the 3D correction table. From block704, the process510continues at block706.

At block706, the processing device may select a P4value that is closest to the measured P4value for the location (x, y). At block708, the processing device determines the P1value associated with the selected P4value. Once the values for P4and P1are known, the processing device may calculate parameters of the compensation profile, as provided at block710. In one embodiment, the parameters a, b, and c are constants in a quadratic formula.

Once the values of P1and P4are obtained, it is possible to derive the equation of the quadratic curve using the values of P1and P4and their corresponding channel indices. In one embodiment, a channel index is a sequential number used to identify each sensor element in the sensor array. For example, each sensor element in a row or column may be numbered sequentially with a channel index. Thus, the channel index may represent the location of the sensor element along an axis.FIG. 8illustrates a set of measured capacitance values, according to one embodiment. InFIG. 8, channel indices N1and N4correspond to values P1and P4, respectively. Here, P1is measured from the 5thsensor element so that N1equals 5. Accordingly, N4is equal to 7.

In one embodiment, Equations 2-5 below may be used to determine the parameters a, b, and c of a quadratic equation for approximating the compensation profile for one axis of a sensor array (i.e., either the rows or columns). In Equation 2, P represents a compensation value, and n represents a position along the sensor array axis. Thus Equation 2 may be used to determine a compensation value that can be subtracted from a raw capacitance value measured from a sensor element at location n along the sensor array axis.

Referring again toFIG. 7, Equations 2-5 may be used by the processing device to calculate values a, b, and c for the quadratic equation describing the compensation profile, as provided at block710. From block710, the process510continues at block712.

At block712, the processing device calculates a set of compensation values using the quadratic equation with the values a, b, and c determined at block710. In one embodiment, a compensation value corresponding to a sensor element may be determined using the channel index N of the sensor element in the quadratic equation (i.e., as n in Equation 2). In one embodiment, the processing device may calculate a compensation value for each of the capacitance values measured from the sensor elements of the sensor array.

At block714, the compensation values are subtracted from their corresponding measured capacitance values to generate a set of compensated capacitance values. From block714, the process510continues at block716.

At block716, the processing device calculates coordinates of the touch based on the set of compensated capacitance values. The processing device then transmits the calculated touch coordinates to a host device, as provided at block718.

In one embodiment, the compensation process may obtain a more accurate set of compensation values by interpolating between the stored values in the 3D correction table.FIG. 9illustrates a layer of the 3D correction table, according to one embodiment. With reference toFIG. 9, for a contact location at coordinates (X0, Y0) indicated by a star, interpolation may be used to compute the value of P4using 2D interpolation.

Once the interpolated value of P4has been determined, the compensation process may include further interpolation of the P4value in between the nearest P4values stored in the layers601of the 3D correction table600in order to determine a value for P1.

Referring again toFIG. 9, (X0, Y0) may indicate a first attempt at coordinate calculation based on the raw uncorrected capacitance values measured from the sensor array. The point (X0, Y0) is located between the four points having coordinates (X1, Y1), (X2, Y1), (X1, Y2), and (X2, Y2). The measured value of P4on these points are P41, P42, P43, and P44, respectively. In one embodiment, an estimate of P4at (X0, Y0) is calculated by averaging the four measured P4values in the table that surround the point (X0, Y0).

In an alternative embodiment, an approximation of P4may be obtained by performing a 2D linear interpolation between these points. The four points (X1, Y1, P41), (X2, Y1, P42), (X1, Y2, P43), and (X2, Y2, P44) may be considered as being on a plane described by Equation 6 below:
P=AX+BY+C(Equation 6)

Equation 6 designates a plane in XYP space, where A, B and C are constants. The parameters A, B, and C may be determined using three of the points (X1, Y1, P41), (X2, Y1, P42), and (X1, Y2, P43). Plugging the three coordinates in Equation 6 yields Equations 7-9 below:
P41=AX1+BY1+C(Equation 7)
P42=AX2+BY1+C(Equation 8)
P43=AX1+BY2+C(Equation 9)
Subtracting Equation 7 from Equation 8 yields Equation 10 below:

Equations 10, 11, and 7 may be used to solve for C. Thus, the general form of the plane equation for any point on layer900, such as (X0, Y0) as indicated inFIG. 9, is expressed by Equation 12:

To obtain an estimate of P4at (X0, Y0) Equation 12 may be used to compute P4for all layers of the 3D correction table. A layer having a P4value closest to the measured P4value may be selected, and Equation 12 may be used to determine the P1value for the coordinate (X0, Y0), where P4values are replaced by P1values, as expressed in Equation 13:

In one embodiment, inter-layer interpolation may also be used to obtain an estimate of the P1value. For example, the measured P4for the position (X0, Y0) may be between the P4values of a first layer (layer1) and a second layer (layer2); P4,10and P4,20may represent the respective P4values computed from layer1, and layer2at (X0, Y0) point, and P4mis the measured P4value. The value of L, as illustrated inFIG. 10corresponds to an index of an interpolated layer that would have given the exact value of the measured P4, had layer L been included in the 3D correction table. The value of L can be calculated from the line equation illustrated inFIG. 10, expressed below as Equation 14:

InFIG. 10, L1and L2are the indices of layers1and2, respectively. In one embodiment, the value L may be used to obtain a value of P10(the peak value of the compensation values) from interpolation between layers1and2. Replacing P4,L0with P1,L0in Equation (14) (where L in the subscript is the layer number) yields the following Equation 15 to calculate the interpolated value of P10:

Equation 14 shows the layer position for an interpolated layer that would have the same value as the P4measured at (X0, Y0). Substituting L from Equation 14 into Equation 15 results in Equations 16 below:

P10=(P1,20-P1,10)⁢(P4m-P4,10)P4,20-P4,10+P1,10(Equation⁢⁢16)
Thus, P10is the interpolated value that approximates the peak signal due to deflection of sensor elements that can be used along with the measured P4to calculate a, b, and c parameters of a quadratic equation. Equation 16 involves computation of four values, i.e., P4,20, P4,10, P1,20, and P1,10, from Equations 12 and 13. The more general form of Equation 16 is shown by Equation 17, where all layer indices in Equation 16 are replaced by parameters L1and L2.

In one embodiment, the processing device may apply the above compensation process to all capacitance measurements without first determining whether force has been applied to the touch-sensing surface, or whether any sensor elements have been displaced. For example, with reference toFIG. 5, the process500may proceed from block502directly to block510. In one embodiment, the layers601of a 3D correction table600may include a layer with baseline values of P4that are referenced when there is no signal attributable to force.

In one embodiment, rather than using a 3D correction table storing predetermined values, a compensation process may use a formula or function that uses one or more of the measured capacitance values to determine magnitudes of the capacitance signals attributable to sensor element displacement.

In one embodiment, the method of looking up values in the 3D correction table may also be used to determine an amount of displacement of the sensor elements, or the amount of bending or deformation of the touch-sensing panel due to force.

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 product that may include instructions stored on a computer-readable medium. These instructions may be used to program a general-purpose or special-purpose processor to perform the described operations. A computer-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 computer-readable storage 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, or another type of medium suitable for storing electronic instructions.

Additionally, some embodiments may be practiced in distributed computing environments where the computer-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 transmission medium connecting the computer systems.