The present disclosure relates generally to user interfaces utilizing capacitive touch sensing.
Touch screens, touch pads, series of touch buttons, and other capacitive touch sense devices determine the presence of a finger or other object relative to the device according to capacitive changes caused by the finger or object. Some capacitive touch sense devices are integrated with mechanical buttons in addition to the capacitive touch sense input. The
Referring to
Referring now to
Referring now to
The data output identifying both the touch position 32 and the button press 33 is reported to a software application, and because the user did not intend the touch input, the software program receives partially invalid data. The disclosure that follows solves this and other problems.
In one embodiment, a system includes a radial slider coupled to capacitive touch sense circuitry that is configured to output an indication of a position of an input object relative to a surface of the radial slider. Below the surface of the radial slider, the system can include at least one button configured to change positions according to whether the input object is pressed against the surface of the radial slider using a force that exceeds a force threshold. Control circuitry receives, from the capacitive touch sense circuitry, a signal indicating a current radial position of the input object on the surface of the radial slider. The control circuitry determines a difference between the current radial position and a previous radial position. The control circuitry then compares the determined difference to a hysteresis value. The control circuitry then masks the current radial position from an output according to the comparison, which prevents a software program from receiving a partially erroneous input.
When the system receives an indication that the input object pressed against the surface of the radial slider using a force that exceeds a force threshold, the system outputs the press indication independently of whether the current radial position is masked.
The hysteresis value can be programmable. The radial slider can be mapped to any number of positions, such as three hundred and sixty positions.
Another embodiment includes an apparatus with control circuitry configured to be connected to capacitive touch sense devices having radial sliders. The control circuitry is operable to receive an indication of a current radial position of an input object on a radial slider of a capacitive touch sense device, to determine a difference between the current radial position and a previous radial position, to compare the determined difference to a threshold value, and to output the current radial position according to the comparison.
The control circuitry can also be operable to output indications of input object presses without filtering, whereas the control circuitry filters indications of input object touches according to the comparison.
The control circuitry can also be operable to identify a first threshold position and a second threshold position, the threshold positions corresponding to the previous radial position, and then compare the threshold positions to determine if said positions are adjacent to a predefined wrap-around position on the radial slider. The comparison can include determining whether the first threshold position is greater than the second threshold. If the threshold positions are not adjacent to the predefined wrap-around position, the control circuitry is operable to mask the current radial position if the current radial position is between the threshold positions. If the threshold positions are adjacent to the predefined wrap-around position, the control circuitry is operable to mask the current radial position if the current radial position is not between the threshold positions.
The control circuitry can be operable to determine whether the previous radial position is less than the threshold value. If the previous radial position is not less than the threshold value, the control circuitry is operable to determine a first threshold position by subtracting the threshold value from the previous radial position. If the previous radial position is less than the threshold value, the control circuitry is operable to determine the first threshold position by first subtracting the previous radial position from the threshold value, and then subtracting the difference from the number of radial positions mapped to the radial slider.
The control circuitry can be operable to determine whether the sum of the previous radial position and the number of radial positions mapped to the radial slider is greater than the threshold value. If the sum is not greater than the threshold value, the control circuitry is operable to determine the second threshold position by adding the threshold value to the previous radial position. If the sum is greater than the threshold value, the control circuitry is operable to determine the second threshold position by subtracting the number of radial positions from the sum of the previous radial position and the threshold value.
The control circuitry can be operable to calculate a rate that the input object has moved across the radial slider by dividing a determined movement distance by an amount of time. The control circuitry is operable to then compare the calculated rate to a threshold rate, and output the current radial position according to this comparison.
Several preferable examples of the present application will now be described with reference to the accompanying drawings. Various other examples of the invention are also possible and practical. This application may be exemplified in many different forms and should not be construed as being limited to the examples set forth herein.
The figures listed above illustrate preferable examples of the application and the operation of such examples. In the figures, the size of the boxes is not intended to represent the size of the various physical components. Where the same element appears in multiple figures, the same reference numeral is used to denote the element in all of the figures where it appears. When two elements operate differently, different reference numerals are used regardless of whether the two elements are the same class.
Only those parts of the various units are shown and described which are necessary to convey an understanding of the examples to those skilled in the art. Those parts and elements not shown may be conventional and known in the art.
The control circuitry 60 communicates with radial slider hardware 49 or other capacitive touch hardware to filter touch indications 69 received from the hardware 49 before providing a filtered output 70 to a software application. In other words, certain ones of the touch indications 69 are filtered by the control circuitry 60 to generate the filtered output 70. A more detailed explanation of how the control circuitry 60 determines which touch indications to filter will be provided later in reference to
By filtering certain touch indications, the control circuitry 60 reduces or eliminates invalid data reported to the software application. Accordingly, the radial slider hardware 49 is made interoperable with a great variety of programs and drivers. Moreover, since invalid data is more commonly output by physically smaller radial sliders, the filtering by the control circuitry 60 provides hardware designers new flexibility in reducing the physical size of radial slider hardware.
Referring to
Referring now to
Referring to both
If the first touch register 57 was not set to “0” in decision box 402, then in decision box 407 the module 50 determines whether the moving register 54 is set to “1” or any other representation of “true”. If the moving register 50 is set to “1”, then in block 408 the module 50 outputs the detected touch position to the software application.
If the moving register 54 was not set to “1” in decision box 407, then in block 409 the module 50 stores the detected touch position in register 52. In block 410, the module 50 calculates a difference between values from registers 51 and 52. In decision box 411, the calculated difference is compared to a hysteresis threshold, and if the calculated difference is not less than the hysteresis threshold, in block 412 the module 50 outputs the detected touch position in block 412. The programmable hysteresis value may be set at any amount, and for example, can be three degrees when a radial slider is mapped to three hundred and sixty positions. In block 413, the module 50 sets the moving register 54 to “1”.
If the calculated difference is less than the hysteresis threshold in decision box 411, then in block 414 the module 50 overwrites position register 51 with the value stored in position register 52. In block 415, the module 50 sets the moving register 54 to “0”. In block 416, the module 50 masks or otherwise filters the detected touch position from the software application.
If no finger is present on the touch device in decision box 401, then in block 417 the module 50 sets the moving register 54 to “0”. In block 418, the module 50 sets the first touch register 57 to “1”. No data is output to the software application in block 419.
After having described the general operation of the control circuitry 60 with reference to
If the first touch register 57 is set to “0”, in block 501 the module 50 determines whether the position stored in register 51 (hereinafter referred to as “position1”) is less than a programmable hysteresis value (hereinafter referred to as “H”). In the present example the detected position is a value between zero and three hundred and fifty nine, and thus it can be compared to a hysteresis value, such as three. If position1 is less than H, then in block 502A the module 50 identifies a value X by subtracting position1 from H. In block 503, the module 50 identifies a first hysteresis threshold position by subtracting the identified value X from the sum the interpolation amount (hereinafter referred to as “1”) plus one. The interpolation amount is equal to the largest position, which in the present example is three hundred and fifty nine on the radial slider mapped to three hundred and sixty positions. It should be apparent that the sum of 1+I can also be expressed as the total number of positions on the radial slider, which is three hundred and sixty in the present example. If position1 is not less than H, then in block 502B the first hysteresis threshold is identified by subtracting H from position1.
In block 504, the module 50 determines whether the sum of position1 and I is greater than H. If the sum is greater than H, in block 505A the module 50 identifies the second hysteresis threshold position by subtracting the sum of I+1 from the sum of position1+H. Otherwise, if the sum is not greater than H, in block 505B the module 50 identifies the second hysteresis threshold position by adding position1 and H.
In block 506, the module 50 determines whether the moving register 54 is set to “1”. If the register 54 is set to “1”, in block 507A the module 50 stores the detected position in register 51 and outputs the detected position.
Continuing now with reference to
If the first hysteresis threshold is greater than the second hysteresis threshold, the hysteresis thresholds are adjacent to a wrap-around position, and in block 508B the module 50 determines whether the detected position is both less than the first hysteresis position and greater than the second hysteresis position. If false, the detected position is between the hysteresis thresholds, but not within the hysteresis range due to the proximity of the hysteresis thresholds to the wrap-around position; therefore, the module 50 performs block 509A. If true, the detected position is not between the hysteresis thresholds, but still within the hysteresis range due to the proximity of the hysteresis thresholds to the wrap-around position, therefore, the module 50 performs block 509B.
Several preferable examples have been described above with reference to the accompanying drawings. Various other examples of the invention are also possible and practical. The system may be exemplified in many different forms and should not be construed as being limited to the examples set forth above. For example, it should be understood that the principles described with respect to the above example could be implemented using a single partitioned register, or no registers at all. Also, in the above example, the hysteresis threshold is based a difference between two positions. In other examples, the hysteresis threshold could also be based on a rate of movement, so that if a rate of movement of the finger does not exceed a movement rate threshold, the detected touch position of the finger is masked from the software application. The movement rate threshold can be applied in addition to the distance threshold, or instead of the distance threshold.
It should be apparent that the principals described can also be used to filter false touch indications on radial sliders that do not include strong press buttons, mechanical or otherwise. In such embodiments, the system can filter small movements or other unintended touch indications that do not exceed the hysteresis threshold.
The figures listed above illustrate preferable examples of the application and the operation of such examples. In the figures, the size of the boxes is not intended to represent the size of the various physical components. Where the same element appears in multiple figures, the same reference numeral is used to denote the element in all of the figures where it appears.
Only those parts of the various units are shown and described which are necessary to convey an understanding of the examples to those skilled in the art. Those parts and elements not shown are conventional and known in the art.
The system described above can use dedicated processor systems, micro controllers, programmable logic devices, or microprocessors that perform some or all of the operations. Some of the operations described above may be implemented in software and other operations may be implemented in hardware.
For the sake of convenience, the operations are described as various interconnected functional blocks or distinct software modules. This is not necessary, however, and there may be cases where these functional blocks or modules are equivalently aggregated into a single logic device, program or operation with unclear boundaries. In any event, the functional blocks and software modules or features of the flexible interface can be implemented by themselves, or in combination with other operations in either hardware or software.
Having described and illustrated the principles of the invention in a preferable embodiment thereof, it should be apparent that the invention may be modified in arrangement and detail without departing from such principles. I claim all modifications and variation coming within the spirit and scope of the following claims.
This application claims priority from U.S. provisional application No. 61/025,699, filed Feb. 1, 2008, which is incorporated by reference in its entirety for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4264903 | Bigelow | Apr 1981 | A |
4283713 | Philipp | Aug 1981 | A |
4438404 | Philipp | Mar 1984 | A |
4475151 | Philipp | Oct 1984 | A |
4497575 | Philipp | Feb 1985 | A |
4736097 | Philipp | Apr 1988 | A |
4736191 | Matzke et al. | Apr 1988 | A |
4773024 | Faggin et al. | Sep 1988 | A |
4802103 | Faggin et al. | Jan 1989 | A |
4876534 | Mead et al. | Oct 1989 | A |
4879461 | Philipp | Nov 1989 | A |
4935702 | Mead et al. | Jun 1990 | A |
4953928 | Anderson et al. | Sep 1990 | A |
4962342 | Mead et al. | Oct 1990 | A |
5049758 | Mead et al. | Sep 1991 | A |
5055827 | Philipp | Oct 1991 | A |
5059920 | Anderson et al. | Oct 1991 | A |
5068622 | Mead et al. | Nov 1991 | A |
5073759 | Mead et al. | Dec 1991 | A |
5083044 | Mead et al. | Jan 1992 | A |
5095284 | Mead | Mar 1992 | A |
5097305 | Mead et al. | Mar 1992 | A |
5107149 | Platt et al. | Apr 1992 | A |
5109261 | Mead et al. | Apr 1992 | A |
5119038 | Anderson et al. | Jun 1992 | A |
5120996 | Mead et al. | Jun 1992 | A |
5122800 | Philipp | Jun 1992 | A |
5126685 | Platt et al. | Jun 1992 | A |
5146106 | Anderson et al. | Sep 1992 | A |
5160899 | Anderson et al. | Nov 1992 | A |
5165054 | Platt et al. | Nov 1992 | A |
5166562 | Allen et al. | Nov 1992 | A |
5204549 | Platt et al. | Apr 1993 | A |
5243554 | Allen et al. | Sep 1993 | A |
5248873 | Allen et al. | Sep 1993 | A |
5260592 | Mead et al. | Nov 1993 | A |
5270963 | Allen et al. | Dec 1993 | A |
5276407 | Mead et al. | Jan 1994 | A |
5289023 | Mead | Feb 1994 | A |
5303329 | Mead et al. | Apr 1994 | A |
5305017 | Gerpheide | Apr 1994 | A |
5324958 | Mead et al. | Jun 1994 | A |
5331215 | Allen et al. | Jul 1994 | A |
5336936 | Allen et al. | Aug 1994 | A |
5339213 | O'Callaghan | Aug 1994 | A |
5349303 | Gerpheide | Sep 1994 | A |
5374787 | Miller et al. | Dec 1994 | A |
5381515 | Platt et al. | Jan 1995 | A |
5384467 | Plimon et al. | Jan 1995 | A |
5408194 | Steinbach et al. | Apr 1995 | A |
5488204 | Mead et al. | Jan 1996 | A |
5495077 | Miller et al. | Feb 1996 | A |
5541878 | Lemoncheck et al. | Jul 1996 | A |
5543588 | Bisset et al. | Aug 1996 | A |
5543590 | Gillespie et al. | Aug 1996 | A |
5543591 | Gillespie et al. | Aug 1996 | A |
5555907 | Philipp | Sep 1996 | A |
5565658 | Gerpheide et al. | Oct 1996 | A |
5566702 | Philipp | Oct 1996 | A |
5629891 | Lemoncheck et al. | May 1997 | A |
5648642 | Miller et al. | Jul 1997 | A |
5682032 | Philipp | Oct 1997 | A |
5730165 | Philipp | Mar 1998 | A |
5757368 | Gerpheide et al. | May 1998 | A |
5763909 | Mead et al. | Jun 1998 | A |
5767457 | Gerpheide et al. | Jun 1998 | A |
5796183 | Hourmand et al. | Aug 1998 | A |
5812698 | Platt et al. | Sep 1998 | A |
5841078 | Miller et al. | Nov 1998 | A |
5844265 | Mead et al. | Dec 1998 | A |
5854625 | Frisch et al. | Dec 1998 | A |
5861583 | Schediwy et al. | Jan 1999 | A |
5861875 | Gerpheide | Jan 1999 | A |
5864242 | Allen et al. | Jan 1999 | A |
5864392 | Winklhofer et al. | Jan 1999 | A |
5880411 | Gillespie et al. | Mar 1999 | A |
5889236 | Gillespie et al. | Mar 1999 | A |
5914465 | Allen et al. | Jun 1999 | A |
5914708 | Lagrange et al. | Jun 1999 | A |
5920310 | Faggin et al. | Jul 1999 | A |
5926566 | Wang et al. | Jul 1999 | A |
5942733 | Allen et al. | Aug 1999 | A |
5943052 | Allen et al. | Aug 1999 | A |
5969513 | Clark | Oct 1999 | A |
6023422 | Allen et al. | Feb 2000 | A |
6028271 | Gillespie et al. | Feb 2000 | A |
6028959 | Wang et al. | Feb 2000 | A |
6097432 | Mead et al. | Aug 2000 | A |
6148104 | Wang et al. | Nov 2000 | A |
6185450 | Seguine et al. | Feb 2001 | B1 |
6188228 | Philipp | Feb 2001 | B1 |
6188391 | Seely et al. | Feb 2001 | B1 |
6222528 | Gerpheide et al. | Apr 2001 | B1 |
6239389 | Allen et al. | May 2001 | B1 |
6249447 | Boylan et al. | Jun 2001 | B1 |
6262717 | Donohue et al. | Jul 2001 | B1 |
6280391 | Olson et al. | Aug 2001 | B1 |
6288707 | Philipp | Sep 2001 | B1 |
6304014 | England et al. | Oct 2001 | B1 |
6320184 | Winklhofer et al. | Nov 2001 | B1 |
6323846 | Westerman et al. | Nov 2001 | B1 |
6326859 | Goldman et al. | Dec 2001 | B1 |
6377009 | Philipp | Apr 2002 | B1 |
6380929 | Platt | Apr 2002 | B1 |
6380931 | Gillespie et al. | Apr 2002 | B1 |
6414671 | Gillespie et al. | Jul 2002 | B1 |
6430305 | Decker | Aug 2002 | B1 |
6441073 | Tanaka et al. | Aug 2002 | B1 |
6452514 | Philipp | Sep 2002 | B1 |
6457355 | Philipp | Oct 2002 | B1 |
6466036 | Philipp | Oct 2002 | B1 |
6473069 | Gerpheide | Oct 2002 | B1 |
6489899 | Ely et al. | Dec 2002 | B1 |
6498720 | Glad | Dec 2002 | B2 |
6499359 | Washeleski et al. | Dec 2002 | B1 |
6522128 | Ely et al. | Feb 2003 | B1 |
6523416 | Takagi et al. | Feb 2003 | B2 |
6534970 | Ely et al. | Mar 2003 | B1 |
6535200 | Philipp | Mar 2003 | B2 |
6570557 | Westerman et al. | May 2003 | B1 |
6587093 | Shaw et al. | Jul 2003 | B1 |
6610936 | Gillespie et al. | Aug 2003 | B2 |
6624640 | Lund et al. | Sep 2003 | B2 |
6639586 | Gerpheide | Oct 2003 | B2 |
6642857 | Schediwy et al. | Nov 2003 | B1 |
6649924 | Philipp et al. | Nov 2003 | B1 |
6667740 | Ely et al. | Dec 2003 | B2 |
6673308 | Hino et al. | Jan 2004 | B2 |
6677932 | Westerman | Jan 2004 | B1 |
6680731 | Gerpheide et al. | Jan 2004 | B2 |
6683462 | Shimizu | Jan 2004 | B2 |
6705511 | Dames et al. | Mar 2004 | B1 |
6714817 | Daynes et al. | Mar 2004 | B2 |
6730863 | Gerpheide et al. | May 2004 | B1 |
6750852 | Gillespie et al. | Jun 2004 | B2 |
6788221 | Ely et al. | Sep 2004 | B1 |
6798218 | Kasperkovitz | Sep 2004 | B2 |
6809275 | Cheng et al. | Oct 2004 | B1 |
6856433 | Hatano et al. | Feb 2005 | B2 |
6873203 | Latham, II et al. | Mar 2005 | B1 |
6888538 | Ely et al. | May 2005 | B2 |
6893724 | Lin et al. | May 2005 | B2 |
6969978 | Dening | Nov 2005 | B2 |
6975123 | Malang et al. | Dec 2005 | B1 |
7046230 | Zadesky et al. | May 2006 | B2 |
7119550 | Kitano et al. | Oct 2006 | B2 |
20020063688 | Shaw et al. | May 2002 | A1 |
20020191029 | Gillespie et al. | Dec 2002 | A1 |
20030025679 | Taylor et al. | Feb 2003 | A1 |
20030062889 | Ely et al. | Apr 2003 | A1 |
20030063428 | Nishi | Apr 2003 | A1 |
20030080755 | Kobayashi | May 2003 | A1 |
20030156098 | Shaw et al. | Aug 2003 | A1 |
20030160808 | Foote et al. | Aug 2003 | A1 |
20030183864 | Miyazawa | Oct 2003 | A1 |
20030183884 | Miyazawa | Oct 2003 | A1 |
20030184315 | Eberlein | Oct 2003 | A1 |
20040169594 | Ely et al. | Sep 2004 | A1 |
20040178989 | Shahoian et al. | Sep 2004 | A1 |
20040178997 | Gillespie et al. | Sep 2004 | A1 |
20040252109 | Trent et al. | Dec 2004 | A1 |
20040263864 | Lukacs et al. | Dec 2004 | A1 |
20050021269 | Ely et al. | Jan 2005 | A1 |
20050024341 | Gillespie et al. | Feb 2005 | A1 |
20050052425 | Zadesky et al. | Mar 2005 | A1 |
20050073302 | Hibbs et al. | Apr 2005 | A1 |
20050073322 | Hibbs et al. | Apr 2005 | A1 |
20050083110 | Latham, II et al. | Apr 2005 | A1 |
20060032680 | Elias et al. | Feb 2006 | A1 |
20060097991 | Hotelling et al. | May 2006 | A1 |
20060113974 | Kan et al. | Jun 2006 | A1 |
20060164142 | Stanley | Jul 2006 | A1 |
20060273804 | Delorme et al. | Dec 2006 | A1 |
20070236450 | Colgate et al. | Oct 2007 | A1 |
20070291016 | Philipp | Dec 2007 | A1 |
20080024455 | Lee et al. | Jan 2008 | A1 |
20080168478 | Platzer et al. | Jul 2008 | A1 |
20090109173 | Fu | Apr 2009 | A1 |
Entry |
---|
U.S. Appl. No. 11/489,944, “Uninterrupted Radial Capacitive Sense Interface”, filed Jul. 19, 2006; 49 pages. |
USPTO Notice of Allowance for U.S. Appl. No. 11/489,944 dated Apr. 9, 2007; 7 pages. |
USPTO Notice of Allowance for U.S. Appl. No. 11/489,944 dated May 24, 2007; 2 pages. |
Chapweske, Adam; “The PS/2 Mouse Interface,” PS/2 Mouse Interfacing, 2001, retrieved on May 18, 2006; 11 pages. |
Cypress Semiconductor Corporation, “CY8C21x34 Data Sheet,” CSR User Module, CSR V.1.0; Oct. 6, 2005; 36 pages. |
Cypress Semiconductor Corporation, “Cypress Introduces PSoC(TM)-Based Capacitive Touch Sensor Solution,” Cypress Press Release; May 31, 2005; <http://www.cypress.com/portal/server>; retrieved on Feb. 5, 2007; 4 pages. |
Cypress Semiconductor Corporation, “FAN Controller CG6457AM and CG6462AM,” PSoC Mixed Signal Array Preliminary Data Sheet; May 24, 2005; 25 pages. |
Cypress Semiconductor Corporation, “PSoC CY8C20x34 Technical Reference Manual (TRM),” PSoC CY8C20x34 TRM, Version 1.0, 2006; 218 pages. |
Cypress Semiconductor Corporation, “PSoC Mixed-Signal Controllers,” Production Description; <http://www.cypress.com/portal/server>; retrieved on Sep. 27, 2005; 2 pages. |
Cypress Semiconductor Corporation, “Release Notes srn017,” Jan. 24, 2007; 3 pages. |
Lee, Mark; “EMC Design Considerations for PSoC CapSense Applications,” Cypress Semiconductor Corporation, Application Note AN2318; Sep. 16, 2005; 6 pages. |
Sedra, Adel S. et al., “Microelectronic Circuits,” 3rd Edition, Oxford University Press, pp. xiii-xx and 861-883, 1991; 20 pages. |
Seguine, Ryan; “Layout Guidelines for PSoC CapSense,” Cypress Semiconductor Corporation, Application Note AN2292; Jul. 22, 2005; 13 pages. |
Van Ess, David; “Simulating a 555 Timer with PSoC,” Cypress Semiconductor Corporation, Application Note AN2286, May 19, 2005; 10 pages. |
Number | Date | Country | |
---|---|---|---|
61025699 | Feb 2008 | US |