cancel
Showing results for 
Search instead for 
Did you mean: 

cap touch works on bare board, does not work on board with springs and plastic overlay

John Davis
Associate III
Posted on August 02, 2017 at 21:04

Hello

We did a third revision of our board and it came in this week.  This board rev works great with cap touch for two touchkeys and linear sensors.  Without scaling all 5 linear sensors work fine.  However, we place the board in a fixture so that it uses springs and a plastic overlay it has problems.  Both of the two touchkeys no longer work.  If you touch the backside of the board where the spring tabs are exposed it still works.  However if you touch the plastic  panel with the springs in contact with the metal electrode pads it stops working.  

As for the 5 linear/rotary touch sensors Four of the five sensors work with the overlay.  One of them does not when pressed on the plastic to springs to the electrode pads.

I've tried to adjust various settings in the tsl_conf.h file.  None seem to have any impact.

I've tried to use a oscilloscope on the pads but as soon as I touch a pad with the 3.2pf 10MOhm probe it causes the pad to enter the detect state.   If I add a copper or aluminum disk on top, I can probe with the scope and it does not detect.  In this test the waveform has nice share square edges similar to what is shown in the ideal waveform Figure 10 of the DM000088471pdf with title AN4316 Tuning a STMTouch-based application.

Here is a picture:

The white signal is the sensor which is detected according to LINEAR_DETECT with pressing the bare pad and the overlay pad.  This picture is taken with the LINEAR_DETECT not activated and the probe resting on a metal disk on top of the overlay.

The yellow signal is the sensor which is detected according to LINEAR_DETECT with pressing the bare bad but not when pressed on the overlay pad.  

This picture is taken with the LINEAR_DETECT not activated and the probe resting on a metal disk on top of the overlay.

1 REPLY 1
John Davis
Associate III
Posted on August 07, 2017 at 16:31

Solved this problem.  Used ststudio to see variables in realtime.  The delta was not coming down low enough to register as a touch.  I edited tsl_conf.h to vary the three variables associated with touch keys.  I did the same for linrot keys.  Here are the modified settings for the touchkeys which enabled them to work.

/** TouchKeys Detect state input threshold (range=0..255)

- Enter Detect state if delta is above

*/

#define TSLPRM_TKEY_DETECT_IN_TH (30) // was 120

/** TouchKeys Detect state output threshold (range=0..255)

- Exit Detect state if delta is below

*/

#define TSLPRM_TKEY_DETECT_OUT_TH (20) // was 110

/** TouchKeys re-Calibration threshold (range=0..255)

- @warning The value is inverted in the sensor state machine

- Enter Calibration state if delta is below

*/

#define TSLPRM_TKEY_CALIB_TH (30) // was 120