Touchscreen Interface with maXTouch® Studio Lite

 Objective

  • View maXTouch® chip information, firmware version, checksum
  • Save the configuration from a maXTouch device to a file
  • Load new configuration
  • Configure maXTouch key object parameters and view their impact on touch performance
  • Use Touch Reporter and 3D graphical debug viewer to evaluate the touch screen function
  • Observe maXTouch messages and understand the protocol

 Materials

Hardware Tools

This evaluation board has native USB I/F, so the I2C-USB bridge board is not supplied with the board. A separate USB-I2C-AUTO-PCB can be bought by placing an order through the Microchip Direct website.

Software Tools

  • maXTouch Studio Lite v1.7.xxx or later

Exercise Files

File Download
Installation
Instructions
Windows Linux Mac OSX
Project and Source Files

 Connection Diagram

maXTouch® mXT2952TD Evaluation Kit (EVK)

The ATEVK-MXT2952TD-A uses the MXT2952TD touchscreen controller with a USB interface to allow communication between the maXTouch device and the maXTouch Studio Lite software utility. The bridge is required to convert the maXTouch Object Protocol to a format the PC and utilities can understand. Power for the EVK board is provided via VUSB, then various regulators are used to provide the voltage rails required for the USB interface. An additional header is provided on the board to interface external I2C –USB bridge board if your application requires to test I2C or I2C-HID interfaces. In that case, the critical signals that connect between the bridge and the mXT devices are I2C SDA, I2C SCL, CHG/, and RESET/.

ConnectionDiagram.png

 Procedure

These steps show you how to use the maXTouch Studio Lite software tool to aid in your touchscreen application testing process. During the lab, you will learn about the touch controller interface, observe the touch performance and view maXTouch messages for Host integration that will aid in your development efforts.

1

Connect the touch sensor

  • Connect the flex cable from the touch panel to the evaluation kit as shown in the connection diagram above. Note that the screen printing on the flex cable will be facing up.
  • Connect the board to the computer using the USB cable.

The touch screen that is supplied with the evaluation board has a ground ITO layer. Hence, there is no need for additional copper sheet or standoffs for the placement of the sensor on any surface

2

Launch maXTouch Studio Lite

  • Use the Windows® 10 Start menu: Start > maXTouch Studio Lite.
maXTouchStudioLite.png

3

Verify connection

  • Verify the board is connected to the PC through the USB cable. The default bridge client will run in the background to establish communication in a few seconds.

When the board communication is successful with the PC, the part number will be shown in the upper left corner of the window and the mXT objects will be shown in the Object Explorer window.

ObjectExplorerWindow.png

4

Examine the chip information

When the board is connected to the PC, maXTouch Studio Lite will read the information block for the device. As shown in the images below, that information block contains important details about the maXTouch device that is connected. It is good practice to check the chip information first, so you can verify the firmware version (stored in the Version and Build fields), information block checksum, and the configuration checksum.

  • From the top menu of maXTouch Studio Lite, choose Device > Chip Information.
ChipInfoMenu.png
  • Then verify that the device information displayed matches the information shown below.
Version = 1.0
Build = 0xAA
Info Block Checksum = 0x744EB (Fixed for a firmware version)
Configuration Checksum = Based on the configuration stored in the part
ChipInfo.png

The chip information can also be viewed in the device config file using a text editor like Notepad.

5

Verify touch panel basic operation using the Touch Reporter tool

  • Launch the Touch Reporter. Choose Tools > Touch Reporter from the top menu.
TouchReporterLaunch.png
  • When the Touch Reporter window opens, use one or more (up to ten fingers configured) to draw circles or lines on the touch panel. You will see a drawing in the window similar to what is shown in the screenshot below. Each finger used will be assigned a different color in the drawing window.

Note that the orientation of the touch panel in the picture below relates to the X/Y coordinates drawn on Bottom Right with Invert Y, Invert X, and Switch X & Y. If any of these selections changed on the Touch Reporter screen, your finger drawing orientation changes on the panel.

TouchReporterWindow.png

Mouse clicking anywhere within the drawing area of the Touch Reporter will clear the window.

  • As you move your finger on the touch panel, notice that the XY positions and touch report rate are updated based on your finger position.

These are T100 messages generated from the Multiple Touch Touchscreen object and delivered via the Touch Communication object T5 which then travels through the bridge client to Host PC. We will begin to explore maXTouch messaging in the next step.

6

Read and Save the configuration file from the maXTouch device

The maXTouch device configuration file contains all the object settings for the device. All maXTouch evaluation kits and touchscreen modules purchased will ship with a default configuration that is specific to that board and its associated touch panel. To better study how the config files are managed with maXTouch Studio Lite, we will first save the MXT2952TD device configuration to a new file.

  • From the top menu bar in maXTouch Studio Lite, choose Configuration > Save Config.
SaveConfiguration.png
  • Navigate to the desired directory folder path, save and name your file. It is good practice to add firmware and hardware information to the file name.
SaveFile.png
  • In the next window, add comments to the file. Any comments you enter will be stored in the resulting config file.
Comments.png

It is a good practice to use the comments section to document any changes that were made to object parameter values.
It is also good practice to use version information on all mXT configuration files names. One idea is to use the board name, mXT device number, firmware version, and configuration version in the file name.
Example: EVK_MXT2952TDAT_FW1.0.AA_ConfigV2.0.xcfg

maXTouch configurations are very specific to their system environment; as such, maXTouch standalone parts when purchased are shipped with firmware but no configuration (zeros in all objects). The configuration values are determined through a tuning process. Your maXTouch module partner or sensor or display supplier will tune the module and load the configuration file before shipping it. It is still a good idea for the host driver to be able to either write a full configuration from a file or, at a minimum, support writes to individual objects.

Reference code is provided as part of an open-source utility called mxt-app. The utility can be downloaded from the GitHub repository.

7

Erase and load a new configuration file

In this step, we will first zero all the configuration values or erase them, then we will load the default configuration file that comes with the evaluation kit.

  • From the top menu bar, choose Configuration > Zero Config to erase the values.
ZeroConfig.png
  • Now, the touchscreen will not work with zero values in the touch object configuration. To confirm, you can go back to Tools > Touch Reporter. Draw on the touch panel and notice that touch will not work.
TouchReporter.png
  • We will now load a new configuration file. Choose Configuration > Load Config from the top menu bar.
LoadConfig2.png
  • When prompted, navigate to the following folder: …\mXT2952TD_Configuration and choose the file: EVK_MXT2952TDAT_v1.0.AA_v1.0.xcfg. You will see a green progress bar during the write, then a pop up when completed.
LoadConfig.png
  • Choose Device > Backup then choose Device > Reset from the top menu bar to save the new values to Flash memory before continuing to the next step.
Backup.png

8

To properly evaluate touch sensor behavior, we will need access to data internal to the maXTouch device, called raw data (e.g. reference level, touch deltas, etc). This data may be streamed out of the device via the debug interface (DBG_DAT, DBG_CLK) or via the T37 debug object - data over the I2C interface. In general, the debug interface will be faster, so it is nice to have the debug pins available. When the debug pins are accessible to the bridge circuit, maXTouch Studio Lite’s bridge client utilities can either display the data or log the data via the Graphical Debug Viewer tool.
In this step, we will use the Graphical Debug Viewer to view the sensor’s mutual capacitance references via Debug Interface.

  • From the top menu bar, choose Tools > Graphical Debug Viewer.
GraphicalDebugViewer.png

Next, check out how the sensor is charged and driven to a certain potential.

  • Click on Mutual Cap References. When ready, click the green Start button.
Start.png

The values shown represent the capacitance of each node without a specific unit. The reference levels provide useful information about the layout of the sensor X and Y line array numbers, electrodes charged to certain uniform potential with mutual burst scan, and health of any sensor line if broken or disconnected. It is indicated on the upper-left corner with an average signal range of ~25000 counts.

  • When you are finished exploring the references, click the red Stop button (red square in the Actions section of the screen) to stop streaming the debug data and deselect the Mutual Cap References command.
Stop.png

9

Reading Mutual Cap Deltas - debug data from the maXTouch device

In this step, we will use the Graphical Debug Viewer to view the sensor’s Mutual Capacitance Deltas. Delta is the ratio of the change in an electric charge to the corresponding change in its electric potential (as seen in references).

  • From the top menu bar, choose Tools > Graphical Debug Viewer.
GraphicalDebugViewer.png
  • Under Debug Source T37 Interface > Commands, select Mutual Cap Deltas and click on the green Start button under Actions to play or stream the data.
DebugInterfaceStart.png
  • Touch the sensor with one or more fingers and observe how the 3D graph changes for different signal delta values at the upper-left corner.

Notice the difference if you apply more and less fingertip area or pressure on the screen or fingers of different sizes. As the capacitive coupling increases with the finger area, the signal delta (max) value will be higher at the upper-right corner. The signal delta varies for bare finger vs. gloved finger. Gloved finger delta is much smaller and varies with glove thickness (verify Glove Delta if gloves are available).

DebugStop.png
  • When you are finished exploring the references, click the red Stop button (red square in the Actions section of the screen) to stop streaming the debug data.

10

Configuring touch parameters

In this step, we will learn how to configure basic features like number of touch fingers supported.

  • From the top menu bar, go to Tools > Basic Settings.
BasicSettings.png

The Basic Settings window pops up and it has multiple basic parameters that can be configured.

  • Change Number of Touches from 10 to 2 and Touch Threshold from the default value of 60 to a higher value such as 150.
  • Then, click on Apply these new settings.
BasicSettingsWindow.png
  • Go to Tools > Touch Reporter to pull up the Touch Reporter window. Draw on the panel with multiple fingers.

Notice that only two finger drawings are shown now, unlike multiple finger detection earlier.
Additionally, notice that touch sensitivity has been reduced with the increase in touch threshold. You may need to press harder to draw on the touch panel this time. You can experiment with different values and observe the behavior in touch performance.

  • You can restore the original values by clicking Device > Reset > Read.

The next step is to learn how to get better signal delta even with a higher touch threshold.
maXTouch TD parts have a unique measurement technique called P2P Mutual (differential mutual) to increase Signal to Noise Ratio (SNR) without saturating the ADCs with a higher gain. This is extremely useful when the applications have thick front cover glass or thick multi-finger glove use cases.

  • Continue on the same Basic Settings window.
  • Enable by clicking P2P Mutual and increase the Touch Screen Gain from the original 10 to 15. You can keep your earlier settings of higher Touch Threshold of 200. Then, click on Apply.
P2PMutual.png
  • Now, observe the touch performance on the Touch Reporter window by repeating step 5. Touch sensitivity has increased even with the higher touch threshold. You can experiment with thick gloves and notice the performance improvement.
  • Now, observe the Mutual Cap Delta by repeating step 9 by selecting Tools > Graphical Debug Viewer > Mutual Cap Delta > Start.
MutualCapDelta.png

Signal Delta values can be seen almost double (example: ~1700 to 3000 range of 16-bit delta) than before by an increase in SNR! This is the case with bare fingers and gloved fingers. This demonstrates the ease of configurability of maXTouch devices.

You can use the Object Explorer window to see key information about the objects. Move your mouse over the various objects (no need to click, just hover over the object name) and notice that key information pops up on the screen. For your convenience, maXTouch Studio utilities display the values in both decimal and hex formats.

ObjectInfo.png

11

Examine messages from the maXTouch device to Host interface.

Some of the objects can report messages via the T5 Message object. You can easily identify these objects in the Object Explorer window as they will have an M symbol to the left of the object number as shown below.

T5Objects.png

The bars to the left of the M symbol provide information as well.
Grey => the object is not enabled.
Bright Green => the object is enabled, but reporting is not enabled.
Dark Green => the object is enabled and reporting is enabled.

If the report option is enabled for an object, any information the object needs to send is captured in the T5 Message object. In the following steps, we will examine the T5 messages in both the T5 object as well as in the T100 object.

  • Find the T5 object in the Object Explorer window and double click to open it.
  • In the T5 window, click the M icon at the top of the page to open the message reporting window.
  • Once the window opens, start touching the touch panel. When you do so, you will see reports streaming. Notice that the Object ID field shows the value 100. This is because T100 is the object that reports all touch data to the host. The value shown in the Object ID column will always indicate which object is reporting information.
T5Message.png

The mXT device will signal the host that messages are pending by asserting the Touch Interrupt line active low CHG/. The host controller should always use the CHG/ as an indication that a message is available. Polling of the mXT device is not recommended. The use of a DMA to read from mXT devices is possible. Refer to application note MXTAN2013 for further details.

As you move your finger around the touch sensor, notice the values changing in the Byte columns. The information block below describes what each byte represents for the T100 object reports.

T5Message2.png

All objects will report to the host through the T5 object. The first column in the T5 message window will always indicate the reporting object number. For example, 100 in the Object ID column indicates that the message is from the T100 object. The value in Byte 0 will always indicate the Report ID. The meaning of the Report ID will vary among the reporting objects. Bytes 1—9 will hold different meanings for every object. You can refer to application note MXTAN2013 - Interfacing with maXTouch for further details. The maXTouch device’s firmware protocol guides (available only under NDA) describe the detailed messages for each object. Your maXTouch module partner or your regional Microchip touch application specialists can provide further assistance.

For the T100 object, the byte mapping is:

  • Object ID identifies the reporting object for that message. In the above example, the Object ID is 100 to indicate the message was reported by T100.
  • Byte 0 is the Report ID. The T100 associates each finger with a unique Report ID.
  • Byte 1 shows the touch status byte and contains information to indicate the type of touch (eg. finger or stylus) as well as the event (eg. UP, Down, Move, etc).
  • Bytes 2,3 show the X-position in the format defined by the XRANGE value in the T100 object.
  • Bytes 4,5 show the Y-position in the format defined by the YRANGE value in the T100 object.
  • Bytes 6-9 show the auxiliary data as defined in the T100 object (if enabled) and usually represent the vector and amplitude of the touch. These values can be used to help the host controller determine gestures.

12

Examine the decoded Touch Reports in the T100 Object Message window.

The maXTouch Studio utilities decode object reports in a way that is much easier to read.

  • In the Object Explorer window, navigate to the T100 object and double click to open the T100 window.
  • In the T100 window, click the M symbol to open the Touch message window.
  • Touch the touch sensor panel again and note the difference in values shown such as Touch Type, events like Move, Up, Down, X/Y coordinates, Area and Peak signal delta.
T100Messages.png

The T100 object provides a separate message for each finger (up to 16). This is the most important output used by the driver in the host controller. For the T100 object, the decoded columns are briefly described. (What you see may not exactly match the screenshot above).
ID: Report ID used to identify which ‘finger’ (up to 16)
DETECT: 0 = no touch; 1 = touch
TYPE: What is on the panel (e.g. finger or stylus)
EVENT: What happened (e.g. UP, DOWN, MOVE …)
AREA: How big was the touch (useful for gloved fingers)
PEAK: How high was the strongest touch

Decoded reports are available for all reporting objects. Enabling reports in certain objects is valuable during both driver development and debugging efforts.

 Results

You have just learned how to use maXTouch Studio Lite to:

  • Find the device information, such as firmware version and the checksums for the device configurations.
  • Save and load configuration files.
  • Test the touch performance on Touch Reporter.
  • Use diagnostic debug data to check the sensor health as well as touch performance.
  • View and change the configuration parameters. For example, using the Basic Settings tab to configure touch sensitivity by varying Thresholds, Gain, etc.
  • Observe and understand the touch event reports that will assist in host interface and driver development and debug efforts.

 Conclusions

maXTouch Studio Lite is a useful tool to help you get started in evaluating maXTouch touch controllers. Using the tool along with key application notes and device protocol guides will help you to understand configurability and device driver porting to any specific system. Collaboration with module partners, sensor/display vendors, and touch application specialists can help guide you to achieve optimal touch performance for your application use cases.

© 2020 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.