Noise Tuning
Understanding Type of Noise Present in the System
Power Supply Noise
Connect the touch MCU to a bench power supply and monitor touch delta values for each button.
Note the peak-to-peak noise for each button.
Connect the touch MCU to the system power supply and monitor touch delta values for each button.
Note the peak-to-peak noise for each button.
If there is no difference in peak-to-peak noise between Step 2 and Step 4, then the noise introduced by the system power supply is NOT significant or NONE.
Common-Mode Noise
Connect the touch board ground to the bench power supply ground.
Note the peak-to-peak noise for each button.
Disconnect the touch board ground from the bench power supply ground.
Note the peak-to-peak noise for each button.
If there is no difference between the peak-to-peak noise between Step 2 and Step 4, then there is no common-mode noise present in the system.
The noise is considered common-mode noise if the noise on touch sensors increases only when there is a finger touch.
Tuning the System For Common-Mode Noise
Steps can be followed to adjust the three parameters that are used to tune a system for noise: Filter Level, Frequency Hop auto-tune, and increasing the Series Resistor.
The effectiveness of each of these parameters varies depending on the type of noise. For example, increasing the series resistor has little to no effect on power supply noise, so it can be skipped if you are tuning for that. A quick guide for noise tuning is given below:
- Power supply noise/differential noise: Filter Level, Frequency Hop
- Common-mode noise: Filter Level, Series Resistor, Frequency Hop
Tuning is an iterative process. Sometimes adjusting noise tuning parameters might involve returning the charge time, sensitivity, etc.
Increase the Filter Level (or Oversampling)
Increasing the filter level reduces noise and vice versa. Filter level can be increased to a maximum of FILTER_LEVEL_64. Sample configuration in the touch.h file with Filter Level set to FILTER_LEVEL_16:
Enable Frequency Hop Auto-tune
Ensure that the project is generated with the Frequency Hop auto-tune option.
Enable the Frequency Hop Auto-tune option #define DEF_FREQ_AUTOTUNE_ENABLE.
Find the lowest threshold used among all buttons. Configure the FREQ_AUTOTUNE_MAX_VARIANCE parameter to 75% of the lowest threshold. For example, if the lowest threshold is 40, then configure FREQ_AUTOTUNE_MAX_VARIANCE as 30.
With this configuration, check whether the noise decreases.
The frequency auto-tune module replaces the noisy frequency with a new frequency. The amount of allowed noise is defined by FREQ_AUTOTUNE_MAX_VARIANCE. Using a value that is too low would result in replacing a good frequency with a bad one.
With FREQ_AUTOTUNE_MAX_VARIANCE, it is better to tune the sensor’s threshold with little differences. If one button is tuned for a threshold of 20 and another button for a threshold of 50, then the Frequency Hop auto-tune may not work. In this case, reduce the gain of the button with a threshold of 50 by half and reduce the threshold to 25.
Increase the Series Resistor
- Self-cap: External series resistor should be increased (internal does not reduce noise)—maximum 200 KΩ
- Mutual cap: Internal series resistor can be used—maximum 100 kΩ
Increase the series resistor by 10 kΩ.
Ensure that the charge time is enough by following steps mentioned in the "Charge Time Tuning" page.
Ensure that the sensitivity is optimum.
Check whether the noise is reduced. If not, go to Step 1.
Sample Configuration in the touch.h file with internal Series Resistor controlled by RSEL_VAL_0: