HulaCoderTM UR7HCDMP
HulaPointTM Ergonomic Mouse
PS/2 and RS232 Encoder
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
www.semtech.com
1
HID & SYSTEM MANAGEMENT PRODUCTS, MOUSECODER FAMILY
DESCRIPTION
FEATURES
Embedded HulaPointsTM
Industrial panels
Industrial keyboards
Instrumentation
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
Equipped with advanced motion-
control 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 HulaCoderTM 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
HulaPointTM ergonomic mouse.
Equipped with an advanced motion
algorithm, the HulaCoderTM offers
low power consumption in a small-
footprint package. The device
connects to either a serial or a PS/2
mouse port on the host system.
The HulaCoderTM 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.
Serial communication by the
HulaCoderTM is half-duplex at a
fixed speed of 1200 Baud. PS/2
communication is bidirectional at 10
Kbps. The HulaCoderTM
implements all commands to and
from the host system, as defined in
the IBM PS/2 mouse communication
protocol.
The HulaCoderTM 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.
1
2
3
4
5
6
7
8
9
18
17
16
15
14
13
12
11
10
CHX
RTS
TxD
RESET
VSS (GND)
PS2CLK
PS2DAT
RIGHTSW
LEFTSW
CHY
PWRON
OSCIN
OSCOUT
VDD (+V)
DA2
DA1
DA0
MIDDLESW
UR7HCDMP-DW
SOIC
APPLICATIONS
PIN ASSIGNMENTS
PRELIMINARY
FUNCTIONAL DESCRIPTION
ORDERING CODE
Copyright 1995-2002 Semtech Corporation
DOC7-DMP-DS-109
www.semtech.com
2
Package options
18-pin SOIC
18-pin SOIC
Sensor
orientation
Inverted
Normal
Pitch
1.270 mm
1.270 mm
TA =
-40C TO +85C
UR7HCDMP-A-DW
UR7HCDMP-B-DW
The HulaCoderTM 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.
Data Buffer
PS/2
Communication
Port
RS232
Communication
Port
PS2CLK
PS2DAT
TXD
RTS
HulaPoint Interface
Oscillator Circuit
Power-On Reset
Switch Interface
X Input
Y Input
Control
CHX
OSCIN-OSCOUT
16 bit Timer
2
CHY
Sensor Power
Strobe
Resolution
Enhancement D/A
3
LEFT
BUTTON
MIDDLE
BUTTON
RIGHT
BUTTON
FUNCTIONAL DIAGRAM
Note: See the sensor orientation section for sensor orientation diagrams.
AUTODETECT
PIN DESCRIPTION
Copyright 1995-2002 Semtech Corporation
DOC7-DMP-DS-109
www.semtech.com
3
At power-up the HulaCoderTM
automatically detects the host
interface type (PS/2 or serial), and
uses the correct protocol.
Pin Numbers
Mnemonic
Pin
Type
Name and Function
CHX
1
Analog Input
Horizontal input
RTS
2
I/O
Ready To Send (RTS) sense,
power save out
_TxD
3
O, Open Drain
Transmit s
se
erriia
all d
da
atta
a
_RESET
4
I
Reset: apply 0 V for orderly start
up.
GND
5
Power
Ground
PS2CLK
6
I/O
PS/2 clock
PS2DAT
7
I/O
PS/2 data
_RIGHTSW
8
I w/ Pullup
Right switch: low = on
_LEFTSW
9
I w/ Pullup
Left switch: low = on
_MIDDLESW
10
I w/ Pullup
Middle switch: low=on
DA0
11
O
Resolution enhancement
D/A 0:
l
le
ea
as
stt s
siig
gn
niiffiic
ca
an
ntt b
biitt ((LSb)
DA1
12
O
Resolution enhancement
D/A 1
DA2
13
O
Resolution enhancement
D/A 2:
m
mo
os
stt s
siig
gn
niiffiic
ca
an
ntt b
biitt ((MSb)
VCC
14
Power
Power supply
_OSCOUT
15
O
Oscillator output
OSCIN
16
I
O
Os
sc
ciilllla
atto
orr iin
np
pu
utt
_PWRON
17
O
Sensor power strobing
control
CHY
18
Analog Input
Vertical input
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.
PS/2 MODE
PIN DESCRIPTION NOTES
ERROR HANDLING
At start-up or upon receiving a reset
command, clock and data lines of
the HulaCoderTM 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.
For every correct command or
parameter received from the host,
the HulaCoderTM sends an
Acknowledge (0xFA). If an invalid
command or parameter is received,
the HulaCoderTM 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
HulaCoderTM has responded or 25
milliseconds have elapsed.
Note: An underscore before a pin mnemonic denotes an active low signal.
PS/2 MODE COMMANDS
PS/2 DATA FORMAT
Copyright 1995-2002 Semtech Corporation
DOC7-DMP-DS-109
www.semtech.com
4
When the Reset Command
(0xFF) is enacted, the HulaCoderTM
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 host sends the Resend Last
Data Stream Command (0xFE)
when it detects an error in any
transmission from the HulaCoderTM.
The HulaCoderTM then resends the
last output data stream to the host.
This transmission occurs after a
HulaCoderTM transmission and
before the host enables the
interface allowing the next
HulaCoderTM 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
HulaCoderTM is still able to respond
to commands. If the Disable
Command is issued while the
device is transmitting a report, the
HulaCoderTM immediately stops the
transmission and disables itself.
If the HulaCoderTM 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 HulaCoderTM,
but does not allow the device to
transmit reports of motion or button
data to the host.
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.
Byte 1
b0
Left Button status
1 = depressed
b1
Right Button Status
1 = depressed
b2
Middle Button Status
1 = depressed
b3
Always = 1
b4
X8: MSB (sign) of X data
1 = negative
b5
Y8: MSB (sign) of Y data
1 = negative
b6
X data overflow
1 = overflow
b7
Y data overflow
1 = overflow
Byte 2
b0
X0: LSB of X data
b1
X1
b2
X2
b3
X3
b4
X4
b5
X5
b6
X6
b7
X7
Byte 3
b0
Y0: LSB of Y data
b1
Y1
b2
Y2
b3
Y3
b4
Y4
b5
Y5
b6
Y6
b7
Y7
Status Report Format Table
Byte 1
b0
Right Button
1 = depressed
b1
Middle Button
1 = depressed
b2
Left Button
1 = depressed
b3
Always = 0
b4
Scaling - 1:1 (0) / 2:1 (1)
b5
Disable - (0) / enable (1)
b6
Stream - (0) / prompt (1) mode
b7
Always = 0
Byte 2
b0 - 1 Current resolution setting
b2 - 7 Always = 0
Byte 3
b0-7
Current sampling rate
PS/2 COMMANDS (CONT'D)
SEQUENTIAL COMMANDS
Copyright 1995-2002 Semtech Corporation
DOC7-DMP-DS-109
www.semtech.com
5
When the HulaCoderTM receives the
S
et Sampling Rate Command
(0xF3), it responds in both stream
and prompt modes, but updates its
internal status only in stream mode.
The HulaCoderTM 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
HulaCoderTM immediately returns
any data bytes except 0xFF or
0xEC.
The Reset Echo Mode
Command (0xEC) disables echo
mode. If this command occurs
while the HulaCoderTM is in either
stream or prompt Modes, the
command is ignored.
The Read Report Command
(0xEB) prompts the HulaCoderTM 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
HulaCoderTM following an
Acknowledge.
The Set Incremental Stream
Mode Command (0xEA) sets the
HulaCoderTM to stream mode and
disables the device.
A sequential command consists of a strictly specified, unbroken sequence
of individual commands.
The HulaCoderTM 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 HulaCoderTM 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 individual commands that comprise this sequential command have
been designed so that a sequential command can be sent to the
HulaCoderTM 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.