ADNS-5700 Optical Mouse Sensor Data Sheet Description Features The ADNS-5700-XXXX is a compact, one chip USB optical mouse sensor for implementing a non-mechanical tracking engine for computer mice. Optical navigation technology 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. High speed motion detection up to 30 inches per second (ips) and acceleration of 8g The sensor is in a 18 -pin optical package that is designed to be used with the ADNS-5100-001 trim lens the ADNS5200 Clip and the HLMP-EG3E-xxxxx LED. These parts provide a complete and compact mouse sensor. There are no moving parts, and precision optical alignment is not required, 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. Default resolution 1000cpi, selectable resolution 800cpi or 1200cpi through different part number Accurate navigation over a wide variety of surfaces No precision optical alignment needed Wave Solderable Single 5.0 volt power supply Meets USB Revision 2.0 specification Meets HID Revision 1.11 Tilt Wheel function Optical or Mechanical Z-Wheel function 12bits motion reporting Frame rate is varied internally to the sensor to achieve tracking and speed performance, eliminating the need for the use of many registers. 2 axis sensor rotation : 0° or 270° Default resolution is specified as 1000 counts per inch, with rates of motion up to 30 inches per second. Buttons and tilt wheel features are also available. Mice for desktop PC’s, Workstations, and portable PC’s A complete mouse can be built with the addition of a PC board, switches and mechanical Z-wheel, plastic case and cable. Theory of Operation The ADNS-5700-XXXX is based on Optical Navigation Technology. 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 and illumination system provided by the ADNS-5100001 trim lens, ADNS-5200 clip and HLMP-EG3E-xxxxx 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. Applications Trackballs Integrated input devices Pinout 18pin PDIP ADNS-5700-XXXX Pin Number 3 button H3MB, H3NB H4MB, H4NB 5 button H5MD, H5ND 1 D+ D+ D+ 2 D- D- D- 3 ZA ZA ZA 4 ZB ZB ZB 5 LED_GND LED_GND LED_GND 6 XY_LED XY_LED XY_LED 7 VDD5 VDD5 VDD5 8 GND GND GND 9 REG0 REG0 REG0 10 VDD3 VDD3 VDD3 11 NC TL B4 12 NC TR OSC_IN 13 GND GND GND 14 OSC_IN OSC_IN OSC_OUT 15 OSC_OUT OSC_OUT B3 16 B3 B3 B2 17 B2 B2 B1 18 B1 B1 B5 Pin description table Product Number Pin Name Description D+ USB D+ line 1 2 3 4 5 6 7 8 9 18 17 16 15 14 13 12 11 10 D- USB D- line ZA ZA Optical wheel quadrature input ZB ZB Optical wheel quadrature input LED_GND LED ground XY_LED XY_LED Input VDD5 5 Volt Power (USB VBUS) GND System ground ZLED Z-Wheel LED input REG0 / VDD3 3 Volt Power VDD3 NC No Connect OSC_IN Ceramic resonator input OSC_OUT Ceramic resonator output B5 Fifth Button B4 Fourth Button B3 Middle button input B2 Right button input Figure 1a. Package pinout B1 Left button input Note : See table for Part number marking Date Code Lot Code Item Marking Product Number A5700 Remarks Date Code XYYWWZ X = Subcon Code YYWW = Date Code Z = Sensor Die Source Lot Code VVV Numeric DISCLAIMER: ALL DESIGNERS AND MANUFACTURERS OF THIS DESIGN MUST ASSURE THAT THEY HAVE ALL NECESSARY INTELLECTUAL PROPERTY RIGHTS. 2 Strap (Jumper) Table The PID/string strap matrix is the following: Resolution (cpi) Buttons Tilt Wheel Z-Wheel Sensor Position VID PID Mfg String Product String Standard 3 buttons 1000 3 No Mechanical 0° 0x192F 0x0416 Null USB Optical Mouse ADNS-5700-H4MB Standard 3 buttons 1000 3 TW Mechanical 0° 0x192F 0x0416 Null USB Optical Mouse ADNS-5700-H5MD Standard 5 buttons 1000 5 No Mechanical 0° 0x192F 0x0616 Null USB Optical Mouse ADNS-5700-H3NB Standard 3 buttons 1000 3 No Mechanical 270° 0x192F 0x0416 Null USB Optical Mouse ADNS-5700-H4NB Standard 3 buttons 1000 3 TW Mechanical 270° 0x192F 0x0416 Null USB Optical Mouse ADNS-5700-H5ND Standard 5 buttons 1000 5 No Mechanical 270° 0x192F 0x0616 Null USB Optical Mouse Part Number Description ADNS-5700-H3MB DISCLAIMER: ALL DESIGNERS AND MANUFACTURERS OF THIS DESIGN MUST ASSURE THAT THEY HAVE ALL NECESSARY INTELLECTUAL PROPERTY RIGHTS. The XY motion reporting direction when is lens is attached to the sensor is shown in Fig 1b for 0° and Fig 1c for 270° sensor orientation. Top Xray View of Mouse Y RB 18 17 16 15 14 13 12 11 10 1 2 3 4 5 6 7 8 9 POSITIVE X Figure 1b. Package pinout at 0° 3 P O S I T I V E LB RB 18 17 16 15 14 13 12 11 10 LB Y 1 2 3 4 5 6 7 8 9 P O S I T I V E Top Xray View of Mouse POSITIVE X Figure 1c. Package pinout at 270° Pin 1 (2.54) 0.100 (0.46) 0.018 Feature for Illustration only 5.60 ± 0.03 (At Base) 0.220 ± 0.001 (3.40) 0.134 (1q) SECTION A-A 12.85 (At shoulder) 0.506 50q 20.30 0.799 1.00 0.039 9.10 0.358 4.30 0.169 0.25 0.010 5.15 0.203 DETAIL1 Scale 10:1 see DETAIL1 6.19 0.244 4.55 0.179 0.40 0.016 Lead Width 1.00 Lead Offset 0.039 A 7.28 ± 0.03 0.287 ± 0.001 Pin 1 Clear Optical Path 11.46 0.451 2X 90 ± 3q (6.43) 0.253 0.25 0.010 12.85 ± 0.54 (At lead tip) 0.506 ± 0.021 Protective Kapton Tape A (1.00) 0.039 2.00 Lead Pitch 0.079 Notes: 1. Dimensions in milimeter / 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_SOC_18A_Pkg_001 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. 4 1.09 ± 0.03 0.043 ± 0.001 10.35 0.408 2X ∅ 3.05 0.120 Recommended 7.57 0.298 5.03 0.198 12.95 0.510 2.25 0.089 0.35 0.014 2X ∅ 1.00 0.039 40.59 1.598 Recommended 38.52 1.516 28.09 1.106 26.50 1.043 Clear Zone 18X 1.00 0.039 ∅ 0.80 0.031 Recommended 0 12.61 0.496 10.60 0.417 2.00 2.65 0.079 0.104 0 Pin #1 Hole 2.00 0.079 Notes: 1. Dimensions in milimeter / inches and for reference only. Figure 3. Recommended PCB mechanical cutouts and spacing (Top view) Note: The recommended pin hole dimension of the sensor is 0.7 mm. Shown with ADNS-5100-001 trim lens, ADNS-5200 clip and HLMP-EG3E-xxxxx. Avago Technologies provides an IGES file drawing describing the base plate molding features for lens and PCB alignment. Stand-off of the base plate shall not be larger than 5mm. 5 42.16 1.660 Surface PCB B Top of Sensor to Surface 10.59 0.417 B Top of PCB to surface 7.45 Sensor 0.293 PCB 13.10 0.516 LED Clip Lens 13.89 Top of Clip 0.547 2.40 0.094 Lens reference plane to Tracking surface (Z) Notes: 1. All dimensions in millimeters/inches. 2. All tolerance ±0.1 mm. Figure 4. 2D assembly drawing of ADNS-5700-XXXX 6 SECTION B-B LED LED CLIP Sensor PCB Lens (Full flange shown) Customer Supplied Base Plate with recommended features per IGES 3D Model Figure 5. Exploded view drawing The components interlock as they are mounted onto defined features on the base plate. The ADNS-5700 sensor is designed for mounting on a through hole PCB, looking down. The aperture stop and features on the package align it to the lens (See figure 3). The ADNS-5100-001 trim lens provides optics for the imaging of the surface as well as illumination of the surface at the optimum angle. Lens features align it to the sensor, base plate, and clip with the LED. 7 The ADNS-5200 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. The clip interlocks the sensor to the lens, and through the lens to the alignment features on the base plate. The HLMP-EG3E-xxxxx illumination. LED is recommended for Block Diagram USB PORT D ZA Z WHEEL OSCILLATOR LED B1 B2 BUTTONS B3 TL/B4 TR/B5 D+ CONTROL AND I/O PROCESSOR ZB ZLED OSC_IN OSCILLATOR OSC_OUT LGND LED DRIVE POWER ON RESET IMAGE PROCESSOR R VE G O LU TL AA GT EO R XY_LED Vdd3 GND VOLTAGE REFERENCE Vdd5 GND 5 VOLT POWER GND Figure 6. Block Diagram PCB Assembly Considerations 1. Insert the sensor and all other electrical components into PCB. 2. Bend the LED leads 90 degrees and then insert the LED into the assembly clip until the snap feature locks the LED base. 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. A solder fixture MUST be used to set the correct sensor to PCB distance. 6. Place the lens onto the base plate. 8 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 placing 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 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 feature in the top case to press down onto the clip to ensure all components are interlocked to correct vertical height Design considerations for improving ESD Performance The table below shows typical values assuming base plate construction per the Avago Technologies supplied IGES file and ADNS-5100-001 trim lens. Stand-off of the base plate shall not be larger than 5mm. Typical Distance ADNS-5100-001 Creepage 17.9mm Clearance 9.2mm 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 Sensor PCB LED Lens/Light Pipe Base Plate Surface Figure 7. Typical Application 9 Clip +3.3 V Vdd 5 V C2 C2, C3 = 1 nF C4 = 4.7 uF C5 = 3.3 uF C4 C5 10 7 VDD 3 VDD 5 C3 8 GND 13 Vdd 5 V LED_GND 5 R1 GND XY_LED 6 +3.3 V NAV LED OSC IN 14 1.5K 33 USB D - 33 USB D + OSC OUT 15 2 D1 D+ C6 100 pF C7 100 pF 9 ZLED Vdd QA 3 ZA B 1 18 QB 4 ZB B 2 17 ZLED Guard GND R1 value (ohm) LED Bin 59.0 K 59.0 L 59.0 M 59.0 N 59.0 to 66.5 P 59.0 to 78.7 Q 59.0 to 93.1 R 59.0 to 110 S 59.0 to 143 T B 3 16 Z - encoder 27 K 27 K See pinout table 11 12 Figure 8a. Application Circuit with ADNS-5700-HxxB with Optical Z-Wheel DISCLAIMER: ALL DESIGNERS AND MANUFACTURERS OF THIS DESIGN MUST ASSURE THAT THEY HAVE ALL NECESSARY INTELLECTUAL PROPERTY RIGHTS. Notes: All caps (except C4) MUST be as close to the sensor pins as possible. C3 and C5 connected to pin 10 must be terminated at pin 13. Caps should be ceramic. Caps should have less than 5 nH of self inductance. Caps connected to VDD3 MUST have less than 0.2 ESR. 1.5k resistor should be ± 1% tolerance. Surface mount parts are recommended. 10 +3.3 V Vdd 5 V C2, C3 = 1 nF C4 = 4.7 uF C5 = 3.3 uF C2 C4 C5 C3 C1 C6 10 7 VDD 3 VDD 5 9 REG 0 8 GND Vdd 5 V GND 13 LED_GND 5 R1 +3.3 V XY_LED 6 1.5 K USB D - NAV LED OSC IN 14 33 Guard GND 2 DC7 100 pF USB D + 33 OSC OUT 15 1 D+ C8 100 pF Vdd 5 V Mechanical ZWheel 3 ZA B1 18 4 ZB B2 17 R1 value (ohm) LED Bin 59.0 K 59.0 L 59.0 M 59.0 N 59.0 to 66.5 P 59.0 to 78.7 Q 59.0 to 93.1 R 59.0 to 110 S 59.0 to 143 T B3 16 11 See pinout table 12 Figure 8b. Application Circuit with ADNS-5700-HxxB with Mechanical Z-Wheel DISCLAIMER: ALL DESIGNERS AND MANUFACTURERS OF THIS DESIGN MUST ASSURE THAT THEY HAVE ALL NECESSARY INTELLECTUAL PROPERTY RIGHTS. Notes: All caps (except C4) MUST be as close to the sensor pins as possible. C1 and C6 connected to pin 10 must be terminated at pin 13. C3 and C5 connected to pin 9 must be terminated at pin 8. Caps should be ceramic. Caps should have less than 5 nH of self inductance. Caps connected to VDD3 MUST have less than 0.2 ESR. 1.5k resistor should be ± 1% tolerance. Surface mount parts are recommended. 11 +3.3 V Vdd 5 V C1, C2, C3 = 1 nF C4 = 4.7 uF C5, C6 = 3.3 uF C2 C4 C5 C1 C3 C6 10 7 VDD 3 VDD 5 9 REG 0 8 GND Vdd 5 V GND 13 LED_GND 5 R1 +3.3 V XY_LED 6 1.5 K NAV LED OSC IN 12 USB D - 33 C7 100 pF USB D + Guard GND 2 D- 33 OSC OUT 14 1 D+ C8 100 pF B5 18 B4 11 Vdd 3 ZA 4 ZB Mechanical ZWheel B3 15 B2 16 B1 17 R1 value (ohm) LED Bin 59.0 K 59.0 L 59.0 M 59.0 N 59.0 to 66.5 P 59.0 to 78.7 Q 59.0 to 93.1 R 59.0 to 110 S 59.0 to 143 T Figure 8c. Application Circuit with ADNS-5700-H5MD and ADNS-5700-H5ND with 5 Button and Mechanical Z-Wheel DISCLAIMER: ALL DESIGNERS AND MANUFACTURERS OF THIS DESIGN MUST ASSURE THAT THEY HAVE ALL NECESSARY INTELLECTUAL PROPERTY RIGHTS. Notes: All caps (except C4) MUST be as close to the sensor pins as possible. C1 and C6 connected to pin 10 must be terminated at pin 13. C3 and C5 connected to pin 9 must be terminated at pin 8. Caps should be ceramic. Caps should have less than 5 nH of self inductance. Caps connected to VDD3 MUST have less than 0.2 ESR. 1.5k resistor should be ± 1% tolerance. 12 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 15kV when assembled into a mouse with 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 5.5 V 2 kV All pins, JESD22-A114 Lead Solder Temp Supply Voltage VDD -0.5 ESD Notes For 7 seconds, 1.6mm below seating plane. 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) Typical Recommended Operating Conditions Parameter Symbol Minimum Operating Temperature TA 0 Power supply voltage VDD 4.25 Power supply voltage Vddm 4 Power supply rise time VRT 0.003 Supply noise VN Velocity Vel Acceleration Acc Clock Frequency fclk Resonator Impedance XRES Distance from lens reference plane to surface Z Frame Rate 13 Maximum Units 40 °C 5.0 5.25 Volts For accurate navigation and proper USB operation 5.0 5.25 Volts Maintains communication to USB host and internal register contents. 100 ms 100 mV 30 23.64 2.3 24 2.4 4000 Notes Peak to peak within 0-80 MHz bandwidth ips 8 g 0.5g from Rest 24.36 MHz Due to USB timing constraints 55 2.5 mm See Figure 9 fps Internally adjusted by sensor Sensor LENS Z OBJECT SURFACE Figure 9. Distance from lens reference plane to object surface AC Electrical Specifications Electrical Characteristics over recommended operating conditions. Typical values at 25°C, 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 5 10 17 ms “Maximum” specified at 8ms polling rate. Scroll wheel sampling period TSW 150 200 300 μs ZA PIN for optical scroll wheel 1.9 2.0 2.8 ms ZA PIN for mechanical scroll wheel 60 mA Max. supply current during a VDD ramp from 0 to 5.0 V with > 500 s rise time. Does not include charging currents for bypass capacitors. pF OCS_IN, OSC_OUT to GND Transient Supply Current IDDT Input Capacitance (OSC Pins) COSC_IN Min. Typical 50 Notes USB Electrical Specifications Electrical Characteristics over recommended operating conditions. Parameter Symbol Min. Max. 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 kohm to Ground and 7.5 k to Vbus on D- (see Figure 11) Output Low VOL 0.0 0.3 V with 15 kohm to Ground and 7.5 k to Vbus on D- (see Figure 11) Single Ended Input VSEI 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 14 V 3.6 V 0.8 V 7.5k to VDD5 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 Min. 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 Width of SE0 interval during Differential Transition tLST Differential Output Jitter tUDJ1 Differential Output Jitter tUDJ2 VOH Max. 300 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% Figure 10. Data Signal Rise and Fall Times 15 10% DTLR TLF Rise Time Fall Time Minimal Reflectance and Ringing One Bit Time (1.5 MB/s) VOH (min) VOH (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 16 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 17 DC Electrical Specifications Electrical Characteristics over recommended operating conditions. Typical values at 25°C, VDD=5.0 V. Parameter Symbol System Current, mouse moving Minimum Typical Maximum Units Notes IDD5 100 mA Includes XY_LED current System Current, mouse not moving IDD5N 100 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 12 15 mA No load on B1-B5, XY-LED, ZA, ZB, D+, D- Supply current (Sensor only), mouse not moving IDDSN 11 14 mA No load on B1-B5, XY-LED, ZA, ZB, D+, D- Sensor supply current, USB suspend mode IDDSS 260 A No load on B1-B5, XY-LED, ZA, ZB, D+,D- XY_LED current ILED 49 mA Typical at Rbin 59ohm with binP LED. Maximum DC current allowed through XY_LED pin and LED. XY_LED Output Low Voltage VOL 1.1 V Refer to Figure 16 Input Low Voltage VIL 0.5 V Pins: ZA, ZB, B1-B5, VIL max of 0.5VDC is at VDD min of 4VDC, with a typical of 0.8VDC at VDD of 5VDC Input High Voltage VIH V Pins: ZA, ZB, B1-B5 Input Hysteresis VHYST mV Pins: B1-B5, OPT 0, OPT 1 Button Pull Up Current BIOUT A Pins: B1-B5, OPT 0, OPT 1 40 0.6*VDD 285 125 275 500 Buttons Debounce Algorithm The minimum time between button presses is TDBB. Buttons B1 through B5 are connected to a Schmidt trigger input with 100 uA current sources pulling up to +3 volts during normal, sleep and USB suspend modes. Button inputs B1, B2, B3, B4, B5 are sampled every 2ms. 18 Three consecutive low create a button press event. Three consecutive high create a button release event. Typical Performance Characteristics Performance Characteristics over recommended operating conditions. Typical values at 25 °C, VDD=5.0 V, 24MHz Parameter Symbol Path Error (Deviation) PError Minimum Typical Maximum Units 0.5 Notes % Average path error as percent of total 2.5” travel on various standard surfaces The following graphs are the typical performance of the ADNS-5700 sensor, assembled as shown in the 2D assembly drawing with the ADNS-5100-001 trim lens/Prism, the ADNS-5200 clip, and the HLMP-EG3E-xxxxx LED. Resolution vs Z-Height on Standard Surfaces (ADNS-5700-XXXX) 1200 White Paper Manila Spruce Wood Black Formica Resolution(cpi) 1000 800 600 400 200 0 1.6 1.8 2 2.2 2.4 2.6 Z-Height (mm) 2.8 3 3.2 Normalised response Figure 16. Typical Resolution vs. Z Height 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 400 Relative Wavelength Response 500 600 700 Wavelength in nm 800 900 1000 Figure 17. Wavelength responsivity.[1] (Comparative Surfaces) Note: 1. The ADNS-5700 is designed for optimal performance when used with the HLMP-EG3E-xxxxx (Red LED 639nm). 2. Z = distance from Lens Reference Plane to Surface. 3. DOF = Depth of Field 19 Configuration after Power up (Data Values) 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 B1 VDD3 or GND if used as VID/PID jumper else pullup active for button use VDD3 or GND if used as VID/PID jumper else pullup active for button use B2 VDD3 or GND if used as VID/PID jumper VDD3 or GND if used as VID/PID jumper B3 VDD3 or GND if used as VID/PID jumper VDD3 or GND if used as VID/PID jumper B4 VDD3 or GND if used as VID/PID jumper else pullup active for button use VDD3 or GND if used as VID/PID jumper else pullup active for button use B5 VDD3 or GND if used as VID/PID jumper else pullup active for button use VDD3 or GND if used as VID/PID jumper else pullup active for button use D- USB I/O Hi-Z input D+ USB I/O Hi-Z input OSC_IN 24MHz Logic ‘1’ OSC_OUT 24MHz Logic ‘1’ XY_LED Always ON / Pulsing Pulled high (off ) ZB Hi-Z input Hi-Z input ZA Hi-Z if ZA tied to GND Hi-Z input Z_LED Hi-Z input Hi-Z input Signal Function 20 USB Commands Mnemonic Command Notes 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 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 4ms 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 4ms 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 specifed as “02 00.” ADNS-5700-XXXX 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 ADNS-5700-XXXX will re-send the last packet if the transfer is not acknowledged properly. 21 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 10mS. 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 3mS, and definitely after 10mS. Notes: The chip will take a minimum of 5mS to start Suspend, though will definitely start after 6mS. 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 1mS and 15mS. The host is required to send Resume signaling for 20mS plus 10mS 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.45mS to 12.45mS. 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. 22 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 23 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 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) Default: Accept Addressed: Accept Configured: Accept Get_Desc_String will return “stall” if Manufacturer string is queried when iManufacturer = 0x00. 24 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 With Z-Wheel: 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 3D 00 07 05 81 03 04 00 0A // Config Descriptor | 09 // bLength | 02 // bDescriptorType | 22 // wTotalLength (34 decimal) | 00 // high byte of WTotalLength | 01 // bNumInterfaces | 01 // bConfigurationValue | 00 // iConfiguration | A0 // bmAttributes (bus powered/remote wakeup) | 32 // MaxPower (in 100mA in 2mA units) // Interface Descriptor | 09 // bLength | 04 // bDescriptorType | 00 // bInterfaceNumber | 00 // bAlternateSetting | 01 // bNumEndpoints | 03 // bInterfaceClass (HID Class) | 01 // bInterfaceSubClass | 02 // bInterfaceProtocol | 00 // iInterface // HID Descriptor | 09 // bLength | 21 // bDescriptorType | 11 // bcdHID ( HID Release ##.##; HID 1.11 compliant ) | 01 // | 00 // bCountry | 01 // bAvailable | 22 // bType | 34 // wLength (Length of HID Report below) | 00 // // Endpoint Descriptor | 07 // bLength | 05 // bDescriptorType | 81 // bEndpointAddress (IN & #=1) | 03 // bmAttributes (Interrupt) | 05 // wMaxPacketSize | 00 // 12bit 0x06 | 0A // bInterval (10mS) 25 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 nn 00 xx= 00 Language String 01 Manufacturer String 02 Product String Returns: ss 03 „unicode string“ ss = String descriptor length These values are determined by jumper configuration on page xx: For xx=00: 04 03 09 04 For xx=01: return “stall” if Manufacturer string is queried when iManufacturer = 0x00. See Get_Desc_Device section For xx=02: 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 Default: Accept Addressed: Accept Configured: Accept Notes: A request for any other string will STALL. 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 47 = 12 bit motion Default: Accept Addressed: Accept Configured: Accept 26 // Language ID // “USB” // “Opt” // “ ical” // “Mou” // “se” 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. These values are determined by jumper configuration see table on page 4: With Tilt wheel and 12bit reporting: 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05 15 00 25 01 75 01 95 05 81 02 75 03 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 05 0C 0A 38 02 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 05 // USAGE_MAXIMUM (Button #) | 15 00 // LOGICAL_MINIMUM (0) | 25 01 // LOGICAL_MAXIMUM (1) | 75 01 // REPORT_SIZE (1) | 95 05 // REPORT_COUNT (Button #) | 81 02 // INPUT (Data,Var,Abs) | 75 03 // REPORT_SIZE (8 - Button #) | 95 01 // REPORT_COUNT (1) | 81 01 // INPUT (Cnst,Ary,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_ MAXIMUM (127) | 75 0C // REPORT_SIZE (8) | 95 01 // REPORT_COUNT (3) | 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) | 05 0C // USAGE_PAGE (Consumer) | 0A 38 02 // USAGE (AC Pan) | 81 06 // INPUT (Data,Var,Rel) | C0 // END_COLLECTION | C0 // END_COLLECTION 27 With without Tilt wheel and 12bit reporting: 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05 15 00 25 01 75 01 95 05 81 02 75 03 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 05 // USAGE_MAXIMUM (Button #) | 15 00 // LOGICAL_MINIMUM (0) | 25 01 // LOGICAL_MAXIMUM (1) | 75 01 // REPORT_SIZE (1) | 95 05 // REPORT_COUNT (Button #) | 81 02 // INPUT (Data,Var,Abs) | 75 03 // REPORT_SIZE (8 - Button #) | 95 01 // REPORT_COUNT (1) | 81 01 // INPUT (Cnst,Ary,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_ MAXIMUM (127) | 75 0C // REPORT_SIZE (8) | 95 01 // REPORT_COUNT (3) | 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. 28 Get_HID_Input A1 01 00 01 00 00 nn 00 nn = 06 (with tilt wheel and 12 bit motion reporting) nn = 05 (without tilt wheel and 12 bit reporting) Returns: bb xx yy zz tw (tilt wheel) OR bb xx yy zz (Z-wheel) OR bb xx yy (if no Z-wheel present) bb = button byte xx = X motion byte yy = Y motion byte zz = Z motion byte tw = tilt wheel 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 See USB byte format end of this section for more detail Get_Idle A1 02 xx 00 00 00 01 00 xx = 00 All reports xx = 01 First report Returns: rr rr = rate in multiples of 4mS 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 29 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. Tilt wheel botton 7,8 will not be reported 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. 30 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. 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. 31 Set_Idle 21 0A xx rr 00 00 00 00 xx = 00 All reports xx = 01 First report rr = rate in multiples of 4mS 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 4mS. 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. 32 Poll_Endpt1 Returns: bb xx yy zz tw bb = button byte xx = X motion byte yy = Y motion byte zz = Z motion byte (if Z-Wheel) tw = tilt wheel byte Default: Ignore request Addressed: Ignore request Configured: Accept (NAK if no data; Send packet if available) Notes: 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. 33 USB Data Packet Format of mouse with tilt wheel 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 Y6 Y5 Y4 Byte 5 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 Byte 6 TW7 TW6 TW5 TW4 TW3 TW2 TW1 TW0 USB Data Packet Format of mouse without tilt wheel 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 Y6 Y5 Y4 Byte 5 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 Byte 6 0 0 0 0 0 0 0 0 USB Data Packet Format of 5 button mouse Bit 7 6 5 4 3 2 1 0 Byte 1 0 0 0 B5 B4 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 Y6 Y5 Y4 Byte 5 Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 Byte 6 0 0 0 0 0 0 0 0 34 Registers The sensor can be programmed through registers, via the USB port, and configuration and motion data can be read from these registers. Certain registers must be “enabled” after power up but before first read or write to that register. The registers will be “disabled” by VDD going low or sending a USB reset command. Address Register Address Register 0x00 Product_ID 0x08 Shut_Low 0x01 Revision_ID 0x09 Pix_Max 0x02 MouseStat 0x0a Pix_Accum 0x03 Delta_X_L 0x0b Pix_Min 0x04 Delta_Y_L 0x0c Pix_Grabber 0x05 Delta_XY_H 0x0d Dz 0x06 SQUAL 0x0e-3f Reserved 0x07 Shut_Hi 0x40 InvRevID Product_ID Access: Read Address: 0x00 Reset Value: 0x27 Bit 7 6 5 4 3 2 1 0 Field PID7 PID6 PID5 PID4 PID3 PID2 PID1 PID0 Data Type: Eight 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. Revision_ID Access: Read 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: Eight 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. 35 MouseStat Access: Read Address: 0x02 Reset Value: Undefined Bit 7 6 5 4 3 2 1 0 Field MOT Reserved Reserved BUT5 BUT4 BUT3 BUT2 BUT1 Data Type: Bit field USAGE: A “1” in the motion bit indicates that the USB endpoint has valid data. 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. Field Name Description MOT For Internal test purposes only Reserved Reserved BUT5 Reports the status of B5 0 = pin at logic 1 (Vdd3) 1 = pin at logic 0 (GND) BUT4 Reports the status of B4 0 = pin at logic 1 (Vdd3) 1 = pin at logic 0 (GND) BUT3 Reports the status of B3 0 = pin at logic 1 (Vdd3) 1 = pin at logic 0 (GND) BUT2 Reports the status of B2 0 = pin at logic 1 (Vdd3) 1 = pin at logic 0 (GND) BUT1 Reports the status of B1 0 = pin at logic 1 (Vdd3) 1 = pin at logic 0 (GND) 36 Delta_X_L Access: Read Address: 0x03 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 Access: Read Address: 0x04 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 Access: Read Address: 0x05 Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field X11 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. 37 SQUAL Access: Read Address: 0x06 Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field SQ7 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 Access: Read Address: 0x07 Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field S15 S14 S13 S12 S11 S10 S19 S18 Data Type: Eight bit number. USAGE: The combination of Shut_Hi and Shut_Low 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. Shut_Low Access: Read Address: 0x08 Reset Value: 0x64 Bit 7 6 5 4 3 2 1 0 Field S7 S6 S5 S4 S3 S2 S1 S0 Data Type: Eight bit number. USAGE: The combination of Shut_Hi and Shut_Low 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 (0x06). 38 Pix_Max Access: Read Address: 0x09 Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field 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. Pix_Accum Access: Read Address: 0x0a Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0 Data Type: Eight bit number. USAGE: This is the accumulated pixel value from the last image taken. For the 19x19 raw image only the 8 most interesting bits are reported ([15:8]). To get the true average pixel value, divide this register value by 1.41. Pix_Min Access: Read Address: 0x0b Reset Value: 0x7f Bit 7 6 5 4 3 2 1 0 Field 0 MN6 MN5 MN4 MN3 MN2 MN1 MN0 Data Type: Eight bit number. USAGE: This is the minimum pixel value from the last image taken. Pix_Grab Access: Read Address: 0x0c Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field VALID PG6 PG5 PG4 PG3 PG2 PG1 PG0 Data Type: Eight 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 19. 39 Pixel Address Map (Looking through the sensor at the surface) 0 19 38 57 76 95 114 133 152 171 190 209 228 247 266 285 304 323 342 1 20 39 58 77 96 115 134 153 172 191 210 229 248 267 286 305 324 343 2 21 40 59 78 97 116 135 154 173 192 211 230 249 268 287 306 325 344 3 22 41 60 79 98 117 136 155 174 193 212 231 250 269 288 307 326 345 4 23 42 61 80 99 118 137 156 175 194 213 232 251 270 289 308 327 346 5 24 43 62 81 100 119 138 157 176 195 214 233 252 271 290 309 328 347 6 25 44 63 82 101 120 139 158 177 196 215 234 253 272 291 310 329 348 7 26 45 64 83 102 121 140 159 178 197 216 235 254 273 292 311 330 349 8 27 46 65 84 103 122 141 160 179 198 217 236 255 274 293 312 331 350 9 28 47 66 85 104 123 142 161 180 199 218 237 256 275 294 313 332 351 10 29 48 67 86 105 124 143 162 181 200 219 238 257 276 295 314 333 352 11 30 49 68 87 106 125 144 163 182 201 220 239 258 277 296 315 334 353 12 31 50 69 88 107 126 145 164 183 202 221 240 259 278 297 316 335 354 13 32 51 70 89 108 127 146 165 184 203 222 241 260 279 298 317 336 355 14 33 52 71 90 109 128 147 166 185 204 223 242 261 280 299 318 337 356 15 34 53 72 91 110 129 148 167 186 205 224 243 262 281 300 319 338 357 16 35 54 73 92 111 130 149 168 187 206 225 244 263 282 301 320 339 358 17 36 55 74 93 112 131 150 169 188 207 226 245 264 283 302 321 340 359 18 37 56 75 94 113 132 151 170 189 208 227 246 265 284 303 322 341 360 Top Xray View of Mouse P O S I T I V E LB RB 18 17 16 15 14 13 12 11 10 1 2 3 4 5 6 7 8 9 Y POSITIVE X Figure 19. Pixel Map The figure above shows the readout order of the array. Rows are read top to bottom and columns are from right to left. Dz Access: Read Address: 0x0d 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: If mouse is configured to contain a Z-wheel, this register contains the Z-wheel count. Range is from –127 to 127 decimal. Reserved 40 Address: 0x0e – 0x3f InvRevID Access: Read Address: 0x040 Reset Value: 0xfe Bit 7 6 5 4 3 2 1 0 Field RRID7 RRID6 RRID5 RRID4 RRID3 RRID2 RRID1 RRID0 Data Type: Eight bit number with current revision of the IC. USAGE: Contains the inverse of the revision ID which is located in register 0x01. IC Register state after Reset (power up) Address Register Default Value Meaning 0x00 Product_ID 0x27 Product ID = 27 (Fixed value) 0x01 Revision_ID 0x01 Revision of IC (Fixed value). (For each device design revision). 0x02 MouseStat – 0x03 Delta_X_L 0x00 0x04 Delta_Y_L 0x00 0x05 Delta_XY_H 0x00 0x06 SQUAL 0x00 0x07 Shut_Hi 0x00 0x08 Shut_Low 0x64 0x09 Pix_Max 0x00 0x0a Pix_Accum 0x00 0x0b Pix_Min 0x00 0x0c Pix_Grabber 0x00 0x0d Dz 0x00 0x0e-3f Reserved – 0x40 InverseRevesion ID 0xFE 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-2011 Avago Technologies. All rights reserved. AV02-1655EN - November 1, 2011