I needed to debounce an SPST push-button switch for a counter and had a working debouncer based on a Schmitt NAND gate (CD4093), but out of curiosity, I tried to make one from an XOR gate. My plan was to use a capacitor (C1) to "snub" the bounces, which led to the circuit shown below. It seems to work fairly well, but what surprised me was the interdependence of the values. The value of C1 does not appear to be critical within a wide range. I settled a value for C1 of 220 to 820 pF. Higher values work, but the action is slower. I expected there might be a relationship between R2 and R3 and found the debounce worked best when they were equal (e.g., 1K0 or 1K5). What surprised me was that R1 had to be less than or equal to R2 + R3. In fact, the circuit works best when R1 = R2 +R3. If R1 is greater than that sum, the output stays low regardless of the switch position.
I suspect this is probably a well known filter arrangement , but I don't recognize it. Searches on "XOR debounce" have not been fruitful.
Does anyone recognize the configuration, and can you explain the relationship of R1 to R2 and R3?
Thanks. John
I suspect this is probably a well known filter arrangement , but I don't recognize it. Searches on "XOR debounce" have not been fruitful.
Does anyone recognize the configuration, and can you explain the relationship of R1 to R2 and R3?
Thanks. John