This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: AM3352 touch is not working

Part Number: AM3352

Tool/software: Linux

Hi,

Processor SDK : ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05

Display is using resistive touch panel , resolution is 480x272 , 4-wire

I use ts_calibrate for touch calibration , however touch still can't work.

following is my debug process...

Step 1:

I dump log from ti_am335x_tsc.c and get left upper corner position is (x,y) = (1142,1630)

right lower corner position is (x,y) = (2932,2430)

Step 2:

>hexdump /dev/input/event

left upper corner still get (1142,1630)

Step 3:

I use evtest to verify

following is the log:

Available devices:
/dev/input/event0:      ti-tsc
/dev/input/event1:      SIGMACHIP Usb Mouse
Select the device event number [0-1]: 0
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "ti-tsc"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max     4095
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max     4095
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max     4095
Properties:
Testing ... (interrupt to exit)   // I touch one point randomly 
Event: time 1540265814.525759, type 3 (EV_ABS), code 0 (ABS_X), value 2152
Event: time 1540265814.525759, type 3 (EV_ABS), code 1 (ABS_Y), value 1707
Event: time 1540265814.525759, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 159
Event: time 1540265814.525759, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1540265814.525759, -------------- SYN_REPORT ------------
Event: time 1540265814.538435, type 3 (EV_ABS), code 0 (ABS_X), value 1165
Event: time 1540265814.538435, type 3 (EV_ABS), code 1 (ABS_Y), value 1632
Event: time 1540265814.538435, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 278
Event: time 1540265814.538435, -------------- SYN_REPORT ------------
Event: time 1540265814.538476, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1540265814.538476, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1540265814.538476, -------------- SYN_REPORT ------------

Step 4:

I use ts_calibrate to try

ts_calibrate works good

ts_test works good

ts_print also works good

the x,y value are between (1~480,1~272)

However, my touch still can't work when Matrix is running.

Could someone advice me how to solve this problem.......

Thank you so much!

Best regards,

Helen

following is my setting:

---------------------

DTS:

&tscadc {
 status = "okay";
 tsc {
  ti,wires = <4>;
  ti,wires = <4>;
  ti,x-plate-resistance = <200>;
  ti,coordinate-readouts = <5>;
  ti,wire-config = <0x00 0x11 0x22 0x33>;
 };
 adc {
      ti,adc-channels = <4 5 6 7>;
      };

};

-----------------------------

  • Hello Helen,

    What do you mean when you say "touch can't work"? Please provide some more detail about what is going wrong.

    Based on your post, I am understanding that
    * You are able to register touches at least at some point in time
    * You are able to calibrate the touchscreen, and touches after calibration seem to be registered in the correct parts of the screen

    Regards,
    Nick
  • Hello Nick,

    When system lunch Matrix and I start to tab icon
    I find when I tab "A icon" but enter "B icon"
    Therefore I use ts_calibrate to calibrate touch
    When I run "ts_calibrate", it works find and generate pointercal file : 17234 -30 -19421568 -106 22098 -35715328 65536 480 272 0
    After complete touch calibration, touch behavior in Matrix still has no change…
    Following is my tslib setting:
    export TSLIB_ROOT=/run/media/sda1/touch/tslib
    export TSLIB_TSDEVICE=/dev/input/event0
    export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
    export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
    export TSLIB_CONSOLEDEVICE=none

    Could you help me to solve this problem?
    Thank you!
  • Hello Helen,

    Ok, I am going to repeat what I think you told me. Let me know if anything I say is incorrect.

    Your touchscreen is registering when you touch the screen. However, it registers touches in the wrong part of the screen at all times (whether or not matrix is running?). You are able to calibrate the screen, but the screen calibration does not seem to change anything.

    Is that a correct understanding? Did I get something wrong?

    Please take a look at the How to Recalibrate the Touchscreen wiki to see if it helps resolve your issue.

    Regards,

    Nick

  • Hello Helen,

    I am going to mark this thread resolved on my end. If you have additional questions, feel free to reply here or create a new thread.

    Regards,
    Nick