A generic VHDL touch controller – add capacitive buttons to any FPGA
1–10 of 19 posts
Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#2I would recommend that those looking for good solutions for capacitive buttons search the literature. There are quite a few articles from ~2000 (and patents expiring) that describe unencumbered IO based methods of sensing... although many require more than one IO per sensor or some method of multiplexing.
This expired (2019) patent comes to mind: https://patentimages.storage.googleapis.com/52/dc/c3/005f65c...
In full disclosure, I'm listed on other capacitive sensing patents, but many do not expire for several more years.
Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#3Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#4Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#5Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#6I'm confused. Is this a system to be able to add buttons to FPGA's through their logic gate sort of system? Do you plug the buttons into a particular "slot" or something?
When you are making a circuit board, you can make a big pad of exposed copper and connect it to one of the I/O pins on the chip.
You can then use that pad as a button, instead of buying a button and soldering it to the board
Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#7Unfortunately, this RC rise time method has quite a number of issues with interference (which is quite common, if you have a switching charger attached or a GSM cell phone nearby). Some form of demodulation (or even dual slope conversion) will greatly improve real world performance. A wide variety of algorithms are also required to minimize false activation and "stuck" buttons in the presence of noise/moisture. I wou…
The presentation below deals with a specialized block, but the only major change is using hardware for cycle counting and multiplexing a single sampling capacitor.
https://www.st.com/content/ccc/resource/training/technical/p...
Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#8Does this work for portable devices? If the device is moved around wouldn't C_base change?
Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#9Unfortunately, this RC rise time method has quite a number of issues with interference (which is quite common, if you have a switching charger attached or a GSM cell phone nearby). Some form of demodulation (or even dual slope conversion) will greatly improve real world performance. A wide variety of algorithms are also required to minimize false activation and "stuck" buttons in the presence of noise/moisture. I wou…
It seems that the best method to use with non-specialized GPIO is the charge transfer. Instead of using a resistor, charge a sampling capacitor. The presentation below deals with a specialized block, but the only major change is using hardware for cycle counting and multiplexing a single sampling capacitor. https://www.st.com/content/ccc/resource/training/technical/p...
However, be careful of IP... I can only really recommend OpenSource implementations that read directly on out of coverage patents. There are even sigma-delta and other relatively narrow-band IO based solutions, but they may carry IP risk.
Re: A generic VHDL touch controller – add capacitive buttons to any FPGA
#10Does this work for portable devices? If the device is moved around wouldn't C_base change?
One interesting case is buttons in your pocket or face down on a desk. This is made more complex when low power requirements are made (e.g. lower sampling rate). A second is breathing on a very cold device. There are guarding methods that reduce the effect of moisture, but they may also run into IP challenges.