[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)