Newhaven Display Forum

Newhaven Products => TFTs => Topic started by: mogtaba on November 25, 2014, 12:12:25 AM

Title: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: mogtaba on November 25, 2014, 12:12:25 AM
Hi
-we have developed device based on am335x EVM
-In the development stage we bought 5 pieces of the display and they are working just fine.
-Again we bought 50 pieces from Mouser in china. The touch is not working after device booted until we unplug the touch cable and plug it back again while the device is still running after that will work fine (even if we restart the device it will not work unless we reinsert the cable as explained before).
the all displays are working in the same device under the same kernel.
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: Paul_B on November 25, 2014, 07:58:06 AM
That is very strange, I have never heard of that issue before. Can you please provide the part number for the FFC connector on your board?
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: mogtaba on November 26, 2014, 01:02:22 AM
Thanks for your respond
-Part Number: SFW6R-4STE1LF
-Description : CONN FPC/FFC 6POS 1MM R/A SMD
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: Paul_B on November 26, 2014, 04:24:03 PM
Hello,

Can you please verify your timing, Page 11 in the FT5x06 datasheet.
Link:http://www.newhavendisplay.com/app_notes/FT5x06.pdf (http://www.newhavendisplay.com/app_notes/FT5x06.pdf)

The code snip-it below is a working example on how your CTP initialization should be set up.

Code: [Select]
void init_CTP()
{
        digitalWrite(WAKE, HIGH);
        delay(100);
        digitalWrite(INT, HIGH);
        delay(100);
        digitalWrite(WAKE, LOW);
        delay(200);
        digitalWrite(WAKE, HIGH);
        delay(200);
}
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: mogtaba on November 27, 2014, 02:53:51 AM
-in our code the touch is always enabled
-the problem is -except the other 5 displays are working and they are under the same conditions- Linux provide a command with the rootfs (i2cget is a small helper program to read registers visible through the I2C bus (or SMBus)).
- i2cget -f 2 0x38 0x some address : when the touch works fine we got back the expected value of that register, and when its not we only get back as a result 0x some address
 example: i2cget -f 2 0x38 0x3a if touch is working we get 0x53 (Chip vendor ID) but when its not working all we get is 0x3a
so I think the problem is with the touch controller, in some point after booting its need to be reset because it will work if i re-plug the touch cable
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: Paul_B on December 01, 2014, 11:28:17 AM
Hello,

The fact that your display is working correctly when you re-insert the capacitive touch cable leads me to believe it is a power up issue. If your CTP initialization and timing do not match what is listed on Page 11 in the FT5x06 datasheet, it will not be reliable.

Link: http://www.newhavendisplay.com/app_notes/FT5x06.pdf

If possible can you please verify with an oscilloscope.

Thanks!
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: mogtaba on January 06, 2015, 04:23:26 AM
We have actually solved it.
from the data sheet "the I2C should be pulled down to be low before powering on" that hangs my bus and gave me busy ERROR.
the problem was The signal of waking up should be set to be high after powering on. and that what we did by adding pull down resistor.
thanks

Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: Paul_B on January 06, 2015, 08:58:05 AM
Hello,

You're welcome!  Thank you for sharing your issue & solution!
Title: Re: NHD-5.0-800480TFT-ATXI#CTP TOUCH problem
Post by: vpd on May 27, 2015, 10:30:05 AM
I want to rise the problem again. Now I have a NHD-7.0-800480EF-ATXL-CTP that had been working inside our testbench for several months and now it's touch suddenly stopped functioning. I want to underline that we didn't change or play with its schematics for a long period.

So, the touch does not work, but I2C device is present on the bus in lunux. And I can read it using i2cget utility or try to use i2cdump.
However, once I try to read registers I see not FT5x06 register data but a copy of register address. If I try to dump all registers in one go I usually get total i2c core hangup, no registers are read at all, timeout is caught instead.

As I understand, reading register addresses instead of data could be caused bu FT5x06 MCU not running while the I2C is already set up as a slave interface. Once it shifts in the register address it sends interupt to MCU core to update I2C transmit data register. Howerver, MCU does not precess this (internal) interrupt so the shift register remains unchanged holding a previous value been shifted. That value is exactly an address so we just get it back.

I tried to play with a WAKE signal, to put it low and then high as mentioned earlier. This does not help. Touch chip just stops answering to any I2C read request even if it returned address before WAKE pulse.

Now we need to know it this is a bug in FT6x06 or it is a problem of our schematics. This is already a second case when the display touch stops functioning after device has been assemblied, tested and configured. We are discouraged by this and also poor documentation of not only FT5x06 chip itself but also a touch controller based on it.
For example, there is no explanation between WAKE signal and RST. Why the WAKE signal is marked RST on touch cable? Why the WAKE should be zero during power up? Why the INT, SDA, SCL should be zero during power up if they all are pulled up signals? Why the chip disappear from bus by manual pulsing WAKE low? What happens there?