HulaCoder™ UR7HCDMP HulaPoint™ Ergonomic Mouse PS/2 and RS232 Encoder HID & SYSTEM MANAGEMENT PRODUCTS, MOUSECODER® FAMILY DESCRIPTION PRELIMINARY FEATURES The HulaCoder™ UR7HCDMP is an easy-to-use single-chip encoder that interfaces to an innovative sensor developed by Fujitsu. The IC and sensor together make the HulaPoint™ ergonomic mouse. Equipped with an advanced motion algorithm, the HulaCoder™ offers low power consumption in a smallfootprint package. The device connects to either a serial or a PS/2 mouse port on the host system. • Equipped with advanced motioncontrol algorithm • Low power consumption in a 3-volt to 6-volt operating range • Effortless and accurate cursor control with 10-degree movement in every direction • Compatible with IBM/Microsoft two-button mice and Logitech three-button mice The HulaCoder™ is compatible with the communication protocols for IBM and Microsoft two-button mice and Logitech three-button mice. The IC automatically detects the port type (serial or PS/2) and uses the appropriate protocol for that port type. • Embedded HulaPoints™ • Industrial panels • Works with innovative, proprietary sensor technology developed by Fujitsu Microelectronics • Responds to feather-light touch without resistance • Available in a small 18-pin plastic SOIC package • Autoselects RS232 or PS/2 hardware interface APPLICATIONS • Industrial keyboards • Instrumentation Serial communication by the HulaCoder™ is half-duplex at a fixed speed of 1200 Baud. PS/2 communication is bidirectional at 10 Kbps. The HulaCoder™ implements all commands to and from the host system, as defined in the IBM PS/2 mouse communication protocol. CHX 1 RTS 2 TxD 3 RESET 4 VSS (GND) 5 PS2CLK 6 PS2DAT 7 RIGHTSW 8 LEFTSW 9 UR7HCDMP-DW SOIC PIN ASSIGNMENTS 18 CHY 17 PWRON 16 OSCIN 15 OSCOUT 14 VDD (+V) 13 DA2 12 DA1 11 DA0 10 MIDDLESW The HulaCoder™ is a CMOS device operating at 4 MHz. The low power consumption of the IC makes it suitable for battery operated systems. In serial mode, like any standard serial mouse, the IC can draw power from the RS232 lines of the host system. Semtech and MouseCoder are registered trademarks of Semtech Corporation. HulaCoder and Hulapoint are trademarks of Semtech Corporation. All other trademarks belong to their respective companies. Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 1 www.semtech.com ORDERING CODE Package options 18-pin SOIC 18-pin SOIC Sensor orientation Inverted Normal Pitch TA = -40°C TO +85°C UR7HCDMP-A-DW UR7HCDMP-B-DW 1.270 mm 1.270 mm Note: See the sensor orientation section for sensor orientation diagrams. FUNCTIONAL DESCRIPTION The HulaCoder™ consists functionally of five major sections (see Functional Diagram below). These are the Sensor Interface, the Sixteen Bit Timer, the Oscillator Circuit, the PS/2 Communication Port and the RS232 Communication Port. All sections communicate with each other and operate concurrently. FUNCTIONAL DIAGRAM LEFT MIDDLE RIGHT BUTTON BUTTON BUTTON Data Buffer Switch Interface PS2CLK PS2DAT TXD RTS PS/2 Communication Port X Input CHX Y Input CHY 3 Control RS232 Communication Port HulaPoint Interface 16 bit Timer Power-On Reset Oscillator Circuit OSCIN-OSCOUT 2 Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 2 www.semtech.com Resolution Enhancement D/A Sensor Power Strobe AUTODETECT PIN DESCRIPTION At power-up the HulaCoder™ automatically detects the host interface type (PS/2 or serial), and uses the correct protocol. Pin Numbers Mnemonic CHX RTS Pin 1 2 Type Analog Input I/O _TxD _RESET 3 4 O, Open Drain I GND PS2CLK PS2DAT _RIGHTSW _LEFTSW _MIDDLESW DA0 5 6 7 8 9 10 11 Power I/O I/O I w/ Pullup I w/ Pullup I w/ Pullup O DA1 12 O DA2 13 O VCC _OSCOUT OSCIN _PWRON 14 15 16 17 Power O I O CHY 18 Analog Input PS/2 MODE At start-up or upon receiving a reset command, clock and data lines of the HulaCoder™ can be pulled to a positive level. The IC then waits between 300 and 500 milliseconds before sending an 0xAA to the host followed by a device ID of 0x00. Then the IC sets itself to its default values, i.e. Incremental Stream Mode with 1:1 scaling, and a report rate of 100 Hz. The device then disables itself until it receives a command from the host. Name and Function Horizontal input Ready To Send (RTS) sense, power save out Transmit serial data Reset: apply 0 V for orderly start up. Ground PS/2 clock PS/2 data Right switch: low = on Left switch: low = on Middle switch: low=on Resolution enhancement D/A 0: least significant bit (LSb) Resolution enhancement D/A 1 Resolution enhancement D/A 2: most significant bit (MSb) Power supply Oscillator output Oscillator input Sensor power strobing control Vertical input ERROR HANDLING For every correct command or parameter received from the host, the HulaCoder™ sends an Acknowledge (0xFA). If an invalid command or parameter is received, the HulaCoder™ issues a Resend Request (0xFE). If an invalid input is again received, the device transmits an Error Code (0xFC) to the host. Both Error and Resend Request responses are sent by the device within 25 milliseconds. The host may not issue any new commands until either the HulaCoder™ has responded or 25 milliseconds have elapsed. Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 Note: An underscore before a pin mnemonic denotes an active low signal. PIN DESCRIPTION NOTES The internal oscillator has a built-in feedback resistor. Only one external component is needed for clock generation. Semtech recommends a 4.00 MHz ceramic resonator with built-in load capacitors. RIGHTSW, LEFTSW, and MIDDLESW inputs have built-in pull-up resistors. No additional components are required for a three-button design. However, if high levels of ESD and EMI are expected, then series protection resistors (47 Ohms to 1K Ohms) are recommended between the switches and the switches’ inputs on the IC. 3 www.semtech.com PS/2 MODE COMMANDS PS/2 DATA FORMAT When the Reset Command (0xFF) is enacted, the HulaCoder™ sets the following default parameters: Incremental Stream Mode, 1:1, scaling, disabled, and a report rate of 100 Hz and then sends 0xAA to the host followed by a device ID of 0x00. The following table shows the data report format. Values are expressed in a two’s complement format with a separate sign bit. If there is an overflow of the accumulator, the maximum positive or negative count is reported and the corresponding overflow bit is set. The host sends the Resend Last Data Stream Command (0xFE) when it detects an error in any transmission from the HulaCoder™. The HulaCoder™ then resends the last output data stream to the host. This transmission occurs after a HulaCoder™ transmission and before the host enables the interface allowing the next HulaCoder™ output. The Set Default Status Command (0xF6) re-initializes the device to its condition at power-up. The Disable Command (0xF5) stops the device from transmitting all reports. However, the mode does not change; and the HulaCoder™ is still able to respond to commands. If the Disable Command is issued while the device is transmitting a report, the HulaCoder™ immediately stops the transmission and disables itself. If the HulaCoder™ is in Incremental Stream Mode, the Enable Command (0xF4) allows it to begin data transmission. If the device is in Prompt Mode, the Enable Command updates the internal status of the HulaCoder™, but does not allow the device to transmit reports of motion or button data to the host. Byte 1 b0 b1 b2 b3 b4 b5 b6 b7 Left Button status Right Button Status Middle Button Status Always = 1 X8: MSB (sign) of X data Y8: MSB (sign) of Y data X data overflow Y data overflow 1 1 1 1 = = = = negative negative overflow overflow Byte 2 b0 b1 b2 b3 b4 b5 b6 b7 X0: LSB of X data X1 X2 X3 X4 X5 X6 X7 Byte 3 b0 b1 b2 b3 b4 b5 b6 b7 Y0: LSB of Y data Y1 Y2 Y3 Y4 Y5 Y6 Y7 Status Report Format Table Byte 1 b0 b1 b2 b3 b4 b5 b6 b7 Right Button 1 = depressed Middle Button 1 = depressed Left Button 1 = depressed Always = 0 Scaling - 1:1 (0) / 2:1 (1) Disable - (0) / enable (1) Stream - (0) / prompt (1) mode Always = 0 Byte 2 b0 - 1 Current resolution setting b2 - 7 Always = 0 Byte 3 b0-7 Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 1 = depressed 1 = depressed 1 = depressed 4 Current sampling rate www.semtech.com PS/2 COMMANDS (CONT’D) When the HulaCoder™ receives the Set Sampling Rate Command (0xF3), it responds in both stream and prompt modes, but updates its internal status only in stream mode. The HulaCoder™ responds to the the Read Device Type Command (0xF2) immediately after the Acknowledge with a 0x00. The Set Prompt (Remote) Mode Command (0xF0) sets the device to prompt mode. Data values are then reported only in response to a Read Report Command (0xEB). The Set Echo Mode Command (0xEE) is enables echo mode; with this mode enabled, the HulaCoder™ immediately returns any data bytes except 0xFF or 0xEC. The Reset Echo Mode Command (0xEC) disables echo mode. If this command occurs while the HulaCoder™ is in either stream or prompt Modes, the command is ignored. SEQUENTIAL COMMANDS A sequential command consists of a strictly specified, unbroken sequence of individual commands. The HulaCoder™ implements a special sequential command that can be used to determine its ability to report three buttons. This sequential command is a series of commands to the HulaCoder™ that cause the IC to give a special response to the last command (Read Status). Sequence of commands: 1. Set Resolution = one count/mm Direct: 0xE8,0x00 BIOS: INT0x15, AX=0xC203, BX=0 2. Set Scaling = 1:1 Direct: 0xE6 BIOS: INT0x15, AX=0xC206, BX=1 3. Set Scaling = 1:1 Direct: 0xE6 BIOS: INT0x15, AX=0xC206, BX=1 4. Set Scaling = 1:1 Direct: 0xE6 BIOS: INT0x15, AX=0xC206, BX=1 5. Read Status Direct: 0xE9 BIOS: INT0x15, AX=0xC206, BX=0 The response to the Read Status Command is in the form: Byte 1: Standard Status Information (buttons, scaling, etc.) Byte 2: Number of mouse buttons (3) Byte 3: Firmware Revision Number (encoded) The Read Report Command (0xEB) prompts the HulaCoder™ for a report. The report occurs even if the device has not moved and the status of the switches has not changed. The report is sent by the HulaCoder™ following an Acknowledge. The individual commands that comprise this sequential command have been designed so that a sequential command can be sent to the HulaCoder™ via the standard IBM PS/2 BIOS calls, and the IC only returns a valid response to the Standard Status Request. This ensures that, if the sequential command is sent via the BIOS, the status response is returned accurately even if the BIOS does error detection. Thus, a programmer can have complete control of the mouse without having to access the device hardware port directly. The Set Incremental Stream Mode Command (0xEA) sets the HulaCoder™ to stream mode and disables the device. Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 5 www.semtech.com PS/2 COMMANDS (CONT’D) The Status Request command (0xE9) returns a 3 byte status report. The Set Resolution command (0xE8) controls resolution, and the Set 2:1 Scaling Command (0xE7) enables a coarse/fine tracking response. The HulaCoder™ uses its advanced motion algorithm, so although Set Resolution and Scaling commands are acknowledged and reported as activated, their content is ignored. The Set 1:1 Scaling Command (0xE6) enables the values of movements to be transmitted to the host without any scaling. SERIAL MODE Communication through the serial port is half-duplex at a fixed speed of 1200 Baud, 7N2 protocol. At start-up and after each RTS toggle the HulaCoder™ sends a two-character ASCII string “M3” indicating 3-button capability to the host. SERIAL DATA REPORT FORMAT TABLE Byte 1 b0 b1 b2 b3 b4 b5 b6 X6 X7: MSB of X Data Y6 Y7: MSB of Y Data Right Button Status Left Button Status Always=1 1 = depressed 1 = depressed Byte 2 b0 b1 b2 b3 b4 b5 b6 X0: LSB of X data X1 X2 X3 X4 X5 Always=0 Byte 3 b0 b1 b2 b3 b4 b5 b6 Y0: LSB of Y data Y1 Y2 Y3 Y4 Y5 Always=0 Byte 4 b0 - 4 b5 b6 Always = 0 Middle Button Status 1=depressed Always=0 A data report is sent if motion is detected, or if buttons are pressed or released. Motion is reported relative to the last report sent, in a two’s complement form and eight (8) bit resolution. In other words, the maximum motion values are 128 to +127, saturated at min/max for faster speeds. Byte 4 is sent only if the middle button is pressed, held-down, or released. Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 6 www.semtech.com HULAPOINT™ SENSOR ORIENTATION HulaCoder UR7HCDMP-B-DW: normal sensor orientation HulaCoder UR7HCDMP-A-DW: inverted sensor orientation Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 7 www.semtech.com Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 8 4 3 2 1 FFCC4 JP3 4 3 2 1 FFCC4 JP1 GND GND 0.01µF GND C4 MOSFET_P Q1 VCC R9 R10 499KΩ R11 499KΩ R12 249KΩ 249KΩ NOT_MIDDLE_SW NOT_LEFT_SW NOT_RIGHT_SW 487Ω R14 487Ω R13 4.00MHz VCC GND Y1 VCC C5 10µF 2 D1A 3 www.semtech.com GND V S S 1 10µF 25V C6 680Ω GND 1 1 TC55RP5002ECB713 3 VOUT VIN 2 680Ω D1B R6 680Ω 680Ω R19 9 8 7 6 5 4 3 2 1 U3 R18 GND LEFTSW RIGHTSW PS2DAT PS2CLK VSS(GND) RESET TxD RTS CHX 0.1µF C3 UR7HCDMP-DW MIDDLESW DA0 DA1 DA2 VDD(+V) OSCOUT OSCIN PWRON CHY R17 10 11 12 13 14 15 16 17 18 U1 GND VCC Q3 NPN Q4 PNP 5 R1 R2 3 2 GND 100KΩ R7 100KΩ R8 1 VCC U2 4.7KΩ 4.7KΩ VCC 4.7KΩ R5 47pF C2 47pF C1 47Ω 47Ω Q2 D2A D2B 53048_0910 CTS/PS2+5V TxD <<<< RI/PS2DATA DTR <<<< GND SHIELD DCD/PS2CLK RTS <<<< RxD >>>> JP2 1 3 SHIELD_CON SH2 SH4 SH1 SH3 9 8 7 6 5 4 3 2 1 R3 R4 1 2 DUAL_SCHOTTKY_DIODE VCC MOSFET_P VOLT_DET SAMPLE SCHEMATIC FOR THE HULAPOINT™ MECHANICALS FOR THE HULACODER™ UR7HCDMP-DW B e 18 10 E 1 H 9 α C L MILLIMETERS D Base Plane CP A1 A Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 9 DIM MIN MAX 0 a 0 80 A 2.362 2.641 A1 0.101 0.299 B 0.355 0.482 C 0.241 0.317 D 11.35 11.73 E 7.416 7.594 e 1.270 1.270 H 10.00 10.64 L 0.406 1.143 0.101 CP M 50 10 0 N 0.13 0.17 Q 0 0 70 R 0.13 .30 S 12.95 13.45 T 0.13 U 00 V 12.95 13.45 W 0.40 X 1.6 REF www.semtech.com INCHES MIN MAX 80 00 0.093 0.104 0.004 0.011 0.014 0.019 0.009 0.012 0.447 0.046 0.292 0.299 0.050 0.050 0.394 0.419 0.016 0.045 0.004 50 10 0 0.005 0.007 0 0 7 0 0.005 0.012 0.510 0.530 0.005 00 0.510 0.530 0.016 0.063 REF ELECTRICAL SPECIFICATIONS FOR HULACODER™ UR7HCDMP Absolute Maximum Ratings Ratings Supply voltage Input voltage Current drain per pin (not including Vss or Vdd) Operating temperature UR7HCDMP-xx Storage temperature range Ambient temperature under bias ESD rating (human body model) Symbol Vdd Vin I Value 0 to 7.5 Vss -0.6 to Vdd +0.6 20 Unit V V mA Ta T low to T high -40 to +85 -65 to +150 -55 to +125 TBD °C °C °C KV Tstg Tbias VESD DC Electrical Characteristics, Temperature range=T low to T high unless otherwise noted) Characteristic Symbol Min Typ Max Supply voltage 3.0 5.0 6.0 Output voltage Voh Vdd–0.1 Vol 0.1 Input high voltage Vih 0.7xVdd Vdd Input low voltage Vil Vss 0.2xVdd Input current Iin +/- 1 Internal pull-up current Ipup 50 250 500 Supply current Vdd=0 Idd 2.0 3.5 5. Vdc+/-10%, Vss=0 Unit V V V V µA µA mA Control Timing (Vdd=5.0 Vdc +/-10%, Vss=0 Vdc, Temperature range=T low to T high unless otherwise noted) Characteristic Symbol Min Typ Max Unit Frequency of operation Crystal option fosc 4.0 MHz External clock option fosc 4.0 MHz Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 10 www.semtech.com This Page Left Intentionally Blank Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 11 www.semtech.com For sales information and product literature, contact: Semtech Corporation Human Interface Device (HID) and System Management Division 200 Flynn Road Camarillo, CA 93012-8790 [email protected] http://www.semtech.com/ (805)498-2111 Telephone (805)498-3804 Fax Copyright ©1995-2002 Semtech Corporation. All rights reserved. Semtech and MouseCoder are registered trademarks of Semtech Corporation. HulaCoder and HulaPoint are trademarks of Semtech Corporation. All other trademarks belong to their respective companies. INTELLECTUAL PROPERTY DISCLAIMER This specification is provided "as is" with no warranties whatsoever including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification or sample. A license is hereby granted to reproduce and distribute this specification for internal use only. No other license, expressed or implied to any other intellectual property rights is granted or intended hereby. Authors of this specification disclaim any liability, including liability for infringement of proprietary rights, relating to the implementation of information in this specification. Authors of this specification also do not warrant or represent that such implementation(s) will not infringe such rights. Copyright ©1995-2002 Semtech Corporation DOC7-DMP-DS-109 12 www.semtech.com