Switch Input Debounce Using Dynamic Rest-Period Edge Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
User input devices, such as keyboards and mice, face issues with switch bouncing, which generates false signals due to the vacillation of moving parts in switches, leading to misinterpretation of button clicks and incorrect registration of phantom clicks or double clicks.
Innovation Solution
A method and device that dynamically adjust a masking period based on the longest interval between bounce signals, ignoring quick successive transition edges and recognizing genuine user input signals after a predetermined duration of non-activity, using a timer to count down to a rest period and restart upon detecting further edges, and adjusting the rest period to accurately identify user inputs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a fixed debounce circuit with a physical counter is used to filter bounce signals, then bounce signals are eliminated, but the debounce period cannot be dynamically adjusted to match different user click characteristics
Solution Approach 1:
The patent implements a dynamic debounce period adjustment mechanism where the rest period is automatically modified based on detected bounce signal characteristics. The system transitions from a static fixed debounce circuit to a dynamic system that adapts its filtering parameters in real-time according to the actual bounce behavior observed during operation.
Solution Approach 2:
The system employs feedback by monitoring the output signal for bounce signals and using this information to adjust the rest period. The bounce signal detector provides feedback about the presence and characteristics of bounce signals, which then triggers automatic adjustment of the debounce timing parameters to optimize filtering performance.
2Reliability
If a long rest period is used to filter all bounce signals, then bounce signal filtering is improved, but genuine user input signals may be delayed or missed
Solution Approach 1:
The rest period is implemented as a dynamic parameter rather than a fixed value. The system automatically adjusts the rest period duration based on the detected bounce signal characteristics, extending it only when bounce signals are present and maintaining it at minimal levels when no bounce is detected, thereby preventing unnecessary delays in genuine user input detection.
Solution Approach 2:
The system changes the timing parameters of the debounce circuit based on observed signal characteristics. By monitoring bounce signal intervals and using this information to adjust the rest period parameter, the system optimizes the balance between filtering effectiveness and response time, avoiding the need for a consistently long rest period that would delay all inputs.
3Speed
If a short rest period is used to maintain fast response to user inputs, then user input detection speed is improved, but bounce signals are not adequately filtered
Solution Approach 1:
The system uses feedback from the bounce signal detector to dynamically adjust the rest period. When bounce signals are detected, the system automatically extends the rest period to ensure adequate filtering. When no bounce signals are present, the rest period remains short to maintain fast response times, thus adapting the filtering strength based on actual signal conditions.
Solution Approach 2:
The debounce circuit transitions from a static fixed timing system to a dynamic system that adjusts its rest period in real-time based on detected bounce characteristics. This dynamic adjustment allows the system to maintain short rest periods for fast response when needed while extending the rest period only when bounce filtering is actually required.
4Device complexity
If the debounce circuit uses a fixed physical counter, then the circuit structure is simple, but it cannot adapt to different switch types and user behaviors
Solution Approach 1:
The patent introduces dynamic adjustment capabilities to the debounce circuit while maintaining a relatively simple overall structure. The system uses a microcontroller or processing unit to implement adaptive algorithms that monitor bounce characteristics and automatically adjust timing parameters, providing versatility across different switch types and user behaviors without requiring multiple dedicated hardware circuits for each scenario.
Solution Approach 2:
The debounce circuit is designed as a universal system that can handle multiple switch types and user behaviors through software-based adaptive adjustment. Rather than requiring different hardware circuits for different applications, the system uses a single configurable circuit with programmable timing parameters that can be dynamically adjusted to suit various switch characteristics and user interaction patterns.
Data Source
Figure 1~3
Figure 4A~4B
Figure 4C~4D
AI summary
According to various embodiments, there is provided a method for identifying a user input in a user input device, the method including: detecting edges in an output signal generated by a switch in the user input device; identifying a first-to-second-state edge as being indicative of a transition from a first state to a second state; counting down to a first rest period upon identifying the first-to-second-state edge; before completion of the counting down to the first rest period, restarting the counting down upon each detection of a further edge in the output signal; detecting a second-to-first-state edge in the output signal that occurs after completion of the counting down to the first rest period; and identifying the second-to-first-state edge as being indicative of a transition from the second state to the first state.