AVAGO ADNS-2700

ADNS-2700
Single Chip USB Optical Mouse Sensor
Data Sheet
Description
Features
The ADNS-2700 is a compact, one chip USB optical mouse
sensor designed for implementation of a non-mechanical
tracking engine in computer mice.
 One chip USB mouse sensor
It is based on optical navigation technology that measures
changes in position by optically acquiring sequential
surface images (frames) and mathematically determining
the direction and magnitude of movement.
 Meets HID Revision 1.11
The sensor is in an 8-pin optical package that is designed
to be used with the ADNS-5100-001 trim lens, LED clip
and the HLMP-EG3E-xxxxx LED. Together, these parts
provide a complete and compact mouse sensor. There
are no moving parts and precision optical alignment is
not required, thus facilitating high volume assembly.
The output format is USB. This device meets HID Revision
1.11 specification and is compatible with USB Revision 2.0
specification.
 USB 2.0 Low Speed Compliance
 12 bits USB motion data reporting
 Single 5.0 volts power supply
 High speed motion detection at 30 inches per second
(ips) and acceleration up to 8 g
 Input buttons: 3 buttons
 Z-Wheel interface for vertical scroll
 Integrated oscillator
 Integrated USB D- pull-up resistor
 Product string is set to “USB Optical Mouse”
 On-chip OTP memory for device configuration
flexibility without any external software driver:
Frame rate is varied internally to the sensor to achieve
tracking and speed performance, eliminating the need for
the use of many registers.
– Programmable resolution from 500 to 1250 counts
per inch (cpi) with 250 cpi step.
Default resolution is specified as 1000 counts per inch,
with rates of motion up to 30 inches per second.
– Programmable VID and PID.
A complete mouse can be built with the addition of a PC
board, switches and Z-wheel, plastic case and cable.
– Programmable sensor orientation
Applications
 Corded optical mice
 Trackballs
NOTE: ADNS-2700 will be referred to as "sensor", ADNS-5100001 as " trim lens" and HLMP-EG3E as "LED" hereafter.
 Integrated input devices
Theory of Operation
Package Pinout
The sensor is based on Optical Navigation Technology.
It contains an Image Acquisition System (IAS), a Digital
Signal Processor (DSP) and USB stream output.
Date Code
4
5
The IAS acquires microscopic surface images via the lens
and illumination system provided by the trim lens. The
clip and LED. These images are processed by the DSP to
determine the direction and distance of motion. The DSP
generates the x and y relative displacement values
which are converted to USB motion data.
Table 1. Pin Name Description
Pin Name
Input/Output Description
XY_LED
I
XY_LED
VDDA5
–
5-Volt Power
ZB
I
Z-Wheel quadrature input
ZA
I
Z-Wheel quadrature input
SW
–
3-in-1 button pin. Do not force
any voltage into this pin
GND
–
Ground
D-
I/O
USB D- line
D+
I/O
USB D+ line
2
3
6
2
7
1
8
Lot Code
Product Number
Item
Marking
Remarks
Product Number
A2700
Date Code
XYYWWZ
X = Subcon Code
YYWW = Date Code
Z = Sensor Die Source
E = Wafer Revision
Lot Code
VVV
Numeric
Figure 1. Package outline drawing (top view)
Product
Number
Date Code
Features for
Illustration only
9.90
0.390
9.10
0.358
3.21
0.126
4.30
0.169
5.15
0.203
12.85
(At shoulder)
0.506
Lot Code
Pin 1
±
90
1.00
Lead offset
0.039
0.50
0.020
(2.54)
0.100
∅ 5.60
12.85 ± 0.50
(At lead tip)
0.506 ± 0.020
2.00
0.079
(0.04)
0.002
Lead pitch
3q
Lead width
Pin 1
0.220
4.55
0.179
Protective
Kapton Tape
Section A-A
A
A
∅ 0.80
0.031
Clear Optical Path
4.45
0.175
Notes:
1. Dimensions in millimeter / inches.
2. Dimensional tolerance: ± 0.1mm.
3. Coplanarity of leads: 0.1mm.
4. Lead pitch tolerance: ± 0.15mm.
5. Non-cumulative pitch tolerance: ± 0.15mm.
6. Angular tolerance: ± 3q
7. Maximum flash: 0.2mm.
8. Brackets () indicate reference dimension.
9. Document Number: LED_DIFF_8B_PKG_002
Figure 2. Package Outline Drawing
CAUTION: It is advised that normal static precautions be taken in handling and assembling
of this component to prevent damage and/or degradation which may be induced by ESD.
3
Overview of Optical Mouse Sensor Assembly
Avago Technologies provides an IGES file drawing describing the base plate molding features for lens and PCB
alignment. The sensor is designed for mounting on a through-hole PCB. There is an aperture stop and features
on the package that align to the lens. The lens provides optics for the imaging of the surface as well as the
illumination of the surface at the optimum angle. Features on the lens align it to the sensor, base plate, and clip with
the LED. The clip holds the LED in relation to the lens. The LED must be inserted into the clip and the LED’s leads formed
prior to loading on the PCB.
10.35
0.407
7.56
0.298
6.29
0.248
5.02
0.198
2.25
0.089
Optional hole for
alignment post if used
12.85
0.506
31.50
1.240
0.25
0.010
26.67
1.050
14.44
0.569
3x 0
2x 0
24.15
0.951
3.00
0.118
Clear Zone
0.80
0.031
14.94
0.588
Pin #1
0
0
2.00
0.079
2.00
0.079
8x 0
25.00
0.984
1.00
0.039
Hole Pitch
Distance
0.80
0.031
Optical Center
0
0
1.37
0.054
6.29
0.248
11.22
0.442
12.60
0.496
Figure 3. Recommended PCB Mechanical Cutouts and Spacing
4
13.06
0.514
33.45
1.317
TOP VIEW
Pin #1
B
B
13.10
0.516
BASE PLATE
CROSS SECTION SIDEVIEW
LENS
LED
10.59
0.417
LED CLIP
SENSOR
PCB
7.45
0.293 TOP PCB to SURFACE
ALIGNMENT POST
(OPTIONAL)
2.40 BOTTOM of LENS
0.094 FLANGE to SURFACE
BASE PLATE
NAVIGATION SURFACE
NOTE: Dimensions in mm/Inches
Important Note: Pin 1 of sensor should be located nearest to the LED
Figure 4. 2D Assembly drawing of sensor (Top and Side View)
Lens
Sensor
Object Surface
Lens Reference Plane
Z=
2.40
0.094
Figure 5. Distance from lens reference plane to tracking surface (Z)
5
LED
Clip
Sensor
Customer supplied PCB
Trim Lens
Customer supplied base plate with
recommended alignment features
per IGES drawing
IMPORTANT NOTE: P-bin LED or better is recommended.
Figure 6. Exploded View of Assembly
PCB Assembly Considerations
1. Insert the sensor and all other electrical components
into PCB.
2. Insert the LED into the assembly clip and bend the
leads 90 degrees.
3. Insert the LED clip assembly into PCB.
4. This sensor package is only qualified for wave-solder
process.
5. Wave solder the entire assembly in a no-wash solder
process utilizing solder fixture. The solder fixture is
needed to protect the sensor during the solder process.
It also sets the correct sensor-to-PCB distance as the
lead shoulders do not normally rest on the PCB surface.
The fixture should be designed to expose the sensor
leads to solder while shielding the optical aperture
from direct solder contact.
6. Place the lens onto the base plate.
6
7. Remove the protective Kapton tape from optical
aperture of the sensor. Care must be taken to keep
contaminants from entering the aperture. Recommend
not to place the PCB facing up during the entire mouse
assembly process. Recommend to hold the PCB first
vertically for the Kapton removal process.
8. Insert PCB assembly over the lens onto the base plate
aligning post to retain PCB assembly. The sensor
aperture ring should self-align to the lens.
9. The optical position reference for the PCB is set by the
base plate and lens. Note that the PCB motion due to
button presses must be minimized to maintain optical
alignment.
10. Install mouse top case. There MUST be a feature in
the top case to press down onto the PCB assembly to
ensure all components are interlocked to the correct
vertical height.
USB
PORT
D+
SW
D
BUTTONS
CONTROL AND
I/O PROCESSOR
ZA
Z WHEEL
OSCILLATOR
LED XY_LED
LED
DRIVE
POWER
ON
RESET
IMAGE
PROCESSOR
R
VE
OG
LU
T L
AA
GT
EO
R
VDDA5
5 VOLT
POWER
GND
Figure 7. Block diagram of optical mouse
Design considerations for improving ESD Performance
The table below shows typical values assuming base plate
construction per the Avago Technologies supplied IGES
file trim lens. Stand-off of the base plate shall not be larger
than 5 mm.
Typical Value
Distance (mm)
Creepage
17.9 mm
Clearance
9.2 mm
Note that the lens material is polycarbonate or polystyrene HH30, therefore, cyanoacrylate based adhesives
should not be used as they will cause lens material deformation
7
1
2
3
4
5
T
59.0  143.0
8
22R
22R
1
Middle Button
Right Button
Left Button
C9
20 pF
VDD_LED
Don’t use jumper wire. Use resistor to jump instead. Keep the trace wide.
Keep (pin 5) away from noisy traces, GND plane and Power plane.
The 3 button trace for SW pin need to be same width, length.
Figure 8. Application Circuit with sensor
2
1
R9
R8
C2
10 μF/50 V
POWER BLOCK
VDD
2
2
3
2
3
SW3
SW2
SW1
1
1
1
6
SW
ZA
ZB
XY_LED
C5
4.7 μF/10 V
A2700
Buttons
BM
BR
BL
GND
D+
D-
VDDA5
Use ONLY 1% tolerance resistor for buttons
C10
20 pF
8
7
2
U1
C3
100 nF
VDD
Try to shield the HWEL with a SHIELD Plane (USB pin 5) similar size of HWFL before connect to GND. Isolate the Shield island with GND plane
S
59.0  110.0
1
R
59.0  93.1
LED Bin
Q
VCC
USBUSB+
VSS
Shield
59.0  78.7
Rbin Value (Ohm)
Table 1
H1
HWFL 2mm 5Way
R
W
G
B
B
VCC
VCC
5
4
3
1
R7
30 k
R10
15 k
D5
HLMP-EG3E
Rbin
Refer to Rbin Table
VDD_LED
R11
6.8 k
2
COM
B
A
Z-ENCORDER
Z1
3
2
1
1
PAD1
P6
VCC
1
ZB
ZA
1
1
1
PAD1
PAD1
PAD1
GND
ZB
P2
P1
P3
VDD
ZA
MECH-Z-Encoder
1
1
1
PAD1
P9
VDD
VOLTAGE MEASUREMENT
VCC
ZA
ZB
VDD
Regulatory Requirements
 Passes FCC B and worldwide analogous emission limits when assembled into a mouse with shielded cable and
following Avago Technologies recommendations.
 Passes EN61000-4-4/IEC801-4 EFT tests when assembled into a mouse with shielded cable and following Avago
Technologies recommendations.
 UL flammability level UL94 V-0.
 Provides sufficient ESD creepage/clearance distance to withstand discharge up to 8 kV when assembled into a mouse
with trim lens according to usage instructions above.
Absolute Maximum Ratings
Parameter
Symbol
Minimum
Maximum
Units
Storage Temperature
TS
-40
85
C
Operating Temperature
TA
-15
55
C
260
C
VDDA5
-0.5
5.5
V
2
kV
All pins, human body model JESD22-A114
VIN
-0.5
VDDA5 +0.5
V
All I/O pins except D+, D-
-1.0
4.6
V
D+, D-, AC waveform,
see USB specification (7.1.1)
0
VDDA5
V
D+, D-, see USB specification (7.1.1)
Lead Solder Temperature
Supply Voltage
ESD
Input Voltage
Input Short Circuit Voltage
VSC
Notes
For 10 seconds, 1.6 mm below seating plane.
Recommended Operating Condition
Parameter
Symbol
Minimum
Operating Temperature
TA
0
Power Supply Voltage
VDDA5
4.25
Vddm
4.0
Power Supply Rise Time
VRT
0.1
Supply Noise
VN
Velocity
Vel
30
ips
Acceleration
Acc
8
g
0.5 g from Rest
1
MHz
50% duty cycle
2.5
mm
See Figure 9
25000
MW/m2
 = 639 nm
fps
Internally adjusted by sensor
Serial Port Clock Frequency
fSCLK
Distance from Lens Reference
Plane to Surface
Z
2.3
Light Level onto IC
IRRINC
80
Frame Rate
Maximum
Units
40
C
5.0
5.25
V
For accurate navigation and
proper USB operation
5.0
5.25
V
Maintains communication to
USB host and internal register
contents.
6
ms
100
mV
2.4
2400
Sensor
Lens
Z
Object Surface
Figure 9. Distance from lens reference plane to object surface
9
Typical
Notes
Peak to peak within 0-100
MHz bandwidth
AC Electrical Specifications
Electrical Characteristics over recommended operating conditions. Typical values at 25° C, VDDA5 = 5.0 V.
Parameter
Symbol
Wakeup Delay from Rest Mode
Due to Motion
T WUPP
Power Up Delay
TPUP
Debounce Delay on
Button Inputs
TDBB
5
Scroll Wheel Sampling Period
TSW
150
Transient Supply Current
IDDT
Minimum
Typical
Maximum
Units
Notes
1
2
ms
50
ms
9
17
ms
“Maximum” specified at 8 ms
polling rate.
200
300
s
ZA PIN
60
mA
Max. supply current during
a VDDA5 ramp from 0 to 5.0 V
with > 500 s rise time. Does
not include charging currents
for bypass capacitors.
USB Electrical Specifications
Electrical Characteristics over recommended operating conditions.
Parameter
Symbol
Minimum
Maximum
Units
Notes
Output Signal Crossover Voltage
VCRS
1.5
2.0
V
CL = 200 to 600 pF (see Figure 10)
Input Signal Crossover Voltage
VICRS
1.2
2.1
V
CL = 200 to 600 pF (see Figure 10)
Output High
VOH
2.8
3.6
V
with 15 k to Ground and 7.5 k to VBUS on
D- (see Figure 11)
Output Low
VOL
0.0
0.3
V
with 15 k to Ground and 7.5 k to VBUS on
D- (see Figure 11)
0.8
Single Ended Input
VSEI
Input High (Driven)
VIH
2.0
Input High (Floating)
VIHZ
2.7
VIL
VDI
0.2
Differential Input Common
Mode Range
VCM
0.8
Single Ended Receiver Threshold
VSE
0.8
Transceiver Input Capacitance
CIN
10
3.6
0.8
Input Low
Differential Input Sensitivity
V
V
V
V
7.5 k to VDDA5
V
|(D+)-(D-)| See Figure 12
2.5
V
Includes VDI, See Figure 12
2.0
V
12
pF
D+ to VBUS, D- to VBUS
USB Timing Specifications
Timing Specifications over recommended operating conditions.
Parameter
Symbol
Minimum
D+/D- Transition rise time
TLR
75
D+/D- Transition rise time
TLR
D+/D- Transition fall time
TLF
D+/D- Transition fall time
TLF
Rise and Fall time matching
TLRFM
Wakeup delay from USB
suspend mode due to
buttons push
Maximum
Notes
ns
CL = 200 pF (10% to 90%), see Figure 10
ns
CL = 600 pF (10% to 90%), see Figure 10
ns
CL = 200 pF (90% to 10%), see Figure 10
300
ns
CL = 600 pF (90% to 10%), see Figure 10
125
%
TR/TF; CL = 200 pF; Excluding the first
transition from the Idle State
T WUPB
17
ms
Delay from button push to USB operation
Only required if remote wakeup enabled
Wakeup delay from USB
suspend mode due to buttons
push until accurate navigation
T WUPN
50
ms
Delay from button push to navigation
operation. Only required if remote wakeup
enabled
USB reset time
Treset
18.7
Data Rate
tLDRATE
1.4775
1.5225
Mb/s
Average bit rate, 1.5 Mb/s +/- 1.5%
Receiver Jitter Tolerance
tDJR1
-75
75
ns
To next transition, see Figure 13
Receiver Jitter Tolerance
tDJR2
-45
45
ns
For paired transitions, see Figure 13
Differential to EOP
Transition Skew
tLDEOP
-40
100
ns
See Figure 14
EOP Width at Receiver
tLEOPR
670
ns
Accepts EOP, see Figure 14
Source EOP Width
tLEOPT
1.25
Width of SE0 interval during
Differential Transition
tLST
Differential Output Jitter
tUDJ1
Differential Output Jitter
tUDJ2
VOH
300
Units
75
80
s
1.50
s
210
ns
See Figure 11.
-95
95
ns
To next transition, see Figure 15
-150
150
For paired transitions, see Figure 15
D+
90%
90%
VCRS
VOL
10%
D
Figure 10. Data Signal Rise and Fall Times
11
10%
TLR
TLF
Rise Time
Fall Time
Minimal Reflectance
and Ringing
One Bit Time (1.5 MB/s)
VOH (min)
VIH (min)
VIL (max)
VOL (max)
GND
tLST
Figure 11. Data Signal Voltage Levels
Differential Input Voltage Range
Differential Output
Crossover
Voltage Range
-1.0
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
2.6
2.8
3.0
3.2
4.6
Input Voltage Range (volts)
Figure 12. Differential Receiver Input Sensitivity vs. Common Mode Input Range
TPERIOD
TDJR
TDJR1
Consecutive Transitions
N * TPERIOD + TDJR1
Paired Transitions
N * TPERIOD + TDJR2
Figure 13. Receiver Jitter Tolerance
12
TDJR2
TPERIOD
Crossover Point
Crossover Point
Extended
Differential
Data Lines
Differential Data
to SE0 Skew
N * TPERIOD + TLDEOP
Source EOP Width: TLEOPT
Receiver EOP Width: TLEOPR
Figure 14. Differential to EOP Transition Skew and EOP Width
TPERIOD
Differential
Data Lines
Consecutive Transitions
N * TPERIOD + TUDJ1
Paired Transitions
N * TPERIOD + TUDJ2
Figure 15. Differential Output Jitter
13
DC Electrical Specifications
Electrical Characteristics over recommended operating conditions. Typical values at 25° C, VDDA5 = 5.0 V.
Parameter
Symbol
System Current, Mouse Moving
Typical
Maximum
Units
Notes
IDD5
35
50
mA
Includes XY_LED current
System Current, Mouse Not
Moving
IDD5N
15
30
mA
Includes XY_LED current
System Current, USB Suspend
Mode, Remote Wakeup Enabled
IDD5S
500
A
Includes XY_LED current and
D- pullup resistor.
Supply Current (Sensor only),
Mouse Moving
IDDS
4.5
8
mA
No load on SW, XY-LED, ZA, ZB,
D+, D-
Supply Current (Sensor only),
Mouse Not Moving
IDDSN
3.9
7.5
mA
No load on SW, XY-LED, ZA, ZB,
D+, D-
Sensor Supply Current,
USB Suspend Mode
IDDSS
320
A
No load on SW, XY-LED, ZA, ZB,
D+,D-
XY_LED Current
ILED
30
mA
XY_LED Output Low Voltage
VOL
1.1
V
Input Low Voltage
VIL
0.5
V
Pins: ZA, ZB
VIL max of 0.5 VDC is at VDDA5 min
of 4 V DC, with a typical of 0.8 VDC
at VDDA5 of 5 VDC
Input High Voltage
VIH
V
Pins: ZA, ZB
14
Minimum
0.6*VDDA5
One-Time-Programmable (OTP) Memory
OTP Byte Write Operation
The on chip OTP memory allows device configuration flexibility to override the default setting of sensors without
any external software driver. Once the OTP operation
is enabled, all OTP registers must be programmed
accordingly as the default values of un-program OTP
registers are always zero when L1_USE_OTP register
setting is not zero value. Tips: OTP write to the OTP register
can be skipped if the setting is zero value (0x00) in order
to save the OTP programming time.
OTP write operation flow chart is shown in Figure 16.
OTP address space is from 0xDF to 0xE8. OTP can be programmed via USB interface using Set Vendor Test and Get
Vendor Test commands.
5. Set write enable bit in OTP_CTRL register, 0x54 to
enable write command to OTP: WR = 1.
1. Set OTP Clock enable bit in OTP_CLOCK register, 0x42:
OTP_CLOCK_EN = 1.
2. Set OTP enable bit in OTP_CONFIG register, 0x51: OTP_
EN = 1.
3. Write the OTP register address byte to OTP_ADDR
register, 0x52.
4. Write the OTP data byte to OTP_DATA register, 0x53.
6. Read the write enable bit status in OTP_CTRL register,
0x54. If WR = 1, repeat reading the bit status until it is
clear.
7. Read the write status bit in OTP_CTRLSTAT register,
0x58.
a. If WR_OK = 1, OTP write operation is completed.
Repeat Step 2 for more OTP byte write operations.
b. If WR_OK = 0, repeat Step 5.
8. If Step 6b is repeated up to 10 times, OTP write operation
is failed and the chip is confirmed as defective unit.
Start
0x51: REGA_OTP_CONFIG[0]=1
Write OTP enable bit
repeat = 1
0x52: REGA_OTP_ADDR[7:0]
Write OTP address byte
0x53: REGA_OTP_DATA[7:0]
Write OTP data byte
0x54: REGA_OTP_CTRL[0]=1
Write OTP program bit
0x54: REGA_OTP_CTRL[0]
Read OTP program bit
No
bit = 0?
Yes
0x58: REGA_OTP_CTRLSTAT[0]
repeat = repeat + 1
read otp status bit
No
bit = 1?
No
Yes
OTP write pass
No
Done
Figure 16. OTP Byte Write Flow Chart
15
OTP write fail
Yes
more
bytes?
repeat = 10?
Bad Chip
OTP Byte Read Operation
OTP read operation flow chart is shown in Figure 17.
1. Set OTP Clock enable bit in OTP_CLOCK register, 0x42:
OTP_CLOCK_EN = 1.
2. After OTP write to OTPLOCK1 register, set OTP enable
bit in OTP_CONFIG register, 0x51: OTP_EN = 1.
3. Set OTP lock bit in OTP_CTRL register, 0x54 to enable
OTP lock command: LOCK_L1 = 1.
2. Set OTP enable bit in OTP_CONFIG register, 0x51: OTP_
EN = 1.
4. Read the OTP lock bit status in OTP_CTRL register, 0x54.
If LOCK_L1 = 1, repeat reading the bit status until it is
clear.
3. Write the OTP register address byte to OTP_ADDR
register, 0x52.
5. Read the lock status and CRC bits in OTP_CTRLSTAT
register, 0x58.
4. Set read enable bit in OTP_CTRL register, 0x54 to enable
write command to OTP: RD = 1.
a. If both L1_LOCK_OK and L1_CRC_OK = 1, OTP lock
operation is completed.
5. Read the read enable bit status in OTP_CTRL register,
0x54. If RD = 1, repeat reading the bit status until it is
clear. Read the OTP data byte from OTP_DATA register,
0x53 to complete the OTP read operation.
b. If either L1_LOCK_OK or L1_CRC_OK = 0, repeat Step
2 until both bits are set.
6. Read the OTP data byte from OTP_DATA register, 0x53
to complete the OTP read operation.
7. Repeat Step 2 for more OTP read operations
6. If Step 4b is repeated up to 10 times, OTP lock operation
is failed and the chip is confirmed as defective unit.
7. Read the CRC result stored in register 0xE9, 0xEA, 0xEB,
0xEC, if four register values not 0x00 means CRC has
been generated correctly and verified as lock operation
success.
Start
0x51: REGA_OTP_CONFIG[0]=1
Start
Write OTP enable bit
0x52: REGA_OTP_ADDR[7:0]
Write OTP addr byte
0x54: REGA_OTP_CTRL[1]=1
Write OTP read bite
0x54: REGA_OTP_CTRL[1]
0x51: REGA_OTP_CONFIG[0]=1
Write OTP enable bit
Repeat = 1
0x54: REGA_OTP_CTRL[3]=1
Write OTP lock bit
Wait for 10ms
Read OTP program bit
No
0x54: REGA_OTP_CTRL[3]
Read OTP lock bit
bit = 0?
No
bit = 0?
Yes
0x53: REGA_OTP_DATA[7:0]
Yes
Read OTP data
0x58: REGA_OTP_CTRLSTAT[4]
Read lock status bit
Repeat = Repeat + 1
OTP read done
0x58: REGA_OTP_CTRLSTAT[5]
Read CRC status bit
No
Yes
more
bytes?
No
Repeat = 10?
lock & crc = 1?
No
Yes
Yes
OTP write fail
Done
OTP lock
Figure 17. OTP Byte Read Flow Chart
Bad Chip
more lock?
OTP Lock Operation
OTP lock operation MUST be performed once OTP write to
OTPLOCK1 register for the sensor to function. DO not reset
or power up the chip right after OTP write to OTPLOCK1
register, otherwise the chip will be malfunction. The OTP
lock operation flow chart is shown in Figure 18.
32 bit CRC results stored in register
0xE9 0xEA 0xEB 0xEC
Compare CRC
No
CRC Correct?
Yes
Done
1. Set OTP Clock enable bit in OTP_CLOCK register, 0x42:
OTP_CLOCK_EN = 1
16
Figure 18. OTP Byte Lock Flow Chart
Yes
Buttons
Debounce Algorithm
The minimum time between button pressed is TDBB. The
button connection is described in Figure 19
 Button inputs B1, B2, and B3 are sampled every 6ms.
SW
Pin
 Three consecutive high values create a button release
event.
R7
30 k
R10
15 k
BL
R11
6.8 k
BR
 Two consecutive low values create a button press
event.
BM
Note: Use only 1%
tolerance resistors
Figure 19. Button connections
Configuration after Power up (Data Values)
Signal
Function
State from Figure 9-1 of USB spec:
Powered or Default Address or Configured
State from Figure 9-1 of USB spec:
Suspended from Any Other State
SW
Output voltage at 1.16 V (Typ)
Output voltage at 2.7 V (Typ)
D-
USB I/O
Hi-Z Input
D+
USB I/O
Hi-Z Input
XY_LED
Always ON / Pulsing
Pulled HIGH (OFF)
ZB
Hi-Z Input
Output HIGH
ZA
Hi-Z Input
Output HIGH
Typical Performance Characteristics
Performance Characteristics over recommended operating conditions. Typical values at 25° C, VDD = 5.0 V, 24 MHz
Parameter
Symbol
Path Error
(Deviation)
PError
Minimum
Typical
0.5
Maximum
Units
Notes
%
Average path error as percent of total 2.5” travel on
various standard surfaces
The following graphs are the typical performance of the sensor, assembled as shown in the 2D assembly drawing with
trim lens, clip, and LED.
17
Resolution vs Z-Height on Standard Surfaces
1200
Resolution (DPI)
1000
800
600
400
White Formica
White Paper
Manila
200
Spruce/White Pine
Black Formica
0
1.8
1.9
2.0
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.0
3.1
3.2
Distance from Lens Reference Plane to Surface, Z (mm)
Figure 20. Typical Resolution vs. Z Height
Mean Shutter vs Z (White paper)
Shutter value (Count)
100
Avg-3sigma
Avg
Avg+3sigma
50
0
1.6
1.8
2.0
2.2
2.4
2.6
2.8
3.0
Distance from Lens Reference Plane to Surface, Z (mm)
3.2
Figure 21. Mean shutter vs Z height over white paper
Notes:
1. The sensor is designed for optimal performance when used with the specified LED.
2. Z = distance from Lens Reference Plane to Surface.
18
3.4
USB Commands
Mnemonic
Command
Notes
USB_RESET
D+/D- low > 18.7 s
Device Resets; Address=0
USB_SUSPEND
Idle state > 3 mS
Device enters USB low-power mode
USB_RESUME
Non-idle state
Device exits USB low-power mode
Get_Status_Device
80 00 00 00 00 00 02 00
Normally returns 00 00, Self powered 00 00,
Remote wakeup 02 00
Get_Status_Interface
81 00 00 00 00 00 02 00
Normally returns 00 00
Get_Status_Endpt0
82 00 00 00 xx 00 02 00
OUT: xx=00, IN: xx=80
Normally returns 00 00
Get_Status_Endpt1
82 00 00 00 81 00 02 00
Normally returns 00 00, Halt 00 01
Get_Configuration
80 08 00 00 00 00 01 00
Return: 00=not config., 01=configured
Get_Interface
81 0A 00 00 00 00 01 00
Normally returns 00
Get_Protocol
A1 03 00 00 00 00 01 00
Normally returns 01, Boot protocol 00
Get_Desc_Device
80 06 00 01 00 00 nn 00
See USB command details
Get_Desc_Config
80 06 00 02 00 00 nn 00
See USB command details
Get_Desc_String
80 06 xx 03 00 00 nn 00
See USB command details
Get_Desc_HID
81 06 00 21 00 00 09 00
See USB command details
Get_Desc_HID_Report
81 06 00 22 00 00 nn 00
See USB command details
Get_HID_Input
A1 01 00 01 00 00 nn 00
Return depends on motion & config
Get_Idle
A1 02 00 00 00 00 01 00
Returns rate in multiples of 4 ms
Get_Vendor_Test
C0 01 00 00 xx 00 01 00
Read register xx
Set_Address
00 05 xx 00 00 00 00 00
xx = address
Set_Configuration
00 09 xx 00 00 00 00 00
Not configured: xx=00
Configured: xx=01
Set_Interface
01 0B 00 00 00 00 00 00
Only one interface supported
Set_Protocol
21 0B xx 00 00 00 00 00
Boot: xx=00, Report: xx=01
Set_Feature_Device
00 03 01 00 00 00 00 00
Enable remote wakeup
Set_Feature_Endpt0
02 03 00 00 xx 00 00 00
Halt. OUT: xx=00, IN: xx=80
Set_Feature_Endpt1
02 03 00 00 81 00 00 00
Halt
Clear_Feature_Device
00 01 01 00 00 00 00 00
Disable Remote wakeup
Clear_Feature_Endpt0
02 01 00 00 xx 00 00 00
Clear Halt; OUT: xx=00, IN: xx=80
Clear_Feature_Endpt1
02 01 00 00 81 00 00 00
Clear Halt
Set_Idle
21 0A 00 rr 00 00 00 00
rr = report rate in multiples of 4 ms
Set_Vendor_Test
40 01 00 00 xx yy 00 00
Write yy to address xx
Poll_Endpt1
Read buttons, motion, & Z-wheel
Note:
The last two bytes in a command shown as “nn 00” specify the 16-bit data size in the order of “LowByte HighByte.” For example a two-byte data size
would be specified as “02 00.” The sensor will not provide more bytes than the number requested in the command, but it will only supply up to a
maximum of 8 bytes at a time. The sensor will re-send the last packet if the transfer is not acknowledged properly.
19
USB COMMAND DETAILS
USB_RESET
D+/D- low for an extended period
USB Spec:
A device may reset after seeing an SE0 for more than 18.7 uS, and definitely after 10 mS.
Notes:
After power up and prior to Reset, the device will not respond to any USB commands. After the device
has been given a USB Reset, the device’s address will be reset to zero and the device will be in the
Default state. The chip will default to Report protocol and any pending output will be flushed.
All registers will be reset to a state that matches power-on-reset with the following exceptions: USB
State register will be “Default” instead of “Attached”.
USB_SUSPEND
Idle state for an extended period
USB Spec:
A device may suspend after seeing an idle for more than 3 mS, and definitely after 10 mS.
Notes:
The chip will take a minimum of 5 mS to start Suspend, though will definitely start after 6 mS. The chip
may finish the current frame if necessary before stopping the clock. Thus, an additional frame time may
be used to reach Suspend mode.
USB_RESUME
Non-idle state
USB Spec:
Remote Resume signalling from a device must be between 1 mS and 15 mS. The host is required to
send Resume signaling for 20 mS plus 10 mS of resume recovery time in which it does not access any
devices. This allows devices enough time to wake back up.
Notes:
The chip can cause a Resume if Remote Wakeup is enabled and a button has been pressed. Remote
resume signalling from the chip will last 11.45 mS to 12.45 mS.
Get_Status_Device
80 00 00 00 00 00 02 00
Returns:
xx yy
xx[0] = Self Powered
xx[1] = Remote Wakeup
xx[7:2] = 0
yy = 00 (Reserved)
Default:
Accept (undefined in USB Spec)
Addressed:
Accept
Configured:
Accept
Notes:
Use Set_Feature_Device/Clear_Feature_Device to set/clear remote wakeup.
Get_Status_Interface
81 00 00 00 00 00 02 00
Returns:
00 00
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Accept
Notes:
Both return bytes are reserved and currently 00.
20
Get_Status_Endpt0
82 00 00 00 xx 00 02 00
82 00 00 00 00 00 02 00
82 00 00 00 80 00 02 00
xx = 00 = Endpt0 OUT
xx = 80 = Endpt0 IN
Returns:
xx yy
xx[0] = Halt
xx[7:1] = 0
yy = 00 (Reserved)
Default:
Accept (undefined in USB Spec)
Addressed:
Accept
Configured:
Accept
Notes:
Use Set_Feature_Endpt0/Clear_Feature_Endpt0 to (try to) set/clear Halt bit. According to USB, “It is
neither required or recommended that the Halt feature be implemented for the Default Control Pipe.”
Since a new SETUP command will clear any Endpt0 halt bit, it is impossible to tell if there really is a
halt bit.
Get_Status_Endpt1
82 00 00 00 81 00 02 00
Returns:
xx yy
xx[0] = Halt
xx[7:1] = 0
yy = 00 (Reserved)
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Accept
Notes:
Use Set_Feature_Endpt1/Clear_Feature_Endpt1 to set/clear Halt bit.
Get_Configuration
80 08 00 00 00 00 01 00
Returns:
xx
xx = config value
Default:
Accept (undefined in USB Spec) – returns 00
Addressed:
Accept – returns 00
Configured:
Accept – returns 01
Notes:
Use Set_Configuration to change.
Get_Interface
81 0A 00 00 00 00 01 00
Returns:
00
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Accept – returns 00
Notes:
Command has no alternate interfaces, so only valid value is 00
21
Get_Protocol
A1 03 00 00 00 00 01 00
Returns:
xx
xx = 00 = Boot protocol
xx = 01 = Report protocol
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
Defaults to Report protocol after USB Reset. Use Set_Protocol to change.
Get_Desc_Device
80 06 00 01 00 00 nn 00
80 06 00 01 00 00 12 00
Returns:
12 01 00 02 00 00 00 08
vv vv pp pp dd dd mm PP
ss 01
Example:
vv vv = vendor id
pp pp = product id (vendor specified)
dd dd = device id (vendor specified) (bcd rev_id byte)
mm = iManufacturer
PP = iProduct
ss = iSerialNumber (00 – no string)
Example for Multi-button:
12 01 00 02 00 00 00 08
6D 04 pp pp 00 54 01 02
00 01
//
Device Descriptor
| 12
//
bLength (18 decimal)
| 01
//
bDescriptorType
| 00
//
bcdUSB (Release ##.## = 02.00)
| 02
| 00
//
bDeviceClass
| 00
//
bDeviceSubClass
| 00
//
bDeviceProtocol
| 08
//
bMaxPacketSize0
| 2F
//
idVendor
| 19
//
idVendor
| 16
//
idProduct // based on #buttons & wheel
| 09
//
idProduct
| 00
//
bcdDevice (Dev Rel 54.00)
| 54
| 00
//
iManufacturer
| 02
//
iProduct
| 00
//
iSerialNumber
| 01
//
bNumConfigurations
Default:
Accept
Addressed:
Accept
Configured:
Accept
Get_Desc_String will return “stall” if Manufacturer string is queried when iManufacturer = 0x00.
22
Get_Desc_Config
80 06 00 02 00 00 nn 00
80 06 00 02 00 00 22 00
Returns:
09 02 22 00 01 01 00 A0
32 09 04 00 00 01 03 01
02 00 09 21 11 01 00 01
22 rr 00 07 05 81 03 05
00 0A
rr = HID Report descriptor length
47 = 12 bit motion reporting
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
This is the concatenation of 4 descriptors:
Configuration
Interface
HID
Endpt
Get_Desc_String
80 06 xx 03 00 00 nnl nnh
xx= 00 Language String
01 Manufacturer String
02 Product String
Command Option:
xx= 00 => Language String
01 => Manufacturer String
02 => Product String
Nnl nnh = varies with the string length
Returns:
ss 03 “unicode string”
ss = String descriptor length
For xx = 00:
04 03 09 04 // Language ID
For xx = 01:
default: stall
Product String (xx=02)
Product String
Returns
USB Optical Mouse
24 03 55 00 53 00 42 00 20 00 4f 00 70 00 74 00 69 00
63 00 61 00 6c 00 20 00 4d 00 6f 00 75 00 73 00 65 00
Synopsys cmd:
No
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
1. A request for any other string will STALL.
2. Returned string depends on the manufacturer string section via OTP.
23
Get_Desc_HID
81 06 00 21 00 00 09 00
Returns:
09 21 11 01 00 01 22 rr 00
rr = HID Report descriptor length
40 = 12bit reporting
Get_Desc_HID_Report
81 06 00 22 00 00 nn 00
Returns:
This returns a report descriptor that describes how many buttons and x, y, z data.
12 bit reporting:
05 01 09 02 A1 01 09 01
A1 00 05 09 19 01 29 03
15 00 25 01 75 01 95 03
81 02 75 05 95 01 81 01
05 01 09 30 09 31 16 01
F8 26 FF 07 75 0C 95 02
81 06 09 38 15 81 25 7F
75 08 95 01 81 06 C0 C0
//
HID Report
| 05 01
//
USAGE_PAGE (Generic Desktop)
| 09 02
//
USAGE (Mouse)
| A1 01
//
COLLECTION (Application)
| 09 01
//
USAGE (Pointer)
| A1 00
//
COLLECTION (Physical)
| 05 09
//
USAGE_PAGE (Button)
| 19 01
//
USAGE_MINIMUM (Button 1)
| 29 03
//
USAGE_MAXIMUM (Button #3)
| 15 00
//
LOGICAL_MINIMUM (0)
| 25 01
//
LOGICAL_MAXIMUM (1)
| 75 01
//
REPORT_SIZE (1)
| 95 03
//
REPORT_COUNT (3)
| 81 02
//
INPUT (Data,Var,Abs)
| 75 05
//
USAGE PAGE
| 95 01
//
REPORT COUNT(1)
| 81 01
//
INPUT (CNST,ARR,ABS)
| 05 01
//
USAGE PAGE (Generic Desktop)
| 09 30
//
USAGE (X)
| 09 31
//
USAGE (Y)
| 16 01 F8 //
LOGICAL MINIMUM (-127)
| 26 FF 07 //
LOGICAL MAXUMUN (128)
| 75 0C
//
REPORT_SIZE (12)
| 95 02
//
REPORT_COUNT (2)
| 81 06
//
INPUT (Data,Var,Rel)
| 09 38
//
USAGE (Zwheel)
| 15 81
//
LOGICAL MINIMUM(-127)
| 25 7F
//
LOGICAL MAXIMUM(127)
| 75 08
//
REPORT_SIZE(8)
| 95 01
//
REPORT_COUNT(1)
| 81 06
//
INPUT(Data,Var,Rel)
| C0
//
END_COLLECTION
| C0
//
END_COLLECTION
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
The length of this report is needed in the HID descriptor.
24
Get_HID_Input
A1 01 00 01 00 00 nn 00
nn = 06 (12 bit reporting)
Returns:
bb xx yx yy zz
bb = button byte
xx = X motion byte
yx = XY motion byte
yy = Y motion byte
zz = Z motion byte
Default:
Stall
Addressed:
Stall
Configured:
Accept
Notes:
If the device is configured, it will always respond with a report for this command, even if no motion
or button changes have occurred. In this case, it would report 00 for motion and simply report the
current button state. If a report is pending on endpt1, the data there will be reported and the report
on endpt1 cleared.
The mouse will only create new button/motion packets when it is in the Configured state
USB Data Packet Format
Bit
7
6
5
4
3
2
1
0
Byte 1
0
0
0
0
0
B3(MB)
B2(RB)
B1(LB)
Byte 2
X7
X6
X5
X4
X3
X2
X1
X0
Byte 3
Y3
Y2
Y1
Y0
X11
X10
X9
X8
Byte 4
Y11
Y10
Y9
Y8
Y7
X6
X5
X4
Byte 5
Z7
Z6
Z5
Z4
Z3
Z2
Z1
Z0
Byte 6
0
0
0
0
0
0
0
0
Get_Idle
A1 02 00 00 00 00 01 00
Returns:
rr
rr = rate in multiples of 4 mS
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
The third byte of the command is to select the Report ID. There is only one for the mouse – so, using
00 or 01 will work. See also Set_Idle.
Get_Vendor_Test
C0 01 00 00 xx 00 01 00
ii = ignore
xx = address of register to read
Returns:
rr (depends on register read)
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
Address range (xx) is datasheet register range
25
Set_Address
00 05 xx 00 00 00 00 00
xx = new device address, from 00 to 7F
Default:
Accept
Addressed:
Accept
Configured:
Accept (undefined in USB Spec)
Chip gets new address, but stays in “Configured” mode.
Notes:
If device is not configured, the device will be given the new address and put in the addressed state
(or default if new address = 00). If the device is already configured, the device will be given the new
address state and remain configured.
Set_Configuration
00 09 xx 00 00 00 00 00
xx = 00 = not configured
xx = 01 = configured
Default:
Accept (undefined in USB Spec)
Addressed:
Accept
Configured:
Accept
Notes:
Invalid config values will cause stall. Chip will stall invalid value in configured mode, and leave device
in old (configured) mode.
Set_Interface
01 0B 00 00 00 00 00 00
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Accept
Notes:
Mouse has only one valid interface (00) and alternate setting (00). Invalid values will cause stall. Chip
retains previous (valid) interface state after executing this command in configured mode even if invalid
values are given and command was stalled.
Set_Protocol
21 0B xx 00 00 00 00 00
xx = 00 = Boot protocol
xx = 01 = Report protocol
Default:
Accept (Not in USB Spec)
Addressed:
Accept (Not in USB Spec)
Configured:
Accept
Notes:
3 byte data packets will be reported in boot mode. These bytes are button, XX data, and YY data.
Set_Feature_Device
00 03 01 00 00 00 00 00
Default:
Accept (undefined in USB Spec)
Addressed:
Accept
Configured:
Accept
Notes:
This sets the remote wakeup bit.
Set_Feature_Endpt0
02 03 00 00 xx 00 00 00
02 03 00 00 00 00 00 00
02 03 00 00 80 00 00 00
xx = 00 = Endpt0 OUT
xx = 80 = Endpt0 IN
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Stall
Notes:
This (tries to) sets the halt bit. The chip always stalls the status stage for this command. The chip never
reports the halt bit set for Endpt0 with the Get_Status_Endpt0 command, as any new SETUP command
will clear Endpt0 stall.
26
Set_Feature_Endpt1
02 03 00 00 81 00 00 00
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Accept
Notes:
Sets the halt bit for Endpt1.
Clear_Feature_Device
00 01 01 00 00 00 00 00
Default:
Accept (undefined in USB Spec)
Addressed:
Accept
Configured:
Accept
Notes:
This clears the remote wakeup bit.
Clear_Feature_Endpt0
02 01 00 00 xx 00 00 00
02 01 00 00 00 00 00 00
02 01 00 00 80 00 00 00
xx = 00 = Endpt0 OUT
xx = 80 = Endpt0 IN
Default:
Accept (undefined in USB Spec)
Addressed:
Accept
Configured:
Accept
Notes:
The chip does NOT stall like it does for Set_Feature_Endpt0.
Clear_Feature_Endpt1
02 01 00 00 81 00 00 00
Default:
Stall (undefined in USB Spec)
Addressed:
Stall
Configured:
Accept
Notes:
See Set_Feature_Endpt1.
Set_Idle
21 0A 00 rr 00 00 00 00
rr = rate in multiples of 4 mS
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
The third byte of the command is to select the Report ID. There is only one for the mouse – so, using
either 00 or 01 will work.
The fourth byte of the command sets the rate in multiples of 4 mS. The initial value for mice will be x00
which means “infinite” – that is packets only come out when there is a change in data.
Data will only be allowed to come out when the device is configured. However, the chip will accept the
command in Default or Addressed mode and use that value when the device is later configured.
Set_Vendor_Test
40 01 00 00 xx yy 00 00
xx = address
yy = data
Default:
Accept
Addressed:
Accept
Configured:
Accept
Notes:
Address range for “xx” should be 0x00 to 0x3F. Addresses above this are reserved for possible future
use. See also Get_Vendor_Test.
27
Poll_Endpt1
Returns:
Default:
Addressed:
Configured:
Notes:
bb xx yx yy zz
bb = button byte
xx = X motion byte
yx = XY motion byte
yy = Y motion byte
zz = Z motion byte (if Z-Wheel)
Ignore request
Ignore request
Accept (NAK if no data; Send packet if available)
See also Get_HID_Input. Endpt will only stall if halt bit is set by Set_Feature_Endpt1. Details of data
packet are below.
Endpt1 should be polled at least every 10 frames (mS). It is typically polled every 8 frames on Windows
machines. For internal testing, Endpt1 can be continuously polled if desired.
The chip will not generate any report packets unless in the Configured state.
If Endpt1 is currently empty, any motion or button change will be loaded into the Endpt1 buffers. Once
the Endpt1 buffers are full, any further motion events will get accumulated. When the Endpt1 buffers
are later polled and emptied, the current accumulated X/Y/Z values will be loaded into the Endpt1
buffers. After transferring their data, the accumulation registers are reset so they are ready to start accumulating new motion events.
Button information is handled a bit differently. If the Endpt1 buffers are empty, and a button change
event occurs, the new button state is put into the Endpt1 buffers. At the same time, the button state
that is put in Endpt1 is copied for later use. While Endpt1 is full, changes in button state are essentially
ignored. When Endpt1 is emptied, if the current button state is different than that which was last
loaded into Endpt1, then the new state will be loaded and a new copy saved. Basically, the button
state that is loaded into Endpt1 is always the current button state at that point in time. It should also
be noted that there is hardware on the chip to help de-bounce the buttons.
Special note on wLength:
The wLength paramater in commands specifies the maximum number of bytes a device should send
back. The commands listed below are not able to handle a wLength of 0 correctly.
Get_Status_Device
Get_Status_Interface
Get_Status_Endpt0
Get_Status_Endpt1
Get_Configuration
Get_Interface
This chip will send one byte of data rather than none when wLength = 0 is requested for the above
commands.
28
Registers
The sensor can be programmed through registers, via the USB port, and configuration and motion data can be read from
these registers. The registers will be “disabled” by VDDA5 going low or sending a USB reset command.
Address
Register Name
Register Type
Access
Reset Value
0x00
PROD_ID
Device
Read only
0x2b
0x01
REV_ID
Device
Read only
0x01
0x02
MOUSE_STAT
Device
Read only
Undefined
0x03
DELTA_X_L
Device
Read only
0x00
0x04
DELTA_Y_L
Device
Read only
0x00
0x05
DELTA_XY_H
Device
Read only
0x00
0x06
DZ
Device
Read only
0x00
0x07
SQUAL
Device
Read only
0x00
0x08
SHUT_HI
Device
Read only
0x00
0x09
SHUT_LO
Device
Read only
0x32
0x0A
PIX_MAX
Device
Read only
0x00
0x0B
PIX_ACCUM
Device
Read only
0x00
0x0C
PIX_MIN
Device
Read only
0x00
0x0D
PIX_GRAB
Device
Read only
0x00
0x40
INV_REV_ID
Device
Read only
0xFE
0x42
OTP_CLOCK
Device
Read/Write
0x00
0x51
OTP_CONFIG
Device
Read/Write
0x00
0x52
OTP_ADDR
Device
Read/Write
0x00
0x53
OTP_DATA
Device
Read/Write
0x00
0x54
OTP_CTRL
Device
Read/Write
0x00
0x56
OTP_RUNSTAT
Device
Read only
Undefined
0x58
OTP_CTRLSTAT
Device
Read only
Undefined
0xDF
L1_USE_OTP
OTP
Read/Write
0x00
0xE0
DPI
OTP
Read/Write
0x04
0xE2 : 0xE3
PID1 : PID0
OTP
Read/Write
0x0916
0xE4 : 0xE5
VID1 : VID0
OTP
Read/Write
0x192F
0xE8
OTPLOCK1
OTP
Read/Write
0x00
29
PROD_ID
Address: 0x00
Access: Read only
Reset Value: 0x2b
Bit 7
Field PID7
Type: Device
6
5
4
3
2
1
0
PID6
PID5
PID4
PID3
PID2
PID1
PID0
Data Type: 8-bit number with the product identifier.
USAGE: The value in this register does not change; it can be used to verify that the sensor communications link is OK.
REV_ID
Address: 0x01
Access: Read only
Reset Value: 0x01
Bit 7
Field RID7
Type: Device
6
5
4
3
2
1
0
RID6
RID5
RID4
RID3
RID2
RID1
RID0
Data Type: 8-bit number with current revision of the IC.
USAGE: This register contains the IC revision. It is subject to change when new IC versions are released.
BUT_STAT
Address: 0x02
Access: Read only
Reset Value: Undefined
Bit 7
Field Reserved
Type: Device
6
5
4
3
2
1
0
Reserved
Reserved
Reserved
Reserved
BUT3
BUT2
BUT1
Data Type: Bit field.
USAGE: This register is included for test purposes only. For navigation use, use the USB HID defined commands. The
button status bits reported are for the debounce signals.
30
Field Name
Description
BUT3
Reports the status of B3
0 = Open
1 = Button Pressed
BUT2
Reports the status of B2
0 = Open
1 = Button Pressed
BUT1
Reports the status of B1
0 = Open
1 = Button Pressed
DELTA_X_L
Address: 0x03
Access: Read
Reset Value: 0x00
Bit 7
6
5
4
3
2
1
0
Field X7
X6
X5
X4
X3
X2
X1
X0
Data Type: Bit field.
USAGE: The value in this register reflects the last USB delta X (lower 8 bits) data output or data queued for output.
This register is included for test purposes only. For navigation use, use the HID defined commands. Data is 2’s
complement. Absolute value is determined by the currently set resolution.
Register 0x03 must be read before register 0x04 (Delta_Y_L) and 0x05 (Delta_XY_H)
DELTA_Y_L
Address: 0x04
Access: Read
Reset Value: 0x00
Bit 7
6
5
4
3
2
1
0
Field Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
Data Type: Bit field.
USAGE: The value in this register reflects the last USB delta Y (lower 8 bits) data output or data queued for output.
This register is included for test purposes only. Register 0x03 should be read before register 0x04 (Delta_Y_L) and
0x05 (Delta_XY_H), else Delta_Y_L will return 0. For navigation use, use the HID defined commands. Data is 2’s
complement. Absolute value is determined by the currently set resolution.
DELTA_XY_H
Address: 0x05
Access: Read
Reset Value: 0x00
Bit 7
Field X11
6
5
4
3
2
1
0
X10
X9
X8
Y11
Y10
Y9
Y8
Data Type: Bit field.
USAGE: The value in this register reflects the last USB delta X and Y (upper 4 bits) data output or data queued for output.
This register is included for test purposes only. Register 0x03 should be read before register 0x04 (Delta_Y_L) and
0x05 (Delta_XY_H), else Delta_XY_H will return 0. For navigation use, use the HID defined commands. Data is 2’s
complement. Absolute value is determined by the currently set resolution.
DZ
Address: 0x06
Access: Read
Reset Value: 0x00
Bit 7
6
5
4
3
2
1
0
Field Z7
Z6
Z5
Z4
Z3
Z2
Z1
Z0
Data Type: Bit field.
USAGE: This register contains the Z-wheel count. Range is from -127 to 127 decimal.
31
SQUAL
Address: 0x07
Access: Read
Reset Value: 0x00
Bit 7
Field SQ7
6
5
4
3
2
1
0
SQ6
SQ5
SQ4
SQ3
SQ2
SQ1
SQ0
Data Type: Eight bit number.
USAGE: SQUAL is a measure of the number of features visible by the sensor in the current frame. The maximum value is
128. Since small changes in the current frame can result in changes in SQUAL, slight variations in SQUAL on one
surface is expected.
SHUT_HI
Address: 0x08
Access: Read only
Reset Value: 0x00
Bit 7
Field S15
Type: Device
6
5
4
3
2
1
0
S14
S13
S12
S11
S10
S9
S8
SHUT_LO
Address: 0x09
Access: Read only
Reset Value: 0x64
Type: Device
Bit 7
6
5
4
3
2
1
0
Field S7
S6
S5
S4
S3
S2
S1
S0
Data Type: 16-bit number.
USAGE: The combination of SHUT_HI and SHUT_LO is a 16-bit number. This is the number of clocks the shutter was
open for the last image taken. The unit is in main clock count (nominally 12MHz). To avoid split read issues, read
SHUT_Hi first.
PIX_MAX
Address: 0x0A
Access: Read only
Reset Value: 0x00
Bit 7
Field 0
Type: Device
6
5
4
3
2
1
0
MX6
MX5
MX4
MX3
MX2
MX1
MX0
Data Type: Eight bit number.
USAGE: This is the maximum pixel value from the last image taken.
32
PIX_ACCUM
Address: 0x0B
Access: Read only
Reset Value: 0x00
Bit 7
Field AC7
Type: Device
6
5
4
3
2
1
0
AC6
AC5
AC4
AC3
AC2
AC1
AC0
Data Type: High 8bits of 17-bit unsigned integer.
USAGE: This is the accumulated pixel value from the last image taken. For the 19x19 pixels, only the 8 most prominent
bits are reported ([15:8]). To get the true average pixel value, divide this register value by 1.41.
PIX_MIN
Address: 0x0C
Access: Read only
Reset Value: 0x00
Bit 7
Field 0
Type: Device
6
5
4
3
2
1
0
MN6
MN5
MN4
MN3
MN2
MN1
MN0
Data Type: 8-bit number.
USAGE: This is the minimum pixel value from the last image taken.
33
PIX_GRAB
Address: 0x0D
Access: Read/Write
Reset Value: 0x00
Bit 7
Field VALID
Type: Device
6
5
4
3
2
1
0
PG6
PG5
PG4
PG3
PG2
PG1
PG0
Data Type: 8-bit number.
USAGE: The pixel grabber captures 1 pixel per frame. If there is a valid pixel in the grabber when this is read, the MSB will
be set, an internal counter will incremented to captured the next pixel and the grabber will be armed to capture
the next pixel. It will take 361 reads to upload the completed image.
Any write to this register will reset and arm the grabber to grab pixel 0 on the next image. See pixel array
numbering in Figure 20.
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Top Xray View of Mouse
LB
P
O
S
I
T
I
V
E
RB
4
5
3
6
2
7
Y
1
8
POSITIVE X
Figure 20. Pixel Map. Sensor looking at the navigation surface through the lens from top of mouse.
INV_REV_ID
Address: 0x40
Access: Read
Reset Value: 0xfe
Bit 7
Field RRID7
6
5
4
3
2
1
0
RRID6
RRID5
RRID4
RRID3
RRID2
RRID1
RRID0
Data Type: Eight bit number.
USAGE: Contains the inverse of the revision ID which is located in register 0x01.
34
OTP_CONFIG
Address: 0x51
Access: Read/Write
Reset Value: 0x00
Bit 7
Field Reserved
Type: Device
6
5
4
3
2
1
0
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
OTP_EN
Data Type: Bit field.
USAGE: OTP commands enable/disable. Refer to OTP programming section.
Field Name
Description
OTP_EN
OTP commands
1 = Enabled
0 = Disabled
OTP_ADDR
Address: 0x52
Access: Read/Write
Reset Value: 0x00
Bit 7
Field OTP_
ADDR7
Type: Device
6
5
4
3
2
1
0
OTP_
ADDR6
OTP_
ADDR5
OTP_
ADDR4
OTP_
ADDR3
OTP_
ADDR2
OTP_
ADDR1
OTP_
ADDR0
Data Type: 8-bit number.
USAGE: This register is the container of OTP address in OTP read/write command. Refer to OTP programming section.
OTP_DATA
Address: 0x53
Access: Read/Write
Reset Value: 0x00
Bit 7
Field OTP_
DATA7
Type: Device
6
5
4
3
2
1
0
OTP_
DATA6
OTP_
DATA5
OTP_
DATA4
OTP_
DATA3
OTP_
DATA2
OTP_
DATA1
OTP_
DATA0
Data Type: 8-bit number.
USAGE: This register is the container of OTP data value in OTP read/write command. Refer to OTP programming
section.
35
OTP_CRTL
Address: 0x54
Access: Read/Write
Reset Value: 0x00
Bit 7
Field Reserved
Type: Device
6
5
4
3
2
1
0
Reserved
Reserved
Reserved
LOCK_L1
Reserved
RD
WR
Data Type: Bit field.
USAGE: This register controls the read, write and lock commands of OTP. The commands are auto clear for status check.
Refer to OTP programming section.
Field Name
Description
WR
Enable write command to OTP
1 = Write to OTP
0 = Write command is completed
RD
Enable read command to OTP
1 = Read from OTP
0 = Data is ready to be read from OTP_DATA register
LOCK_L1
Enable OTP lock command
1 = Lock OTP space
0 = Lock command is completed
OTP_RUNSTAT
Address: 0x56
Access: Read only
Reset Value: Undefined
Bit 7
Field Reserved
Type: Device
6
5
4
3
2
1
0
Reserved
Reserved
Reserved
Reserved
L1_
CHECKED
L1_
LOCKED
L1_USED
Data Type: Bit field.
USAGE: This register shows the OTP run status. Refer to OTP programming section.
36
Field Name
Description
L1_USED
OTP space status
1 = Used
0 = Unused
L1_LOCKED
OTP space locking status
1 = Locked
0 = Open
L1_CHECKED
OTP status check
1 = Checked
0 = Unchecked
OTP_CTRLSTAT
Address: 0x58
Access: Read only
Reset Value: Undefined
Bit 7
Field Reserved
Type: Device
6
5
4
3
2
1
0
Reserved
L1_CRC_
OK
L1_LOCK_
OK
DEVICE_
DONE
DEVICE_
RDY
WR_
DENIED
WR_OK
Data Type: Bit field.
USAGE: This register shows the OTP control status. Refer to OTP programming section.
Field Name
Description
WR_OK
OTP write status
1 = OK
0 = Failed
WR_DENIED
OTP write access status
1 = Denied
0 = OK
L1_LOCK_OK
OTP lock status
1 = OK
0 = Failed
L1_CRC_OK
CRC test status
1 = OK
0 = Failed
L1_USE_OTP
Address: 0xDF
Access: Read/Write
Reset Value: 0x00
Bit 7
Field L1_USE_
OTP7
Type: OTP
6
5
4
3
2
1
0
L1_USE_
OTP6
L1_USE_
OTP5
L1_USE_
OTP4
L1_USE_
OTP3
L1_USE_
OTP2
L1_USE_
OTP1
L1_USE_
OTP0
Data Type: 8-bit field.
USAGE: Bypass OTP configuration if all bits are zero. MUST write non-zero value to this register to enable OTP operation.
Once enabled, all OTP registers must be written as the default values are zero value.
37
DPI
Address: 0xE0
Access: Read/Write
Reset Value: 0x54
Bit 7
Field Reserved
Type: OTP
6
5
4
3
2
1
0
SwapXY
INV_X
INV_Y
Reserved
DPI2
DPI1
DPI0
Data Type: Bit field.
USAGE: These registers are used to customize the device’s DPI.
Field Name
Description
SwapXY
To swap x and y
0 = no swap
1 = swap
INV_X
To invert x direction
0 = not inverted
1 = inverted
INV_Y
To invert y direction
0 = not inverted
1 = inverted
DPI
Device status
010 = 500 dpi
011 = 750 dpi
100 = 1000 dpi (default)
101 = 1250 dpi
Note: Sensor orientation setting by changing bit 6,5 and 4. The SwapXY operation is always performed before
INV_X and INV_Y inversion operations.
38
90°
180°
270°
101
000
110
011
A2700 XYYWWZE
+Y
+Y
+X
+X
+Y
A2700 XYYWWZE
Motion
Reporting
Direction
A2700 XYYWWZE
Bit[6:4]
0°
+X
+Y
+X
A2700 XYYWWZE
Rotation
PID0
Address: 0xE2
Access: Read/Write
Reset Value: 0x16
Bit 7
Field PID7
Type: OTP
6
5
4
3
2
1
0
PID6
PID5
PID4
PID3
PID2
PID1
PID0
PID1
Address: 0xE3
Access: Read/Write
Reset Value: 0x09
Bit 7
Field PID15
Type: OTP
6
5
4
3
2
1
0
PID14
PID13
PID12
PID11
PID10
PID9
PID8
Data Type: 16-Bit number.
USAGE: These registers are used to customize device USB PID. Default is Avago’s PID = 0x0916.
VID0
Address: 0xE4
Access: Read/Write
Reset Value: 0x2F
Bit 7
Field VID7
Type: OTP
6
5
4
3
2
1
0
VID6
VID5
VID4
VID3
VID2
VID1
VID0
VID1
Address: 0xE5
Access: Read/Write
Reset Value: 0x19
Bit 7
Field VID15
Type: OTP
6
5
4
3
2
1
0
VID14
VID13
VID12
VID11
VID10
VID9
VID8
Data Type: 16-Bit number.
USAGE: These registers are used to customize device VID. Default is Avago’s VID = 0x192F.
OTPLOCK1
Address: 0xE8
Access: Read/Write
Reset Value: 0x00
Bit 7
Field OTPLOCK17
Type: OTP
6
5
4
3
2
1
0
OTPLOCK16
OTPLOCK15
OTPLOCK14
OTPLOCK13
OTPLOCK12
OTPLOCK11
OTPLOCK10
Data Type: 8-bit field.
USAGE: Must write 0xFF in this register to lock the OTP configuration.
For product information and a complete list of distributors, please go to our web site:
www.avagotech.com
Avago, Avago Technologies, and the A logo are trademarks of Avago Technologies in the United States and other countries.
Data subject to change. Copyright © 2005-2012 Avago Technologies. All rights reserved.
AV02-2723EN - April 17, 2012