ADNS-7700 One chip USB LaserStreamTM Mouse Sensors Data Sheet Description Features The ADNS-7700 series are compact, low cost, one chip USB LaserStreamTM mouse sensors designed for implemention of a non-mechanical tracking engine in computer mice. x One chip USB laser mouse sensor with VCSEL integrated in single package This ADNS-7700 sensor is a 22-pin integrated molded lead-frame DIP package. It comprises a USB controller and LaserStream navigation sensor with VCSEL integrated within a single package. It is designed to be used with the ADNS-6180-001 trim lens or ADNS-6180-002 wide trim lens to achieve the LaserStream performance featured in this document. These parts provide a complete and compact navigation system with no moving parts and precision optical alignment to facilitate high volume assembly. Avago has pre-calibrated the laser power prior shipment, thus NO laser power calibration is required at manufacturer site, therefore reducing assembly time and associated cost. x USB 2.0 Low Speed Compliance The motion output is a selectable 8/12/16-bit USB data reporting format. This device is compliant to USB Revision 2.0 low speed specification. The ADNS-7700 series are designed with on-chip One-Time-Programmable (OTP) memory. This enables device configuration flexibility for the manufacturer to cater for various market segments. x On-chip OTP memory for device configuration flexibility without any external software driver: - Enable/Disable Tilt-Wheel* function that supports horizontal scroll in Microsoft Vista OS. - 8/12/16-bit USB motion data reporting Theory of Operation The ADNS-7700 is based on Laser-Stream navigation technology that measures changes in position by optically acquiring sequential surface images (per frames) and mathematically determining the direction and magnitude of motion movement. It contains an Image Acquisition System (IAS), a Digital Signal Processor (DSP) and USB stream output. The IAS acquires microscopic surface images via the lens. 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. x LaserStreamTM navigation technology x Meets HID Revision 1.11 x Single 5.0 volts power supply x Compliance to IEC/EN 60825-1 Class 1 Eye Safety - Pre-calibrated laser power prior shipment - Class 1 eye safety AEL - On-chip Laser fault detect circuitry x High speed motion detection at 45 inches per second (ips) and acceleration up to 20g x Input buttons: 3 or 5-buttons x Mechanical Z-Wheel interface for vertical scroll - Resolution x Programmable from 400-2400 counts per inch (cpi) with ~100cpi incremental step x 3 selections of On-the-Fly (OTF) resolution mode setting x KeyMap (KM) for keyboard shortcut key x Customizable VID, PID, Manufacturer string and Product string x 4-axis sensor rotations: 0, 90, 180 or 270 Applications x Corded laser mice x Integrated input devices * Disclaimer: All designers and manufacturers of this design must assure that they have all necessary intellectual property rights Ordering Part Numbers: Description for USB LaserStream Mouse Sensor Part Number Input Button Tilt-Wheel OTF Resolution KeyMap ADNS-7700-H4MY 3-buttons Programmable - - ADNS-7700-HAMY 3-buttons Programmable Programmable - ADNS-7700-HCMY 5-buttons Programmable Programmable - ADNS-7700-HMMY 5-buttons Programmable Programmable Programmable Package Pinout 1 22 2 21 3 20 4 19 5 18 6 17 7 16 8 15 X = Subcon Code 14 YYWW = Date Code 13 Z = Sensor Die Source 12 V = VCSEL Die Source 9 10 11 A7700-HxMY XYYWWZV Figure 1. Device Pinout Table 1. Pin Name Description Pin Name Description Pin Name Description -VCSEL Negative terminal of VCSEL B1 Left button input (LB) +VCSEL Positive terminal of VCSEL B2 Right button input (RB) D+ USB D+ line B3 Middle button input (MB) D- USB D- line B4 Back button input (BB) OSC_IN Ceramic resonator input B5 Forward button input (FB) OSC_OUT Ceramic resonator output TW1* Left tilt input VDD5 5-Volt Power (USB VBUS) TW2* Right tilt input DGND System ground LED0 Resolution LED indicator output AGND Analog ground LED1 Resolution LED indicator output LASER_GND LASER ground LED2 Resolution LED indicator output REFA Reference voltage capacitor ZA Z-Wheel quadrature input REFB Reference voltage capacitor ZB Z-Wheel quadrature input REFC Reference coupling KM1 KeyMap 1 button input OTF OTF Resolution button input KM2 KeyMap 2 button input OTF_L OTF Resolution Long Press button input NC No Connection 2 Table 2a. Device Pinout Configurations ADNS-7700-H4MY ADNS-7700-HAMY ADNS-7700-HCMY Pin No 3B 3B + TW 3B 3B + TW 3B + OTF + 3LED 3B + TW + OTF 5B 5B + TW 5B + OTF 4B + TW + OTF 1 +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL 2 NC TW2* NC TW2* LED0 TW2* NC TW2* OTF TW2* 3 NC TW1* NC TW1* LED1 TW1* NC TW1* NC TW1* 4 LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND 5 REFB REFB REFB REFB REFB REFB REFB REFB REFB REFB 6 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 7 REFC REFC REFC REFC REFC REFC REFC REFC REFC REFC 8 ZA ZA ZA ZA ZA ZA ZA ZA ZA ZA 9 ZB ZB ZB ZB ZB ZB ZB ZB ZB ZB 10 AGND AGND AGND AGND AGND AGND AGND AGND AGND AGND 11 REFA REFA REFA REFA REFA REFA REFA REFA REFA REFA 12 DGND DGND DGND DGND DGND DGND DGND DGND DGND DGND 13 OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT 14 OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN 15 NC NC NC NC OTF OTF B5 B5 B5 OTF 16 NC NC NC NC LED2 NC B4 B4 B4 B4 17 B3 B3 B3 B3 B3 B3 B3 B3 B3 B3 18 B2 B2 B2 B2 B2 B2 B2 B2 B2 B2 19 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 20 D- D- D- D- D- D- D- D- D- D- 21 D+ D+ D+ D+ D+ D+ D+ D+ D+ D+ 22 -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL 3 Table 2b. Device Pinout Configurations ADNS-7700-HMMY Pin No 5B 5B + TW 5B + KM1/OTF_L 5B + KM1/OTF_L + KM2 4B + TW + KM1/ OTF_L 3B + TW + KM1/ OTF_L 3B + TW + KM1/ OTF_L + KM2 1 +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL +VCSEL 2 NC TW2* KM1/OTF_L KM1/OTF_L TW2* TW2* TW2* 3 NC TW1* NC KM2 TW1* TW1* TW1* 4 LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND LASER_GND 5 REFB REFB REFB REFB REFB REFB REFB 6 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 VDD5 7 REFC REFC REFC REFC REFC REFC REFC 8 ZA ZA ZA ZA ZA ZA ZA 9 ZB ZB ZB ZB ZB ZB ZB 10 AGND AGND AGND AGND AGND AGND AGND 11 REFA REFA REFA REFA REFA REFA REFA 12 DGND DGND DGND DGND DGND DGND DGND 13 OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT OSC_OUT 14 OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN OSC_IN 15 B5 B5 B5 B5 KM1/OTF_L KM1/OTF_L KM1/OTF_L 16 B4 B4 B4 B4 B4 NC KM2 17 B3 B3 B3 B3 B3 B3 B3 18 B2 B2 B2 B2 B2 B2 B2 19 B1 B1 B1 B1 B1 B1 B1 20 D- D- D- D- D- D- D- 21 D+ D+ D+ D+ D+ D+ D+ 22 -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL -VCSEL * Disclaimer: All designers and manufacturers of this design must assure that they have all necessary intellectual property rights. 4 9.10 0.358 Pin 1 0.85 0.033 ( 4.55 ) 0.179 VCSEL Center Optical Center 22X 4.60 7.27 0.181 ( 0.286 ) 0.50 0.020 19.80 0.780 1.78 0.070 0.89 0.035 0.85 0.033 4.42 0.174 12.70(At shoulder) 0.500 1.67 0.066 A 4.05 0.159 0.50 0.020 VCSEL Sensor Sensor Reference Plane 2.52 0.099 A 0.20 0.008 Section A-A 12.70 0.40 (At lead tip) 0.500 0.016 Notes: 1. Dimension in millimeters (inches). 2. Dimensional tolerance: 0.1mm. 3. Coplanarity of lead: 0.1mm. 4. Lead pitch tolerance: 0.15mm. 5. Non-cumulative pitch tolerance: 0.15mm. 6. Angular tolerance: 3. 7. Maximum flash: +0.2mm 8. Chamfer (25 x 2) on the taper side of the lead. 9. Brackets ( ) indicates reference dimension. Figure 2. Package outline drawing CAUTION: It is advised that normal static precautions be taken in handling and assembly of this component to prevent damage and/or degradation which may be induced by ESD. 5 Assembly Drawings Guide post B A A Guide post A Top of sensor to Surface 9.05 0.356 Top of PCB to Surface 7.40 0.291 Bottom of lens to Surface 2.40 0.095 PCB thickness 0.60 0.063 30 30 Navigation Surface Section A-A Figure 3. 2D assembly drawing of ADNS-7700 sensor coupled with ADNS-6180-002 lens, PCB & base plate 6 3D drawing files in STEP or IGES format for the sensor, lens and base plate describing the components and base plate molding features for the lens and PCB alignment is available. o 1.10 Pad ring 0.043 1.78 10X 0.070 12.50 0.492 10.95 0.431 Optical center 0 Pin #1 0.71 0.028 0 7.27 0.286 19.40 0.764 Dimensions in mm/inches Figure 4. Recommended PCB mechanical cutouts and spacing ADNS-7700 Sensor Customer's PCB ADNS-6180-002 Lens Customer's Base Plate with Recommended Features Figure 5. Exploded view drawing of ADNS-7700 sensor coupled with ADNS-6180-002 lens, PCB & base plate 7 0.70 0.028 6.25 0.246 The integrated VCSEL is used for the illumination, provides a laser diode with a single longitudinal and a single transverse mode. Together with the VCSEL contained in the sensor package, the ADNS-6180-001 or ADNS-6180-002 lens provides directed illumination and optical imaging necessary for the operation of the sensor. The lens is a precision molded optical component and should be handled with care to avoid scratching and contamination on the optical surfaces. 22X o 1.55 0.061 As shown in Figure 5, the components self align as they are mounted onto defined features on the base plate. The ADNS-7700 sensor is designed for mounting on a through-hole PCB, looking down. The guide holes in the sensor package mates and self-aligns with the guide posts in the ADNS-6180-001 or ADNS-6180-002 lens. Application Schematics +5.0V C1 0.1uF J1 USB C2 3.3uF VDD +VCSEL (1) (5) REFB R1 1.5K 1% GND D- (21) D+ SW1 (19) B1 SHIELD SW2 (18) B2 SW3 U1 ADNS-7700-HxMY REFA (11) D+ C10 100pF VDD 5 (6) (20) D- C9 100pF DGND (12) LASER_GND (4) P16 = B4/KM2 SW4 P16 (16) B4/KM2/ LED2/NC C7 3.3uF Refer to notes on grounding layout P3 (15) B5/OTF/OTF_L KM1 (3) TW1*/KM2/ LED1/NC (2) TW2*/OTF/OTF_L LED0/NC X1 24MHz OSC_IN (14) Connect REFC pin to 50mm length trace within the DGND plane REFC (7) ZA (8) ZA ZB (9) ZB Mechanical Z-Wheel Q1 ADNS-7700-HAMY P16 = LED2, P3 = LED1, P2 = LED0 +5.0V P3 = TW1/KM2 R5 240 SW6 P3 P16 R7 240 R6 240 D2 P2 = TW2/OTF/OTF_L/KM1 C5 C4 4.7uF 0.1uF OSC_OUT (13) P16 P2 C6 0.1uF AGND (10) (17) B3 SW5 C3 470pF --VCSEL (22) D3 P3 QA ZA QB ZB +5.0V COM D4 P2 SW7 P2 Figure 6. ADNS-7700 Sensor's Application Schematics * DISCLAIMER: ALL DESIGNERS AND MANUFACTURERS OF THIS DESIGN MUST ASSURE THAT THEY HAVE ALL NECESSARY INTELLECTUAL PROPERTY RIGHTS. 8 PCB Layout Considerations: 1. The DGND and AGND paths MUST be layout as far as possible and connected together at the USB ground point with star topology. Ensure large grounding plane on the PCB layout for better performance on ESD and EFTB. 2. All caps MUST be as close to VDD5, REFA, REFB & +VCSEL sensor pins as possible and ground at the DGND and AGND plane that connected to USB GND, with trace length less than 5mm. 3. 1.5k: pullup resistor (R1) should be 1% tolerance and connected to REFB pin with shortest possible trace length. 4. Ceramic non-polarity caps and tantalum polarity caps are recommended. 5. Caps should have less than 5nH of self inductance. 6. Caps connected to VDD5 MUST have less than 0.2: ESR. 7. REFC pin requires an open ended trace of min 50 mm lengths within DGND plane for EFTB performance improvement. Refer to System Design Recommendations Application Note. 8. Do not use jumper on ground plane, D+ and D- paths. 9. Data lines (D+ and D-) should be as far as possible from resonator. PCB Assembly Considerations 1. Insert the sensor package and all other electrical components into the application PCB. To maintain the Z alignment of sensor package, the sensor reference plane can be sit directly on the PCB. 2. Wave solder the entire assembly in a non-wash solder process utilizing solder fixture. The solder fixture is needed to protect the sensor during the solder process shielding the optical aperture from direct solder contact. 3. Place the lens onto the base plate. Care must be taken to avoid contamination and scratches on the optical surfaces. 4. Hold the PCB vertically and remove the Kapton tape attached to the respective aperture of sensor and VCSEL. During the removal process of Kapton tape, care must be taken to prevent contaminants from entering through the apertures. Do NOT place the PCB facing upwards during the entire mouse assembly process. 5. Place the PCB over the lens onto base plate. The sensor package should be self-aligned and locked to the lens by the lens' alignment guide posts. The optical center reference for the PCB is set by base plate and lens. Note that the PCB movement due to button presses must be minimized to maintain good optical alignment. 9 6. Optional: The lens can be permanently locked to the sensor package by melting the lens' guide posts over the sensor with heat staking process. 7. Then, install the mouse top case. There MUST be feature in the top case (or other area) to press down onto the sensor or PCB assembly to ensure the sensor and lens are interlocked to correct vertical height. Design Considerations for Improving ESD Performance For improved electrostatic discharge performance, typical creepage and clearance distance are shown in the table below. Assumption: base plate construction as per the Avago supplied 3D model file when use with ADNS-6180001 trim lens or ADNS-6180-002 wide trim lens. The lens flange can be sealed (i.e. glued) to the base plate. Note that the lens material is polycarbonate and therefore, cyanoacrylate based adhesives or other adhesives that may damage the lens should NOT be used. Typical Distance (mm) ADNS-6180-001 trim lens ADNS-6180-002 wide trim lens Creepage 5.5 17.5 Clearance 1.8 1.8 Regulatory Requirements x Passes FCC B and worldwide analogous emission limits when assembled into a mouse with unshielded cable and following Avago Technologies recommendations. x Passes EN 61000-4-4/IEC 801-4 EFT tests when assembled into a mouse with shielded cable and following Avago Technologies recommendations. x Passes IEC-61000-4-2 Electrostatic Discharge Immunity Test (ESD) and provides sufficient ESD creepage/ clearance distance to withstand up to 12 kV discharge when assembled into a mouse with ADNS-6180-001 trim lens and up to 15 kV discharge when assembled into a mouse with ADNS-6180-002 wide trim lens. x Passes IEC/EN 60825-1 Class-1 Eye Safety when ADNS7700 is driving the laser using ADNS-6180-001 or ADNS-6180-002 lens with recommended operating conditions. Block Diagram USB PORT D+ B1 B2 D B3 Z-WHEEL CONTROL AND I/O PROCESSOR ZA BUTTONS B4 B5 ZB TW1 TW2 REFC OSC_IN OSCILLATOR OSC_OUT LASER_GND OSCILLATOR LASER DRIVE LASER POWER ON RESET IMAGE PROCESSOR V O L T A G E VCSEL +VE VCSEL VE TILT WHEEL* VCSEL R E G U L A T O R REFA REFB VDD5 DGND AGND VOLTAGE REFERENCE 5-VOLT USB VBUS POWER Figure 7. ADNS-7700 Block Diagram Eye Safety ADNS-7700 sensor and the associated components in the schematic of Figure 6 are intended to comply with Class 1 Eye Safety requirements of IEC/EN 60825-1. Avago Technologies calibrate sensor laser output power (LOP) to Class 1 eye safety level prior shipping out, thus no laser output power calibration is required at mouse manufacturer site. ing 506PW, otherwise the LOPmax limit in the Absolute Maximum Rating is applicable. ADNS-7700 sensor is designed to maintain the laser output power using ADNS-6180-002 lens within Class 1 requirements over components manufacturing tolerances under the recommended operating conditions and application circuit of Figure 6 as specified in this document. Under normal operating conditions, the sensor generates the drive current for the VCSEL. Increasing the LOP by other means on hardware and software can result in a violation of the Class 1 eye safety limit of 716 PW. For more information, please refer to Eye Safety Application Note. 2. Measurement is taken at the optical center and illumination angle on navigation surface plane, Z. Laser Output Power The laser output power,LOP can be measured at the navigation surface plane. The sensor can drive the laser in continuous (CW) mode by writing to LSR_CTRL0 and LSR_ CTRL1 registers via USB Set Vendor test command. The pre-calibrated LOP value at typical operating supply voltage and temperature of 25 5C should not exceed10 The following conditions apply: 1. The system is operated based on the recommended application circuit in Figure 6 and within the recommended operating conditions. 3. No allowance for optical power meter accuracy is assumed. Single Fault Detection ADNS-7700 sensor is able to detect a short circuit or fault condition at the -VCSEL pin, which could lead to excessive laser power output. A path to ground on this pin will trigger the fault detection circuit, which will turn off the laser drive current source and set the LASER_NEN output high. The system will prevent excess laser power for a resistive path to ground at -VCSEL by shutting off the laser. In addition to the ground path fault detection described above, the fault detection circuit is continuously checking for proper operation by internally generating a path to ground with the laser turned off via LASER_NEN. If the -VCSEL pin is shorted internally to VDD3 or externally to REFB, this test will fail and will be reported as a fault. ADNS-7700 LASER DRIVE VDD3 LASER_NEN VDD3 fault control block +VCSEL VCSEL USB Port voltage sense VCSEL XYLASER current set LASER_GND Figure 8. Single Fault Detection and Eye Safety Feature Block Diagram Absolute Maximum Ratings Parameter Symbol Minimum Maximum Units Storage Temperature TS -40 85 C 260 C 5.5 V 2 kV All pins, human body model Lead Solder Temperature Supply Voltage VDD -0.5 ESD Notes For 7 seconds, 1.6mm below seating plane. Refer to soldering reflow profile in PCB Assembly & Soldering Considerations Application Note AN 5023. Input Voltage VIN -0.5 VDD+0.5 V All I/O pins except OSC_IN and OSC_OUT, D+, D- Input Voltage VIN -1.0 4.6 V D+, D-, AC waveform, see USB specification (7.1.1) Input Voltage VIN -0.5 3.6 V OSC_IN and OSC_OUT Input Short Circuit Voltage VSC 0 VDD V D+, D-, see USB specification (7.1.1) Laser Output Power LOPmax 716 PW Class 1 eye safety AEL with ADNS-6180-001 or ADNS-6180-002 lens Comments: 1. Stress greater than those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. These are the stress ratings only and functional operation of the device at these or any other condition beyond those indicated for extended period of time may affect device reliability. 2. The inherent design of this component causes it to be sensitive to electrostatic discharge. The ESD threshold is listed above. To prevent ESD-induced damage, take adequate ESD precautions when handling this product. 11 Recommended Operating Conditions Parameter Symbol Minimum Operating Temperature TA 0 Power Supply Voltage VDD 4.4 Power Supply Rise Time VRT 0.1 Power Supply Noise VN Velocity Vel Acceleration Acc Clock Frequency fclk Resonator Impedance XRES Distance from lens reference plane to surface Z Typical 5.0 Units 40 C 5.25 Volts 100 ms 100 mVp-p 45 23.64 2.18 For accurate navigation and proper USB operation Peak to peak within 50kHz-100MHz bandwidth 2.40 20 g In Run Mode only 24.36 MHz Due to USB timing constraints 55 : 2.62 mm See Figure 9 fps Internally adjusted by sensor 8000 O Notes ips 24.00 Frame Rate VCSEL's Peak Wavelength Maximum 832 865 nm Z Figure 9. Distance from lens reference plane to object surface, Z AC Electrical Specifications Electrical Characteristics over recommended operating conditions. Typical values at 25C, VDD=5.0 V. Parameter Symbol Wakeup delay from rest mode due to motion Max. Units T WUPP 2 ms Power up delay TPUP 50 ms Debounce delay on button inputs TDBB 6 9 ms Z-Wheel sampling period TSW 2.0 2.8 ms ZA & ZB Pins Transient Supply Current IDDT 75 mA Max supply current during a VDD ramp from 0 to 5.0 V with > 500Ps rise time. Does not include charging currents for bypass capacitors. 12 Min. 1.9 Typical Notes Delay measured from VBUS=4.4V DC Electrical Specifications Electrical Characteristics over recommended operating conditions. Typical values at 25C, VDD=5.0 V, Parameter Symbol Run Mode System Current (Mouse moving) Maximum Units Notes IDD5 100 mA Includes laser current on Rest Mode System Current (Mouse not moving) IDD5N 100 mA Includes laser current USB Suspend Mode System Current (Remote Wakeup Enabled) IDD5S 500 PA Includes D- pullup resistor Input Low Voltage VIL 0.5 V Pins: ZA, ZB 0.2*VREFB V Pins: B1-B5, TW1, TW2 0.6*VDD V Pins: ZA, ZB 0.8* VREFB V Pins: B1-B5, TW1, TW2 mV Pins: B1-B5, TW1, TW2 Input High Voltage VIH Minimum Typical 230 Input Hysteresis VHYST Button Pull Up Current BIOUT 100 300 500 PA Pins: B1-B5, TW1, TW2 Regulator output, REFA VREFA 1.55 1.8 2.05 V Typical operation current load Regulator output, REFB VREFB 3.0 3.3 3.6 V Typical operation current load 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 15k: to Ground and 1.5k: to VREFB on D- (see Figure 10) Output Low VOL 0.0 0.3 V with 15k: to Ground and 1.5k: to VREFB on D- (see Figure 10) Single Ended Output VSE0 0.8 V Input High (Driven) VIH 2.0 Input High (Floating) VIHZ 2.7 Input Low VIL Differential Input Sensitivity VDI 0.2 Differential Input Common Mode Range VCM 0.8 Single Ended Receiver Threshold VSE 0.8 Transceiver Input Capacitance CIN 13 V 3.6 V 0.8 V 1.5k: to VREFB on D- 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 Units 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 1.50 Ps Width of SE0 interval during Differential Transition tLST 210 ns See Figure 11. Differential Output Jitter tUDJ1 -95 95 ns To next transition, see Figure 15 Differential Output Jitter tUDJ2 -150 150 ns For paired transitions, see Figure 15 14 Maximum 300 75 80 Ps VOH D+ 90% 90% VCRS VOL 10% 10% D TLR Rise Time TLF Fall Time Figure 10. Data Signal Rise and Fall Times One Bit Time (1.5 MB/s) Minimal Reflectance and Ringing 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 Input Voltage Range (volts) Figure 12. Differential Receiver Input Sensitivity vs. Common Mode Input Range 15 4.6 TPERIOD TDJR TDJR1 Consecutive Transitions N* TPERIOD + TDJR1 Paired Transitions N* TPERIOD + TDJR2 Figure 13. Receiver Jitter Tolerance TPERIOD Crossover Point Crossover Point Extended Differential Data Lines Source EOP Width: TLEOPT Differential Data to SEO Skew N* TPERIOD + TLDEOP 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 16 TDJR2 One-Time-Programmable (OTP) Memory OTP Byte Write Operation The on chip OTP memory allows device configuration flexibility to override the default setting of ADNS-7700 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 L2_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 0x80 to 0xFE. OTP can be programmed via USB interface using Set Vendor Test and Get Vendor Test commands. 5. Read the write enable bit status in OTP_CTRL register, 0x4F. If WR = 1, repeat reading the bit status until it is clear. 1. Set OTP enable bit in OTP_CONFIG register, 0x4C: OTP_EN = 1. 2. Write the OTP register address byte to OTP_ADDR register, 0x4D. 3. Write the OTP data byte to OTP_DATA register, 0x4E. 4. Set write enable bit in OTP_CTRL register, 0x4F to enable write command to OTP: WR = 1. 6. Read the write status bit in OTP_CTRLSTAT register, 0x50. 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 4. 7. If Step 6b is repeated up to 10 times, OTP write operation is failed and the chip is confirmed as defective unit. Start 0x4C: OTP_CONFIG [0] = 1 Write OTP enable bit Repeat = 1 0x4D: OTP_ADDR [7:0] Write OTP addr byte 0x4E: OTP_DATA [7:0] Write OTP data byte 0x4F: OTP_CTRL [0] = 1 Write OTP program bit 0x4F: OTP_CTRL [0] Read OTP program bit No 0x50: OTP_CTRLSTAT [0] Yes bit = 0? Yes Repeat = repeat + 1 Read OTP status bit bit = 1? Repeat = 10? Yes OTP write pass OTP write fail No Done 17 No Yes More bytes? Figure 16. OTP Byte Write Flow Chart No Bad chip OTP Byte Read Operation OTP read operation flow chart is shown in Figure 17. 1. Set OTP enable bit in OTP_CONFIG register, 0x4C: OTP_EN = 1. 2. Write the OTP register address byte to OTP_ADDR register, 0x4D. 3. Set read enable bit in OTP_CTRL register, 0x4F to enable write command to OTP: RD = 1. Start Write OTP addr byte Write OTP read bit 0x4F: OTP_CTRL [1] Read OTP read bit No bit = 0? Yes Read OTP data OTP read done More bytes? No Done Figure 17. OTP Byte Read Flow Chart 18 6. Repeat Step 2 for more OTP read operations. 0x4D: OTP_ADDR [7:0] 0x4F: OTP_CTRL [1] = 1 0x4E: OTP_DATA [7:0] 5. Read the OTP data byte from OTP_DATA register, 0x4E to complete the OTP read operation. 0x4C: OTP_CONFIG [0] = 1 Write OTP enable bit Yes 4. Read the read enable bit status in OTP_CTRL register, 0x4F. If RD = 1, repeat reading the bit status until it is clear. OTP Lock Operation OTP lock operation MUST be performed once OTP write to OTPLOCK2 register for the sensor to function. DO not reset or power up the chip right after OTP write to OTPLOCK2 register, otherwise the chip will be malfunction. The OTP lock operation flow chart is shown in Figure 18. 1. After OTP write to OTPLOCK2 register, set OTP enable bit in OTP_CONFIG register, 0x4C: OTP_EN = 1. 2. Set OTP lock bit in OTP_CTRL register, 0x4F to enable OTP lock command: LOCK_L2 = 1. 3. Read the OTP lock bit status in OTP_CTRL register, 0x4F. If LOCK_L2 = 1, repeat reading the bit status until it is clear. 4. Read the lock status and CRC bits in OTP_CTRLSTAT register, 0x50. a. If both L2_LOCK_OK and L2_CRC_OK = 1, OTP lock operation is completed. b. If either L2_LOCK_OK or L2_CRC_OK = 0, repeat Step 2 until both bits are set. 5. If Step 4b is repeated up to 10 times, OTP lock operation is failed and the chip is confirmed as defective unit. OTP Write 0xFF to OTPLOCK2 register, 0xFA 0x4C: OTP_CONFIG [0] = 1 Write OTP enable bit Repeat = 1 0x4F: OTP_CTRL [2] = 1 Write OTP lock bit 0x4F: OTP_CTRL [2] Read OTP lock bit No bit = 0? Yes Repeat = repeat + 1 0x50: OTP_CTRLSTAT [2] Read lock status bit 0x50: OTP_CTRLSTAT [3] No Repeat = 10? Read CRC status bit No Yes Yes OTP lock fail OTP locked Bad chip Done Figure 18. OTP Byte Lock Flow Chart 19 lock & crc = 1? Buttons and Tilt Wheel The minimum time between button presses is TDBB. Buttons, B1 through B5 and Tilt Wheel are connected to a Schmidt trigger input with 100PA current sources pulling up to +5.0V during run, rest and USB suspend modes. The tilt wheel feature can be enabled or disabled via OTP register. All designers and manufacturers of final product with tilt wheel enabled must assure that they have all necessary intellectual property rights. S0 CPI_SET0 OTF button 1st pressed S1 CPI_SET1 OTF button 2nd pressed S2 CPI_SET2 OTF button 3rd pressed Figure 19. OTF Resolution Mode State Machine Debounce Algorithm Table 3. OTF LED Indication Status for ADNS-7700-HAMY x Button inputs B1, B2, B3, B4, B5, TW1 and TW2 are sampled every 2ms. State Sequence Current State Status x Three consecutive low values create a button press event. Previous Current LED0 LED1 LED2 S2 S0 High Low Low S0 S1 Low High Low S1 S2 Low Low High x Three consecutive high values create a button release event. Z-Wheel ADNS-7700 is designed to be used with mechanical ZWheel for vertical scrolling. The Z-Wheel reporting format which determines the vertical scroll resolution is Z/2 as most of the commonly available mechanical Z-Wheel encoders come with lower sensitivity. On-the-Fly (OTF) Resolution Mode The ADNS-7700-HAMY, ADNS-7700-HCMY and ADNS7700-HMMY sensors are enhanced with programmable On-the-Fly (OTF) resolution mode, which user is able to switch resolution setting anytime with OTF button click. OTF mode can be activated from OTP register 0xC1 by writing either 01 or 10 to OTF [1:0]. When OTF [1:0] = 00 or 11, the resolution setting is fixed as per CPI_SET0 register configuration. Refer to Table 4 on the configurable options. Every OTF button click triggers the change of resolution setting from current state to next state. The OTF state machine as shown in Figure 19 implements in the sequence of S0: CPI_SET0, S1: CPI_SET1 and S2: CPI_SET2 in a cycle. The default state upon ADNS-7700 sensor power up is always at S0. For ADNS-7700-HAMY sensor, the OTF state can be displayed with LED indication via LED0, LED1 and LED2 pins. LED0, LED1 and LED2 are active high output and can be connected to the base of a NPN bi-polar junction transistor (BJT) which when ON connects VDD to the LED. The button click for OTF mode in ADNS-7700-HMMY requires long press. The long press timing is configurable via LONGPRESS register, 0xC6 with default timing of 0.256s. 20 KeyMap (KM) KeyMap mode enables B4, B5, TW1 or TW2 button to be assigned as keyboard shortcut key. Thus, the sensor can be customized to implement standard Microsoft keyboard shortcut keys or special shortcut keys used in different applications, eg. Office, CAD, PC Games, etc. Table 3 shows the configuration of KM1 and KM2 pins in KeyMap mode. KM [1:0] bits in DEVCONFIG register, 0xC1 must complement to each other in order to enable KeyMap modes. KM1 will be implemented as per CodeA setting while KM2 will be implemented as per CodeB setting. CodeA and Code B allow configuration of two and above keys combination (eg. Alt+Tab, Alt+Ctrl+Del). CodeA = CODEA_KEY1 register, 0xC2 + CODEA_KEY2 register, 0xC4 CodeB = CODEB_KEY1 register, 0xC3 + CODEB_KEY2 register, 0xC5 CODEA_KEY1 and CODEB_KEY1 registers consist of 8 predefined keyboard keys: Microsoft Logo GUI, Alt, Shift and Ctrl keys located at left and right sides. CODEA_KEY2 and CODEB_KEY2 registers can be programmed with a keyboard key scan code available from Windows Platform Design Notes on Keyboard Scan Code Specification, which can be downloaded from: http://www.microsoft.com/whdc/archive/scancode.mspx Table 4. Resolution and KeyMap Mode OTP Configurations REG 0xC7 REG 0xC1 REG 0xC1 Pinout Configurations Part Number Configuration Options TW_NEN OTF1-0 KM1-0 B1 B2 B3 B4 B5 TW1 TW2 ADNS-7700-H4MY 3B 1 00 00 Left Right Middle NA NA NA NA 3B + TW (Default) 0 00 00 Left Right Middle NA NA Tilt left Tilt right 3B 1 00 00 Left Right Middle NA NA NA NA 3B + TW (Default) 0 00 00 Left Right Middle NA NA Tilt left Tilt right 3B + TW + OTF ADNS-7700-HAMY ADNS-7700-HCMY ADNS-7700-HMMY 0 01 00 Left Right Middle NA OTF Tilt left Tilt right 3B + OTF + 3LED 1 01 00 Left Right Middle LED2 OTF LED1 LED0 5B 1 00 00 Left Right Middle Back Forward NA NA 5B + TW (Default) 0 00 00 Left Right Middle Back Forward Tilt left Tilt right 5B + OTF 1 01 00 Left Right Middle Back Forward NA OTF 4B + TW + OTF 0 01 00 Left Right Middle Back OTF Tilt left Tilt right 5B 1 00 00 Left Right Middle Back Forward NC NC 5B + TW (Default) 0 00 00 Left Right Middle Back Forward Tilt left Tilt right 5B + KM1/OTF_L 1 01 01 Left Right Middle Back Forward NC KM1/ OTF_L 5B + KM1/OTF_L 1 + KM2 01 10 Left Right Middle Back Forward KM2 KM1/ OTF_L 4B + TW + KM1/ OTF_L 0 01 01 Left Right Middle Back KM1/ OTF_L Tilt left Tilt right 3B + TW + KM1/ OTF_L 0 10 01 Left Right Middle NC KM1/ OTF_L Tilt left Tilt right 3B + TW + KM1/ OTF_L + KM2 0 10 10 Left Right Middle KM2 KM1/ OTF_L Tilt left Tilt right 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 states B1 Pullup active for button use Pullup active for button use B2 Pullup active for button use Pullup active for button use B3 Pullup active for button use Pullup active for button use B4 Pullup active for button use Pullup active for button use B5 Pullup active for button use Pullup active for button use TW1 Pullup active for button use Pullup active for button use TW2 Pullup active for button use Pullup active for button use D+ USB I/O Hi-Z input D- USB I/O Hi-Z input OSC_IN 24MHz Drive Logic `1' OSC_OUT 24MHz Drive Logic `1' -VCSEL Pulsing Pulled high (off ) ZA Hi-Z input Hi-Z input ZB Hi-Z input Hi-Z input 21 Typical Performance Characteristics The following graphs are the typical performance of the ADNS-7700 sensor, assembled as shown in the 2D assembly drawing with the ADNS-6180-001 or ADNS-6180-002 lens. Resolution Vs. Z Straight line at 45deg, Path length = 4inches, Speed = 6ips, Resolution = 1000cpi 1200 White Paper Resolution (cpi) 1000 Photo Paper 800 Manila 600 Spruce Wood 400 Black Formica White Formica 200 White Delrin 0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 Distance from Lens Reference Plane to Navigation Surface, Z (mm) 3.4 Figure 20. Mean Resolution vs. Z Typical Path Deviation Largest Single Perpendicular Deviation from a Straight line at 45deg, Path length = 4inches, Speed = 6ips, Resolution = 1000cpi Maximum Distance (Mouse Counts) 60 White Paper 50 Photo Paper 40 Manila 30 Spruce Wood 20 Black Formica White Formica 10 White Delrin 0 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 Distance from Lens Reference Plane to Navigation Surface, Z (mm) 3.4 Figure 21. Average Error vs. Z Relative Respnsivity Relative Responsivity Vs. Wavelength 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 400 440 480 520 560 600 640 680 720 760 800 840 880 920 960 1000 Wavelength (nm) Figure 22. Wavelength Responsivity 22 USB Commands Mnemonic Command USB_RESET D+/D- low > 18.7us Device Resets; Address = 0 USB_SUSPEND Idle state > 3mS 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 Application Note Get_Desc_Config 80 06 00 02 00 00 nn 00 See USB Command Details Application Note Get_Desc_String 80 06 xx 03 00 00 nn 00 See USB Command Details Application Note Get_Desc_HID 81 06 00 21 00 00 09 00 See USB Command Details Application Note Get_Desc_HID_Report 81 06 00 22 00 00 nn 00 See USB Command Details Application Note 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 4ms Get_Vendor_Test C0 01 00 00 xx 00 01 00 xx = address of register to read 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 4ms Set_Vendor_Test 40 01 00 00 xx yy 00 00 Write yy to address xx Poll_Endpt1 Notes 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." ADNS-7700 will not provide more bytes than the number requested in the command, but it will only supply up to a maximum of 8bytes at a time. The ADNS-7700 will re-send the last packet if the transfer is not acknowledged properly. 23 USB Data Packet Format Sensor ADNS-7700-H4MY, ADNS-7700-HAMY Configuration 3B, 3B+OTF+3LED Button 3 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Disabled/ Enabled KM Disabled/ Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 4 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Sensor ADNS-7700-H4MY, ADNS-7700-HAMY Configuration 3B+TW, 3B+TW+OTF Button 3 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Disabled/ Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 4 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 5 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] 24 Sensor ADNS-7700-HCMY, ADNS-7700-HMMY Configuration 5B, 5B+OTF Button 5 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Disabled/Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 FB BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 4 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Sensor ADNS-7700-HCMY Configuration 5B+TW Button 5 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Disabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 FB BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 4 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 5 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] 25 Sensor ADNS-7700-HCMY Configuration 4B+TW+OTF Button 5 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 4 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 5 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Sensor ADNS-7700-HMMY Configuration 5B+KM1/OTF_L, 5B+KM1/OTF_L+ KM2 Button 5 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 FB BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Byte 5 KEY_CODE_ B[7] KEY_CODE_ B[6] KEY_CODE_ B[5] KEY_CODE_ B[4] KEY_CODE_ B[3] KEY_CODE_ B[2] KEY_CODE_ B[1] KEY_CODE_ B[0] 26 Sensor ADNS-7700-HMMY Configuration 3B+TW+KM1/OTF_L, 3B+TW+KM1/OTF_L+ KM2 Button 5 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 0 0 MB RB LB Byte 3 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 6 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Byte 5 KEY_CODE_ B[7] KEY_CODE_ B[6] KEY_CODE_ B[5] KEY_CODE_ B[4] KEY_CODE_ B[3] KEY_CODE_ B[2] KEY_CODE_ B[1] KEY_CODE_ B[0] Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Sensor ADNS-7700-HMMY Configuration 4B+TW+KM1/OTF_L Button 5 Motion Format 8-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Enabled Bit 7 Bit 6 Byte 1 REPORT ID (01) Byte 2 0 0 0 0 BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 6 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] 27 Sensor ADNS-7700-H4MY, ADNS-7700-HAMY Configuration 3B, 3B+OTF+3LED Button 3 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Disabled/ Enabled KM Disabled/ Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 4 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Sensor ADNS-7700-H4MY, ADNS-7700-HAMY Configuration 3B+TW, 3B+TW+OTF Button 3 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Disabled/ Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 4 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 6 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] 28 Sensor ADNS-7700-HCMY, ADNS-7700-HMMY Configuration 5B, 5B+OTF Button 5 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Disabled/Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 FB BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 4 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Sensor ADNS-7700-HCMY Configuration 5B+TW Button 5 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Disabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 FB BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 4 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 6 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] 29 Sensor ADNS-7700-HCMY Configuration 4B+TW+OTF Button 5 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 4 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 5 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 6 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Sensor ADNS-7700-HMMY Configuration 5B+KM1/OTF_L, 5B+KM1/OTF_L+ KM2 Button 5 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 FB BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 5 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Byte 5 KEY_CODE_ B[7] KEY_CODE_ B[6] KEY_CODE_ B[5] KEY_CODE_ B[4] KEY_CODE_ B[3] KEY_CODE_ B[2] KEY_CODE_ B[1] KEY_CODE_ B[0] 30 Sensor ADNS-7700-HMMY Configuration 3B+TW+KM1/OTF_L, 3B+TW+KM1/OTF_L+ KM2 Button 5 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 0 0 MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 5 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 7 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Byte 5 KEY_CODE_ B[7] KEY_CODE_ B[6] KEY_CODE_ B[5] KEY_CODE_ B[4] KEY_CODE_ B[3] KEY_CODE_ B[2] KEY_CODE_ B[1] KEY_CODE_ B[0] 31 Sensor ADNS-7700-HMMY Configuration 4B+TW+KM1/OTF_L Button 5 Motion Format 12-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 0 BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 Y[3] Y[2] Y[1] Y[0] X[11] X[10] X[9] X[8] Byte 5 Y[11] Y[10] Y[9] Y[8] Y[7] Y[6] Y[5] Y[4] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 7 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Sensor ADNS-7700-H4MY, ADNS-7700-HAMY Configuration 3B, 3B+OTF+3LED Button 3 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Disabled/ Enabled KM Disabled/ Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] 32 Sensor ADNS-7700-H4MY, ADNS-7700-HAMY Configuration 3B+TW, 3B+TW+OTF Button 3 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Disabled/ Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 7 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Sensor ADNS-7700-HCMY, ADNS-7700-HMMY Configuration 5B Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Disabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 FB BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] 33 Sensor ADNS-7700-HCMY, ADNS-7700-HMMY Configuration 5B+TW Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Disabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 0 MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 7 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Sensor ADNS-7700-HCMY Configuration 5B+ OTF Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 FB BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] 34 Sensor ADNS-7700-HCMY Configuration 4B+TW+OTF Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Disabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 0 0 0 0 BB MB RB LB Byte 2 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 3 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 4 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 5 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 6 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 7 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Sensor ADNS-7700-HMMY Configuration 5B+KM1/OTF_L, 5B+KM1/OTF_L+ KM2 Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Disabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 FB BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 5 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 6 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 7 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Byte 5 KEY_CODE_ B[7] KEY_CODE_ B[6] KEY_CODE_ B[5] KEY_CODE_ B[4] KEY_CODE_ B[3] KEY_CODE_ B[2] KEY_CODE_ B[1] KEY_CODE_ B[0] 35 Sensor ADNS-7700-HMMY Configuration 3B+TW+KM1/OTF_L, 3B+TW+KM1/OTF_L+ KM2 Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 FB BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 5 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 6 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 7 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 8 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] Byte 5 KEY_CODE_ B[7] KEY_CODE_ B[6] KEY_CODE_ B[5] KEY_CODE_ B[4] KEY_CODE_ B[3] KEY_CODE_ B[2] KEY_CODE_ B[1] KEY_CODE_ B[0] 36 Sensor ADNS-7700-HMMY Configuration 4B+TW+KM1/OTF_L Button 5 Motion Format 16-Bit Z-Wheel Mechanical Tilt-Wheel Enabled OTF Enabled KM Enabled Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Byte 1 REPORT ID (01) Byte 2 0 0 0 0 BB MB RB LB Byte 3 X[7] X[6] X[5] X[4] X[3] X[2] X[1] X[0] Byte 4 X[15] X[14] X[13] X[12] X[11] X[10] X[9] X[8] Byte 5 Y[7] Y[6] Y[5] Y[4] Y[3] Y[2] Y[1] Y[0] Byte 6 Y[15] Y[14] Y[13] Y[12] Y[11] Y[10] Y[9] Y[8] Byte 7 Z[7] Z[6] Z[5] Z[4] Z[3] Z[2] Z[1] Z[0] Byte 8 TW[7] TW[6] TW[5] TW[4] TW[3] TW[2] TW[1] TW[0] Byte 1 REPORT ID (02) Byte 2 R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Byte 3 0 0 0 0 0 0 0 0 Byte 4 KEY_CODE_ A[7] KEY_CODE_ A[6] KEY_CODE_ A[5] KEY_CODE_ A[4] KEY_CODE_ A[3] KEY_CODE_ A[2] KEY_CODE_ A[1] KEY_CODE_ A[0] 37 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 VDD5 going low or sending a USB reset command. Address Register Name Register Type Access Reset Value 0x00 PROD_ID Device Read only 0x37 0x01 REV_ID Device Read only 0x01 0x02 BUT_STAT Device Read only Undefined 0x03 DELTA_X_H Device Read only 0x00 0x04 DELTA_X_L Device Read only 0x00 0x05 DELTA_Y_H Device Read only 0x00 0x06 DELTA_Y_L Device Read only 0x00 0x07 MOTZ Device Read only 0x00 0x08 SQUAL Device Read only Undefined 0x09 SHUT_HI Device Read only 0x00 0x0A SHUT_LO Device Read only Undefined 0x0B PIX_MAX Device Read only Undefined 0x0C PIX_ACCUM Device Read only Undefined 0x0D PIX_MIN Device Read only Undefined 0x0E PIX_GRABBER Device Read/Write 0x00 0x4C OTP_CONFIG Device Read/Write 0x00 0x4D OTP_ADDR Device Read/Write 0x00 0x4E OTP_DATA Device Read/Write 0x00 0x4F OTP_CTRL Device Read/Write 0x00 0x50 OTP_CTRLSTAT Device Read only Undefined 0x51 OTP_RUNSTAT Device Read only Undefined 0x75 LSR_CTRL0 Device Read/Write 0x00 0x76 LSR_CTRL1 Device Read/Write 0x0F 0x7E INV_REV_ID Device Read only 0xFE 0xBB L2_USE_OTP OTP Read/Write 0x00 0xBC CPI_SET0 OTP Read/Write 0x0A 0xBD CPI_SET1 OTP Read/Write 0x10 0xBE CPI_SET2 OTP Read/Write 0x05 0xBF MOTCONFIG1 OTP Read/Write 0x00 0xC0 ROTATION OTP Read/Write 0x07 0xC1 DEVCONFIG OTP Read/Write 0x00 0xC2 CODEA_KEY1 OTP Read/Write 0x00 0xC3 CODEB_KEY1 OTP Read/Write 0x00 0xC4 CODEA_KEY2 OTP Read/Write 0x00 0xC5 CODEB_KEY2 OTP Read/Write 0x00 0xC6 LONGPRESS OTP Read/Write 0X10 0xC7 TW_CONFIG OTP Read/Write 0x00 0xC8 : 0xC9 PID1 : PID0 OTP Read/Write 0x0716 0xCA : 0xCB VID1 : VID0 OTP Read/Write 0x192F 0xCC MSTR_LEN OTP Read/Write 0x0C 0xCD : 0xD8 MSTR_STR OTP Read/Write Avago 0xD9 PSTR_LEN OTP Read/Write 0x34 0xDA : 0xF5 PROD_STR OTP Read/Write USB LaserStream(TM) Mouse 0xF6 : 0xF7 DEV_NUM OTP Read/Write 0x00 0xFA OTPLOCK2 OTP Read/Write 0x00 38 PROD_ID Access: Read Only Address: 0x00 Reset Value: 0x37 Bit 7 6 5 4 3 2 1 0 Field PID7 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 Access: Read Only Address: 0x01 Reset Value: 0x01 Bit 7 6 5 4 3 2 1 0 Field RID7 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 Access: Read Only Address: 0x02 Reset Value: Undefined Type: Device Bit 7 6 5 4 3 2 1 0 Field Reserved BUT7 BUT6 BUT5 BUT4 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. 39 Field Name Description BUT7 Reports the status of TW2 (Right tilt) 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) BUT6 Reports the status of TW1 (Left tilt) 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) BUT5 When used as a 5 button mouse, reports the status of B5 button pin 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) BUT4 When used as a 5 button mouse, reports the status of B4 button pin 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) BUT3 Reports the status of B3 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) BUT2 Reports the status of B2 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) BUT1 Reports the status of B1 0 = pin signal is at logic 1 (VDD5) 1 = pin signal is at logic 0 (GND) DELTA_X_H Access: Read Only Address: 0x03 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field X15 X14 X13 X12 X11 X10 X9 X8 DELTA_X_L Access: Read Only Address: 0x04 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field X7 X6 X5 X4 X3 X2 X1 X0 Data Type: 16-Bit 2's Complement Data USAGE: The value in this register reflects the last USB delta X data output or data queued for output. This register is included for test purposes only. For navigation use, use the HID defined commands Absolute value is determined by the currently set resolution. Register read sequence Delta_X_H -> Delta_X_L -> Delta_Y_H -> Delta_Y_L DELTA_Y_H Access: Read Only Address: 0x05 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field Y15 Y14 Y13 Y12 Y11 Y10 Y9 Y8 DELTA_Y_L Access: Read Only Address: 0x06 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Data Type: 16-Bit 2's Complement Data USAGE: The value in this register reflects the last USB delta Y data output or data queued for output. This register is included for test purposes only. For navigation use, use the HID defined commands. Absolute value is determined by the currently set resolution. Register read sequence Delta_X_H -> Delta_X_L -> Delta_Y_H -> Delta_Y_L MOTZ Access: Read Only Address: 0x07 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 Data Type: 8-Bit field USAGE: If mouse is configured to contain a Z-wheel, this register contains the Z-wheel count. Range is from -127 to +127 decimal. 40 SQUAL Access: Read Only Address: 0x08 Reset Value: Undefined Type: Device Bit 7 6 5 4 3 2 1 0 Field SQ7 SQ6 SQ5 SQ4 SQ3 SQ2 SQ1 SQ0 Data Type: Upper 8bits of a 10-bit unsigned integer USAGE: SQUAL (Surface Quality) is a measure of 1/4 of the number of valid features visible by the sensor in the current frame. Use the following formula to find the total number of valid features. The values range from 0 to 144. Number of features = SQUAL register value * 4 Since small changes in the current frame can result in changes in SQUAL, slight variations in SQUAL on one surface is expected. The graph below shows 800 sequentially acquired SQUAL values, while a sensor was moved slowly over white paper. SQUAL is nearly equal to zero, if there is no surface below the sensor. SQUAL is typically maximized when the navigation surface is at the optimum distance from the imaging lens (the nominal Z-height). SQUAL Value (White Paper) Z = 2.4mm, Circle@7.5" diameter, Speed = 6ips SQUAL Value (COunt) 40 30 20 10 0 1 51 101 151 201 251 301 351 401 451 501 551 601 651 701 751 Count Figure 23. SQUAL Values (white paper) SQUAL vs Z (White Paper) 1000cpi, Circle@7.5" diameter, Speed = 6ips 40 Avg-3sigma Avg Avg+3sigma SQUAL (Count) 30 20 10 0 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 Distance from Lens Reference Plane to Navigation Surface, Z (mm) Figure 24. Mean SQUAL vs. Z (white paper) 41 3.4 SHUT_HI Access: Read Oly Address: 0x9 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field S15 S14 S13 S12 S11 S10 S9 S8 SHUT_LO Access: Read Only Address: 0x0A Reset Value: Undefined 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 units are in main clocks ticks (nominally 24MHz). To avoid split read issues, read SHUT_Hi first. Shutter Value (White Paper) Z = 2.4mm, Circle@7.5" diameter, Speed = 6ips 60 Shutter Value (Count) 50 40 30 20 10 0 1 51 101 151 201 251 301 351 401 451 501 551 601 651 701 751 Count Figure 25. Shutter Values (white paper) Shutter vs Z (White Paper) 1000cpi, Circle@7.5" diameter, Speed = 6ips 300 Avg-3sigma Avg Avg+3sigma Shutter Value (Count) 250 200 150 100 50 0 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 Distance from Lens Reference Plane to Navigation Surface, Z (mm) Figure 26. Mean Shutter vs. Z (white paper) 42 3.4 PIX_MAX Access: Read Only Address: 0x0B Reset Value: Undefined Type: Device Bit 7 6 5 4 3 2 1 0 Field 0 MX6 MX5 MX4 MX3 MX2 MX1 MX0 Data Type: 7-bit number. USAGE: This is the maximum pixel value from the last image taken. PIX_ACCUM Access: Read Only Address: 0x0C Reset Value: Undefined Type: Device Bit 7 6 5 4 3 2 1 0 Field AC7 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. This register is used to find the average pixel value. For the 24x24 array raw image, only the upper 8bits are reported ([16:9]). Pixel_Average = PIX_ACCUM / 1.125 PIX_MIN Access: Read Only Address: 0x0D Reset Value: Undefined Type: Device Bit 7 6 5 4 3 2 1 0 Field 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. 43 PIX_GRABBER Access: Read/Write Address: 0x0E Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field VALID 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 576 reads to upload the completed image. For each pixel read, the register should be polled (continuously read) until VALID = 1 before the PG [6:0] is taken as valid pixel data. Any write to this register will reset and arm the grabber to grab pixel 0 on the next image. The X and Y directions with respect to the mouse case are shown in Figure 27.See pixel array numbering in Figure 28 that shows the readout order of the array. Rows are read from bottom to top and columns are from left to right. Top Xray View of Mouse LB P O S I T I V E RB 1 22 2 21 3 20 4 19 5 18 6 17 7 Y 16 8 15 9 14 10 13 11 12 POSITIVE X Figure 27. Directions are for a complete mouse, with the ADNS-6180-001 or ADNS-6180-002 lens 44 Sensor looking at the navigation surface through the ADNS-6180-001 or ADNS-6180-002 lens from top of mouse. 575 551 527 503 479 455 431 407 383 359 335 311 287 263 239 215 191 167 143 119 95 71 47 23 574 550 526 502 478 454 430 406 382 358 334 310 286 262 238 214 190 166 142 118 94 70 46 22 573 549 525 501 477 453 429 405 381 357 333 309 285 261 237 213 189 165 141 117 93 69 45 21 572 548 524 500 476 452 428 404 380 356 332 308 284 260 236 212 188 164 140 116 92 68 44 20 571 547 523 499 475 451 427 403 379 355 331 307 283 259 235 211 187 163 139 115 91 67 43 19 570 546 522 498 474 450 426 402 378 354 330 306 282 258 234 210 186 162 138 114 90 66 42 18 569 545 521 497 473 449 425 401 377 353 329 305 281 257 233 209 185 161 137 113 89 65 41 17 568 544 520 496 472 448 424 400 376 352 328 304 280 256 232 208 184 160 136 112 88 64 40 16 567 543 519 495 471 447 423 399 375 351 327 303 279 255 231 207 183 159 135 111 87 63 39 15 566 542 518 494 470 446 422 398 374 350 326 302 278 254 230 206 182 158 134 110 86 62 38 14 565 541 517 493 469 445 421 397 373 349 325 301 277 253 229 205 181 157 133 109 85 61 37 13 564 540 516 492 468 444 420 396 372 348 324 300 276 252 228 204 180 156 132 108 84 60 36 12 563 539 515 491 467 443 419 395 371 347 323 299 275 251 227 203 179 155 131 107 83 59 35 11 562 538 514 490 466 442 418 394 370 346 322 298 274 250 226 202 178 154 130 106 82 58 34 10 561 537 513 489 465 441 417 393 369 345 321 297 273 249 225 201 177 153 129 105 81 57 33 9 560 536 512 488 464 440 416 392 368 344 320 296 272 248 224 200 176 152 128 104 80 56 32 8 559 535 511 487 463 439 415 391 367 343 319 295 271 247 223 199 175 151 127 103 79 55 31 7 558 534 510 486 462 438 414 390 366 342 318 294 270 246 222 198 174 150 126 102 78 54 30 6 557 533 509 485 461 437 413 389 365 341 317 293 269 245 221 197 173 149 125 101 77 53 29 5 556 532 508 484 460 436 412 388 364 340 316 292 268 244 220 196 172 148 124 100 76 52 28 4 555 531 507 483 459 435 411 387 363 339 315 291 267 243 219 195 171 147 123 99 75 51 27 3 554 530 506 482 458 434 410 386 362 338 314 290 266 242 218 194 170 146 122 98 74 50 26 2 553 529 505 481 457 433 409 385 361 337 313 289 265 241 217 193 169 145 121 97 73 49 25 1 552 528 504 480 456 432 408 384 360 336 312 288 264 240 216 192 168 144 120 96 72 48 24 0 Figure 28. Pixel Address Map of Navigation Surface Image 45 OTP_CONFIG Access: Read/Write Address: 0x4C Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field Reserved 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 Access: Read/Write Address: 0x4D Reset Value: 0x00 6 5 4 Type: Device Bit 7 3 2 1 0 Field OTP_ADDR7 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 Access: Read/Write Address: 0x4E Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field OTP_DATA7 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. 46 OTP_CTRL Access: Read/Write Address: 0x4F Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved Reserved Reserved LOCK_L2 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_L2 Enable OTP lock command 1 = Lock OTP space 0 = Lock command is completed OTP_CTRLSTAT Access: Read only Address: 0x50 Reset Value: Undefined Type: Device Bit 7 6 5 4 3 2 Field Reserved Reserved Reserved Reserved L2_CRC_OK L2_LOCK_OK WR_DENIED WR_OK Data Type: Bit field USAGE: This register shows the OTP control status. Refer to OTP programming section. 47 Field Name Description WR_OK OTP write status 1 = OK 0 = Failed WR_DENIED OTP write access status 1 = Denied 0 = OK L2_LOCK_OK OTP lock status 1 = OK 0 = Failed L2_CRC_OK CRC test status 1 = OK 0 = Failed 1 0 OTP_RUNSTAT Access: Read only Address: 0x51 Reset Value: Undefined Bit 7 6 5 Field Reserved L2_CHECKED L2_LOCK Type: Device 4 3 2 1 0 L2_USED Reserved Reserved Reserved DEV_RDY Data Type: Bit field USAGE: This register shows the OTP run status. Refer to OTP programming section. Field Name Description DEV_RDY Device status 1 = Ready, reading or writing to OTP register is allowed 0 = Busy, do not read or write to OTP register yet L2_USED OTP space status 1 = Used 0 = Unused L2_LOCKED OTP space locking status 1 = Locked 0 = Open L2_CHECKED OTP status check 1 = Checked 0 = Unchecked LSR_CTRL0 Access: Read/Write Address: 0x75 Reset Value: 0x00 Type: Device Bit 7 6 5 4 3 2 1 0 Field 0 0 0 0 0 LSR_CW1 0 LSR_CW0 Data Type: Bit field USAGE: This register is included strictly for test purposes only. It is to be used with LSR_CTRL1 register, 0x76 where LSR_CW_COMP1 and LSR_CW_COMP0 bits must contain the complement of LSR_CW1 and LSR_CW0 bits in order to set the laser to continuous (CW) mode. Other bits MUST be set to 0. Field Name Description LSR_CW1 : LSR_CW0 Laser drive mode 11 = CW mode ON 00 = Normal operation in pulse mode 48 LSR_CTRL1 Access: Read/Write Address: 0x76 Reset Value: 0x0F Type: Device Bit 7 6 5 4 3 2 1 0 Field 0 0 0 0 0 LSR_CW_ COMP1 0 LSR_CW_ COMP0 Data Type: Bit field USAGE: This register is included strictly for test purposes only. It is to be used with LSR_CTRL1 register, 0x76 where LSR_CW_COMP1 and LSR_CW_COMP0 bits must contain the complement of LSR_CW1 and LSR_CW0 bits in order to set the laser to continuous (CW) mode. Other bits MUST be set to 0. Field Name Description LSR_CW_COMP1 : LSR_CW_COMP0 MUST be complement of LSR_CW[1-0] bit in register 0x75 INV_REV_ID Access: Read only Address: 0x7E Reset Value: 0xFE Type: Device Bit 7 6 5 4 3 2 1 0 Field INV_RID7 INV_RID6 INV_RID5 INV_RID4 INV_RID3 INV_RID2 INV_RID1 INV_RID0 Data Type: 8-bit number with current revision of the IC. USAGE: Contains the inverse of the revision ID which is located in register 0x01. L2_USE_OTP Access: Read/Write Address: 0xBB Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field L2_USE_ OTP7 L2_USE_ OTP6 L2_USE_ OTP5 L2_USE_ OTP4 L2_USE_ OTP3 L2_USE_ OTP2 L2_USE_ OTP1 L2_USE_ OTP0 Data Type: 8-bit field. USAGE: Bypass OTP configuration if all bits are zero. MUST write 0xFF to this register to enable OTP operation. Once enabled, all OTP registers must be written as the default values are zero value. 49 CPI_SET0 Access: Read/Write Address: 0xBC Reset Value: 0x0A Type: OTP Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved CPI04 CPI03 CPI02 CPI01 CPI00 Data Type: 8-Bit field USAGE: This register sets the default resolution setting when the sensor is powered up. It is also the default 1st resolution setting (S1) when On-the-Fly (OTF) resolution mode is enabled. The performance of max setting is surface dependent. The resolution settings shown below are approximate values. CPI0[4:0] Approximate Resolution (cpi) CPI0[4:0] Approximate Resolution (cpi) 00000-00011 Reserved 01111 1500 00100 400 10000 1600 00101 500 10001 1700 00110 600 10010 1800 00111 700 10011 1900 01000 800 10100 2000 01001 900 10101 2100 01010 1000 10110 2200 01011 1100 10111 2300 01100 1200 11000 2400 01101 1300 11001-11111 Reserved 01110 1400 CPI_SET1 Access: Read/Write Address: 0xBD Reset Value: 0x10 Type: OTP Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved CPI14 CPI13 CPI12 CPI11 CPI10 Data Type: 8-Bit field USAGE: This register sets the 2nd resolution setting (S2) when On-the-Fly (OTF) resolution mode is enabled. The performance of max setting is surface dependent. Refer to resolution table in CPI_SET0. 50 CPI_SET2 Access: Read/Write Address: 0xBE Reset Value: 0x05 Type: OTP Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved CPI24 CPI23 CPI22 CPI21 CPI20 Data Type: 8-Bit field USAGE: This register sets the 3rd resolution setting (S3) when On-the-Fly (OTF) resolution mode is enabled. The performance of max setting is surface dependent. Refer to resolution table in CPI_SET0. MOTCONFIG1 Access: Read/Write Address: 0xBF Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved Reserved Reserved Reserved MF1 MF0 Data Type: Bit field USAGE: This register allows configuration of USB motion reporting format. 12-bit or 16-bit is the recommended motion reporting format to achieve the optimum performance of the sensor. 8-bit is the optional setting for the system supporting 8-bit motion reporting only and it will have trade off on speed performance. Field Name Description MF1-0 Sets USB motion reporting format 00 = 12-bit 01 = 8-bit 10 = 16-bit 11 = Reserved 51 ROTATION Access: Read/Write Address: 0xC0 Reset Value: 0x07 Type: OTP Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved Reserved Reserved SWAP_XY INV_X INV_Y Data Type: Bit field USAGE: This register can be used to re-orientate the sensor motion reporting direction. The SWAP_XY operation is always performed before INV_X and INV_Y inversion operations. Field Name Description SWAP_XY 1 = Swap X and Y axis motion data report direction INV_X 1 = Invert X axis motion data report direction INV_Y 1 = Invert Y axis motion data report direction Rotation SWAP INV_X INV_Y 0 1 1 1 90 0 0 1 180 1 0 0 270 0 1 0 BEFORE Rotation 10 +Y 12 13 14 15 16 17 14 9 20 4 15 19 +Y 18 +X 13 21 3 +Y 8 16 18 +X 17 17 7 6 +Y 19 14 20 13 11 10 9 8 7 6 5 4 1 18 15 3 22 21 20 19 18 17 16 15 14 13 12 16 8 2 6 7 5 5 19 12 11 +X 20 1 2 3 4 22 2 270 180 5 6 7 8 9 10 11 1 21 90 22 0 21 4 9 3 10 +X 2 11 22 12 1 AFTER Rotation Y direction of HID is always inverted from actual motion. 90 180 12 13 14 15 16 17 18 19 +X 13 10 14 20 9 4 15 19 +Y 16 18 +Y 8 7 17 17 15 +X 19 14 20 13 21 4 9 3 11 +Y 22 12 2 10 1 Figure 29. XY Motion Reporting Direction when Lens is attached on the Sensor 11 10 9 8 7 6 5 4 3 1 18 22 21 20 19 18 17 16 15 14 13 12 16 8 2 6 7 5 +Y 6 52 20 12 11 +X 21 3 5 21 1 2 3 4 5 6 7 8 9 10 11 22 +X 2 270 22 0 1 DEVCONFIG Access: Read/Write Address: 0xC1 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field KM1 KM0 OTF1 OTF0 0 0 0 0 Data Type: Bit field USAGE: This register is used to enable the OTF resolution and KeyMap (KM) modes in the OTP. Refer to Table 4 on OTF Resolution and KeyMap Mode Configurations for details. Field Name Description OTF1-0 Set OTF mode. 00 / 11 = Disabled 10 / 01 = Enabled KM1-0 KM mode 00 / 11 = Disabled 10 / 01 = Enabled 53 CODEA_KEY1 Access: Read/Write Address: 0xC2 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Data Type: Bit field USAGE: This register is used together with CODEA_KEY2 register to form CodeA for KM1 output. It is the KeyMap modifier key setting. CodeA = CODEA_KEY1 + CODEA_KEY2 For 3D flip application, CodeA = Alt + Tab CODEA_KEY1 = 0x40 (R-Alt = 1) or 0x04 (L-Alt = 1) CODEA_KEY2 = 0x2B (Tab key) Field Name Description R-Gui Microsoft logo GUI key on the right side of keyboard 0 = Disabled 1 = Enabled R-Alt Alt key on the right side of keyboard 0 = Disabled 1 = Enabled R-Shift Shift key on the right side of keyboard 0 = Disabled 1 = Enabled R-Ctrl Ctrl key on the right side of keyboard 0 = Disabled 1 = Enabled L-Gui Microsoft logo GUI on the left side of keyboard 0 = Disabled 1 = Enabled R-Alt Alt key on the left side of keyboard 0 = Disabled 1 = Enabled R-Shift Shift key on the left side of keyboard 0 = Disabled 1 = Enabled R-Ctrl Ctrl key on the left side of keyboard 0 = Disabled 1 = Enabled 54 CODEB_KEY1 Access: Read/Write Address: 0xC3 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field R-Gui R-Alt R-Shift R-Ctrl L-Gui L-Alt L-Shift L-Ctrl Data Type: Bit field USAGE: This register is used together with CODEB_KEY2 register to form CodeB for KM2 output. It is the KeyMap modifier key setting. CodeB = CODEB_KEY1 + CODEB_KEY2 For Windows Security Logon/Logout application, CodeB = Alt + Ctrl + Del CODEB_KEY1 = 0x05 (L-Alt = 1, L-Ctrl = 1) CODEB_KEY2 = 0x4C (Del key) Field Name Description R-Gui Microsoft logo GUI key on the right side of keyboard 0 = Disabled 1 = Enabled R-Alt Alt key on the right side of keyboard 0 = Disabled 1 = Enabled R-Shift Shift key on the right side of keyboard 0 = Disabled 1 = Enabled R-Ctrl Ctrl key on the right side of keyboard 0 = Disabled 1 = Enabled L-Gui Microsoft logo GUI on the left side of keyboard 0 = Disabled 1 = Enabled R-Alt Alt key on the left side of keyboard 0 = Disabled 1 = Enabled R-Shift Shift key on the left side of keyboard 0 = Disabled 1 = Enabled R-Ctrl Ctrl key on the left side of keyboard 0 = Disabled 1 = Enabled 55 CODEA_KEY2 Access: Read/Write Address: 0xC4 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field SC_A7 SC_A6 SC_A5 SC_A4 SC_A3 SC_A2 SC_A1 SC_A0 Data Type: 8-Bit number USAGE: This register is used together with CODEA_KEY1 register to form CodeA for KM1 output. Any keyboard key scan codes listed in Keyboard Scan Code Specification Windows Platform Design Notes can be used but only limited to one scan code. CodeA = CODEA_KEY1 + CODEA_KEY2 For 3D flip application, CodeA = Alt + Tab CODEA_KEY1 = 0x40 (R-Alt = 1) or 0x04 (L-Alt = 1) CODEA_KEY2 = 0x2B (Tab key) CODEB_KEY2 Access: Read/Write Address: 0xC5 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field SC_A7 SC_A6 SC_A5 SC_A4 SC_A3 SC_A2 SC_A1 SC_A0 Data Type: 8-Bit number USAGE: This register is used together with CODEA_KEY1 register to form CodeA for KM2 output. Any keyboard key scan codes listed in Keyboard Scan Code Specification Windows Platform Design Notes can be used but only limited to one scan code. CodeB = CODEB_KEY1 + CODEB_KEY2 For Windows Security Logon/Logout application, CodeB = Alt + Ctrl + Del CODEB_KEY1 = 0x05 (L-Alt = 1, L-Ctrl = 1) CODEB_KEY2 = 0x4C (Del key) LONGPRESS Access: Read/Write Address: 0xC6 Reset Value: 0x10 Type: OTP Bit 7 6 5 4 3 2 1 0 Field L_Press7 L_Press6 L_Press5 L_Press4 L_Press3 L_Press2 L_Press1 L_Press0 Data Type: 8-Bit number USAGE: This register is used to set the button press duration for OTF_L. The press duration is range from 16ms to 4s. Each bit step change is 16ms. 56 TW_CONFIG Access: Read/Write Address: 0xC7 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field Reserved Reserved Reserved Reserved Reserved Reserved Reserved TW_NEN Data Type: Bit field USAGE: This register is used to set the Tilt Wheel mode for horizontal scrolling. Field Name Description TW_NEN Set Tilt Wheel mode 0 = Enabled 1= Disabled PID0 Access: Read/Write Address: 0xC8 Reset Value: 0x16 Type: OTP Bit 7 6 5 4 3 2 1 0 Field PID7 PID6 PID5 PID4 PID3 PID2 PID1 PID0 PID1 Access: Read/Write Address: 0xC9 Reset Value: 0x07 Type: OTP Bit 7 6 5 4 3 2 1 0 Field PID15 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 = 0x0716. VID0 Access: Read/Write Address: 0xCA Reset Value: 0x2F Type: OTP Bit 7 6 5 4 3 2 1 0 Field VID7 VID6 VID5 VID4 VID3 VID2 VID1 VID0 VID1 Access: Read/Write Address: 0xCB Reset Value: 0x19 Type: OTP Bit 7 6 5 4 3 2 1 0 Field VID15 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. 57 MSTR_LEN Access: Read/Write Address: 0xCC Reset Value: 0x0C Type: OTP Bit 7 6 5 4 3 2 1 0 Field MSTR_LEN7 MSTR_LEN6 MSTR_LEN5 MSTR_LEN4 MSTR_LEN3 MSTR_LEN2 MSTR_LEN1 MSTR_LEN0 Data Type: 8-bit number. USAGE: Specifies the manufacturing string description length in bytes inclusive (plus 1 for descriptor type). One character = 2 bytes. Number of bytes = 1 MSTR_LEN + 2 *(MFR_STR characters) + 1 descriptor type Default: Number of bytes = 1 + (2 * 5) + 1 = 12 = 0x0C MFR_STR0 to MFR_STR11 Access: Read/Write Address: 0xCD to 0xD8 Reset Value: "Avago" Type: OTP Bit 7 6 5 4 3 2 1 0 Field MFR_STR7 MFR_STR6 MFR_STR5 MFR_STR4 MFR_STR3 MFR_STR2 MFR_STR1 MFR_STR0 Data Type: 12 bytes number USAGE: These registers allow maximum of 11 characters in ASCII. Default = "Avago" Default Value 58 Register Name Address ASCII Character MFR_STR0 0xCD 0x41 "A" MFR_STR1 0xCE 0x76 "v" MFR_STR2 0xCF 0x61 "a" MFR_STR3 0xD0 0x67 "g" MFR_STR4 0xD1 0x6F "o" MFR_STR5 0xD2 0x00 Null MFR_STR6 0xD3 0x00 Null MFR_STR7 0xD4 0x00 Null MFR_STR8 0xD5 0x00 Null MFR_STR9 0xD6 0x00 Null MFR_STR10 0xD7 0x00 Null MFR_STR11 0xD8 0x00 Null PSTR_LEN Access: Read/Write Address: 0xD9 Reset Value: 0x34 Type: OTP Bit 7 6 5 4 3 2 1 0 Field PSTR_LEN7 PSTR_LEN6 PSTR_LEN5 PSTR_LEN4 PSTR_LEN3 PSTR_LEN2 PSTR_LEN1 PSTR_LEN0 Data Type: 8-bit number. USAGE: Specifies the product string description length in bytes inclusive (plus 1 for descriptor type). One character = 2 bytes. Number of bytes = 1 PSTR_LEN + 2 *(PROD_STR characters) + 1 descriptor type Default: Number of bytes = 1 + (2 * 25) + 1 = 52 = 0x34 PROD_STR0 to PROD_STR28 Access: Read/Write Address: 0xDA to 0xF5 Reset Value: "USB LaserStream(TM) Mouse" Type: OTP Bit 7 6 5 4 3 2 1 0 Field PROD_STR7 PROD_STR6 PROD_STR5 PROD_STR4 PROD_STR3 PROD_STR2 PROD_STR1 PROD_STR0 Data Type: 28 bytes number USAGE: These registers allow maximum of 28 characters in ASCII. Default = "USB LaserStream(TM) Mouse" Default Value 59 Default Value Register Name Address ASCII Character Register Name Address ASCII Character PROD_STR0 0xDA 0x55 "U" PROD_STR14 0xE8 0x6D "m" PROD_STR1 0xDB 0x53 "S" PROD_STR15 0xE9 0x28 "(" PROD_STR2 0xDC 0x42 "B" PROD_STR16 0xEA 0x54 "T" PROD_STR3 0xDD 0x20 "" PROD_STR17 0xEB 0x4D "M" PROD_STR4 0xDE 0x4C "L" PROD_STR18 0xEC 0x29 ")" PROD_STR5 0xDF 0x61 "a" PROD_STR19 0xED 0x20 "" PROD_STR6 0xE0 0x73 "s" PROD_STR20 0xEE 0x4D "M" PROD_STR7 0xE1 0x65 "e" PROD_STR21 0xEF 0x6F "o" PROD_STR8 0xE2 0x72 "r" PROD_STR22 0xF0 0x75 "u" PROD_STR9 0xE3 0x53 "S" PROD_STR23 0xF1 0x73 "s" PROD_STR10 0xE4 0x74 "t" PROD_STR24 0xF2 0x65 "e" PROD_STR11 0xE5 0x72 "r" PROD_STR25 0xF3 0x00 Null PROD_STR12 0xE6 0x65 "e" PROD_STR26 0xF4 0x00 Null PROD_STR13 0xE7 0x61 "a" PROD_STR27 0xF5 0x00 Null DEV_NUM0 Access: Read/Write Address: 0xF6 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field DEV7 DEV6 DEV5 DEV4 DEV3 DEV2 DEV1 DEV0 DEV_NUM1 Access: Read/Write Address: 0xF7 Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field DEV15 DEV14 DEV13 DEV12 DEV11 DEV10 DEV9 DEV8 Data Type: 16-Bit number USAGE: These registers are used to customize device number, which is optional to be assigned by manufacturer. OTPLOCK2 Access: Read/Write Address: 0xFA Reset Value: 0x00 Type: OTP Bit 7 6 5 4 3 2 1 0 Field OTPLOCK27 OTPLOCK26 OTPLOCK25 OTPLOCK24 OTPLOCK23 OTPLOCK22 OTPLOCK21 OTPLOCK20 Data Type: 8-bit field. USAGE: Must write 0xFF in this register to lock the OTP configuration. Warning: Other values will cause the sensor to be malfunction. 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 (c) 2005-2009 Avago Technologies. All rights reserved. AV02-1883EN - December 16, 2009