TM ® SmartSet Touchscreen Controller Family Technical Reference Manual Manual Version 1.
SmartSet ™ Touchscreen Controller Family Technical Reference Manual Manual Version 1.0 Copyright © 1993 by Elo TouchSystems, Inc. 6500 Kaiser Drive Fremont, CA 94538 (510) 739-4600 A Raychem Company All rights reserved.
Trademark Acknowledgements IntelliTouch, AccuTouch, and MonitorMouse are registered trademarks, and ELODEV, TouchUp, TouchBack, and SmartSet are trademarks of Elo TouchSystems, Inc. All other trademarks are the property of their respective holders. Copyright Copyright © 1993 by Elo TouchSystems, Inc. All rights reserved. Reproduction, adaptation, or translation without prior written permission is prohibited, except as allowed under copyright laws. Printed in USA.
(f) Buyer assumes the risk and agrees to indemnify Seller against and hold Seller harmless from all liability relating to (i) assessing the suitability for Buyer's intended use of the Products and of any system design or drawing and (ii) determining the compliance of Buyer's use of the Products with applicable laws, regulations, codes and standards.
PERFORMANCE OF THE SOFTWARE AND ANY FURTHER PROGRAMS OR WRITTEN MATERIALS DEVELOPED UTILIZING THESE MATERIALS IS ASSUMED BY YOU. Elo warrants only that the diskette is free from defects in material and workmanship under normal use and service for a period of sixty (60) days after receipt. Elo's entire liability and your exclusive remedy as to the diskette shall be, at Elo's option, either return of the purchase price or replacement of the diskette.
v
Contents Introduction.................................................................................................. 1 About this Manual ................................................. Error! Bookmark not defined. Installation.................................................................................................... 7 DOS Demonstration Program .................................................................. 25 Introduction ...........................................................
vii
1 Introduction • SmartSet Controllers and Features 1 • Theory of Operation 3 • About this Manual 6 The SmartSet™ controller family is designed for use with Elo TouchSystems resistive technology touchscreens. SmartSet controllers provide the drive signals for the touchscreen, convert the received analog signals into digital touch coordinates, and send them to the host computer. These controllers are the result of twenty years of experience in resistive controller engineering at Elo.
2 Chapter 1 - Introduction • High speed -- can transmit over 200 coordinates per second. • Bi-directional communication with acknowledgements. • Sophisticated command set and communication protocol consistent among the SmartSet controllers. • On-board calibration and scaling of touch coordinates, untouch detection (lifting of the finger), and programmable coordinate output rate. • Configuration options can be stored in nonvolatile RAM (NVRAM) or set with jumpers.
Theory of Operation 3 • Smaller footprint: 3.3" x 2.1". • Maximum baud rate is 19.2K. • Lower power requirements: 55ma @ +5Vdc ±10% standby, 160ma average when touched, 240ma peak. • Lower cost. E271-2201 PC-Bus Controller • Half-slot PC-Bus controller (for ISA and EISA systems). • Host communication can be polled or interrupt-driven. • I/O address and interrupt (IRQ) selectable through software or jumpers. • AccuTouch E271-141 and DuraTouch E271-142 controller emulation.
4 Chapter 1 - Introduction The AccuTouch Touchscreen The AccuTouch Model E274 touchscreen consists of a glass panel formed to match the shape of the underlying display surface. A hard-coated plastic cover sheet is suspended over the surface of the glass by tiny separator dots. The cover sheet may be clear for best image clarity or have an anti-glare finish. See Figure 11 for detail on the construction of the AccuTouch touchscreen.
Theory of Operation 5 2. The microprocessor places the X drive voltage on the touchscreen by applying +5V to Pins H and X and grounding Pins Y and L. 3. An analog voltage proportional to the X (horizontal) position of the touch appears on the cover sheet at Pin S of the touchscreen connector. This voltage is then digitized by the ADC and subjected to an averaging algorithm, then stored for transmission to the host.
6 Chapter 1 - Introduction ABOUT THIS MANUAL This manual provides technical information on the Elo SmartSet controller family. Details are given in this manual on the features, configurations, connections, and specifications of the SmartSet controllers. This manual also includes examples of writing a software interface, such as a device driver, for the controller. Elo supplies such a driver, called ELODEVTM, for the IBM PC and PS/2 family of computers and compatibles that use the MSDOS operating system.
2 Controller Jumper Settings • General Information 7 • E271-2200 Serial Controller 10 • E271-2210 Serial Controller 12 • E271-2201 PC-Bus Controller 17 • E271-2202 Micro Channel Controller 22 GENERAL INFORMATION SmartSet controllers are shipped preconfigured for use with the Elo ELODEV and MonitorMouse driver software. For most users, no changes are necessary.
8 Chapter 2 - Controller Jumper Settings power-on configuration, and then software used to adjust parameters at any time. A DOS software setup utility is included on the SmartSet Companion Disk for this purpose, or you can write your own code with the information provided in this manual. Options selected through software can be stored in the controllers' nonvolatile memory (NVRAM) as power-on defaults. One jumper (J7) specifies which set of power-on defaults are used.
General Information Proceed to the page shown for your controller: E271-2200 Serial Controller E271-2210 Serial Controller E271-2201 PC-Bus Controller E271-2202 Micro Channel Controller page 10 page 12 page 17 page 22 9
10 Chapter 2 - Controller Jumper Settings E271-2200 SERIAL CONTROLLER The following figure shows the mounting dimensions, jumper locations, connections, and pinouts for the E271-2200 controller. Figure 2-2. E271-2200 Serial Controller The following lists the jumper settings for the E271-2200 controller. These settings are identical in function to those of the E271-2210 controller. Proceed to page 14 for details on each setting.
E271-2200 Serial Controller 9600 2400 1200 300 19200 Emulation Mode None E271-140 E261-280 E281A-4002 Reserved Reserved J1-N J0-N J1-N J0-Y J1-Y J0-N J1-Y J0-Y Cross connect (connect jumper vertically so the left pins of J0 and J1 are jumpered) (From Left) J11-N J10-N J11-N J10-Y J11-Y J10-Y J11-Y J10-N J9-N J8-N 11
12 Chapter 2 - Controller Jumper Settings E271-2210 SERIAL CONTROLLER The following figure shows the mounting dimensions, jumper locations, connections, and pinouts for the E271-2210 controller. Mounting holes marked with an 'X' are non-plated through-holes (NPTH). Figure 2-3. E271-2210 Serial Controller The following table lists the jumper settings for the E271-2210 controller. These settings are identical in function to those of the E271-2200 controller.
E271-2210 Serial Controller Mode Stream Single-Point Reserved Reserved Power-On Settings Jumpers NVRAM Reserved Reserved Emulation Mode None E271-140 E261-280 E281A-4002 J4-N J4-Y J5-N J6-N J7-Y J7-N J8-N J9-N J10-N J11-N J10-Y J11-N J10-Y J11-Y J10-N J11-Y 13
14 Chapter 2 - Controller Jumper Settings Selecting the Data Transmission Rate The E271-2200 and E271-2210 communicate with the host computer through a serial port. Set the data transmission rate of the controller to match that of the computer's serial port.
E271-2210 Serial Controller 15 Hardware Handshaking E271-2200 and E271-2210 controllers support hardware handshaking. Jumper J3 is used to enable or disable hardware handshaking. If disabled, the controllers ignore the DTR and RTS lines. Hardware Handshaking J3 Enabled not installed (shipped setting) Disabled installed A software command may also be used to select a wider range of hand-shaking options. Handshaking options can be saved in NVRAM as a power-on default.
16 Chapter 2 - Controller Jumper Settings Emulation Mode If you are using driver software that does not directly support the SmartSet protocol, the E271-2200 and E271-2210 controllers can be set up through jumpers for hardware compatibility with the AccuTouch E271-140 controller, IntelliTouch E281A-4002 controller (2.0 or later firmware), or the DuraTouch E261-280 controller. When the controller is in an emulation mode, it will not respond to the SmartSet protocol.
E271-2201 PC-Bus Controller 17 E271-2201 PC-BUS CONTROLLER The following figure shows the dimensions, jumper locations, connections, and pinouts for the E271-2201 controller. Figure 2-4. E271-2201 PC-Bus Controller The following lists the jumper settings for the E271-2201 controller.
18 Chapter 2 - Controller Jumper Settings IRQ5 J3-N J2-Y Cross-connect (connect jumper vertically so the left pins of J2 and J3 are jumpered) IRQ7 Base Port (in hex) 280 (recommended) 240 180 100 2A0 J1-N J0-N J1-N J0-Y J1-Y J0-N J1-Y J0-Y Cross connect (connect jumper vertically so the left pins of J0 and J1 are jumpered) E271-141 Emulation Mode (From Top) Enable J10-Y Disable J10-N Resolution (E271-141 Emulation Mode Only) 8-Bit J11-Y 12-Bit J11-N Selecting the Base I/O Port The E271-2201 uses eigh
E271-2201 PC-Bus Controller 19 Selecting the Interrupt (IRQ) The E271-2201 may be operated in either Polled or Interrupt Mode. In Interrupt Mode, the controller signals the host that data is available. In Polled Mode, the host software must poll the controller for information. To use Interrupt Mode, you may install jumpers at J2 and/or J3 to select the Interrupt (IRQ). For Polled Mode, neither jumper should be installed.
20 Chapter 2 - Controller Jumper Settings Choosing Single-Point or Stream Modes Jumper J4 selects Single-Point or Stream Mode on all SmartSet controllers. Mode Stream Single-Point J4 not installed (shipped setting) installed If Single-Point Mode is selected, a single coordinate pair is communicated for each touch. No further coordinates are communicated until the finger is lifted (untouch), and the touchscreen is retouched.
E271-2201 PC-Bus Controller None (SmartSet Mode) E271-141 21 not installed (shipped setting) installed 8- and 12-Bit Modes When E271-141 emulation mode is enabled, J11 selects whether 8-Bit or 12-Bit Mode is emulated. Mode 8-Bit 12-Bit J11 installed not installed The 12-Bit Mode offers greater resolution. 8-bit coordinates are simply 12-bit coordinates shifted right four bits. Elo driver software internally shifts 8-bit coordinates left four bits.
22 Chapter 2 - Controller Jumper Settings E271-2202 MICRO CHANNEL CONTROLLER The following figure shows the dimensions, jumper locations, connections, and pinouts for the E271-2202 controller. Figure 2-5. E271-2202 Micro Channel Controller The following lists the jumper settings for the E271-2202 controller.
E271-2202 Micro Channel Controller 23 Selecting the Base I/O Port The E271-2202 uses eight consecutive I/O ports. The Base I/O Port is determined by running the "automatic configuration" on the PS/2 Reference Disk. An Adapter Description File (.ADF) is included on the ELODEV User's Disk (1.5 or later), the MonitorMouse for OS/2 disk (2.0 or later), and the SmartSet Companion Disk.
24 Chapter 2 - Controller Jumper Settings Selecting the Touchscreen Type The E271-2202 controller is shipped with jumper J5 installed for E274 AccuTouch 5-wire touchscreens. If you are using a 4-wire DuraTouch touchscreen (no longer manufactured by Elo), remove the jumper at J5. Touchscreen Type AccuTouch DuraTouch J5 installed (shipped setting) not installed Reserved Jumpers Jumpers J0, J1, J2, J3, and J6 on the E271-2202 controller are reserved. They should not be installed.
3 Installation and Connections • E271-2200 and E271-2210 Serial Controllers 26 • E271-2201 PC-Bus Controller 30 • E271-2202 Micro Channel Controller 32 • Diagnostic LEDs 33 The installation procedure for a SmartSet controller consists of setting the jumpers on the controller, physically installing the controller, and making connections to the controller. Use only Elo supplied or approved cabling for best operation and to insure full regulatory agency compliance.
26 Chapter 3 - Installation and Connections E271-2200 AND E271-2210 SERIAL CONTROLLERS Serial Controller Installation This section assumes you are integrating the E271-2200 or E271-2210 serial controller board into your system as a component. The controller is also available in kits and enclosures with cabling and a power supply. See the AccuTouch Product Manual for various integration options.
E271-2200 and E271-2210 Serial Controllers 27 You may provide a suitable power supply and cabling, or Elo can provide them. See the AccuTouch Product Manual for details. CAUTION Observe polarity when connecting the power leads to the power supply. Reversing polarity may damage the controller. Serial Connections The E271-2200 and E271-2210 controllers operate at standard RS232C levels. The serial port connection is at P2 on the controller, a 2x5 header with pins on 0.100" centers.
28 Chapter 3 - Installation and Connections 9 7 5 3 1 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³· · · · ·³ ³ · · · ·³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 10 8 6 4 2 Figure 3-1. P2 Connector Pin Positions, End View If you are installing the controller inside a display, for the convenience and safety of the user, we recommend making a cable which connects P2 to a DB9 female connector (male connectors are used with external controllers) mounted on the back of the display. The shell of this connector should be tied to chassis ground.
E271-2200 and E271-2210 Serial Controllers 29 For more information on transient protection, see the AccuTouch Product Manual. H X S Y L ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³· · · · ·³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 1 2 3 4 5 Figure 3-2. P3 Connector Pin Positions, End View DuraTouch (E271-2200 Only) A four conductor ribbon extension cable is usually attached to the DuraTouch touchscreen. The female connector on the end mates with the controller's 1x4 touchscreen connection at P6.
30 Chapter 3 - Installation and Connections E271-2201 PC-BUS CONTROLLER E271-2201 Installation Follow these steps to install the E271-2201 controller: 1. Discharge any static charge on your body by touching the back of the computer cabinet. 2. Note the Base I/O Port and Interrupt for use with your driver software. The factory default settings are 280 (hex) and no Interrupt (Polled Mode). Eight consecutive I/O ports are used by the E271-2201. Ports 280-287 are typically not used by other devices.
E271-2201 PC-Bus Controller 31 E271-2201 Connections AccuTouch The AccuTouch touchscreen typically has a 30 inch cable terminated with a 1x5 female connector. This is normally converted to a DB9 male bulkhead connector with an adapter cable internal to the display (P/N 012131-K1, included with the touchscreen kit (P/N E274-XXX-K1). This adapter has built-in transient protection, and must be connected through a short lead to frame ground.
32 Chapter 3 - Installation and Connections E271-2202 MICRO CHANNEL CONTROLLER E271-2202 Installation 1. Copy the file @6253.ADF from the ELODEV User's Disk, the MonitorMouse for OS/2 (version 2.0 or later) distribution disk, or the SmartSet Companion Disk to your Backup Copy of your "IBM PS/2 Reference Disk". If you do not have a backup of your Reference Disk, boot with the Reference Disk in drive A and follow the on screen instructions to create one. 2.
Diagnostic LEDs 33 DIAGNOSTIC LEDS E271-2200, E271-2201, and E271-2202 Controllers The E271-2200, E271-2201, and E271-2202 controllers have three diagnostic LEDs. Following power on, the controllers perform their self-test. (ELODEV displays the result of this test when loaded). After the self-test, a flashing green LED indicates normal operation (except in Low Power Mode, see page 89).
4 SmartSet Tutorial • Introduction to the SMARTSET Program 35 • Running SMARTSET 36 • Sample SMARTSET Session 39 This chapter will introduce some of the important concepts in touchscreen driver programming as they relate to the SmartSet controllers. The concepts will be presented in tutorial form using software accompanying this manual. INTRODUCTION TO THE SMARTSET PROGRAM The SmartSet Companion Disk includes the program SMARTSET.EXE.
36 Chapter 4 - SmartSet Tutorial SMARTSET is useful to driver writers in the following ways: • SMARTSET can be used to experiment with the functionality of each command in menu form, display the context-sensitive help, and learn how each option works in conjunction with others, all before writing any driver code. • Once the controller's features are understood, SMARTSET can be used to examine the underlying command set and communication.
Running SMARTSET 37 Elo TouchSystems SmartSet(tm) Series Setup Utility Ver. 1.2 Select Interface Type Serial PC-Bus Enter Base I/O Port address in hex ([Enter] accepts): 280 Current Jumper Settings Screen type: AccuTouch I/O: PC-Bus Setup is by: Jumpers Mode: Stream Interrupt #: None Base address: 280 Press any key to continue. Idle Figure 4-2. SmartSet Utility Jumper Settings Display NOTE A warning message is displayed if the controller is not detected.
38 Chapter 4 - SmartSet Tutorial communicating with a connected controller. The communication status may change if communication parameters are changed. The bottom line says "Idle" if SMARTSET is ready to accept a command, or indicates a command is in progress. The help line gives context sensitive help on the highlighted command. Additional information can be displayed for the highlighted command at any time by pressing the [F1] key.
Sample SMARTSET Session 39 points), or combinations of these. Touch coordinates may be trimmed and scaled to specified ranges. Touch Reporting Used to select various touch reporting options, touch packet emulation, and low power mode. Calibration A touchscreen calibration sequence may be performed, or calibration points specified manually. X and Y axes may be swapped. Scaling Touch coordinate scaling ranges can be specified with any axis inversion.
40 Chapter 4 - SmartSet Tutorial Enabling Touch Reporting First confirm touch reporting is enabled by pressing "P" for the "Touch Reporting" menu, then moving the highlighting to "Touch Reporting" and press [Enter] so "Report" is indicated. (Only serial controllers power-on enabled). Skip to Touch Testing by pressing "T". Touch the touchscreen.
Sample SMARTSET Session 41 Besides the differences in touchscreens and controllers, calibration also compensates for the variation in video image among displays. The image is affected by horizontal and vertical adjustments on the monitor and by the physical mounting of the touchscreen. Additional calibration complications include image blooming, where bright-colored images expand, and the "pin cushion" effect, which causes the corners of the display to be stretched.
42 Chapter 4 - SmartSet Tutorial Figure 4-5.Calibration Point Coordinates We will now use the on-board calibration and scaling features of the SmartSet controller so coordinates will be reported in the coordinate system of your image. (If you do not wish to use this feature of the SmartSet controller, Appendix B gives generalized calibration and scaling algorithms that a driver program can use.) Go to the Calibration submenu. Note the default calibration points are 0-4095 for each axis.
Sample SMARTSET Session 43 The calibration routine used by SMARTSET lets you select a video mode supported by your display before you calibrate. As the screen size and position may vary among video modes, you should calibrate in the video mode used by your application. For our example, we calibrated in text mode. Typically, touchscreen driver developers will write their own calibration routine rather than using this feature of SMARTSET.
44 Chapter 4 - SmartSet Tutorial 4095. For our example, we will want coordinates scaled to values of 1 to 80 horizontally and 1 to 25 vertically. Select the Scaling submenu by pressing "S". Change the X Low value to 1, the X High to 80, the Y Low to 1, and the Y High to 25. Now return to the Touch Mode submenu and enable Scaling. The scaling values are ignored until Scaling Mode is enabled. On the Touch Testing screen, observe how the coordinates are scaled to 80x25.
Sample SMARTSET Session 45 Before we demonstrate restoring the settings from disk, let's change the settings by using the Reset command to restore all defaults. Press "R" to jump to the Reset Menu. Use [F1] to display the differences between Soft Reset and Hard Reset. Execute a Hard Reset. Depending on OEM options, a Hard Reset may take a few seconds. Watch the status line until it reports Idle. Scroll through the menus and verify that the calibration, scaling, modes, and all other parameters are reset.
46 Chapter 4 - SmartSet Tutorial WHERE TO GO FROM HERE From the Main Menu, type "R" and select Soft Reset to restore the default settings of the controller. You may now exit the SMARTSET program by selecting Exit from the Main Menu. In the next chapter, we will discuss how data is communicated to the SmartSet controllers. The ASCII Setup portion of the SMARTSET program will be used to study this communication and the command structure.
5 Software Interface • Packet Structure 47 • Interface Specifics 51 • Sample Driver Code 57 This chapter describes the communication between the host computer and the SmartSet controllers. The basic packet structure is introduced and how packets are sent and received. The SMARTSET utility is used as a demonstration. Specifics about each interface are given next, followed by a sample driver in machineindependent C source code.
48 Chapter 5 - Software Interface Commands and Responses The first byte of each packet is the command byte, and the seven remaining bytes are the data bytes. The command byte is an ASCII character, currently from 'A' to 'T'. Chapter 6, the Command Reference, details each command and response. A command byte in upper-case indicates a set command to the controller. The data bytes then alter an internal setting of the controller. A command byte in lower-case indicates a query command to the controller.
Packet Structure 49 Commands and Acknowledgements Each command sent to a SmartSet controller is confirmed by an Acknowledge response. This response packet indicates any errors in the command and any other pending errors. See page 82 in the Command Reference for a list of the possible error codes.
50 Chapter 5 - Software Interface B0 54 54 54 54 54 54 54 54 54 54 54 B1 01 02 02 02 02 02 02 02 02 02 04 B2 01 00 02 03 04 06 05 01 01 01 FC Press [ESC] to get back to Main Menu. 1) Enter any ASCII character from the keyboard. (except '$') 2) Enter a '$' and two hex digits. eg. $01, $0a, $ff B3 B4 B5 B6 B7: Byte positions Touch packet format: SmartSet Binary 0C F4 02 FF 00 T....... 0C E4 02 FF 00 T....... 0C E4 02 FF 00 T....... 0C E4 02 FF 00 T....... 0C E4 02 FF 00 T....... 0C E6 02 FF 00 T.......
Interface Specifics 51 that SMARTSET reflects the changes you made manually in ASCII Setup. When writing a driver, the SMARTSET utility is valuable for understanding the query/response/set interaction for the various commands and for verifying the settings you program into the controller. You may wish to experiment with other queries in ASCII Setup. Type "o" to query the Owner string. Type "g" to download the whole configuration of the controller.
52 Chapter 5 - Software Interface Checksum byte = + + <8 Data bytes> where the addition is performed with 8-bit unsigned numbers and overflow is ignored. By default, the host is not required to send a properly calculated Checksum in command packets. A dummy value, such as 0, is required to provide the correct packet length.
Interface Specifics 53 The Lead In byte of an extended packet is an ASCII Control-V character (16h). The host can check for either a 'U' or ^V as the Lead-in byte. If the byte is a 'U', the host knows 9 bytes will follow. If the byte is a ^V, 10 bytes will follow. As with the standard packet, the Checksum is calculated by summing the bytes without regard to overflow. The Key byte is included in the sum.
54 Chapter 5 - Software Interface has processed the command and is ready to receive another, indicated by when it asserts CTS. The host should assert RTS (Request To Send) when it is ready to accept data, and de-assert RTS when it cannot accept data. Typically, the host will de-assert RTS while it is processing a complete packet, then reassert RTS when it is ready to receive another packet.
Interface Specifics 55 Bus Controllers The PC-Bus and Micro Channel SmartSet controllers use read/write I/O ports for communicating the eight-byte packet. Base I/O Port The Base I/O Port is the location of first I/O port through which the controller and the host exchange data. The Base I/O Port is selected from jumpers or NVRAM with the E271-2201 PC-Bus controller, and through "automatic configuration" with the E271-2202 Micro Channel controller.
56 Chapter 5 - Software Interface Interrupt Mode If Interrupt Mode is enabled either by jumpers or software setup, the controller asserts the selected IRQ signal when data becomes available (as it clears the Not Ready bit). It is not necessary for the host to poll the Not Ready bit in Interrupt Mode. Upon interrupt, the host jumps to a corresponding interrupt service routine (ISR) whose location is stored in its interrupt vector table.
Sample Driver Code 57 for the E271-2202 controller and other adapters. See E271-2202 Installation, page 32, for more information. SAMPLE DRIVER CODE The rest of this chapter provides sample application and driver code for SmartSet touchscreen controllers. The example code is written in ANSI C and organized in modules as follows: Figure 5-3. Example Code Organization EXAMPLE1.C and EXAMPLE2.C are sample applications. Each uses high-level interface-independent controller interface functions in PACKET.
58 Chapter 5 - Software Interface Example1 - Display Controller Defaults and Raw Touch Coordinates EXAMPLE1.C polls Elo SmartSet touchscreen controllers. The controller ID, jumper settings, and power on diagnostics results are displayed, as shown in Figure 5-4 on the following page. Raw touch coordinates are then displayed, along with the status flag, indicating initial touch, stream touches, and untouch. C:\>example1 ID: Controller revision level: EloInc. 1.
Sample Driver Code return(0); } void displayjumpers(void) { int i; packettype id,owner,jumpers; printf("ID:\n"); id[0] = 'i'; querycommand(id); owner[0] = 'o'; querycommand(owner); printf(" Controller revision level: "); for (i=1; i<8; i++) printf("%c",owner[i]); printf(" %d.
60 Chapter 5 - Software Interface Example2 - Calibrate and Finger Paint EXAMPLE2.C also polls Elo SmartSet touchscreen controllers. The controller is first set up for calibration by changing the Mode to report raw coordinates. The calibration screen appears as follows: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X X X * X X X X X X X X X X X X X X X X Touch the following points from a X X position of normal use, e.g.
Sample Driver Code * 61 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Figure 5-7. EXAMPLE2.C Finger Painting In the following source code, the Mode, Calibration, and Scaling commands are queried, modified, then set. This preserves the contents of reserved bytes. Refer to the Command Reference in Chapter 6 for details on each command. /************************************************************************* EXAMPLE2.
62 Chapter 5 - Software Interface packet[0] = 'S'; packet[1] = 'X'; p = (unsigned *)packet; *++p = 1; *++p = 80; *++p = 0; setcommand(packet); packet[1] = 'Y'; p = (unsigned *)packet; *++p = 1; *++p = 25; setcommand(packet); packet[0] = 's'; packet[1] = 'S'; querycommand(packet); packet[2] &= ~0x07; setcommand(packet);/* axis inversion bits not used */ /* set mode */ packet[0] = 'm'; querycommand(packet); /* get current mode */ packet[2] |= 0x47; /* Range Checking, Initial, Stream, Untouch Modes */ packet[
Sample Driver Code /* these variables now contain the raw coordinates the controller would output for the extremes of the video image */ /* detect touchscreen orientation corrections */ *xyswap = abs(sx x1) < abs(sy y1); if (*xyswap) { xch(xhigh, yhigh); xch(xlow, ylow); } xinv = *xhigh < *xlow; yinv = *yhigh < *ylow; /* display results of calibration useful for troubleshooting */ clearscreen(); cursoron(); printf("Calibration points are: %d,%d, %d,%d\n",*xlow,*ylow,*xhigh,*yhigh); if (xinv) printf("X axis
64 Chapter 5 - Software Interface PACKET.C - Interface-Independent Driver Code The following code implements high-level functions querycommand() and setcommand(). The protocol for querying commands, setting commands, and receiving acknowledgements is described in Chapter 5. Touch packets are sent automatically (a query is not necessary). The gettouch() function accepts these packets, and returns the coordinates and status byte. See page 102 for the structure of the Touch packet.
Sample Driver Code /* if (diags[1] == 0x20) printf("Warning touchscreen may not be connected.\n"); else */ if (diags[1] != 0) { printf("Controller power on diagnostics failed code %02Xh\n",diags[1]); exit(1); } } char * errormsg(int errnum) /* errors generated by SERIAL.C or BUS.C */ { switch (errnum) { case NOCONTROLLER: return("Controller not detected."); case SHORTED: return("Touchscreen fault controller is transmitting continuously."); case CANTSEND: return("Cannot output to controller.
66 Chapter 5 - Software Interface SERIAL.C - Machine-Independent Serial Driver Code The following machine-independent code implements the getpacket() and sendpacket() functions for the E271-2200 and E271-2210 serial controllers. Machine-dependent code to initialize the serial port, enable and disable it, and send and receive characters, is supplied in a separate module, such as PC_COMM.C (found on the Companion Disk). The getpacket() function discards all packets until the requested packet is received.
Sample Driver Code if (!getanypacketserial(packet)) return(FALSE); if (p == *packet) return(TRUE); } } boolean getanypacketserial(packettype { byte sum=0,c; int bidx=0, count=500; comport_enable(); for (;;) { if (!comport_receive(&c)) { comport_disable(); return(FALSE); } switch (bidx) { case 0 : if (c == 'U') { sum = 0xAA + 'U'; bidx++; } else { if ( count) continue; return(FALSE); } break; case 9 : if (sum == c) { comport_disable(); return(TRUE); } bidx = 0; break; default : sum += (packet[bidx++ 1] } } }
68 Chapter 5 - Software Interface BUS.C - PC-Bus and Micro Channel Driver Code The following machine-dependent code implements the getpacket() and sendpacket() functions for the E271-2201 PC-Bus and E271-2202 Micro Channel controllers. The getpacket() function discards all packets until the requested packet is received. The getanypacketbus() function polls the Not Ready bit and reads the eight I/O ports. The sendpacket() function writes to the I/O ports.
Sample Driver Code packettype garbage; do { if (getanypacketbus(garbage)) count ; else return(OK); } while (count > 0); return(SHORTED); } void disablecontroller(void) { if (mca) resetmcacontrollerpos(); } boolean getpacket(packettype packet, byte p) /* discard all packets until we see the packet requested by p */ { int i; for (i=0; i<10; i++) { if (!getanypacketbus(packet)) break; if (*packet == p) return(TRUE); } return(FALSE); } boolean getanypacketbus(packettype packet) { unsigned i; byte *p; currenttim
70 Chapter 5 - Software Interface union REGS regs; regs.x.ax = 0xc400; int86(0x15,®s,®s); posbase = regs.x.dx; for (i=1; i<9; i++) { /* check each slot for 2202 controller */ regs.x.ax = 0xc401; regs.h.bl = i; int86(0x15,®s,®s); for (j=0; j<8; j++) /* read ID and POS registers */ mcainfo[j] = (byte)inp(posbase+j); regs.x.ax = 0xc402; regs.h.
6 Command Reference • Introduction 71 • Command Descriptions 72 INTRODUCTION Terms The following is a glossary of basic terms as they are applied in this chapter: command packet passed as a message from the host to the controller. response packet passed as a message from the controller to the host. command byte leading character in a command packet. data bytes The remaining seven bytes in a command packet.
72 Chapter 6 - Command Reference to 32767. The bytes are ordered in Intel format, with the least significant byte (low order 8 bits) being first. word A 16-bit unsigned integer value. The byte ordering is identical to an integer but the value is interpreted to be in the numeric range 0 65535. Notation The following notation is used in this chapter: When values are given for data bytes, they are noted as two-place hexadecimal numbers (denoted by a letter 'h' suffix) or as decimal numbers.
Command Descriptions 73 Acknowledge ('a') Function: Verifies that a command was received by the controller and no errors are pending. 0 Query: 1 2 3 4 5 6 7 5 6 7 'a' This command cannot be set. Set: Response: 0 1 2 3 4 'A' X X X X An Acknowledge response is automatically sent to the host following each command received by the controller (with the exception of the Hard Reset and Quiet-all commands).
74 Chapter 6 - Command Reference '@' 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 40h 41h 42h 43h 44h 45h 46h 47h 48h 49h 4ah 4bh Reserved No set available for this command Unsupported in the firmware version Illegal subcommand Operand out of range Invalid type Fatal error condition exists No query available for this command Invalid Interrupt number NVRAM failure Invalid address number Power-on self-test failed
Command Descriptions 75 Report ('B','b') Function: Controls the timing characteristics of touch packet reporting. 0 Query: Set: Set or Response: 1 2 3 4 5 6 7 3 4 5 'b' This command cannot be set. 0 1 2 'B' Untouch RepDelay 6 7 The Untouch byte specifies the number (0 15) of 10ms time increments to delay before reporting an untouch condition. Increasing this value allows the controller to filter out accidental untouches due to skips while sliding the finger.
76 Chapter 6 - Command Reference Calibration ('C','c') Function: Set Cal by Range: Query Params: Set Params/ Response: Run Two Point Cal: Set SwapFlag/ Response: Query SwapFlag: Provides access to the on-board calibration facilities of the controller.
Command Descriptions 77 AXIS specifies the coordinate axis to calibrate by using upper-case ASCII characters 'X','Y', or 'Z'. LowPoint and HighPoint are unsigned words specifying an axis range. For example, if two calibration points are specified as (XLow,YLow) and (XHigh,YHigh), LowPoint = XLow and HighPoint = XHigh for the X-axis. If a HighPoint value is greater than a LowPoint value, hardware axis inversion is performed.
78 Chapter 6 - Command Reference controller. This will interrupt the sequence and an Acknowledge packet will be returned with a "calibration terminated" warning. Host-Driven Calibration Sequence Alternatively, a host-driven calibration sequence may be performed. It must first disable the Calibration and Scaling Modes, acquire the low and high calibration points, transmit them to the controller with the CX and CY commands, then restore the modes.
Command Descriptions 79 Diagnostics ('D','d') Function: Runs the controller's on-board diagnostic routines, or queries the results of those diagnostics. 0 1 2 Query: 'd' Set or 0 1 'D' DMask Response: 3 4 5 6 7 2 3 4 5 6 7 The DMask byte has the following bit positions: Bit Test Description 0 ID Test Checks to see that the firmware and hardware are compatible. 1 CPU Test Exercises the CPU to verify that the instruction set and registers are working.
80 Chapter 6 - Command Reference Emulate ('E','e') - Serial Controllers Only Function: Changes the output format of touch coordinates to that of other serial touchscreen controllers. 0 1 2 3 4 5 Query: 'e' Set or 0 1 2 'E' TouchFlag Format Response: 6 7 3 4 5 6 7 The SmartSet controllers can emulate other Elo controllers. Emulation can be partial or full.
Command Descriptions '1' '1' '1' '1' '1' '1' '1' '1' '2' '3' '4' '5' '6' '7' E271-140 ASCII (Appends 'T' or 'U') E261-280 Binary (81h flags untouch)* E261-280 ASCII (Appends 'T' or 'U')* E271-2200 Binary (same as '04') E271-2200 ASCII (Appends 'T' or 'U') E281A-4002 Binary (Z=0 on untouch) E281A-4002 ASCII (Z=0 on untouch) 81 117 122 121 51 116 117 118 Partial Emulation is disabled by factory default (TouchFlag = '1', Format = '4').
82 Chapter 6 - Command Reference Filter ('F','f') Function: Used to control various aspects of the firmware filtering algorithms used in the controller. 0 1 2 3 4 5 6 7 Query: 'f' Set or 0 1 2 3 4 5 'F' Type SLen Width States Control Response: 6 7 The Type byte indicates the touchscreen type selected by the jumpers on the controller as follows: an ASCII '0' for AccuTouch, '1' for DuraTouch, and '2' for IntelliTouch. The Type field cannot be changed.
Command Descriptions 83 Configuration ('g') Function: Requests a complete dump of the controller's configuration for saving and restoring controller settings when switching between applications. 0 Query: Set: 1 2 3 4 5 6 7 'g' This command cannot be set. The order and number of packets returned may change in future revisions of the controllers. Storage requirements may be queried with the ID command, (see page 85). The number of packets in the transfer is returned in the P byte.
84 Chapter 6 - Command Reference Timer ('H','h') Function: Controls the User Timer functions of the controller. Enable is a byte value where the least significant bit is 1 to enable the Timer or 0 to disable the Timer. Timer packet transmission must also be Un-Quieted with the Quiet command, described on page 98. The factory default for the Timer is disabled. The TMode byte determines the action taken upon the expiration of the Timer, either One-shot or Continuous.
Command Descriptions 85 ID ('i') Function: Provides various information about the controller and touchscreen. The Type byte indicates the touchscreen type selected by the jumpers on the controller as follows: an ASCII '0' for AccuTouch, '1' for DuraTouch, and '2' for IntelliTouch. The IO byte indicates the type of communication interface that is in use by the controller as follows: an ASCII '0' for serial, '1' for PC-Bus, and '2' for Micro Channel.
86 Chapter 6 - Command Reference Jumpers ('j') Function: Returns the jumper settings on the controller. The Type byte indicates the touchscreen type selected by the jumpers on the controller as follows: an ASCII '0' for AccuTouch, '1' for DuraTouch, and '2' for IntelliTouch (reserved). Controllers are shipped jumpered for AccuTouch (J5 installed).
Command Descriptions 3 4 5 6 7 87 2400 4800 9600 19200 38400 Serial controllers are shipped jumpered for 9600 baud. The values for the S1 byte correspond to those used in the Parameter command (page 95). Not all of the above baud rates are available through jumper settings. The S2 byte is an ASCII '0' if serial Hardware Handshaking is disabled by the J3 jumper on power-on. It is a '1' if Hardware Handshaking is enabled.
88 Chapter 6 - Command Reference Key ('K','k') - Serial Controllers Only Function: Used to set or query the Key Byte value. The Key Byte may be used for multiplexing multiple controllers on a common serial line. The KeyValue byte may be from 1 255. A null value disables this function. When the Key command is issued, the Acknowledge packet and all subsequent packets will be in the new format. Keyed packets are disabled by factory default. Keyed packets are discussed on page 52.
Command Descriptions 89 Low Power ('L','l') Function: Controls the Low Power Mode of the controller. During times when processing in the controller is minimal (no touch and no communications in progress), the controller can enter a Lower Power Mode. Upon receipt of data from the host or the event of a touch, the controller exits this mode and normal processing continues until the next idle period. Low Power Mode is useful with battery-powered computers.
90 Chapter 6 - Command Reference Mode ('M','m') Function: Sets the various operating modes of the controller. The Mode command offers two methods of setting the various operating modes. The binary method uses two bitmapped bytes to set the mode. The binary method is indicated by the presence of a null byte in position 1. The ASCII method uses a string of ASCII letters to set the mode, useful if the controller is connected to a terminal for evaluation purposes.
Command Descriptions 7 Reserved 91 Always 1. Reserved for Z-axis Disable. The Mode2 byte has the following bit positions: Bit Function Description 0 Reserved 1 Trim Mode If 1, Trim Mode is enabled. Touches outside the calibration points will have their coordinates adjusted to the edge of the calibrated area. This mode effectively expands all touch zones on the edge of the image to include the associated overscan area. Trim Mode requires Range Checking Mode to be enabled (bit 6 of Mode1 above).
92 Chapter 6 - Command Reference is set below the natural variation of coordinates for a constant touch. Tracking Mode requires Stream Mode (bit 1 of Mode1 above). 7 Reserved The controller modes may also be configured with an ASCII packet. XXXXXX represents any of the following values in string form.
Command Descriptions 93 Nonvolatile RAM ('N') Function: Saves/restores controller settings in the on-board nonvolatile memory (NVRAM). NVRAM can be used to store power-on defaults. Power-on defaults are from NVRAM if the J7 jumper is installed. The use of NVRAM is discussed on page 8 and in Chapter 4—SmartSet Tutorial. The least significant bit of the Direction byte is 1 to save the settings in NVRAM, or 0 to restore the settings from NVRAM.
94 Chapter 6 - Command Reference Owner ('o') Function: Reserved for identifying custom firmware. The factory default value is shown above.
Command Descriptions 95 Parameter ('P','p') Function: Changes controller communication parameters. When the parameters are set with this command, the Acknowledge packet is returned using the new communication parameters. Therefore, the host communication parameters must be changed immediately after issuing the Parameter command. The IO byte indicates the type of communication interface that is in use by the controller as follows: an ASCII '0' for serial, '1' for PC-Bus, and '2' for Micro Channel.
96 Chapter 6 - Command Reference 1 2 3 4 5 6 7 1 = Software Handshaking enabled 1 = Hardware Handshaking enabled 1 = Invert Hardware Handshaking Reserved Reserved Reserved 1 = Full Duplex (echo enabled) Bits 000 001 010 011 100 101 110 111 Baud Rate 300 600 1200 2400 4800 9600 19200 38400 (E271-2200 only) Bits 00 01 10 11 Parity Type Even Odd Space Mark Checksum Bit If the Checksum Bit is 0, the controller does not check the validity of received commands.
Command Descriptions 97 Hardware Handshaking Bit If the Hardware Handshaking Bit is 1, the controller will support hardware handshake signals typically implemented in EIA RS-232 communications. Hardware Handshaking is enabled by factory default. To ease troubleshooting of the initial installation, jumper J3 can be installed to force the controller to ignore Hardware Handshaking. For more information, see Hardware Handshaking, page 53.
98 Chapter 6 - Command Reference Quiet ('Q','q') Function: Used to enable/disable automatic reporting of certain types of information from the controller. The QMask byte specifies what packet types are to be enabled or Quieted (disabled from automatic reporting). The QMask byte has the following bit positions: Bit Function 0 Set to Quiet all outputs. In this mode, commands are not acknowledged but are processed. Commands cannot be queried either.
Command Descriptions 99 Reset ('R') Function: Performs a soft or hard reset of the controller. This command is used to reset the touchscreen controller. The RType byte is used to specify the type of reset to use. If the least significant bit of RType is zero, a Hard Reset (cold boot) will occur. If the bit is 1, a Soft Reset (warm boot) will occur. A Hard Reset causes the controller to reboot according to either the jumpers or the NVRAM, depending on the state of the setup jumper J7.
100 Chapter 6 - Command Reference Scaling ('S','s') Function: controller. Provides access to the on-board coordinate scaling facilities of the Scaling is discussed in the tutorial in Chapter 4, and an example is given in Chapter 5. The Scaling command has several functions: Setting the Scaling Points from the Host Scaling is accomplished by the host transmitting a range of coordinates, typically equivalent to the display resolution.
Command Descriptions 101 Z-Axis Scaling Z-axis scaling is typically not required as no Z data is available with resistive touchscreens. The controller defaults to 0-255, but always returns the HighPoint value. Setting or Querying the Invert Axes Flags Axes may be inverted by using these flags, or preferably, by swapping the LowPoint and HighPoint scaling values.
102 Chapter 6 - Command Reference Touch ('t') On serial controllers, the response may be altered if Partial Emulation is selected with the Emulate command (see page 80). Touch packets are generated automatically if Touch Reporting is enabled with the Quiet command. This is the default with serial controllers. If automatic touch reporting is disabled by disabling Initial Touch, Stream, and Untouch Modes (see Mode command, page 90), the Touch command may be used to query for touch data.
Command Descriptions 7 Reserved 103 Always 0. Reserved for Z-axis Valid. If 1, the Z coordinate is measured, not simulated at the maximum value.
Appendix A Optional Software Protocols • E271-2200 and E271-2210 Controllers 105 • E271-2201 Controller 112 E271-2200 AND E271-2210 CONTROLLERS The E271-2200 and E271-2210 controllers can be jumpered or configured with software setup for optional software protocols. Emulation can be full or partial. If J2 is jumpered for ASCII Mode, the standard Touch packet is replaced with the SmartSet ASCII Mode packet, described in the following section. All other communication remains the same.
106 Appendix Error! Main Document Only.Error! Main Document Only.6 - Optional Software Protocols The controllers may also be programmed through software setup for Output Format Emulation (partial emulation). In this mode, the controller will still respond to the SmartSet protocol, but the Touch packet will be replaced with a packet defined by the selected output format. See the Emulate command, page 80, for details on selecting the output format.
E271-2200 and E271-2210 Controllers 4 0 0 Y5 Y4 Y3 Z-Data Enabled (E281A-4002 Mode) Byte 1 2 3 4 5 6 MSB 1 1 0 0 0 0 1 0 1 0 0 0 X11 X5 Y11 Y5 Z11 Z5 Y2 Y1 107 Y0 J2-N, J10-N, J11-Y; 0/1,6 X10 X4 Y10 Y4 Z10 Z4 X9 X3 Y9 Y3 Z9 Z3 X8 X2 Y8 Y2 Z8 Z2 X7 X1 Y7 Y1 Z7 Z1 LSB X6 X0 Y6 Y0 Z6 Z0 Since the Z coordinate is only a 4-bit number, bit positions Z11-Z4 will be 0. This includes all of byte 5. If jumpered for E281A-4002 emulation mode, or TouchFlag is 1, the Z value will be zero on untouch.
108 Appendix Error! Main Document Only.Error! Main Document Only.6 - Optional Software Protocols E261-280 Emulation Output Formats The E271-2200 and E271-2210 controllers supports a variety of E261-280 output formats, including ASCII or Binary, Single-Point or Stream Mode, and untouch reporting. The default depends on the Output Format and Mode jumpers, J2 and J4 respectively. The Untouch Flag is included by default.
E271-2200 and E271-2210 Controllers 40 80 C0 Bit 0-5 6&7 109 Invert x axis Invert y axis Default BYTE2 Hex Description 00-3F Data format code 00 Reserved 40 300 baud 80 9600 baud C0 1200 baud (default) To compute the values for BYTE1 and BYTE2, add the hex values of the bits you desire. For example, Invert Y BYTE1= 80 9600 baud BYTE2= 80 + No rev.
110 Appendix Error! Main Document Only.Error! Main Document Only.6 - Optional Software Protocols 280 V5.0 #2200 For normal operation, this bit should be clear. BYTE2 is ignored when this bit is set. Axis Inversion Bits 6 and 7 of BYTE1 are used to invert the X and/or Y axes. See Bit Definitions, page 108. Baud Rate Bits 6 and 7 of BYTE2 are used to change the baud rate. If you do not wish to change the baud rate during any software setup, then these bits must reflect the current baud rate.
E271-2200 and E271-2210 Controllers 111 In mode 00, the controller transmits a single coordinate only upon first touch in ASCII hex format. Seven ASCII characters are transmitted as follows: XX<,>YY The "XX" and "YY" values are each two characters, made up of uppercase hex values from 00 to FF. and are carriage return and line feed characters.
112 Appendix Error! Main Document Only.Error! Main Document Only.6 - Optional Software Protocols Mode 06 is like mode 00 in that only a single coordinate is transmitted upon first touch. The data is in the format: where is the ASCII start-of-header character (hex 01). Mode 07 - Binary/Single-Point/Untouch Flag J2-N, J4-Y, J10-Y, J11-Y; 1,2 Mode 07 is like mode 01 except the data is transmitted in binary form. The format is as follows: ..........
E271-2201 Controller 113 from the Base I/O Port address as selected by jumpers J0 and J1 (see Selecting the Base I/O Port, page 18).
114 Appendix Error! Main Document Only.Error! Main Document Only.6 - Optional Software Protocols NOTE The 8-bit data is the same as the highest-order 8 bits of the 12-bit data. Polled vs. Interrupt Mode The host processing can be performed by polling the controller or by using interrupts when in E271-141 emulation mode. Polling consists of constantly checking the status of the controller for data to become ready, and then retrieving that data.
E271-2201 Controller X=1440 X=1424 X=1408 X=1408 X=1424 115 Y=1120 Y=1136 Y=1120 Y=1136 Y=1152 And here is the program: /********************************************** BPGETTCH.C Poll bus controller for touch data ***********************************************/ #include #include
116 Appendix Error! Main Document Only.Error! Main Document Only.6 - Optional Software Protocols do ; while ((inp(BASEPORT+2) & 0x40) == 0x40); /* wait for X bit to clear */ } /* re poll before reading Y */ else { /* get Y */ point.data[2] = (byte)inp(BASEPORT); /* Y high */ point.
Appendix B Calibration and Scaling Algorithms Typically, SmartSet controllers are setup through software and/or NVRAM to supply the host with calibrated and scaled touch coordinates, as described in Chapter 5. If you cannot set up the controller with this procedure, you will receive raw coordinates from the controller. The host software must then map these coordinates within the calibration range (defining the position and size of the screen image) and scaled into screen coordinates, such as 80x25.
118 Appendix Error! Main Document Only.Error! Main Document Only.6 - Calibration and Scaling Algorithms The screen coordinates in our example will be from 1 to 80 in X, and 1 to 25 in Y. Therefore, Sxlow=1, Sxhigh=80, Sylow=1, and Syhigh=25. Any coordinate scaling may be used, such as 0 to 99999 or 10 to 10.
E271-2201 Controller 119 X-axis for example, just specify a Sxhigh that is less than Sxlow, such as 80 to 1. 4. If you prefer the default origin in the lower left for example, just make the low calibration point be in the lower left, and the high in the upper right. As you can see, the formula allows any origin, axis orientation and scaling, independent of the touchscreen and controller. 5. A third calibration point may be added to detect swapped axes.
Appendix C Specifications • E271-2200 and E271-2210 Controllers 121 • E271-2201 and E271-2202 Controllers 125 The controller specifications given below were correct at the time of printing, but are subject to change without notice. For the most up-to-date information, contact Elo for a copy of the AccuTouch Technical Data Sheet. Also see the AccuTouch Product Manual for touchscreen specifications.
122 Appendix Error! Main Document Only.Error! Main Document Only.6 - Specifications Interface EIA 232D (Serial RS-232), DCE configuration. 7-8 Data Bits, 1-2 Stop Bits, Full or Half Duplex, Parity: None, Even, Odd, Mark, or Space. Optional software or hardware handshaking: XON/XOFF, DTR/DSR, RTS/CTS. Optional Checksum and Key byte. Jumper or software selectable. Acknowledgements for command set and query. Baud Rates E271-2200 E271-2210 300, 600, 1200, 2400, 4800, 9600, 19200, 38400.
E271-2200 and E271-2210 Controllers 123 Environmental Temperature Operating: Storage: 0°C to 70°C. (Verified for E271-2200 only.) -25°C to 85°C. Humidity Operating: Storage: 10% to 90% RH, non-condensing (not verified). Same. Physical Characteristics Construction Four-layer surface-mount design features CMOS circuitry, custom ASICs, full power and ground planes, analog input filters, bipolar transistors, and output stage protection. Substrate is 0.062" rated UL 94 V-0.
124 Appendix Error! Main Document Only.Error! Main Document Only.6 - Specifications Touchscreen Connector AccuTouch - 5-position 0.025" square pin friction lock header on 0.100" centers, Molex #22-05-3051. DuraTouch (E271-2200 only) - 4-position 0.025" square pin friction lock header on 0.100" centers, Molex #22-05-3041. Acceptable mating receptacle connectors: Molex series 2695, 6471, 7880, or 4455. See Touchscreen Connections, page 28, for details. Power Connector 2-position 0.
E271-2201 and E271-2202 Controllers 125 E271-2201 AND E271-2202 CONTROLLERS Electrical Microprocessor-based with an on-chip successive approximation A/D converter. Supply Voltage and Current E271-2201 +5Vdc ±10%, 250ma typical. ±12Vdc ±10%, 75ma typical. E271-2202 Same. Interface E271-2201 Industry Standard Architecture (8-bit subset). Polled or Interruptdriven (IRQ 2-7). Base I/O Port selectable for any address that is a multiple of 8. Interrupt and Base I/O Port jumper or software selectable.
126 Appendix Error! Main Document Only.Error! Main Document Only.6 - Specifications Conversion Time Typically 20 ms as shipped (no scaling). 5 ms possible (software selectable delay between packets removed). Reliability E271-2201 E271-2202 MTBF of 65,262 hours per MIL-HDBK-217E, Notice 1 update. MTBF of 65,668 hours per MIL-HDBK-217E, Notice 1 update. Environmental Temperature Operating: Storage: 0°C to 50°C. -25°C to 85°C. Humidity Operating: Storage: 10% to 90% RH, non-condensing (not verified).
E271-2201 and E271-2202 Controllers 127 Power Connector Draws power directly from the bus. Data Output Connector Outputs data directly to the bus. Agency Approvals UL Compliance Touchscreen systems utilizing this controller with approved Elo touchscreens and cables can be UL compliant. FCC Compliance Touchscreen systems utilizing this controller with approved Elo touchscreens and cables can be FCC Class "A" compliant.
129