TSC2007: Interrupt stuck active after power on

Part Number: TSC2007

Dear Support representative,

We develop a system with a touchscreen and the TSC2007 touch screen.

We faced in some rarely case (around 1/50), a loss of the touch screen after power ON. There is two other components on the I²C bus (an RTC and a LED driver). Both correctly work, but not the touch screen.

After further investigation, we sometimes obseve the IRQ signal stuck active, so the master continuously read the touch screen coordonate. A reboot of the Master not correcting the problem. Only a power on/off.

image.png

Here you see the setup commande and the IRQ behavious in green.

Question 1 : Is it a bad behaviour of the Linux driver to not send the setup command indicate in the datasheet 0xB0 (setup command) instead of 0x00 (asking to read Temp0) ? 

Following the topics already posted on the forum, we verified the power up sequence :

image.png

The VDD ramp on were not follow datasheet recommandation (200µs > max 50µs). So I made some change :

image.png

This time the 29µs in in the datasheet recommandation. But we still face the issue (near 150 try).

I check the VDD ramp off, and the ramp is not good as well:

image.png

17ms largely > to the 300µs recommanding.

Question 2 : assuming I can't change this ramp without redo a new design, the customer will not switching ON/OFF the system in a time below 0.5s which is far above the 17ms on our design. And the bug was found after a cold start. Is the VDD ramp off shall be imperatively respected ? Meaning that the internal capacitor shall be discharged fast enough nevertheless the 0.5s before another power ON ?

Below is our schematic :

image.png

Question 3 : Do you have some suggestion of improvments we can implemented/tested please ?

I plan to had a load switch TPS22995H drived by our processor to restart the all I²C components in case of bad behaviour for a new design. I'm not convince the trouble is only on the VDD ramp off. But maybe I miss something.

Many thanks for your help and have a good day.

 

Corentin