I am trying to set up the Capacitive Touch 10.1" LVDS display (Capacitive Touch Display 10.1 Inch Parallel) with the iMX6Q on the Apalis Evaluation Board. I am using the Capacitive Touch Adapter (Capacitive Touch Adapter) to wire up the touch module.
I have been able to get the display working using the appropriate device tree overlays, but the capacitive touch is not working, even with what I am fairly sure is the correct overlay (apalis-imx6-atmel-mxt-overlay.dts). When the module starts up with the device connected, the serial output has the following errors:
[ 11.586732] atmel_mxt_ts 0-004a: __mxt_read_reg: i2c transfer failed (-6)
[ 11.662085] atmel_mxt_ts 0-004a: mxt_bootloader_read: i2c recv failed (-6)
[ 11.813685] atmel_mxt_ts 0-004a: mxt_bootloader_read: i2c recv failed (-6)
I used an oscilloscope to look at the SDA and SCL lines during start-up and this is what I’ve found:
- Without the touch connector connected, the SCL has a (brief) clock signal while the module is trying to initialize the connection. The module also sends several bits over the SDA line.
- With the touch connector connected, neither line carries a signal while the module is trying to ping the display. SCL is held at about 2 volts, while SDA is held at about 1 volt.
This looked to me like the display was driving the i2c lines low, so I started poking around with a DMM. I found that when the display was powered, there was high impedance between SCL/SDA and ground, so that doesn’t seem to be the problem. However, I did find that the voltage on the pad marked “VDD” on the display PCB only carried 2.5 V. Based on the datasheet, I believe that VDD should be 3.3 V. Could this be my problem?
I’m pretty much out of ideas at this point, so any help/suggestions are appreciated!
I have some follow up questions about your setup.
- Could you provide all the overlays you’re using? I assume they’re the Toradex provided overlays that come with our dev-tool container but I just want to make sure.
- Could you send a picture of how you’ve connected the adapter to the board and the orientation of the flex cable connector? Embarrassingly I’ve had it happen to me before where I had the orientation of the flex cable wrong, so this may be something you can try as a quick sanity check.
I am indeed using the overlays provided through the dev-tools container. Specifically, I am using three:
The first two get the display working (if either is missing the display does not work at all). The last one is supposed to enable the touch inputs.
As for the connections, here is the connection at the display:
Here is the connection at the adapter:
And here is the wiring to the module:
I’ve tried all four possible orientation combinations for the flex cable connector, and none have worked. Based on my explorations with the multimeter, I think the correct set up is to have the contacts in opposite orientations on the module and display side (i.e. if the contacts are down at the adapter, they need to be up at the display, and vice versa), as in this configuration I get low resistance between the SCL/SDA pads on the display and their counterparts at the adapter header.
The last photo (with the wiring from the adapter to the board) is difficult to see, so I’ll list the connections here:
Adapter (X1) Pin 1: SDA >>>>> X10 pin 40 (I2C1_SDA)
Adapter (X1) Pin 2: SCL >>>>> X10 pin 39 (I2C1_SCL)
Adapter (X1) Pin 3: GND >>>>> X4 pin 40 (GND)
Adapter (X1) Pin 4: INT >>>>> X2 pin 6 (MXM3_11)
Adapter (X1) Pin 5: RST >>>>> X2 pin 5 (MXM3_13)
Adapter (X1) Pin 6: 3.3V >>>>> X2 pin 1 (3.3V_SW)
I have not removed any jumpers either.
Software-wise with the overlays, there doesn’t appear to be anything wrong. Also after reviewing your physical hardware connections all seems correct there as well. Since I’m unable to recreate this issue it’s hard for me to say exactly what could be wrong.
But based on the information you’ve provided it seems to most likely be hardware related. The 2.5V voltage reading you found on the display side does sound odd. According to the datasheet for the capacitive touch adapter, X1 Pin 6 is optional though I believe then the 3.3V comes from the display which in turn gets it from the board anyways so it shouldn’t really affect anything unless something is truly wrong on a hardware level here.
So at the moment my current assumption is faulty hardware or maybe a loose connection. Though I don’t really have a way to prove it at the moment.
I guess one last thing you can do to confirm whether it really is hardware rather than software related is try and see if you can get touch working on one of our older mature BSP releases like 2.8B6. For that release though you’ll need to recompile the device tree as shown here for touch: https://developer.toradex.com/knowledge-base/first-steps-with-capacitive-touch-display-7-inch-parallel#apalis-imx6
I will try getting it running with the older release tomorrow morning. I agree though that it is starting to look like a hardware fault in the touch system on the display.
If you have access to the hardware, would you mind checking my findings about the VDD on the display? The pad where I measured the 2.5V is the one marked VDD just below the FFC connector for the touch cable, at the center of this photo:
With the display connected and powered, could you check if that pad is at 3.3V? This would help me verify that there is some kind of hardware fault.
Thanks again for your help!
As a quick follow up, I am now quite confident this is a hardware fault with the touch module. I have discovered that the module (on the corner of the back of the display) is getting extremely hot and has melted the casing of one of the chips, so there must be a short in there somewhere. I have no idea how this happened but I’m confident it was user error…
Thanks again for your help!
That is very unusual indeed. Thank you following up and feel free to share anymore feedback about the situation.