AnsweredAssumed Answered

Fasle key touch detected sometimes after system reset in Kinetis microcontroller

Question asked by Melvin Roopith Jayakumar on Dec 12, 2016
Latest reply on Jan 30, 2017 by Hermann Bauer

This is regarding my touch-screen project using Freescale Kinematics MKL05Z32VLF4 microcontroller. It is a customized HMI device with 7 capacitive touch keypads (used as touch inputs for the microcontroller) and an LCD display. The code is built in code warrior 10.6.4 using processor expert for configuring CPU and other components. I am also using the TSS touch library (TSS_3_0) for sensing the keypads (GPIO method).


The problem I am facing is as follows:

1. When I power-off my device and power-on again, it recognizes a key press even if no key is actually being pressed(Concluded this using an external LCD display to output different values for different keypads).

2. This issue does not appear all the time when the device is powered-off and on. It is absolutely non-deterministic and random.

3. This issue of false keypress is found in only some HMIs and not in all (Tested with 5 different units).


It was very difficult to identify the cause of this false keypress as the hardware connections were intact and the same software works for some units and not for some others (Random again!). But after several empirical tests, it was noted that upon power up, if there was a delay implemented in the microcontroller (using for-loop to last about 2sec) before the system initialization routine, and a delay of about 700ms(for-loop based again) after the system initialization before the beginning of the main program loop, the phenomenon disappeared. But if the delay times were decreased to 1.5sec+700ms, the problem reappears.


Is there a reason for this behavior to have disappeared due to the start-up delay? Or is it pure coincidental because I could not find anything in the datasheet of the Freescale microcontroller nor the TSS library software regarding start-up delay time. Does this type of phenomenon occur if the microcontroller does not perform a correct hardware reset? Has anyone else experienced similar phenomenon? Also, any additional information regarding the touch screen sensing and/or start-up time/ reset would be appreciated.


Thanks in advance.