Other Parts Discussed in Thread: LDC3114,
Hello,
I am working on inductive button sensing based on LDC1614. LDC3114 was not chosen because of much lower sample rate.
The final button panel will have about 33 buttons (metallic snap-domes), and for environmental compensation of component aging
and temperature shift, a button baseline tracking algorithm should run in firmware, similar to the algorithm as described in Ti's application
notes on keypad applications. One constrain is that there can be quick temperature shifts in the environment, so baseline tracking must be
fast enough for compensation purposes.
After a while of thinking about it, I came up with following algorithm- but wondering where the weak points could with such approach because it
seems simplistic:
1.) Initialize the baseline algorithm, so that produced output code settles about zero +/- 1.
2.) Apply fast tracking all the time, without "pause" feature when a button is pressed. Fast enough to compensate for worst case temperature shifts.
3.) When a button is pressed, baseline value jumps over a certain threshold. This event will cause a new state of a button state machine.
4.) Immediately after step as in 3.), reset the baseline value to zero ( in fact overriding continues tracking running somewhat slower in the background).
At this point, output state of the FSM is still "ON".
5.) Now, when the button is depressed, a negative baseline value is produced about the same magnitude as was seen for button press. This event
will cause button FSM state change to "OFF". Immediately after that, reset baseline value to zero. Then the system will be ready to accept a
new button press.