IP Library Granted Patent US 8,031,088
Granted Patent B2
US 8,031,088 · App. 12/415,752 · Granted Oct 4, 2011

Method and apparatus for high performance key detection with key debounce

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,031,088
App. No.
12/415,752
Granted
Oct 4, 2011
Kind
B2
Abstract

A system for detecting a key with key debounce including a circuit for detecting a key activation; a first counter coupled to the circuit and a clock for testing the key activation for a first user definable number of clock cycles; a key debounce buffer for storing a key index identifying the activated key, if the key activation is valid for the first user definable number of clock cycles; a second counter for testing the identified activated key for a first user definable number of hardware key scan cycles; and a key event buffer for storing a key activation event, if the key activation is valid for the first user definable number of hardware key scan cycles.

Claims (47)

1. A method comprising:

detecting activation of a key of a user operated input device;

determining that the key activation is valid for a predetermined number of system clock cycles;

storing a key index identifying the activated key in a buffer based on the determination that the key activation is valid for the predetermined number of clock cycles;

determining that the activation for the key identified by the key index is valid for a first predetermined number of hardware key scan cycles; and

establishing a key activation event based on the determination that the activation for the key identified by the key index is valid for the first predetermined number of hardware key scan cycles.

2. The method of claim 1 , further comprising:

detecting a key release for the key;

determining that the key release is valid for a predetermined number of clock cycles of the system clock;

determining that the key release for the key identified by the key index is valid for a second predetermined number of hardware key scan cycles; and

establishing a key release event, based on the determination that the key release for the second predetermined number of hardware key scan cycles.

3. The method of claim 2 , wherein the first predetermined number of hardware key scan cycles is equal to the second predetermined number of hardware key scan cycles.

4. The method of claim 1 , further comprising adding a predetermined time delay to each of the first hardware key scan cycles.

5. The method of claim 1 , wherein the predetermined number of hardware key scan cycles is a user-defined number.

6. The method of claim 1 , wherein the predetermined number of system clock cycles is a user-defined number.

7. The method of claim 1 , wherein the key activation is a key activation selected from the group consisting of a pressed down key on a keyboard, a movement of a mouse, and a movement of a joystick.

8. The method of claim 1 , wherein the first predetermined number of hardware key scan cycles is different from the second predetermined number of hardware key scan cycles.

9. The method of claim 1 , wherein the user operated input device is a wireless device.

10. A system for detecting a key with key debounce, the system comprising:

a circuit configured to detect activation of a key of a user operated input device;

a system clock;

a first counter coupled to the circuit and to the system clock and configured to count a number of system clock cycles during which the circuit detects that the key activation is valid;

a key debounce buffer configured to store a key index identifying the activated key when the first counter counts that the key activation is valid for the first predetermined number of clock cycles;

a second counter configured to count a first number of hardware key scan cycles during which activation of the key identified by the key index is valid; and

a key event buffer configured to store a key activation event when the second counter counts that the key activation for the key identified by the key index is valid for a first predetermined number of hardware key scan cycles.

11. The system of claim 10 ,

wherein the circuit is configured to detect a key release of the key identified by the key index,

wherein the first counter is configured to count a number of system clock cycles during which the circuit detects that the key release for the key identified by the key index is valid,

wherein the second counter is configured to count a second number of hardware key scan cycles during which the detected key release for the key identified by the key index is valid; and

wherein the key event buffer is configured to store a key release event when the first counter counts that the key release for the key identified by the key index is valid for a second predetermined number of system clock cycles and when the second counter counts that the key release for the key identified by the key index is valid for a second predetermined number of hardware key scan cycles.

12. The system of claim 11 , wherein the first predetermined number of system clock cycles is the same as the second predetermined number system clock cycles and the first predetermined number of hardware key scan cycles is the same as the second predetermined number of hardware key scan cycles.

13. The system of claim 11 , wherein the first predetermined number of hardware key scan cycles is different from the second predetermined number of hardware key scan cycles.

14. The system of claim 10 , wherein the predetermined number of hardware key scan cycles is a user-defined number.

15. The system of claim 14 , wherein the predetermined number of system clock cycles is a user-defined number.

16. The system of claim 10 , wherein the key activation is a key activation selected from the group consisting of a pressed down key on a keyboard, a movement of a mouse, and a movement of a joystick.

17. The system of claim 10 , wherein the first and second counters are up/down counters.

18. A system comprising:

a wireless keyboard for receiving input from a user;

an activation detection circuit configured to detect activation of a key of the wireless keyboard;

a first counter coupled to the circuit and to a clock and configured to count a number of clock cycles during which the circuit detects that the key activation is valid;

a key debounce buffer configured to store a key index identifying the activated key when the first counter counts that the key activation is valid for the first predetermined number of clock cycles;

a second counter configured to count a first number of hardware key scan cycles during which activation of the key identified by the key index is valid;

a key event buffer configured to store a key activation event when the second counter counts that the key activation for the key identified by the key index is valid for a first predetermined number of hardware key scan cycles; and

an antenna configured to transmit a signal to a host indicating a key activation event has occurred.

19. The system of claim 17 , further comprising a circuit configured to add a predetermined time delay to each of the hardware key scan cycles.

20. The system of claim 17 , wherein the predetermined number of hardware key scan cycles is a user-defined number.

21. The system of claim 17 , wherein the predetermined number of system clock cycles is a user-defined number.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →