AR1000 Series Resistive Touch Screen Controller DS41393A Contact Information Microchip Technology, Inc. mTouch Touchscreen Controller Products 9055 N. 51st Street, Suite H Brown Deer, WI 53223 www.Microchip.com Phone: 414-355-4675 Fax: 414-355-4775 Information contained in this publication 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. Trademarks The Microchip name and logo, the Microchip logo, dsPIC, KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART, rfPIC and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL and The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP, ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, mTouch, Omniscient Code Generation, PICC, PICC-18, PICkit, PICDEM, PICDEM.net, PICtail, PIC32 logo, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC, WiperLock and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their respective companies. © 2009, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. Printed on recycled paper. Microchip received ISO/TS-16949:2002 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company’s quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. DS41393A-Page ii © 2009 Microchip Technology, Inc. TABLE OF CONTENTS GENERAL.............................................................................................................................................. 1 FEATURES............................................................................................................................................ 1 APPLICATIONS..................................................................................................................................... 2 ORDERING............................................................................................................................................ 2 BLOCK DIAGRAM ................................................................................................................................. 2 PIN DIAGRAM ....................................................................................................................................... 3 FUNCTIONAL DESCRIPTION .............................................................................................................. 4 1 2 3 4 5 6 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 MAIN SCHEMATIC ..............................................................................................................................................4 BILL OF MATERIALS ...........................................................................................................................................4 4, 5, 8-WIRE SENSOR SELECTION ......................................................................................................................5 4-WIRE TOUCH SENSOR INTERFACE ....................................................................................................................5 5-WIRE TOUCH SENSOR INTERFACE ....................................................................................................................6 8-WIRE TOUCH SENSOR INTERFACE ....................................................................................................................7 COMMUNICATION INTERFACE ..............................................................................................................................8 7.7.1 7.7.2 7.7.3 7.8 7.9 7.10 7.11 7.12 STATUS LED..................................................................................................................................................10 ESD CONSIDERATIONS ...................................................................................................................................11 NOISE CONSIDERATIONS .................................................................................................................................11 TOUCH REPORTING PROTOCOL ........................................................................................................................11 CONFIGURATION REGISTERS ............................................................................................................................12 7.12.1 7.12.2 7.12.3 7.12.4 7.12.5 7.12.6 7.12.7 7.12.8 7.12.9 7.12.10 7.12.11 7.12.12 7.12.13 7.12.14 7.12.15 7.13 7.14 7.15 I2C............................................................................................................................................ 8 SPI........................................................................................................................................... 9 UART..................................................................................................................................... 10 TouchThreshold Register (offset 0x02)................................................................................. 12 SensitivityFilter Register (offset 0x03)................................................................................... 12 SamplingFast Register (offset 0x04)..................................................................................... 13 SamplingSlow Register (offset 0x05) .................................................................................... 13 AccuracyFilterFast Register (offset 0x06) ............................................................................. 13 AccuracyFilterSlow Register (offset 0x07) ............................................................................ 13 SpeedThreshold Register (offset 0x08) ................................................................................ 13 SleepDelay Register (offset 0x0A) ........................................................................................ 14 PenUpDelay Register (offset 0x0B) ...................................................................................... 14 TouchMode Register (offset 0x0C).................................................................................... 15 TouchOptions Register (offset 0x0D) ................................................................................ 16 CalibrationInset Register (offset 0x0E).............................................................................. 16 PenStateReportDelay Register (offset 0x0F) .................................................................... 17 TouchReportDelay Register (offset 0x11) ......................................................................... 17 User Configuration – Spiking ............................................................................................. 17 COMMAND FORMAT .........................................................................................................................................17 COMMAND RESPONSE .....................................................................................................................................18 COMMANDS ....................................................................................................................................................18 7.15.1 Enable Touch - 0x12 ............................................................................................................. 18 7.15.2 Disable Touch - 0x13 ............................................................................................................ 18 7.15.3 Calibrate - 0x14 ..................................................................................................................... 19 7.15.3.1 How the Calibration Data is Encoded and Stored in EEPROM ..................................... 20 7.15.4 Register Read - 0x20 ............................................................................................................ 21 7.15.5 Register Write - 0x21............................................................................................................. 21 7.15.6 Register Start Address Request - 0x22................................................................................. 21 7.15.7 Registers Write to EEPROM - 0x23 ...................................................................................... 21 7.15.8 EEPROM Read - 0x28 .......................................................................................................... 22 7.15.9 EEPROM Write - 0x29 .......................................................................................................... 22 7.15.10 EEPROM Write to Registers - 0x2B .................................................................................. 22 7.16 CALIBRATION OF TOUCH SENSOR WITH CONTROLLER .........................................................................................23 © 2009 Microchip Technology, Inc. DS41393A-Page iii BASICS OF RESISTIVE SENSORS ................................................................................................... 25 8 8.1 8.2 8.3 8.4 8.5 8.6 9 TERMINOLOGY ................................................................................................................................................25 GENERAL .......................................................................................................................................................25 4-WIRE SENSOR .............................................................................................................................................26 8-WIRE SENSOR .............................................................................................................................................27 5-WIRE SENSOR .............................................................................................................................................28 SUMMARY ......................................................................................................................................................28 ELECTRICAL SPECIFICATIONS........................................................................................................ 29 9.1 10 10.1 10.2 10.3 ABSOLUTE MAXIMUM RATINGS(†).....................................................................................................................29 PACKAGING .................................................................................................................................... 30 20 LEAD SOIC ...............................................................................................................................................30 20 LEAD SSOP ..............................................................................................................................................31 20 LEAD QFN (ML) ........................................................................................................................................32 FIGURES Figure 1: Block Diagram................................................................................................................................ 2 Figure 2 : Pin Diagrams – SOIC / SSOP and QFN Packages..................................................................... 3 Figure 3 : Main Schematic (SOIC, SSOP package pin out) ........................................................................ 4 Figure 4 : 4-wire Touch Sensor Interface..................................................................................................... 5 Figure 5 : 5-wire Touch Sensor Interface..................................................................................................... 6 Figure 6 : 8-wire Touch Sensor Interface..................................................................................................... 7 Figure 7 : I2C Timing Diagram – Receive Data............................................................................................ 8 Figure 8 : I2C Timing Diagram – Transmit Data........................................................................................... 8 Figure 9 : I2C Timing Diagram – Touch Report Protocol ............................................................................. 9 Figure 10 : I2C Timing Diagram – Command Protocol................................................................................. 9 Figure 11 : SPI Timing Diagram – Bit Timing............................................................................................... 9 Figure 12 : SPI Timing Diagram – Touch Report Protocol ........................................................................10 Figure 13 : SPI Timing Diagram – Command Protocol.............................................................................. 10 Figure 14: 4-Wire Decoding ........................................................................................................................ 26 Figure 15: 8-Wire Decoding ........................................................................................................................ 27 Figure 16: 5-Wire Decoding ........................................................................................................................ 28 Figure 17 : 20 Lead SOIC Package ........................................................................................................... 30 Figure 18 : 20 Lead SSOP Package.......................................................................................................... 31 Figure 19 : 20 Lead QFN Package ............................................................................................................ 32 TABLES Table 1: Ordering Part Numbers................................................................................................................... 2 Table 2: Pin Descriptions .............................................................................................................................. 3 Table 3 : Bill of Materials.............................................................................................................................. 4 Table 4 : 4/8-wire vs 5-wire Selection .......................................................................................................... 5 Table 5 : Communication Selection ............................................................................................................. 8 Table 6 : Communication Pins ..................................................................................................................... 8 Table 7 : Touch Coordinate Reporting Protocol......................................................................................... 11 Table 8 : Configuration Registers .............................................................................................................. 12 Table 9 : Command Set Summary............................................................................................................. 18 Table 10 : Sensor Comparison .................................................................................................................. 25 DS41393A-Page iv © 2009 Microchip Technology, Inc. 1 GENERAL The mTouch AR1000 Series Resistive Touch Screen Controller is a complete, easy to integrate, cost effective, and universal touch screen controller chip solution. The AR1000 Series is designed for high volume, small form factor touch solutions with quick time to market requirements. Developed by touch experts with over 15 years experience, the AR1000 Series has sophisticated proprietary touch screen decoding algorithms allowing it to send your application fully processed and reliable touch coordinates. 2 FEATURES Special Features: • RoHS Compliant • Power-Saving Sleep mode • Industrial Temperature Range • Built in drift compensation algorithm • 128 Bytes of user EEPROM • 4 x 4 mm QFN package Power Requirements: • Operating Voltage: 3.3 to 5.0 volts ±5% • Standby Sleep Current: <1uA • Operating “No touch” Current: 3.0mA typ. • Operating “Touch” Current: 17mA typ with a touch sensor having 200Ω layers. - Actual current is dependent on the touch sensor used. Touch Modes: • Off, Stream, Down, Up, and more. Touch Sensor Support: • 4 wire, 5 wire, and 8 wire analog resistive • Lead to Lead Resistance: 50Ω to 2,000Ω • Layer to Layer Capacitance: 0 to 0.5uF • Touch Sensor Time Constant: 500us maximum Touch Resolution: • 10-bit resolution maximum Touch Coordinate Report Rate: • 140 reports per second typ. with a touch sensor of 0.02uF with 200Ω layers. - Actual report rate is dependent on the touch sensor used. Communications: • SPI, slave mode, p/n AR1020 2 • I C™, slave mode, p/n AR1020 • UART, 9600 bps, p/n AR1010 Sensor Support All 4, 5, and 8-wire sensors are supported, regardless of manufacturer or construction. See BASICS OF RESISTIVE SENSORS section. Low-Power Wake-Up Wake-up from power saving sleep mode, via a touch or communication input. Configuration Registers Configuration registers provide user configuration of controller features. See Configuration Registers section. Touch Algorithms Algorithms provide for good calibration-corrected coordinates, with no additional development or code. Touch decoding Coordinate data filtering Calibration corrected coordinate option Built-in touch modes Communication Control AR1010 supports UART communication. AR1020 supports I2C and SPI communication. See Communication Interface section. © 2009 Microchip Technology, Inc. DS41393A-Page 1 3 APPLICATIONS The AR1000 is suitable for any application that requires fast and reliable integration of touch in the design, including but not limited to: Mobile communication devices Personal Digital Assistants (PDA) Global Positioning Systems (GPS) Touch Screen Monitors KIOSK Media Players Portable Instruments Point of Sale Terminals 4 ORDERING Part Number AR1010-I/ML AR1010-I/SO AR1010-I/SS AR1010T-I/ML AR1010T-I/SO AR1010T-I/SS AR1020-I/ML AR1020-I/SO AR1020-I/SS AR1020T-I/ML AR1020T-I/SO AR1020T-I/SS Communication Type UART UART UART UART UART UART I2C/SPI I2C/SPI I2C/SPI I2C/SPI I2C/SPI I2C/SPI Temp Range Pin Package –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC –40ºC to +85ºC QFN, 20 pin SOIC, 20 pin SSOP, 20 pin QFN, 20 pin SOIC, 20 pin SSOP, 20 pin QFN, 20 pin SOIC, 20 pin SSOP, 20 pin QFN, 20 pin SOIC, 20 pin SSOP, 20 pin Packing Tube Tube Tube T/R T/R T/R Tube Tube Tube T/R T/R T/R Table 1: Ordering Part Numbers 5 BLOCK DIAGRAM Figure 1: Block Diagram DS41393A-Page 2 © 2009 Microchip Technology, Inc. 6 PIN DIAGRAM Figure 2 : Pin Diagrams – SOIC / SSOP and QFN Packages Pin # Pin Name Pin Description SOIC, SSOP QFN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 VDD M1 SYM2 WAKE SIQ SY+ SS SDO NC SCK/SCL/TX NC SDI/SDA/RX SX+ Y+ Y5WSXX+ XVSS Supply Voltage Communication Selection Sense Y- (8-Wire). Tie to VSS, if not used. 4/8-wire or 5-wire Sensor Selection Touch Wake-Up LED drive / SPI Interrupt. No Connect, if not used. Sense Y+ (8-Wire). Tie to VSS, if not used. Slave Select (SPI). Tie to VSS, if not used. SPI Serial Data Output / I2C Interrupt. Tie to VSS, if UART. No Connection. No Connect or tie to VSS or VDD. SPI/I2C Serial Clock / UART Transmit No Connection. No Connect or tie to VSS or VDD. I2C Serial Data / SPI Serial Data Input / UART Receive Sense X+ (8-Wire). Tie to VSS, if not used. Y+ Drive Y- Drive 5W Sense (5-Wire) / Sense X- (8-Wire). Tie to VSS, if not used. X+ Drive X- Drive Supply Voltage Ground Table 2: Pin Descriptions © 2009 Microchip Technology, Inc. DS41393A-Page 3 7 FUNCTIONAL DESCRIPTION 7.1 Main Schematic A main application schematic is shown below for the SOIC/SSOP package pinout. See the Pin Diagram section for the QFN package pinout. Figure 3 : Main Schematic (SOIC, SSOP package pin out) 7.2 Bill of Materials Modifying, removing, or adding components may adversely affect touch performance. Specific manufacturers and part numbers are provided only as a guide. Equivalents can be used. Label C1 C2 C3, C4, C5 D1-D8 2 1 Qty Value 1 10 uF Capacitor – Ceramic, 1 0.1 uF Capacitor – Ceramic, 0.1uF, 10%, 16V, X7R, 0603 AVX 0603YC104KAT2A 2-3 0.01 uF Capacitor – Ceramic, 0.01uF, 10%, 50V, X7R, 0603 AVX 06035C103KAT2A 4-8 130 W R1 1 20K ohm U1 1 Na Description 10uF, 20%, 6.3V, X7R, 0603 Manufacturer AVX Part Number 06036D106MAT2A Diode – Bi-dir., 130W, ESD Protection, SOD323 NXP PESD5V0S1BA Resistor - 20K ohm, 1/10W, 5%, 0603 Yageo America RC0603JR-0720KL Touch controller IC Microchip AR1010 or AR1020 Table 3 : Bill of Materials Note 1: C5 is only needed for 5-wire applications. Note 2: D1-D8 are for ESD protection. 4-wire touch screen, use D1-D4 5-wire touch screen, use D1-D5 8-wire touch screen, use D1-D8 The capacitance of alternate ESD diodes may adversely affect touch performance. A lower capacitance is better. The PESD5V0S1BA parts shown in the reference design have a typical capacitance of 35pF. Test to ensure that selected ESD protection does not degrade touch performance. ESD protection is shown in the reference design, but acceptable protection is dependent on your specific application. Ensure your ESD solution meets your design requirements. DS41393A-Page 4 © 2009 Microchip Technology, Inc. 7.3 4, 5, 8-Wire Sensor Selection The desired sensor type of 4/8-Wire or 5-Wire is hardware selectable using pin M2. Type 4/8-wire 5-wire M2 pin VSS VDD Table 4 : 4/8-wire vs 5-wire Selection If 4/8-wire has been hardware selected, then the choice of 4-wire or 8-wire is software selectable, via the TouchOptions configuration register. When 4/8-Wire is hardware selected, the controller defaults to 4-wire operation. If 8-wire operation is desired, then the TouchOptions configuration register must be changed. 7.4 4-wire Touch Sensor Interface Sensor tail pin-outs can vary by manufacturer and part number. Ensure both sensor tail pins for one sensor axis (layer) are connected to the controller’s X–/X+ pins and the tail pins for the other sensor axis (layer) are connected to the controller’s Y–/Y+ pins. The controller’s X–/X+ and Y–/Y+ pin pairs do not need to connect to a specific sensor axis. The orientation of controller pins X– and X+ to the two sides of a given sensor axis is not important. Likewise, the orientation of controller pins Y– and Y+ to the two sides of the other sensor axis is not important. Connections to a 4-wire touch sensor are as follows. Figure 4 : 4-wire Touch Sensor Interface The capacitance of alternate ESD diodes may adversely affect touch performance. A lower capacitance is better. The PESD5V0S1BA parts shown in the reference design have a typical capacitance of 35pF. Test to ensure that selected ESD protection does not degrade touch performance. ESD protection is shown in the reference design, but acceptable protection is dependent on your specific application. Ensure your ESD solution meets your design requirements. Tie unused controller pins 5WSX-, SX+, SY-, and SY+ to VSS. © 2009 Microchip Technology, Inc. DS41393A-Page 5 7.5 5-wire Touch Sensor Interface Sensor tail pin-outs can vary by manufacturer and part number. Ensure sensor tail pins for one pair of diagonally related sensor corners are connected to the controller’s X–/X+ pins and the tail pins for the other pair of diagonally related corners are connected to the controller’s Y–/Y+ pins. The controller’s X–/X+ and Y–/Y+ pin pairs do not need to connect to a specific sensor axis. The orientation of controller pins X– and X+ to the two selected diagonal sensor corners is not important. Likewise, the orientation of controller pins Y– and Y+ to the other two selected diagonal sensor corners is not important. The sensor tail pin connected to its topsheet must be connected to the controller’s 5WSX– pin. Connections to a 5-wire touch sensor are as follows. Figure 5 : 5-wire Touch Sensor Interface The capacitance of alternate ESD diodes may adversely affect touch performance. A lower capacitance is better. The PESD5V0S1BA parts shown in the reference design have a typical capacitance of 35pF. Test to ensure that selected ESD protection does not degrade touch performance. ESD protection is shown in the reference design, but acceptable protection is dependent on your specific application. Ensure your ESD solution meets your design requirements. Tie unused controller pins SX-, SY-, and SY+ to VSS. DS41393A-Page 6 © 2009 Microchip Technology, Inc. 7.6 8-wire Touch Sensor Interface Sensor tail pin-outs can vary by manufacturer and part number. Ensure both sensor tail pins for one sensor axis (layer) are connected to the controller’s X–/X+ pins and the tail pins for the other sensor axis (layer) are connected to the controller’s Y–/Y+ pins. The controller’s X–/X+ and Y–/Y+ pin pairs do not need to connect to a specific sensor axis. The orientation of controller pins X– and X+ to the two sides of a given sensor axis is not important. Likewise, the orientation of controller pins Y– and Y+ to the two sides of the other sensor axis is not important. The 8-wire sensor differs from a 4-wire sensor in that each edge of an 8-wire sensor has a secondary connection brought to the sensor’s tail. These secondary connections are referred to as “sense” lines. The controller pins associated with the sense line for an 8-wire sensor contain an ‘S’ prefix in their respective names. For example, the SY– pin is the sense line connection associated with the main Y– pin connection. Consult with the sensor manufacturer’s specification to determine which member of each edge connected pair is the special 8-wire “sense” connection. The controller requires that the main and “sense” tail pin pairs for sensor edges be connected to controller pin pairs as follows. Y– and SY– Y+ and SY+ X– and 5WSX– X+ and SX+ Connections to a 8-wire touch sensor are as follows. Figure 6 : 8-wire Touch Sensor Interface The capacitance of alternate ESD diodes may adversely affect touch performance. A lower capacitance is better. The PESD5V0S1BA parts shown in the reference design have a typical capacitance of 35pF. Test to ensure that selected ESD protection does not degrade touch performance. ESD protection is shown in the reference design, but acceptable protection is dependent on your specific application. Ensure your ESD solution meets your design requirements. © 2009 Microchip Technology, Inc. DS41393A-Page 7 7.7 Communication Interface The desired communication type is hardware selectable by chip part number and using pin M1. Type I2C SPI UART Chip P/N AR1020 AR1020 AR1010 M1 pin VSS VDD VDD Table 5 : Communication Selection The communication interface pins are shown below for each communication type. Type UART I2C SPI Communication Pins RX, TX, VSS SCL, SDA, SDO (Irq), VSS SCK, SDI, SDO, SS, SIQ (Irq), VSS Table 6 : Communication Pins 7.7.1 I2 C I2C operates in slave mode with 7-bit address of 0x9A. The SDO pin functions as an interrupt output. It is asserted high when data is available. Timing diagrams are shown below. Figure 7 : I2C Timing Diagram – Receive Data Figure 8 : I2C Timing Diagram – Transmit Data DS41393A-Page 8 © 2009 Microchip Technology, Inc. Figure 9 : I2C Timing Diagram – Touch Report Protocol Figure 10 : I2C Timing Diagram – Command Protocol 7.7.2 SPI SPI operates in slave mode with an idle low SCK and data transmitted on the SCK falling edge. The SIQ pin functions as an interrupt output. It is asserted high when data is available. The pin has a dual purpose with driving an optional LED. The SS pin is optional for “Slave Select” functionality. It is active (selects) when pulled low to VSS. Tie to VSS if not used. If data is clocked out when the controller has no valid data to provide, then 0x4d (ASCII "M") will be presented. Timing diagrams are shown below. Figure 11 : SPI Timing Diagram – Bit Timing © 2009 Microchip Technology, Inc. DS41393A-Page 9 Figure 12 : SPI Timing Diagram – Touch Report Protocol Figure 13 : SPI Timing Diagram – Command Protocol 7.7.3 UART The SDO pin is not used and must be left as a “no connect”. Do NOT tie it directly to VSS or VDD. UART communication is at a fixed 9600 baud rate. 7.8 Status LED The LED and associated resistor are optional. The LED serves as a status indicator that the controller is functioning. It will slow flash when the controller is running with no touch in progress. It will flicker quickly (mid level On) when a touch is in progress. If the LED is used with SPI communication, then the LED will be off with no touch and flicker quickly (mid level On) when a touch is in progress. If the SIQ pin is not used, it must be left as a no connect and NOT tied to circuit VDD or VSS. DS41393A-Page 10 © 2009 Microchip Technology, Inc. 7.9 ESD Considerations ESD protection is shown on the 4-wire, 5-wire, and 8-wire interface applications schematics. The capacitance of alternate ESD diodes may adversely affect touch performance. A lower capacitance is better. The PESD5V0S1BA parts shown in the reference design have a typical capacitance of 35pF. Test to ensure that selected ESD protection does not degrade touch performance. ESD protection is shown in the reference design, but acceptable protection is dependent on your specific application. Ensure your ESD solution meets your design requirements. 7.10 Noise Considerations Touch sensor filtering capacitors are included in the reference design. Warning: Changing the value of the capacitors may adversely affect performance of the touch system. 7.11 Touch Reporting Protocol Touch coordinates are sent from the controller to the host system in a 5-byte data packet, which contains the Xaxis coordinate, Y-axis coordinate, and a “Pen-Up/Down” touch status. The range for X-axis and Y-axis coordinates is from 0-4095 (12-bit). The realized resolution is 1024, as this product currently defines, in a non-calibrated state, bits X1:X0 and Y1:Y0 as zeros. It is recommended that applications be developed to read the 12-bit coordinates from the packet and use them in a 12-bit format. This enhances the application robustness, as it will work with either 10 or 12 bits of coordinate information. The touch coordinate reporting protocol is shown below. Byte # 1 2 3 4 5 Bit 7 1 0 0 0 0 Bit 6 R X6 0 Y6 0 Bit 5 R X5 0 Y5 0 Bit 4 R X4 X11 Y4 Y11 Bit 3 R X3 X10 Y3 Y10 Bit 2 R X2 X9 Y2 Y9 Bit 1 R X1 X8 Y1 Y8 Bit 0 P X0 X7 Y0 Y7 Table 7 : Touch Coordinate Reporting Protocol where: P : R : X11-X0 : Y11-Y0 : 0 Pen-Up, 1 Pen-Down Reserved X-axis coordinate Y-axis coordinate © 2009 Microchip Technology, Inc. DS41393A-Page 11 7.12 Configuration Registers The Configuration Registers allow application specific customization of the controller. The default values have been optimized for most applications and are automatically used, unless you choose to change them. Unique sensors and/or product applications may benefit from adjustment of configuration registers. The factory default settings for the Configuration registers can be recovered by writing a value of 0xFF to address 0x00 of the EEPROM, then cycling power. Register Name TouchThreshold SensitivityFilter SamplingFast SamplingSlow AccuracyFilterFast AccuracyFilterSlow SpeedThreshold SleepDelay PenUpDelay TouchMode TouchOptions CalibrationInset PenStateReportDelay TouchReportDelay Address Offset 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x11 Bit 7 Value of: Value of: Value of: Value of: Value of: Value of: Value of: Value of: Value of: PD2 – Value of: Value of: Value of: Bit 6 Bit 5 Bit 4 Bit 3 0-255 0-255 1, 2, 4, 8, 16, 32, 64, 128 1, 2, 4, 8, 16, 32, 64, 128 1-8 1-8 0-255 0-255 0-255 PD1 PD0 PM1 PM0 – – – – 0-40 0-255 0-255 Bit 2 Bit 1 Bit 0 PU2 – PU1 48W PU0 CCE Default Value 0xC5 0x04 0x04 0x10 0x02 0x08 0x04 0x64 0x80 0xB1 0x00 0x19 0xC8 0x00 Table 8 : Configuration Registers Configuration registers are defined as an Offset value from the Start address for the register group. To read or write to a register, do the following. 1) Issue the <Register Start Address Request> command to obtain the Start address for the register group. 2) Calculated the desired register’s absolute address by adding the register’s Offset value to Start address for the register group. 3) Issue the <Register Read> or <Register Write> command, using the calculated register’s absolute address. Warning: Use of invalid register value will yield unpredictable results! 7.12.1 TouchThreshold Register (offset 0x02) The TouchThreshold register sets the threshold for a touch condition to be detected as a touch. A touch is detected if it is below the TouchThreshold setting. Too small of a value might prevent the controller from accepting a real touch, while too large of a value might allow the controller to accept very light or false touches conditions. Valid values are as follows. 0 ≤ TouchThreshold ≤ 255 7.12.2 SensitivityFilter Register (offset 0x03) The SensitivityFilter register sets the level of touch sensitivity. A higher value is more sensitive to a touch (accepts a lighter touch), but may exhibit a less stable touch position. A lower value is less sensitive to a touch (requires a harder touch), but will provide a more stable touch position. Valid values are as follows. 0 ≤ SensitivityFilter ≤ 255 DS41393A-Page 12 © 2009 Microchip Technology, Inc. 7.12.3 SamplingFast Register (offset 0x04) The SamplingFast register sets the level of touch measurement sample averaging, when touch movement is determined to be fast. See the SpeedThreshold register for information on the touch movement threshold. A lower value will provide for a higher touch coordinate reporting rate when touch movement is fast, but may exhibit more high frequency random noise error in the touch position. A higher value will reduce the touch coordinate reporting rate when touch movement is fast, but will reduce high frequency random noise error in the touch position. Valid values are as follows. SamplingFast: 1, 2, 4, 8, 16, 32, 64, 128 7.12.4 SamplingSlow Register (offset 0x05) The SamplingSlow register sets the level of touch measurement sample averaging, when touch movement is slow. See the SpeedThreshold register for information on the touch movement threshold. A lower value will increase the touch coordinate reporting rate when the touch motion is slow, but may exhibit a less stable more jittery touch position. A higher value will decrease the touch coordinate reporting rate when the touch motion is slow, but will provide a more stable touch position. Valid values are as follows. SamplingSlow: 1, 2, 4, 8, 16, 32, 64, 128 7.12.5 AccuracyFilterFast Register (offset 0x06) The AccuracyFilterFast register sets the level of an accuracy enhancement filter, used when the touch movement is fast. See the SpeedThreshold register for information on the touch movement threshold. A lower value will provide better touch coordinate resolution when the touch motion is fast, but may exhibit more low frequency noise error in the touch position. A higher value will reduce touch coordinate resolution when the touch motion is fast, but will reduce low frequency random noise error in the touch position. Valid values are as follows. 1 ≤ AccuracyFilterFast ≤ 8 7.12.6 AccuracyFilterSlow Register (offset 0x07) The AccuracyFilterSlow register sets the level of an accuracy enhancement filter, used when the touch movement is slow. See the SpeedThreshold register for information on the touch movement threshold. A lower value will provide better touch coordinate resolution when the touch motion is slow, but may exhibit more low frequency noise error in the touch position. A higher value will reduce touch coordinate resolution when the touch motion is slow, but will reduce low frequency random noise error in the touch position. Valid values are as follows. 1 ≤ AccuracyFilterSlow ≤ 8 7.12.7 SpeedThreshold Register (offset 0x08) The SpeedThreshold register sets the threshold for touch movement to be considered as slow or fast. A lower value reduces the touch movement speed that will be considered as fast. A higher value increases the touch movement speed that will be considered as fast. Valid values are as follows. 0 ≤ SpeedThrshhold ≤ 255 © 2009 Microchip Technology, Inc. DS41393A-Page 13 7.12.8 SleepDelay Register (offset 0x0A) The SleepDelay register sets the time duration with no touch or command activity that will cause the controller to enter a low power sleep mode. Valid values are as follows. 0 ≤ SleepDelay ≤ 255 Sleep Delay Time = SleepDelay * 100ms A value of zero disables the Sleep Mode, such that the controller will never enter low power sleep mode. A touch event will wake the controller from low power sleep mode and start sending touch reports. Communications sent to the controller will wake it from the low power sleep mode and initiate action to the command. 7.12.9 PenUpDelay Register (offset 0x0B) The PenUpDelay register sets the duration of a pen up event that the controller will allow, without sending a pen up report for the event. The delay time is started upon detecting a pen up condition. If a pen down is reestablished before the delay time expires, then pen down reports will continue without a pen up being sent. This effectively debounces a touch event in process. A lower value will make the controller more responsive to pen ups, but will cause more touch drop outs with a lighter touch. A higher value will make the controller less responsive to pen ups, but will reduce the number of touch drop outs wit a lighter touch. Valid values are as follows. 0 ≤ PenUpDelay ≤ 255 Pen Up Delay Time ≈ PenUpDelay * 240μs DS41393A-Page 14 © 2009 Microchip Technology, Inc. 7.12.10 TouchMode Register (offset 0x0C) The TouchMode register configures the action taken for various touch states. There are three states of touch for which the controller touch reporting action can be independently controlled. Touch States: 1) Pen down (initial touch) User defined 0-3 touch reports, with selectable pen states. 2) Pen Movement (touch movement after initial touch) User defined no touch reports or streaming touch reports, with selectable pen states. 3) Pen Up (touch release) User defined 0-3 touch reports, with selectable pen states. Every touch report include a “P” (Pen) bit that indicates the pen state. Pen Down : P=1 Pen Up : P=0 R = Readable bit, W = Writable bit, U = Unimplemented bit read as ‘0’ R/W R/W R/W R/W R/W R/W PD2 PD1 PD0 PM1 PM0 PU2 Bit 7 R/W PU1 R/W PU0 Bit 0 bit 7-5 PD<7:5>: Pen Down State bits (action taken upon pen down). 000 = No Touch Report 001 = Touch Report with P=0 010 = Touch Report with P=1 011 = Touch Report with P=1, then Touch Report with P=0 100 = Touch Report with P=0, then Touch Report with P=1, then Touch Report with P=0 101 = Touch Report with P=0, then Touch Report with P=1 bit 4-3 PM<4:3>: Pen Movement State bits (action taken upon pen movement). 00 = No Touch Report 01 = Touch Report with P=0 10 = Touch Report with P=1 bit 2-0 PU<2:0>: Pen Up State bits (action taken upon pen up). 000 = No Touch Report 001 = Touch Report with P=0 010 = Touch Report with P=1 011 = Touch Report with P=1, then Touch Report with P=0 100 = Touch Report with P=0, then Touch Report with P=1, then Touch Report with P=0 101 = Touch Report with P=0, then Touch Report with P=1 A couple of typical setup examples for the TouchMode are as follows. Report a pen down P=1 on initial touch, followed by reporting a stream of pen downs P=1 during the touch, followed by a final pen up P=0 on touch release. TouchMode = 0b01010001 = 0x51 Report a pen up P=0 then a pen down P=1 on initial touch, followed by reporting a stream of pen downs P=1 during the touch, followed by a final pen up P=0 on touch release. TouchMode = 0b10110001 = 0xB1 © 2009 Microchip Technology, Inc. DS41393A-Page 15 7.12.11 TouchOptions Register (offset 0x0D) The TouchOptions register contains various “touch” related option bits. R = Readable bit, W = Writable bit, U = Unimplemented bit read as ‘0’ U–0 U–0 U–0 U–0 U–0 U–0 – – – – – – Bit 7 R/W 48W R/W CCE Bit 0 bit 7-2 Unimplemented: Read as ‘0’ bit 1 48W: 4-wire or 8-wire Sensor Selection bit 1 = Selects 8-wire sensor operating mode 0 = Selects 4-wire sensor operating mode bit 0 CCE: Calibrated Coordinates Enable bit 1 = Enables calibrated coordinates, if the controller has been calibrated 0 = Disables calibrated coordinates A 4-wire touch sensor will not work if the 48W configuration bit is incorrectly defined as one, which selects 8-wire. An 8-wire touch sensor will provide basic operation if the 48W configuration bit is incorrectly defined as zero, which selects 4-wire. However, the benefit of the 8-wire sensor will only be realized, if the 48W configuration bit is correctly defined as one, selecting 8-wire. 7.12.12 CalibrationInset Register (offset 0x0E) The CalibrationInset register defines the expected position of the calibration points, inset from the perimeter of the touch sensor’s active area, by a percentage of the full scale dimension. This allows for the calibration targets to be placed inset from edge to make it easier for a user to touch them. The CalibrationInset register value is only used when the Calibration Mode command is issued to the controller. In Calibration Mode, the controller will extrapolate the calibration point touch report values by the defined CalibrationInset percentage to achieve full scale. A software application that issues the Calibration Mode command must present the displayed calibration targets at the same inset percentage as defined in this CalibrationInset register. Valid values are as follows. 0 ≤ CalibrationInset ≤ 40 Calibration Inset = ( CalibrationInset / 2 ) % , Range of 0–20% with 0.5% resolution For example, CalibrationInset = 25 (0x19) yields a calibration inset of (25 / 2) or 12.5%. During the calibration procedure, the controller will internally extrapolate the calibration point touch values in Calibration Mode by 12.5% to achieve full scale. 12.5% of Full Scale Location of calibration targets presented during calibration. DS41393A-Page 16 12.5% of Full Scale © 2009 Microchip Technology, Inc. 7.12.13 PenStateReportDelay Register (offset 0x0F) The PenStateReportDelay register sets the delay time between sending of sequential touch reports for the “Pen Down” and “Pen Up” touch mode states. See TouchMode Register section for touch modes. For example, if “Pen Up” state of the TouchMode register is configured to send a touch report with P=1, followed by a touch report with P=0, then this delay occurs between the two touch reports. This provides some timing flexibility between the two touch reports that may be desired is certain applications. Valid values are as follows. 0 ≤ PenStateReportDelay ≤ 255 Pen State Report Delay Time = PenStateReportDelay * 50μs 7.12.14 TouchReportDelay Register (offset 0x11) The TouchReportDelay register sets a forced delay time between successive touch report packets. This allows slowing down of the touch report rate, if desirable for a given application. For example, a given application may not need a high rate of touch reports and may want to reduce the overhead used to service all of the touch reports being sent. In this situation, increased the value of this register will reduce the rate at which the controller sends touch reports. Valid values are as follows. 0 ≤ TouchReportDelay ≤ 255 Touch Report Delay Time ≈ TouchReportDelay * 500μs 7.12.15 User Configuration – Spiking If the reported touch position contains some spiking position errors, then this can be improved by changing the following Configuration Register values. SamplingFast (offset 0x04) AccuracyFilterFast (offset 0x06) = 8 = 8 The trade off with the above change is that the touch report rate (points per second) will be decreased. This is fine for many applications. 7.13 Command Format The controller supports application specific configuration commands. To ensure command communication is not interrupted by touch activity, it is recommended that the controller touch is disabled, prior to other commands. This can be done as follows. 1) 2) 3) 4) Send Disable Touch command Wait 50ms Send desired command/s Send Enable Touch command The format for sending commands is: <Header><DataSize><Command><Data>…<Data> <Header> is defined as a value of 0x55 and is used to mark the beginning of the command packet. <DataSize> is the number of bytes being sent in the command packet, after <DataSize>. <Command> is a value assigned to a specific command. <Data> represent from zero to eight bytes of command specific data. © 2009 Microchip Technology, Inc. DS41393A-Page 17 7.14 Command Response A received command will be responded to as follows. <Header><DataSize><Response><Command><Data>…<Data> <Header> is defined as a value of 0x55 and is used to mark the beginning of the response packet. <DataSize> is the number of bytes being sent in the response packet, after <DataSize>. <Response> is a returned status to the received command. Value Description 0x00 Success 0x01 Unrecognized Command 0x03 Unrecognized Header 0x04 Command Timeout (entire command not received within 100ms) 0xFC Calibration Cancel <Command> is a confirmation of the command being responded to. <Data> represent from zero to eight bytes of returned data. 7.15 Commands Command Value 0x12 0x13 0x14 0x20 0x21 0x22 0x23 0x28 0x29 0x2B Command Description Enable Touch Disable Touch Calibrate Mode Register Read Register Write Register Start Address Request Registers Write to Eeprom EEPROM Read EEPROM Write EEPROM Write to Registers Table 9 : Command Set Summary 7.15.1 Enable Touch - 0x12 Controller will send touch coordinate reports for valid touch conditions. Send : <0x55><0x01><0x12> Receive : <0x55><0x02><Response><0x12> 7.15.2 Disable Touch - 0x13 Controller will not send any touch coordinate reports. A touch will, however, still wake up the controller if asleep. Send : <0x55><0x01><0x13> Receive : <0x55><0x02><Response><0x13> DS41393A-Page 18 © 2009 Microchip Technology, Inc. 7.15.3 Calibrate - 0x14 Enter “calibration” mode. This instructs the controller to enter a mode of accepting the next four touches as the calibration point coordinates. See section Calibration of Touch Sensor with Controller for an example. Completion of calibration mode will automatically store the calibration point coordinates in on-board controller memory and set (to 1) the CCE bit of the TouchOptions register. This bit enables the controller to report touch coordinates that have been processed with the pre-collected calibration data. The “calibration” mode will be cancelled by sending any command before the mode has been completed. Send : <0x55><0x02><0x14><Calibration Type> Calibration Type 0x04 Description 4 point Receive : <0x55><0x02><Response><0x14> <0x55><0x02><Response><0x14> <0x55><0x02><Response><0x14> <0x55><0x02><Response><0x14> <0x55><0x02><Response><0x14> for initial command response st for response to 1 target touch release nd for response to 2 target touch release rd for response to 3 target touch release th for response to 4 target touch release To provide for proper touch orientation, the four sequential calibration touches must be input in the following physical order on the touch sensor. #1 Upper Left #2 Upper Right Touch Sensor #4 Lower Left #3 Lower Right © 2009 Microchip Technology, Inc. DS41393A-Page 19 7.15.3.1 How the Calibration Data is Encoded and Stored in EEPROM This section is informational only. No user action is required. The raw touch coordinates, decoded by the controller, for each of the four calibration touches are extrapolated if CalibrationInset was non-zero. The four coordinate pairs are then re-oriented, if required, such that the upper left corner is the minimum (X,Y) “origin” value pair and the lower right corner is the maximum (X,Y) value pair. The manipulated calibration values are stored in 17 address locations of the EEPROM. In the EEPROM, the calibration data follows the storage of the controller operating parameters. The controller operating parameters and the calibration data are each preceded by a separator value of 0x55. Coordinates are 10-bit significant values, scaled to 16-bit and stored in a Hi and Lo byte pair. Separator Address Value 0x14 Upper Left (Node 1) X Y Lo Hi Lo Hi 0x15 0x16 0x17 0x18 Upper Right (Node 2) X Y Lo Hi Lo Hi 0x19 0x1A 0x1B 0x1C Lower Right (Node 3) X Y Lo Hi Lo Hi 0x1D 0x1E 0x1F 0x20 Lower Left (Node 4) X Y Lo Hi Lo Hi 0x21 0x22 0x23 0x55 Decode the above data to as follows: 1) Swap the order of stored Lo and Hi bytes for a given coordinate. 2) Convert the 16-bit value (stored Hi and Lo bytes) from hexadecimal to decimal. 3) Divide the result by 64 to properly rescale the 16-bit stored value back to a 10-bit significant coordinate. Example of Lo = 0x40 and Hi = 0xF3: Swap : 0xF340 Hex to Decimal : 62272 Divide by 64 : 973 Flip State Byte: R = Readable bit, W = Writable bit, U = Unimplemented bit read as ‘0’ U–0 U–0 U–0 U–0 U–0 R/W R/W R/W – – – – – XYFLIP XFLIP YFLIP Bit 7 Bit 0 bit 7-3 Unimplemented: Read as ‘0’ bit 2 XYFLIP: X and Y axis flip bit 1 = X and Y axis are flipped 0 = X an Y axis are not flipped bit 1 XFLIP: X-axis flip bit 1 = X-axis flipped 0 = X-axis not flipped bit 0 YFLIP: Y-axis flip bit 1 = Y-axis flipped 0 = Y-axis not flipped DS41393A-Page 20 © 2009 Microchip Technology, Inc. 0x24 Flip State 0x25 7.15.4 Register Read - 0x20 Read a value from a controller register location. This can be used to determine a controller configuration setting. Configuration registers are defined as an Offset value from the Start address for the register group. Read a register as follows. 1) Issue the <Register Start Address Request> command to obtain the Start address for the register group. 2) Calculate the desired register’s absolute address by adding the register’s Offset value to Start address for the register group. 3) Issue this <Register Read> command, as follows, using the calculated register’s absolute address Send : <0x55><0x04><0x20><Register Address High byte><Register Address Low byte><# of Registers to Read> # of Registers to Read Register Address High byte : 0x01 thru 0x08 : 0x00 Receive : <0x55><0x02 + # of Registers Read><Response><0x20><Register value>…<Register value> 7.15.5 Register Write - 0x21 Write a value to a controller register location. This can be used to change a controller configuration setting. Configuration registers are defined as an Offset value from the Start address for the register group. Write a register as follows. 1) Issue the <Register Start Address Request> command to obtain the Start address for the register group. 2) Calculate the desired register’s absolute address by adding the register’s Offset value to Start address for the register group. 3) Issue this <Register Write> command, as follows, using the calculated register’s absolute address Send: <0x55><0x04 + # Registers to Write><0x21><Register Address High byte><Register Address Low byte> <# of Registers to Write><Data>…<Data> # of Registers to Write Register Address High byte : 0x01 thru 0x08 : 0x00 Receive : <0x55><0x02><Response><0x21> 7.15.6 Register Start Address Request - 0x22 Configuration registers are defined as an Offset value from the Start address for the register group. This command returns the Start address for the register group. Send : <0x55><0x01><0x22> Receive : <0x55><0x03><Response><0x22><Register Start Address> 7.15.7 Registers Write to EEPROM - 0x23 Save Configuration Register values to EEPROM. This allows the controller to remember configurations settings through controller power cycles. Send : <0x55><0x01><0x23> Receive : <0x55><0x02><Response><0x23> © 2009 Microchip Technology, Inc. DS41393A-Page 21 7.15.8 EEPROM Read - 0x28 The controller has 256 bytes of on-board EEPROM. The first 128 bytes (address range 0x00–0x7F) are reserved by the controller for the configuration register settings and calibration data. The second 128 bytes (address range 0x80–0xFF) are provided for the user’s application, if desired. This command provides a means to read values from the EEPROM. Send : <0x55><0x04><0x28><EEPROM Address High byte><EEPROM Address Low byte><# of EEPROM to Read> # of EEPROM to Read : 0x01 thru 0x08 EEPROM Address High byte : 0x00 Receive : <0x55><0x02 + # EEPROM Read><Response><0x28><EEPROM value>…<EEPROM value> 7.15.9 EEPROM Write - 0x29 The controller has 256 bytes of on-board EEPROM. The first 128 bytes (address range 0x00–0x7F) are reserved by the controller for the configuration register settings and calibration data. The second 128 bytes (address range 0x80–0xFF) are provided for the user’s application, if desired. This command provides a means to write values to the EEPROM. Warning: ONLY write to user EEPROM addresses of 0x80–0xFF. One of the following actions is required for EEPROM changes to be used by the controller. The controller power must be cycled from OFF to ON or Issue the “EEPROM Write to Registers” command Write to EEPROM as follows. Send: <0x55><0x04 + # EEPROM to Write><0x29><EEPROM Address High byte><EEPROM Address Low byte> <# of EEPROM to Write><Data>…<Data> # of EEPROM to Write : 0x01 thru 0x08 EEPROM Address High byte : 0x00 Receive : <0x55><0x02><Response><0x29> 7.15.10 EEPROM Write to Registers - 0x2B Write applicable EEPROM data to Configuration Registers. This will cause the controller to immediately begin using changes made to EEPROM stored Configuration Register values. A power cycle of the controller will automatically cause the controller to use changes made to the EEPROM stored Configuration Register values, without the need for issuing this command. This command eliminates the need for the power cycle. Send : <0x55><0x01><0x2B> Receive : <0x55><0x02><Response><0x2B> DS41393A-Page 22 © 2009 Microchip Technology, Inc. 7.16 Calibration of Touch Sensor with Controller The reported coordinates from a touch screen controller are typically calibrated to the application’s video display. The task is often left up to the host to perform. This controller provides a feature for it to send coordinates that have already been calibrated, rather than the host needing to perform this task. If enabled, the feature will apply pre-collected 4-point calibration data to the reported touch coordinates. Calibration only accounts for X and Y directional scaling. It does not correct for angular errors due to rotation of the touch sensor on the video display. The calibration process can be cancelled at anytime by sending a command to the controller. Upon completion of the calibration process, the calibration data is automatically stored to the EEPROM and “Calibrated Coordinates” is enabled The process of “calibration” with the controller is described below. 1) Disable touch reporting by issuing <Disable Touch> command. Send Receive : <0x55><0x01><0x13> : <0x55><0x02><Response><0x13> 2) Get register group Start address by issuing <Register Start Address Request> command. A register Start address of 0x07 is used below, for this example. Send Receive : <0x55><0x01><0x22> : <0x55><0x03><0x00><0x22><0x07> 3) Calculate the CalibrationInset register’s address by adding it’s offset value of 0x0E to the register group Start address of 0x07. Register Address = Register Start Address + CalibratioInset Register Offset = 0x07 + 0x0E = 0x15 4) Calculate the desired value for the CalibrationInset register. A Calibration Inset of 12.5% is used below for this example. CalibrationInset = 2 * Desire Calibration Inset % = 2 * 12.5 = 25 = 0x19 5) Set the Calibration Inset by writing the desired value to the CalibrationInset register. Send Receive : <0x55><0x05><0x21><0x00><0x15><0x01><0x19> : <0x55><0x02><0x00><0x21> 6) Issue the <Calibrate Mode> command. Send Receive : <0x55><0x02><0x14><0x04> : <0x55><0x02><0x00><0x14> 7) Software to display the first calibration point target in the upper left quadrant of the display and prompt the user to touch and release the target. Touch and release target 8) Wait for the user to touch and release the first calibration point target. Do this by looking for a controller response of: <0x55><0x02><0x00><0x14> © 2009 Microchip Technology, Inc. DS41393A-Page 23 9) Software to display the second calibration point target in the upper right quadrant of the display and prompt the user to touch and release the target. Touch and release target 10) Wait for the user to touch and release the second calibration point target. Do this by looking for a controller response of: <0x55><0x02><0x00><0x14> 11) Software to display the third calibration point target in the lower right quadrant of the display and prompt the user to touch and release the target. Touch and release target 12) Wait for the user to touch and release the third calibration point target. Do this by looking for a controller response of: <0x55><0x02><0x00><0x14> 13) Software to display the fourth calibration point target in the lower left quadrant of the display and prompt the user to touch and release the target. Touch and release target 14) Wait for the user to touch and release the fourth calibration point target. Do this by looking for a controller response of: <0x55><0x02><0x00><0x14> 15) Enable touch reporting by issuing <Enable Touch> command. Send Receive DS41393A-Page 24 : <0x55><0x01><0x12> : <0x55><0x02><Response><0x12> © 2009 Microchip Technology, Inc. 8 BASICS OF RESISTIVE SENSORS 8.1 Terminology ITO (Indium Tin Oxide) is the resistive coating that makes up the active area of the touch sensor. ITO is a transparent semiconductor that is sputtered onto the touch sensor layers. Flex or Film or Topsheet is the top sensor layer that a user touches. Flex refers to the fact that the top layer physically flexes from the pressure of a touch. Stable or Glass is the bottom sensor layer that interfaces against the display. Spacer Adhesive is a frame of adhesive that connects the Flex and Stable layers together around the perimeter. Spacer Dots maintain physical and electrical separation between the Flex and Stable layers. The dots are typically printed onto the Stable layer. Bus Bars or Silver Frit electrically connect to the ITO on the Flex and Stable layers to the sensor’s interface tail. Bus bars are typically screen printed silver ink. They are usually much lower in resistivity than the ITO. X-Axis is the left and right direction on the touch sensor. Y-Axis is the top and bottom direction on the touch sensor. Drive Lines supply a voltage gradient across the sensor. 8.2 General Resistive 4, 5, and 8-wire touch sensors consist of two facing conductive layers, held in physical separation from each other. The force of a touch causes the top layer to move and make electrical contact with the bottom layer. Touch position measurements are typically made by applying a linear voltage gradient across a layer or axis of the touch sensor. The touch position voltage for the axis can be measured using the opposing layer. A comparison of typical sensor constructions is shown below. Sensor 4 Wire 5 Wire 8 Wire Comments Less expensive than 5-wire or 8-wire Lower power than 5-wire More linear (without correction) than 5-wire Touch inaccuracies occur from flex layer damage or resistance changes Maintains touch accuracy with flex layer damage Inherent non-linearity often requires touch data correction Touch inaccuracies occur from resistance changes More expensive than 4 wire Lower power than 5 wire More linear (without correction) than 5-wire Touch inaccuracies occur from flex layer damaged Maintains touch accuracy with resistance changes Table 10 : Sensor Comparison © 2009 Microchip Technology, Inc. DS41393A-Page 25 8.3 4-Wire Sensor A 4-wire resistive touch sensor consists of a Stable and Flex layer, electrically separated by spacer dots. The layers are assembled perpendicular to each other. The touch position is determined by first applying a voltage gradient across the flex layer and using the stable layer to measure the flex layer’s touch position voltage. The second step is applying a voltage gradient across the stable layer and using the flex layer to measure the stable layer’s touch position voltage. The measured voltage at any position across a driven axis is predictable. A touch moving in the direction of the driven axis will yield a linearly changing voltage. A touch moving perpendicular to the driven axis will yield a relatively unchanging voltage. Figure 14: 4-Wire Decoding DS41393A-Page 26 © 2009 Microchip Technology, Inc. 8.4 8-Wire Sensor An 8-wire resistive touch sensor consist of a Stable and Flex layer, electrically separated by spacer dots. The layers are assembled perpendicular to each other. The touch position is determined by first applying a voltage gradient across the flex layer and using the stable layer to measure the flex layer’s touch position voltage. The second step is applying a voltage gradient across the stable layer and using the flex layer to measure the stable layer’s touch position voltage. The measured voltage at any position across a driven axis is predictable. A touch moving in the direction of the driven axis will yield a linearly changing voltage. A touch moving perpendicular to the driven axis will yield a relatively unchanging voltage. The basic decoding of an 8-wire sensor is similar to a 4-wire. The difference is that an 8-wire sensor has four additional interconnects used to reference sensor voltage back to the controller. A touch system may experience voltage losses due resistance changes in the bus bars and connection between the controller and sensor. The losses can vary with product use, temperature, and humidity. In a 4-wire sensor, variations in the losses manifest themselves as error or drift in the reported touch location. An 8-wire touch sensor automatically adjusts for the changes, with the additional four reference lines. The reference lines allow the controller to know what the voltage is, at the touch sensor bus bars. Figure 15: 8-Wire Decoding © 2009 Microchip Technology, Inc. DS41393A-Page 27 8.5 5-Wire Sensor A 5-Wire resistive touch sensor consists of a flex and stable layer, electrically separated by spacer dots. The touch position is determined by first applying a voltage gradient across the stable layer in the X-axis direction and using the stable layer to measure the axis touch position voltage. The second step is applying a voltage gradient across the stable layer in the Y-axis direction and using the flex layer to measure the axis touch position voltage. The voltage is not directly applied to the edges of the active layer, as it is for 4-wire and 8-wire sensors. The voltage is applied to the corners of a 5-wire sensor. To measure the X-axis, the left edge of the layer is driven with 0 Volts (ground), using connections to the upper left and lower left sensor corners. The right edge is driven with +5Vdc, using connections to the upper right and lower right sensor corners. To measure the Y-axis, the top edge of the layer is driven with 0 Volts (ground), using connections to the upper left and upper right sensor corners. The bottom edge is driven with +5Vdc, using connections to the lower left and lower right sensor corners. The measured voltage at any position across a driven axis is predictable. A touch moving in the direction of the driven axis will yield a linearly changing voltage. A touch moving perpendicular to the driven axis will yield a relatively unchanging voltage. Figure 16: 5-Wire Decoding 8.6 Summary The AR1000 series resistive touch screen controllers will work with any manufacturers of analog resistive 4, 5, and 8-wire touch screens. The communications and decoding are included, allowing the user the quickest simplest method of interfacing analog resistive touch screens into their applications. The AR1000 series was designed with an understanding of the materials and processes that make up resistive touch screens. The AR1000 series touch controller is not only reliable, but can enhance the reliability and longevity of the resistive touch screen. DS41393A-Page 28 © 2009 Microchip Technology, Inc. 9 ELECTRICAL SPECIFICATIONS 9.1 Absolute Maximum Ratings(†) Ambient temperature under bias..........................................................................................................-40° to +125°C Storage temperature ........................................................................................................................ -65°C to +150°C Voltage on VDD with respect to VSS .................................................................................................. -0.3V to +6.5V Voltage on all other pins with respect to VSS .......................................................................... -0.3V to (VDD + 0.3V) Total power dissipation …..............................................................................................................................800 mW Maximum current out of VSS pin ................................................................................................................... 300 mA Maximum current into VDD pin ...................................................................................................................... 250 mA Input clamp current (VI < 0 or VI > VDD)........................................................................................................± 20 mA Maximum output current sunk by any I/O pin.................................................................................................... 25 mA Maximum output current sourced by any I/O pin .............................................................................................. 25 mA † NOTICE: Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions above those indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability. This device is sensitive to ESD damage and must be handled appropriately. Failure to properly handle and protect the device in an application may cause partial to complete failure of the device. © 2009 Microchip Technology, Inc. DS41393A-Page 29 10 PACKAGING 10.1 20 Lead SOIC Figure 17 : 20 Lead SOIC Package DS41393A-Page 30 © 2009 Microchip Technology, Inc. 10.2 20 Lead SSOP Figure 18 : 20 Lead SSOP Package © 2009 Microchip Technology, Inc. DS41393A-Page 31 10.3 20 Lead QFN (ML) The metal plate on the package bottom can be floated, but connecting it to VSS (circuit ground) is recommended. Figure 19 : 20 Lead QFN Package DS41393A-Page 32 © 2009 Microchip Technology, Inc. © 2009 Microchip Technology, Inc. DS41393A-Page 33