Recently I did few touch-screen integrations and like to share some of basic understanding:
Resistive Touch Screen (RTS) is a low cost and easy to integrate solution of touch panels. RTS is available in with 4/5/8 wires interface. From the operation perspective, there is no major difference between different wire interfaces. But more wires will help to increase the accuracy and reduce the impact of the behaviour change, due to the temperature.
RTS is having two conductive layers X-Plane (Top, X+, X-) & Y-Plane (Bottom, Y+, Y-) and both planes are isolated with thin layer of DOTS. In the normal state, X-plane will be powered and Y-plane will be grounded. Whenever user touches the top layer, due to the pressure, a contact will be formed between the layers and there will be a voltage surge. This surge will be detected by the Touch Detection Logic and generates the PEN IRQ interrupt towards the processor. For interrupt, Processor GPIO pin may be used and for the data communication any of the interface (like I2C, SPI, USB, ..) will be used, it depends on the Touch Screen Controller (TSC).
Driver registered for PEN IRQ interrupt will respond and send a command/request to TSC. TSC will start the measurement logic. 1st Y co-ordinate detected, by powering the X-plane and measuring the voltage drop across the resistor network on the Y-plane (Y+,Y-). Next X co-ordinate detected, by powering the Y-plane and measuring the voltage drop across the resistor network on the X-plane (X+, X-). The measured analog voltages will be converted to digital using a ADC. At the end of this measurement cycle, values will be passed back to the processor.
The time difference between the interrupt received and sending the command to get the co-ordinate values, is called debuncing time. If the driver sends this command too early or too late, then end-up with a wrong co-ordinate value. Sometime RTS spec won’t give the exact value. So trail and error method may be needed to find the exact value. After receiving this values, if driver continue to detect a PRESS/PEN DOWN, then again start reading the co-ordinate values from TSC, till it detect a PEN UP.
The RTS X/Y co-ordinates, which are read from the TSC, cannot be directly mapped to LCD co-ordinates. So there is a need for co-ordinate calibration/ remap arise. There are few formulas are available for this purpose.
Sometime, you may end-up in a situation, where you cannot identify, whether an issue is with the touch screen or controller. During this time, you can use 4 potentiometers/ trimmers mimic the touch screen and it connect to TSC. This set-up will help to isolate the issues.
For more info: