December 2003 LM8300/LM8500 Four Wire Resistive Touchscreen Controller with Brownout 1.0 General Description The LM8300/8500 is a 4-wire resistive touch screen controller. The controller samples and drives the touch screen without the need of any external hardware. The built in 10-bit A/D provides a maximum of 500 coordinate pairs per second (cpps). The data sampled from the touch screen is sent out on the UART at a speed of 38400 bps. The controller has a power-saving mode which causes the controller to self-power down when no touch is detected on the touch screen for a specified amount of time. In the self-power down mode, the current drawn is typically less than 2 A. The device resumes normal operation when a touch is detected on the touch screen or communication is detected on the UART. In addition to the self-power down mode, the controller can be disabled by pulling the SHUTDOWN pin low. The controller resumes normal operation when the SHUTDOWN pin is tristated or pulled high. The controller has an internal non-volatile memory storage element to store configuration data such as calibration points or controller configurations. Devices included in this datasheet: Device Operating Voltage Brownout Voltage Operating Frequency I/O Pins Packages Temperature LM8300 3, 5 V 2.7 to 2.9 V 3.27 MHz 18 44 LLP, 44 PLCC, 48 TSSOP 0C to +70C LM8500 5V 4.17V to 4.5V 3.27, 10 MHz 18 44 LLP, 44 PLCC, 48 TSSOP 0C to +70C 2.0 Features KEY FEATURES n Supports 4 wire resistive touch panels n Low power standby current typically less than 2 A at 5.5V n Maximum speed of 500 coordinate pairs per second n Automatic wake up and return to standby n 10 bit A/D n On-chip touch screen current drivers - no external driver required n UART interface n Controller configurations are stored in the internal non-volatile storage element n Touch pressure can be measured APPLICATIONS n Personal Digital Assistants n Smart Hand-Held Devices n Touch Screen Monitors n Point-of-Sales Terminals n KIOSK n Pagers n Cell Phones COP8TM is a trademark of National Semiconductor Corporation. (c) 2004 National Semiconductor Corporation DS200372 www.national.com LM8300/LM8500 Four Wire Resistive Touchscreen Controller with Brownout PRELIMINARY LM8300/LM8500 3.0 Block Diagram 20037201 * This pin is available in the LM8500. It is unused in the LM8300. 4.0 Ordering Information Part Numbering Scheme LM 8300 H VA 9 Family and Feature Set Indicator No. Of Pins Package Type Temperature 8300 = Low Brownout Voltage 8500 = High Brownout Voltage www.national.com H = 44 Pin I = 48 Pin 2 LQ = LLP MT = TSSOP VA = PLCC 9 = 0 to +70C 3 www.national.com LM8300/LM8500 Table of Contents 1.0 General Description ..................................................................................................................................... 1 2.0 Features ....................................................................................................................................................... 1 3.0 Block Diagram .............................................................................................................................................. 2 4.0 Ordering Information .................................................................................................................................... 2 5.0 Connection Diagrams ................................................................................................................................... 4 6.0 Pin Descriptions ........................................................................................................................................... 5 7.0 Absolute Maximum Ratings ......................................................................................................................... 7 8.0 Electrical Characteristics .............................................................................................................................. 7 9.0 Functional Description .................................................................................................................................. 8 9.1 GENERAL ................................................................................................................................................. 8 9.2 ADVANCED PIN DESCRIPTIONS ............................................................................................................ 8 9.3 USART FRAMING FORMAT ..................................................................................................................... 9 9.3.1 Data packet format table ..................................................................................................................... 9 9.3.2 Command Bytes .................................................................................................................................. 9 9.3.3 Advanced Command Bytes Descriptions .......................................................................................... 10 10.0 Oscillator .................................................................................................................................................. 12 11.0 Power Save Mode (Low Power Stand-by) ............................................................................................... 13 12.0 Averaging Algorithm ................................................................................................................................. 13 12.1 DELTA ALGORITHM ............................................................................................................................. 13 12.2 FOCUS ALGORITHM ............................................................................................................................ 14 12.3 COMMUNICATION MODES ................................................................................................................. 14 13.0 Brownout Reset ........................................................................................................................................ 14 14.0 Calibration ................................................................................................................................................ 15 14.1 GENERAL CALIBRATION PROCEDURES .......................................................................................... 16 14.2 CALIBRATION PROCEDURES WITH COORDINATES CHECKING ENABLED ................................. 17 14.3 CALIBRATION PROCEDURES WITH COORDINATES CHECKING DISABLED ................................ 18 15.0 Revision History ....................................................................................................................................... 18 16.0 Physical Dimensions ................................................................................................................................ 19 LM8300/LM8500 5.0 Connection Diagrams 20037202 * This pin is available in the LM8500. It is unused in the LM8300. Top View Plastic Chip Package See NS Package Number V44A 20037204 * This pin is available in the LM8500. It is unused in the LM8300. Top View TSSOP Package See NS Package Number MTD48 20037203 * This pin is available in the LM8500. It is unused in the LM8300. Top View LLP Package See NS Package Number LQA44A www.national.com 4 Pinouts for 44- and 48-Pin Packages Pin Name Direction Pin Description 44-Pin LLP 44-Pin PLCC 48-Pin TSSOP RESET I Reset pin, pull low to reset 6 1 1 DTR I UART data terminal ready signal 7 2 2 O Watchdog output, tie to RESET pin for correct function 8 3 3 I Used to set if crystal is 3.3 MHz (low) or 10 MHz (floating or pulled high) 9 4 4 WD_OUT CLK_SET1 Unused2 10 5 5 Unused2 11 6 6 Unused2 12 7 7 Unused 2 13 8 8 OSC_OUT O Clock oscillator output 14 9 9 OSC_IN I Clock oscillator input 15 10 10 2 16 11 11 Unused2 17 12 12 Unused UART_TX O UART transmit pin (inverted for use with standard RS-232 drivers) 18 13 13 UART_RX I UART receive pin (inverted for use with standard RS-232 drivers 19 14 14 SHUTDOWN I Shutdown pin, puts the device in halt mode if pulled low 20 15 15 Unused2 21 16 16 Unused2 22 17 17 WAKE-UP I Used to wake up the processor from halt mode with touch on touch screen 23 18 18 X+ I/O Drives the X+ wire, also analog input when sampling 24 19 19 Y- I/O Drives the Y- wire, also analog input when sampling 25 20 20 X- I/O Drives the X- wire, also analog input when sampling 26 21 21 Y+ I/O Drives the Y+ wire, also analog input when sampling 27 22 22 Unused2 28 23 23 Unused2 29 24 24 FILTER_OUT O Analog output to the filter 30 25 25 FILTER_IN I Analog input from the filter 31 26 26 GND Digital ground 32 27 27 AGND Analog ground 33 28 28 AVCC Analog power supply, connect to filter for best performance 34 29 31 VCC Digital power supply 35 30 32 X X 33 Unused2 Unused 2 X X 34 Unused2 36 31 35 Unused2 37 32 36 2 38 33 37 Unused2 39 34 38 Unused2 40 35 39 Unused2 41 36 40 Unused 5 www.national.com LM8300/LM8500 6.0 Pin Descriptions LM8300/LM8500 6.0 Pin Descriptions (Continued) Pinouts for 44- and 48-Pin Packages (Continued) Pin Name LED Direction Pin Description Optional LED output, low when running, high in halt-mode 44-Pin LLP 44-Pin PLCC 48-Pin TSSOP 42 37 41 Unused2 3 42 46 2 4 43 47 Unused2 5 44 48 Unused Output Note 1: This is available in the LM8500 only. Note 2: These pins are for future functional expansions. www.national.com 6 Total Current out of GND Pin (Sink) 3) Storage Temperature Range If Military/Aerospace specified devices are required, please contact the National Semiconductor Sales Office/ Distributors for availability and specifications. ESD Protection Level Supply Voltage (VCC) Voltage at Any Pin -65C to +140C 2 kV (Human Body Model) Note 3: Absolute maximum ratings indicate limits beyond which damage to the device may occur. DC and AC electrical specifications are not ensured when operating the device at absolute maximum ratings. 7V -0.3V to VCC +0.3V Total Current into VCC Pin (Source) 200 mA 200 mA 8.0 Electrical Characteristics DC Electrical Characteristics (0C TA +70C) Datasheet min/max specification limits are guaranteed by design, test, or statistical analysis. Parameter Conditions Min Typ Max Units Operating Voltage 2.7 5.5 V Power Supply Rise Time 10 50 x 106 ns 0.1 VCC V Power Supply Ripple (Note 4) Peak-to-Peak Supply Current (Note 5) High Speed Mode CKI = 10 MHz VCC = 5.5V 11.5 mA CKI = 3.33 MHz VCC = 4.5V 5 mA 10 A 45 A HALT Current with BOR Disabled (Note 6) High Speed Mode Supply Current for BOR Feature <2 VCC = 5.5V, CKI = 0 MHz VCC = 5.5V High Brownout Trip Level (BOR Enabled) 4.17 4.28 4.5 V Low Brownout Trip Level (BOR Enabled) 2.7 2.78 2.9 V Input Levels (VIH, VIL) Logic High 0.8 VCC V Logic Low Internal Bias Resistor for the CKI Crystal/Resonator Oscillator 0.16 VCC V 2.5 M -0.5 +0.5 A -50 -210 A 0.3 Hi-Z Input Leakage VCC = 5.5V Input Pullup Current VCC = 5.5V, VIN = 0V Port Input Hysteresis 1.0 0.25 VCC V Output Current Levels Outputs X+, X-, Y+, YSource (Note 7) VCC = 4.5V, VOH = 4.2V -10 mA VCC = 2.7V, VOH = 2.4V -6 mA Sink (Note 7) VCC = 4.5V, VOL = 0.3V 10 mA VCC = 2.7V, VOL = 0.3V 6 mA Allowable Sink and Source Current per Pin 20 mA All Others Source (Weak Pull-Up Mode) VCC = 4.5V, VOH = 3.8V -10 VCC = 2.7V, VOH = 1.8V -5 A Source (Push-Pull Mode) VCC = 4.5V, VOH = 3.8V -7 mA VCC = 2.7V, VOH = 1.8V -4 mA Sink (Push-Pull Mode) (Note 7) VCC = 4.5V, VOL = 1.0V 10 mA VCC = 2.7V, VOL = 0.4V 3.5 Allowable Sink and Source Current per Pin TRI-STATE Leakage VCC = 5.5V -0.5 Maximum Input Current without Latchup RAM Retention Voltage, VR (in HALT Mode) 2.0 7 A mA 15 mA +0.5 A 200 mA V www.national.com LM8300/LM8500 7.0 Absolute Maximum Ratings (Note LM8300/LM8500 8.0 Electrical Characteristics (Continued) DC Electrical Characteristics (0C TA +70C) (Continued) Datasheet min/max specification limits are guaranteed by design, test, or statistical analysis. Parameter Conditions Min Typ Input Capacitance Note 4: Maximum rate of voltage change must be < 0.5 V/ms. Max Units 7 pF Note 6: The HALT mode will stop CKI from oscillating. Measurement of IDD HALT is done with device neither sourcing nor sinking current; all inputs tied to VCC; A/D converter and clock monitor and BOR disabled. Note 5: Supply and IDLE currents are measured with CKI driven with a square wave Oscillator, CKO driven 180 out of phase with CKI, inputs connected to VCC and outputs driven low but not connected to a load. Note 7: Absolute Maximum Ratings should not be exceeded. A/D Converter Electrical Characteristics (0C TA +70C) (Single-ended mode only) Datasheet min/max specification limits are guaranteed by design, test, or statistical analysis. Parameter Conditions Min Typ Resolution DNL VCC = 5V DNL VCC = 3V INL VCC = 5V INL VCC = 3V Offset Error VCC = 5V Offset Error VCC = 3V Gain Error VCC = 5V Gain Error VCC = 3V Input Voltage Range 2.7V VCC < 5.5V Units 10 Bits 1 1 2 4 1.5 2.5 1.5 2.5 LSB LSB LSB LSB LSB LSB LSB LSB VCC V Analog Input Leakage Current 0.5 A Analog Input Resistance (Note 8) 6k Analog Input Capacitance 7 pF 0.6 mA Operating Current on AVCC 0 Max AVCC = 5.5V 0.2 Note 8: Resistance between the device input and the internal sample and hold capacitance. 9.2 ADVANCED PIN DESCRIPTIONS CLK_SET -- This pin is the selection pin used to determine the operating frequency of the controller. On power up, the controller polls this pin to determine if the operating frequency is set to 10 MHz or 3.3 MHz. If the pin is left floating or tied high, then the operating frequency is 10 MHz. If the pin is tied low, then the operating frequency is set to 3.3 MHz. 9.0 Functional Description 9.1 GENERAL The LM8300/8500 is a 4-wire resistive touch screen controller. The primary communication is through the built in UART operating at a baud rate of 38400. The LM8300/8500 has the ability to measure pressure on the Z-axis, in addition to the X-Y coordinates. The device has the capability to do a 2, 5, and 13 point calibration. All calibration data is stored in the internal nonvolatile storage element. In addition, all settings pertaining to the controller are stored internally. This feature negates the need for external EEPROM. The device has three built in averaging algorithms: oversampling, delta, and focus. These algorithms help to minimize noise and A/D variation due to noise. Refer to the averaging algorithm section for a more detail explanation. These algorithms are implemented on-chip, freeing the main processor from these tasks. To further minimize noise in extremely noisy environments, the device has the ability to route the signal from the touch panel to an external filtering stage before A/D conversions are performed. To minimize power consumption, the device can be put into power save mode. The device can be set to go into power save mode automatically or manually by pulling the external shutdown pin low. www.national.com Note: This is available on the LM8500 only. SHUTDOWN -- This is the external shut down pin. When pulled low, the controller goes into power saving mode. This selection pin state has higher priority than the internal power save mode settings. WAKE_UP -- This pin is used to wake the controller from power save mode. When the device is in power save mode, the pin must be tied to one of X-Y lines coming from the touch screen panel. X+ -- Connect to X+ terminal of the resistive screen. X- -- Connect to X- terminal of the resistive screen. Y+ -- Connect to Y+ terminal of the resistive screen. Y- -- Connect to Y- terminal of the resistive screen. Filter_out -- Analog output to external filter. The use of the external filter is controlled by sending a command byte of $A0 on the UART to the controller. Filter_in -- Analog input from external filter. The use of the external filter is controlled by sending a command byte of $A0 on the UART to the controller. 8 A command byte is distinguished by having the 7th bit of the command byte set (1). If any data byte(s) is to follow, the 7th bit of the data byte is reset (0). Data packets sent to the host software can be either four or five bytes in length. If the pressure measurement is enabled, five bytes are sent. If the pressure measurement is not enabled, four bytes are sent. (Continued) LED -- Optional LED output. When the controller is operating in normal (non power save) mode, a low is output to the pin. When the controller is in power save mode, a high is output to the pin. RESET -- Reset pin. When pulled low, a manual reset is executed. For normal operation, this pin must be pulled high. Under no circumstances should the pin be left floating. The first byte of each data packet is a header byte. This header byte is used to synchronize and differentiate between four or five byte packages. If a four byte data package is sent, the 4th bit of the header byte is reset (0). If a five byte data package is sent, the 4th bit of the header byte is set (1). UART_TX -- UART transmit pin. The signal is inverted for use with standard RS-232 drivers. UART_RX -- UART receive pin. The signal is inverted for use with standard RS-232 drivers. DTR -- Data Terminal Ready signal for the UART. If a high level is detected on the pin, this signals that the UART is not ready. If a low level is detected on the pin, this signals that the UART is ready. WD_Out -- Watch dog output. For correct operation, this pin should be connected to the RESET pin. OSC_OUT -- Clock oscillator output pin. OSC_IN -- Clock oscillator input pin The 6th bit of the second byte of the data packet is used to indicate the touch state. If the bit is set (1), then a touchdown or continuous touch is detected. If the bit is reset (0), then a liftoff is detected. 9.3.1 Data packet format table Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 1 0 0 L 0 0 0 0 Byte 2 0 S X2 X1 X0 Y2 Y1 Y0 GND -- Digital Ground Byte 3 0 X9 X8 X7 X6 X5 X4 X3 AGND -- Analog ground DVCC -- Digital power supply. AVCC -- Analog power supply. For best performance, this pin should be connected to a filter. Users of the LLP package are cautioned to be aware that the central metal area and the pin 1 index mark on the bottom of the package may be connected to GND. See figure below: Byte 4 0 Y9 Y8 Y7 Y6 Y5 Y4 Y3 Byte 5 0 Z6 Z5 Z4 Z3 Z2 Z1 Z0 L - Package length. (0 = 4 bytes, 1 = 5 bytes) S - Touch state (0 = liftoff, 1 = touchdown or continuous touch) XX - X position (10 bit value) YY - Y position (10 bit value) ZZ - Z positon (7 bit value), this byte is only transmitted if the pressure measurement is enabled 9.3.2 Command Bytes PC Command 20037216 PC Byte 1 PC Byte 2 TSC Byte 1 Read clock-speed (3,33MHz, 10MHz) $B0 $CA $00, $01 Read parameters $B1 $CA Section 9.3.3 Advanced Command Bytes Descriptions Read software version number $B2 $C7 Section 9.3.3 Advanced Command Bytes Descriptions Read # of calibration points $B3 $CA $00, $02, $05, $0D FIGURE 1. LLP Package Bottom View 9.3 USART FRAMING FORMAT The device communicates with the touch screen driver using the UART set at a baud rate of 38400, 8, n, 1. All communication from the host software and the controller consists of a command byte and occasionally data byte(s). If data byte(s) follow a command byte, it must be sent directly after the command byte. If the device is in the power save mode, a delay must be inserted between the wake up command and the command byte. Refer to the Power Save mode section for more details. For every command byte sent to the controller, an acknowledge byte is sent back and sometimes data byte(s). 9 TSC Byte 2 www.national.com LM8300/LM8500 9.0 Functional Description LM8300/LM8500 9.0 Functional Description PC Command Read stored calibration points Set focus value (# of pixels on touch panel) PC Byte 1 PC Byte 2 $B4 $B8 TSC Byte 1 $CA $0-$3F $CA (Continued) TSC Byte 2 $00-$3F $01, $02, $04, $08, $10, $20 Set $BB communication mode (stream, touchdown, liftoff) $01, $02, $04 Set max delta $BC (# of pixels from predicted coordinate) $00-$3F Set calibration $BD points Section $CA 9.3.3 Advanced Command Bytes Descriptions Section 9.3.3 Advanced Command Bytes Descriptions $00-$7F $CA $00-$7F Toggle $A0 disable/enable external filter path $CA $00, $01 Toggle $A2 disable/enable self power-down $CA $00, $01 Toggle $A3 disable/enable echo mode $CA $00, $01 Toggle $A4 disable/enable pressure measurements $CA $00, $01 Set minimum pressure www.national.com $BE $CA $CA PC Byte 1 PC Byte 2 Toggle $A5 disable/enable calibration coordinate check Section 9.3.3 Advanced Command Bytes Descriptions Set # of $BA samples per coordinate (1, 2, 4, 8, 16, 32) $CA PC Command TSC Byte 1 $CA Wakeup $A7 Shutdown $A8 $CA Soft reset $AF $CA TSC Byte 2 $00, $01 $CB, $CC TSC Replies $01, $02, $04, $08, $10, $20 $01, $02, $04 Timeout $CF Re-send $CE Self test failed $CC Self test ok $CB Acknowledge $CA Calibration coordinates ok $C4 Error / buffer overrun $C8 Software version $C7 Data transmit $80/$90 Payload (3/4 bytes) $00-$3F $0-$7F 9.3.3 Advanced Command Bytes Descriptions Unless otherwise mentioned, all values are in hex. $B0: Read clock-speed Reply Byte #1: $CA (Acknowledge) Byte #2: Clock readout (0 = 3.3MHz, 1 = 10MHz) CLK_SEL pin tells the firmware which oscillator speed is used. If the CLK_SEL input pin is floating or pulled high a 10.0MHz oscillator must be connected. If the pin is pulled low a 3.3MHz oscillator must be connected. This command enables the driver software to determine which oscillator speed is used with the touch screen controller, as this determines the maximum coordinate pair per second data rates. Note: This is available in the LM8500 only. $B1: Read parameters Reply Byte #1: $CA (Acknowledge) Reply Byte #2: First byte in software version number, year 20 (00-99) Reply Byte #3: Communication mode (1 = stream, 2 = touchdown, 4 = liftoff) Byte #4: Wakeup on touch (0 = disabled, 1 = enabled) Reply Byte #5: Number of samples (1,2, 4, 8, 16 or 32) Byte #6: Clock readout (0 = 3.3MHz, 1 = 10MHz) Byte #7: Second byte in software version number, month (1-12) Byte #8: Third byte in software version number, day (1-31) Byte #9: Focus value (0-63) Byte #10: Max delta (0-63) 10 - 4 samples/coordinate, $08 - 8 samples/coordinate, $10 - 16 samples/coordinate, $20 - 32 samples/coordinate) (Continued) Byte #11: Number of calibration coordinates (0, 2, 5 or 13) Byte #12: Toggle-flags: Reply Byte #1: $CA (Acknowledge) Byte #2: Number of samples per coordinate ($01 - 1 samples/coordinate, $02 - 2 samples/coordinate, $04 4 samples/coordinate, $08 - 8 samples/coordinate, $10 - 16 samples/coordinate, $20 - 32 samples/coordinate) Bit #5: calibration coordinates check (0=disabled, 1=enabled) Bit #4: Pressure measurement (0=disabled, 1=enabled) Bit #3: Echo mode (0=disabled, 1=enabled) This command allows the selection of different sample numbers per X, Y, and Z coordinates. The higher the number of samples per X, Y, and Z coordinates, the better the accuracy, but the lower the coordinates per second data rate. The default setting is 8. $BB: Set communication mode Bit #2: Self Power-Down mode (0=disabled, 1=enabled) Bit #1: Unused Bit #0: External filter path (0=disabled, 1=enabled) Byte #13: Pressure threshold for valid touch Byte #2: Communication mode ($01 = stream, $02 = touchdown, $04 = liftoff) Reply Byte #1: $CA (Acknowledge) This command allows the user to read all the selected parameters. It is primary intended to aid in debugging. This command can also be used if a configuration utility needs to determine the current setting of controller. $B2: Read software version number Reply Byte #1: $C7 (Software version number) Byte #2: Communication mode ($01 = stream, $02 = touchdown, $04 = liftoff) See the communication modes section for a description of the stream, touchdown and liftoff modes. This command selects the communication mode. The default setting is stream mode. $BC: Set max delta Byte #2: Max delta value (0-63) Reply Byte #1: $CA (Acknowledge) Byte #2: Max delta value (0-63) Byte #2: First byte in version number, year 20 (00-99) Byte #3: Second byte in version number, month (1-12) Byte #4: Third byte in version number, day (1-31) $B3: Read # of calibration points Reply Byte #1: $CA (Acknowledge) Byte #2: ($00 -- no calibration done, $02 -- 2 points, $05 -- 5 points or $0D -- 13 points) $B4: Read stored calibration points Reply Byte #1: $CA (Acknowledge) Byte #2: ($00 -- no calibration done, $02 -- 2 points, $05 -- 5 points or $0D -- 13 points) Byte #3: X-max (2 MSB for coordinate 1) Byte #4: X-min (8 LSB for coordinate 1) Byte #5: Y-max (2 MSB for coordinate 1) Byte #6: Y-min (8 LSB for coordinate 1) See the averaging algorithms section for a detailed description of this setting. Simply put, this command sets how much the "coordinate velocity" can change from one coordinate to the next. The default setting is 8. $BD: Set calibration points Byte #2: High nibble: Number of calibration points ($01 = two, $02 = five, $04 = thirteen) Low nibble: Active calibration cross (1-13 = cross #) Reply Byte #1: $CA (Acknowledge) Byte #2: High nibble: Number of calibration points ($01=two, $02=five, $04=thirtheen) Low nibble: Active calibration cross # (1-13) Continue until all coordinates have been sent. A zero is send back if calibration has not been performed and there are no data bytes. $B8: Set focus value Byte #2: Focus value (0-63) Reply Byte #1: $CA (Acknowledge) Byte #2: Focus value (0-63) Refer to the calibration section for details. $BE: Set minimum pressure Byte #2: Minimum pressure value (0-127) Reply Byte #1: $CA (Acknowledge) Byte #2: Minimum pressure value (0-127) The set focus command allows the setting of different values to improve touch screen focusing. Focusing is defined as the ability of the touch screen controller to detect exactly identical coordinate values from measurement to measurement if the pointer on the touch screen has not moved. The focus values are equivalent to pixels of touch screen resolution. If for example a value of 2 is selected, this means that every coordinate value that is within two pixels of the previously measured coordinate value is considered to be identical to that previous value and that in this case the touch screen controller transmits the previous coordinate information. This keeps the mouse pointer steady at the point being touched, rather than "jumping around" the point. A Focus value of zero disables the focusing algorithm. The default setting is 4. $BA: Set number of samples per coordinate Byte #2: Number of samples per coordinate ($01 - 1 samples/coordinate, $02 - 2 samples/coordinate, $04 This setting controls how high the pressure (Z-axis) must be in order for samples to be accepted. Setting this value too low may result in having faulty coordinates accepted. This value is internally multiplied by two in the controller (due to the 7-bit limitation in the communication format, which can not send 8-bit values larger than 127 in one byte). The default setting is 40. $A0: Toggle disable/enable external filter path Reply Byte #1: $CA (Acknowledge) Byte #2: (0 = now disabled, 1 = now enabled) This command enable/disable external filter path. The external filter path enabled option will require the addition of a single external low pass filter (either R/C or active OpAmp based), which is then applied to the touch screen signal 11 www.national.com LM8300/LM8500 9.0 Functional Description LM8300/LM8500 9.0 Functional Description CONTROLLER REPLIES $CF: Timeout. (Continued) lines. This option can be used in high noise environments to significantly improve performance and accuracy of the touch screen controller. The default setting is filter path enabled. $A2: Toggle disable/enable self-power down Communication timeout has occurred, and current command has been aborted. $CE: Re-send Request the TSC driver to resend the last command. This command is used if the controller does not understand the received command or a buffer overrun condition occurs. $CC: Self test fail (done at startup, reset, and after calibration) $CB: Self test OK (done at startup, reset, and after calibration) Reply Byte #1: $CA (Acknowledge) Byte #2: (0 = now disabled, 1 = now enabled) This command can switch between self-power down mode enable or disabled. Refer to the Power Save Mode section for details. The default setting is Self-Power Down mode enabled. If the echo mode is enabled, any command byte send to the device will be echo back and executed. $A3: Toggle disable/enable echo mode $CA: Acknowledge $C4: Calibration coordinates OK This is sent if the coordinates are within the predefined value. $C8: Error / TX Buffer overrun Reply Byte #1: $CA (Acknowledge) Byte #2: (0 = now disabled, 1 = now enabled) The echo mode is available for debugging purposes. If enabled, the touch screen controller will echo back any data that is received via the UART interface. The default setting is Echo mode disabled. $A4: Toggle disable/enable pressure measurement Reply Byte #1: $CA (Acknowledge) This is added to the last place in transmit buffer to signal that a buffer overrun has occurred. $C7: Software Version number Byte #2: First byte of version number Byte #3: Second byte of version number Byte #4: Third byte of version number $80: Format tablet for Z-axis disabled (see Format Table section for more info.) Byte #2: (0 = now disabled, 1 = now enabled) The pressure measurement sets the touch screen to also sample the Z-axis when reading the X and Y coordinates. The default setting is pressure measurement enabled. $A5: Toggle disable/enable calibration checking. Reply Byte #1: $CA (Acknowledge) Byte #2: (0 = now disabled, 1 = now enabled) Byte #2: Status, low X and low Y Byte #3: High X Byte #4: High Y $90: Format tablet for Z-axis enabled (see Format Table section for more info.) If the cablibration checking is enabled, the cablibration mapping must be the values shown in ??? to ???. $A7: Wakeup Byte Byte Byte Byte There is no reply byte to this command. When the self-power down mode of the device is enabled, the touch screen driver must send a wakeup command prior to any command byte(s). If the self-power down mode of the TSC is enabled. The wakeup command must also to be sent if the driver puts the TSC in power-down mode via the shutdown command. $A8: Shutdown Reply Byte #1: $CA (Acknowledge) Status, low X and low Y High X High Y Z-axis (0-127) 10.0 Oscillator OSC_IN is the clock input while OSC_OUT is the clock generator output to the crystal. Table 1. Crystal Oscillator Configuration, TA = 25C, VCC = 5V shows the component values required for various standard crystal values. Figure 2 shows the crystal oscillator connection diagram. When the TSC driver wants the controller to go into power save mode it sends a shutdown command to the controller. The driver needs to send a wakeup to the controller before starting up the communication again. With the TSC has the self-power-down mode enabled, then a touchdown on the touch screen will wake-up the TSC from shutdown mode in addition to sending the wake up command. If the self-power-down mode is disabled, then only the wakeup command can wake-up the controller from shutdown mode (i.e. wake-up on touchdown is disabled). $AF: Soft reset (restart the controller) Reply Byte #1: $CA (Acknowledge) Byte #2: $CB/$CC (Self test OK/Self test fail) 20037215 FIGURE 2. Crystal Oscillator When the PC driver sends the soft reset command, the touch screen controller executes a soft reset, which clears and re-initializes all internal RAM configuration registers from on-chip FLASH and performs a self-check of internal RAM and program memory. www.national.com #2: #3: #4: #5: 12 command. After the controller wakes up, the UART transmit and receive buffers are cleared and resume normal operation. (Continued) TABLE 1. Crystal Oscillator Configuration, TA = 25C, VCC = 5V TABLE 2. Startup Times C1 (pF) C2 (pF) CKI Freq. (MHz) CKI Frequency Startup Time 18 18 10 10 MHz 1-10 ms 18-36 18-36 3.27 3.33 MHz 3-10 ms The crystal and other oscillator components should be placed in close proximity to the OSC_IN and OSC_OUT pins to minimize printed circuit trace length. 12.0 Averaging Algorithm To achieve better accuracy and noise filtering, each X, Y, and Z coordinate is oversampled by specific amount. The possible oversampling settings are 1, 2, 4, 8, 16, and 32. The factory setting is 8. The greater the oversampling, the greater the accuracy, but the lower the CPPS. The values for the external capacitors should be chosen to obtain the manufacturer's specified load capacitance for the crystal when combined with the parasitic capacitance of the trace, socket, and package (which can vary from 0 to 8 pF). The guideline in choosing these capacitors is: Manufacturer's specified load cap = (C1 * C2) / (C1 + C2) + Cparasitic C2 can be trimmed to obtain the desired frequency. C2 should be less than or equal to C1. Samples per coordinate vs. CPPS for LM8300 11.0 Power Save Mode (Low Power Stand-by) The power consumption of the controller can be minimized by enabling the low power stand by mode. The power save mode can be controlled internally by sending a command of $A2 to the controller, externally by pulling the SHUTDOWN pin low, or by issuing a driver shutdown command of $A8. The self power down mode is enabled/disabled by sending a command of $A2 to the controller. When enabled, the controller automatically goes into low power stand by if no more touch activity is detected or if there is no UART communication. The controller automatically comes out of low power stand by mode when a touch is detected on the touch panel or if an incoming communication on the UART is detected. In the low power stand by mode, all activity is disabled, including the oscillator. Also, the LED pin is driven high. To wake up the controller on the UART, the wake up command byte must be sent, followed by a minimum time delay of 1ms for the LM8500 and 3ms for the LM8300 before sending any command byte. The delay time is needed to allow the oscillator to restart and stabilize. Table 2. Startup Times shows the average startup time for a given operating frequency. The SHUTDOWN pin will shut down the controller when pulled low. When the SHUTDOWN pin is pulled low, the controller will continue to be in the low power stand by mode until the pin is pulled high or released. While the SHUTDOWN pin is pulled low, all activities are stopped and any touch or communication will be ignored. Immediately following the SHUTDOWN pin being released or pulled high, the controller clears the UART transmit and receive buffers and resumes normal operation. The controller can be put in the low power stand by mode by sending a $A8 command to it. Upon receiving this command, the controller goes into low power stand by mode. If the self power down mode is enabled and the controller is put into low power stand by mode, the controller will wake up if the wake up command ($A7) is received or if a touch is detected on the touch panel. If the self power down mode is disabled and the controller is put into low power stand by mode, the controller can only be woken up if it receives the wakeup Samples per coordinate Coordinate pairs per second (CPPS) 1 250 2 220 4 190 8 150 16 100 32 65 Samples per coordinate vs. CPPS for LM8500 Samples per coordinate Coordinate pairs per second (CPPS) 1 500 2 430 4 360 8 270 16 190 32 110 12.1 DELTA ALGORITHM The delta filter is used to remove large variations in sampled values due to noise and glitches. The delta filter tries to predict where the next coordinate could be. This is done by taking the two previous coordinates and subtracting one from the other, producing a delta value. This delta value is then added or subtracted to the last coordinate. The resulting value is the predicted coordinate. If the new sampled coordinate is close to this predicted value, then the new value is accepted as valid and is passed to the focus algorithm, provided the focus algorithm is enabled. If the new sampled coordinate is not close to the predicted coordinate, then the value is discarded and is stored to be used in the following delta calculations. The number by which the new sampled coordinate can differ from the predicted coordinate is controlled by setting the Set Max Delta value. The Set Max Delta value can be from a value of 0-63. The factory default is 8. 13 www.national.com LM8300/LM8500 10.0 Oscillator LM8300/LM8500 12.0 Averaging Algorithm (Continued) 12.2 FOCUS ALGORITHM The focus algorithm removes some inaccuracy and noise that could cause the coordinate to differ only by a couple of pixels. The focus algorithm is used to eliminate the "jittering" effect of the pointer when the pointer is stationary. The focus algorithm compares the value of the previous stored value to the value passed from the delta algorithm and determines if the difference is greater than or equal to the Set Focus Value. If the difference is greater or equal to the value in Set Focus Value then the new coordinate is sent out through the UART and stored as the previous value. If the difference is less than the Set Focus Value then the value is discarded and the stored valued is set through the UART. The amount of difference between the new coordinate and the old coordinate is set in the Set Focus Value. This value can be from 0-63 with a value of 0 disabling the focus algorithm. The factory default is 4. 20037205 FIGURE 3. Optional Reset Circuit using External Reset When enabled, the device generates an internal reset as VCC rises. While VCC is less than the specified brownout voltage (Vbor), the device is held in the reset condition for tid = 120-128 s for the LM8500 and tid = 360-384 s for the LM8300. Once the tid reaches zero, the internal reset is released and the controller resume normal operation. This internal reset will perform the same functions as external reset. Once VCC is above the Vbor and tid reaches zero, instruction execution begins. If, however, VCC drops below the selected Vbor, an internal reset is generated, and tid is set to 120-128 s for the LM8500 and 360-384 s for the LM8300. The device now waits until VCC is greater than Vbor, at which time the countdown starts over. When enabled, the functional operation of the device, at frequency, is guaranteed down to the Vbor level. One exception to the above is that the brownout circuit will insert a delay of approximately 3 ms on power up or any time the VCC drops below a voltage of about 1.8V. The device will be held in Reset for the duration of this delay before tid starts count down. This delay starts as soon as the VCC rises above the trigger voltage (approximately 1.8V). This behavior is shown in Figure 4. In Case 1, VCC rises from 0V and the on-chip RESET is undefined until the supply is greater than approximately 1.0V. At this time the brownout circuit becomes active and holds the device in RESET. As the supply passes a level of about 1.8V, a delay of about 3 ms (td) is started and tid is preset with 120-128 s for the LM8500 or 360-384 s for the LM8300. Once VCC is greater than Vbor and td has expired, tid starts to count down. Case 2 shows a subsequent dip in the supply voltage which goes below the approximate 1.8V level. As VCC drops below Vbor, the internal RESET signal is asserted. When VCC rises back above the 1.8V level, td is started. Since the power supply rise time is longer for this case, td has expired before VCC rises above Vbor and tidstarts immediately when VCC is greater than Vbor. Case 3 shows a dip in the supply where VCC drops below Vbor, but not below 1.8V. On-chip RESET is asserted when VCC goes below Vbor and tid starts as soon as the supply goes back above Vbor. 12.3 COMMUNICATION MODES Liftoff When set to the liftoff mode, the controller only sends data through the UART on liftoff. The controller continuously samples the touchscreen as long as there is a touch detected on the touchscreen but only the last coordinate is sent out to the UART. Touchdown When set to the touchdown mode, the controller only sends data through the UART on touchdown. The controller continuously samples the touchscreen as long as there is a touch detected on the touchscreen but only the first coordinate is sent out to the UART. Streaming When set to the streaming mode, the controller continuously sends data through the UART as long as there is a touch detected on the touchscreen. 13.0 Brownout Reset The device is initialized when the RESET pin is pulled low or the On-chip Brownout Reset is activated. The RESET input initializes the device when pulled low. The RESET pin must be held low for a minimum of 0.5s for the LM8500 and a minimum of 1.5s for the LM8300 to guarantee a valid reset. Reset should also be wide enough to ensure crystal start-up upon power-up. The R/C circuit shown in Figure 3 is an optional circuitry that will provide a delay 5 times (5x) greater than the power supply. www.national.com 14 LM8300/LM8500 13.0 Brownout Reset (Continued) 20037206 FIGURE 4. Brownout Reset Operation a value between 120-128s for the LM8500 and 360-384s for the LM8300. At this time, the internal reset will be generated. The device has a built in watchdog monitoring module to prevent runaway code. To use the watchdog feature, the WD_OUT pin must be connected to the RESET pin. The WD_OUT pin has an internal weak pull-up so that, when the WD_OUT pin is connected to the RESET pin, the RESET pin does not require an external pull-up resistor to VCC. The internal reset will not be turned off until tid counts down to zero. The internal reset will perform the same functions as external reset. The device is guaranteed to operate at the specified frequency down to the specified brownout voltage. After the underflow, the logic is designed such that no additional internal resets occur as long as VCC remains above the brownout voltage. The device is relatively immune to short duration negative going VCC transients (glitches). Proper filtering of the VCC power supply voltage is essential for proper brownout functionality. Power supply decoupling is vital even in battery powered systems. There are two optional brownout voltages. The part numbers for the two versions of this device are: LM8500, Vbor = high voltage range. LM8300, Vbor = low voltage range. Refer to the device specifications for the actual Vbor voltages. High brownout voltage devices are guaranteed to operate at 10MHz down to the high brownout voltage. Low brownout voltage devices are guaranteed to operate at 3.33MHz down to the low brownout voltage. Low brownout voltage devices are not guaranteed to operate at 10MHz down to the low brownout voltage. Under no circumstances should the RESET pin be allowed to float. The RESET input may be connected to an external pull-up resistor to VCC or to other external circuitry. The output of the brownout reset detector will always preset tid to 14.0 Calibration The device supports two, five, and thirteen point calibration. If desired, the calibration points can be stored internally in the non-volatile storage element. During calibration time, the device has the unique ability to check if the calibration points make sense. For instance, if the desired calibration point was to be at the upper left hand corner, but by accident, the actual point detected was at the lower right hand corner, the device will reject this point. This ensures the calibration process is not performed incorrectly. The calibration checking, can be enabled or disabled. If the calibration checking is enabled, the controller will always check the current calibration point being done against the theoretical point and determine if the value is within 127 of the raw A/D values. If this option is desired, the touch screen driver must perform the calibration according to the calibration mapping for the two, five, and thirteen points as shown in Figure 5, Figure 6, and Figure 7, respectively. The theoretical values for the two, five, and thirteen points are shown 15 www.national.com LM8300/LM8500 14.0 Calibration TABLE 3. Two Points Calibration (Continued) Calibration point Theoretical X-value Theoretical Y-value in Table 3. Two Points Calibration, Table 4. Five Points Calibration, and Table 5. Thirteen Points Calibration respectively. 1 127 127 2 895 895 TABLE 4. Five Points Calibration Calibration point Theoretical X-value Theoretical Y-value 1 127 127 2 895 895 3 127 895 4 511 511 5 895 127 TABLE 5. Thirteen Points Calibration Calibration point Theoretical X-value Theoretical Y-value 20037207 FIGURE 5. Two Points Calibration Mapping 127 127 2 895 895 3 127 895 4 511 511 5 895 127 6 895 511 7 511 895 8 127 511 9 511 127 10 623 319 11 623 623 12 319 623 13 319 319 14.1 GENERAL CALIBRATION PROCEDURES Calibration is invoked by sending a command byte of $BD followed by a command byte to the device. The command byte is broken into two parts: the high nibble states the number of calibration points to performs and the lower nibble states the active calibration point. For example, to do the first calibration point for the two point calibration, the command bytes of $BD and $11 are sent to the device. The device then echos $BD and $11 back to the TS driver and waits for a touch on the panel. When a touch is detected, the device checks to see if the point is within the specified parameters if the calibration point checking is enabled. If the calibration point checking is disabled, the device will send a $C8 for OK byte to the TS driver regardless of where the touch was detected. This calibration point checking can be enabled or disabled by sending a command byte of $A5 to the device. When all the calibration points are done, the device will do a self-test and send a command of $CB for OK or a command of $CC for failed. If a $CC is received, the TS driver should issue a warning stating the calibration was not done properly and redo the calibration procedures. The flowchart for the calibration procedures is shown in Figure 8. 20037208 FIGURE 6. Five Points Calibration Mapping 20037209 FIGURE 7. Thirteen Points Calibration Mapping www.national.com 1 16 LM8300/LM8500 14.0 Calibration (Continued) 20037210 FIGURE 8. Calibration Procedures with Coordinates Checking Enabled 14.2 CALIBRATION PROCEDURES WITH COORDINATES CHECKING ENABLED To do TS calibration with coordinates checking enabled, first ensure the Calibration Coordinates Checking is enabled on the device. This can be accomplished by sending a command byte of $B1 (Read Parameters command) and checking the 5th bit of the 12th reply byte is set. Alternatively, if the device is set to Calibration Coordinates Checking enabled as default, this step can be skipped. The TS driver sends the command byte to do calibration ($BD). The TS driver should wait for the reply bytes and ensure it is the same command bytes it sent. The device waits for a touch to be detected on the panel. Once a touch is detected, the device checks it against the predetermined calibration values as noted on Table 3. Two Points Calibration, Table 4. Five Points Calibration , and Table 5. Thirteen Points Calibration. If the detected touch is within the predefined value ( 127 of the raw A/D value), the device will send a command of $C4 to the TS driver and store the calibration point in the internal flash. The TS driver can now send a command byte to do the next calibration point. If the detected touch is not within the predefined value, the device will send a reply byte of $C8 to the TS driver. Upon receiving this reply byte, the TS driver can resend the calibration command for the same calibration point, go the next calibration point, or abort the calibration process. Once all the calibration points are done, the device does a self-test. If the self-test was not successful, the device will 17 www.national.com LM8300/LM8500 14.0 Calibration ensure it is the same command bytes it sent. The device waits for a touch to be detected on the panel. Once a touch is detected, the device save the values into the internal flash and send a reply byte of $C4 to the TS driver. The TS driver can now send a command byte to do the next calibration point. Since the Calibration Checking is disabled, the TS driver should ensure the calibration point is within the range of the calibration cross. Once all the calibration points are done, the device does a self-test. If the self-test was not successful, the device will send a reply byte of $CC to the TS driver. At this point, the TS driver should either notify the user to redo the calibration point or automatically redo the calibration again. If the selftest was successful, the device will send a reply byte of $CB to the TS driver. (Continued) send a reply byte of $CC to the TS driver. At this point, the TS driver should either notify the user to redo the calibration point or automatically redo the calibration again. If the selftest was successful, the device will send a reply byte of $CB to the TS driver. 14.3 CALIBRATION PROCEDURES WITH COORDINATES CHECKING DISABLED To do TS calibration with coordinates checking disabled, first ensure the Calibration Coordinates Checking is disabled on the device. This can be accomplished by sending a command byte of $B1 (Read Parameters command) and checking the 5th bit of the 12th reply byte is not set. Alternatively, if the device is set to Calibration Coordinates Checking disabled as default, this step can be skipped. The TS driver sends the command byte to do calibration ($BD). The TS driver should wait for the reply bytes and 15.0 Revision History Date Section October 2002 May 2003 July 2003 December 2003 www.national.com Summary of Changes Initial release. All sections Removed LM8400 part. Brownout Reset Updated section to reflect the change and made external reset circuitry optional. Advanced Command Bytes Descriptions Added command byte $A5 Advanced Command Bytes Descriptions Added description for command byte $A5 Updated controller reply bytes 18 LM8300/LM8500 16.0 Physical Dimensions inches (millimeters) unless otherwise noted LLP Package (LQA) Order Number LM8300HLQ9 or LM8500HLQ9 NS Package Number LQA44A TSSOP Package (MTD) Order Number LM8300IMT9 or LM85009IMT9 NS Package Number MTD48 19 www.national.com LM8300/LM8500 Four Wire Resistive Touchscreen Controller with Brownout 16.0 Physical Dimensions inches (millimeters) unless otherwise noted (Continued) Plastic Leaded Chip Carrier (VA) Order Number LM8300HVA9 or LM8500HVA9 NS Package Number V44A LIFE SUPPORT POLICY NATIONAL'S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein: 1. Life support devices or systems are devices or systems which, (a) are intended for surgical implant into the body, or (b) support or sustain life, and whose failure to perform when properly used in accordance with instructions for use provided in the labeling, can be reasonably expected to result in a significant injury to the user. 2. A critical component is any component of a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system, or to affect its safety or effectiveness. BANNED SUBSTANCE COMPLIANCE National Semiconductor certifies that the products and packing materials meet the provisions of the Customer Products Stewardship Specification (CSP-9-111C2) and the Banned Substances and Materials of Interest Specification (CSP-9-111S2) and contain no ``Banned Substances'' as defined in CSP-9-111S2. National Semiconductor Americas Customer Support Center Email: new.feedback@nsc.com Tel: 1-800-272-9959 www.national.com National Semiconductor Europe Customer Support Center Fax: +49 (0) 180-530 85 86 Email: europe.support@nsc.com Deutsch Tel: +49 (0) 69 9508 6208 English Tel: +44 (0) 870 24 0 2171 Francais Tel: +33 (0) 1 41 91 8790 National Semiconductor Asia Pacific Customer Support Center Email: ap.support@nsc.com National Semiconductor Japan Customer Support Center Fax: 81-3-5639-7507 Email: jpn.feedback@nsc.com Tel: 81-3-5639-7560 National does not assume any responsibility for use of any circuitry described, no circuit patent licenses are implied and National reserves the right at any time without notice to change said circuitry and specifications.