[HN Gopher] A generic VHDL touch controller - add capacitive but... ___________________________________________________________________ A generic VHDL touch controller - add capacitive buttons to any FPGA Author : _quarks_ Score : 66 points Date : 2021-10-16 09:46 UTC (13 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | amelius wrote: | Does this work for portable devices? If the device is moved | around wouldn't C_base change? | [deleted] | kurthr wrote: | Yes (usually temperature drift is a bigger issue), generally | there is some (moderately complex) low pass filter that | maintains a relatively stable baseline and recovers gracefully | (no false positive, minimal false negative) from | noise/moisture/thermal and other adverse events. | | 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. | amelius wrote: | How can you maintain a baseline for C_base if somebody keeps | touching the pad while moving? | reedjosh wrote: | I love VHDL!!! | spicybright wrote: | I'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? | 8note wrote: | This is a library you run on your FPGA. | | 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 | exmadscientist wrote: | But don't do this unless you have to, since a button is a | hundred times more reliable and easier to use. (Buttons | actually provide tactile feedback, for one....) | kurthr wrote: | Unfortunately, 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 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. | RicoElectrico wrote: | 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... | kurthr wrote: | Charge sampling is nice because it effectively puts a (leaky) | integrator into the measurement narrowing the band. It looks | like the ST solution requires an internal mux to share the | storage/sampling cap, which may be present in your micro- | controller/FPGA, but isn't quite so standard. The cited | patent (above) actually shows how to reuse IOs to get a pair | of sensors on a pair of IOs (and a shared component cap), | which is fairly efficient for charge transfer. | | 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. | RicoElectrico wrote: | I was about to link Atmel QTouch, they do the same thing | with plain vanilla GPIO, but annoyingly do not provide the | exact sequence of operations as ST presentation does. But | they seem to be equivalent. | | This chip on the diagram is ATTiny in disguise - just | rearrange the cap and no special hardware needed: | https://eu.mouser.com/new/microchip/atmel_qtouch/ ___________________________________________________________________ (page generated 2021-10-16 23:00 UTC)