Touchscreen: FTAS00-10.4A-5 (5-wire)
TS Controller: ADS7845 on the TI ADS7845 Eval Kit
Input Voltage: 3.3V
VREF is N/C to allow for Differential (no jumpers on JMP1)
wiring from Touchscreen to header on Eval Kit triple checked.
Generally, the electrical configuration is working as expected: touch the screen, get an interrupt, MOSI/MISO traffic is functional.
With one exception: for both the X and Y reported data, the LSB is always either 0x78 or 0xF8. And this causes significant mis-reporting of where the touch occurs. Running ts_calibrate helps, but the results are only accurate near the calibration points. I realize that the lower 3 bits should always be 0, bit I would at least expect the upper nibble of the LSB to be more dynamic.
I am using a logic analyzer to watch the MOSI/MISO stream, so at this point the (Linux) driver is not yet in question.
Here is a series of transactions between the CPU and the 7845 when touching the center of the screen:
MOSI / MISO
0x91 / 0x00 - Start/Y/12-bit/Differential/Power Down/IRQ Disabled
0x00 / 0xBA
0x00 / 0xF8
0xD1 / 0x00 - Start/X/12-bit/Differential/Power Down/IRQ Disabled
0x00 / 0xB6
0x00 / 0x78
0x91 / 0x00 - Start/Y/12-bit/Differential/Power Down/IRQ Enabled
0x00 / 0xB7
0x00 / 0xF8
0x91 / 0x00
0x00 / 0xBB
0x00 / 0xF8
0xD1 / 0x00
0x00 / 0xB7
0x00 / 0xF8
0x90 / 0x00
0x00 / 0xB8
0x00 / 0xF8
Thoughts on why this might be occurring and how to rectify it?