ADNS-3000 Low Power Optical Mouse Sensor Data Sheet Description Features The Avago Technologies ADNS-3000 is a low power, small form factor optical mouse sensor. It has a new low-power architecture and automatic power management modes, making it ideal for battery, power-sensitive applications - such as cordless input devices. Low Power Architecture The ADNS-3000 is capable of high-speed motion detection - up to 30 ips and 20 g. In addition, it has an on-chip oscillator and requires an external resistor to set the LED current. High Speed Motion Detection up to 30 ips and 20 g The ADNS-3000 along with the ADNS-5110-001 lens, and HSDL-4261 IR LED or HLMP-EG3E-xxxxx Red LED form a complete and compact mouse tracking system. There are no moving parts and this translates to high reliability and less maintenance for the end user. In addition, precision optical alignment is not required, facilitating high volume assembly. Selectable Resolution of up to 2000 cpi The sensor is programmed via registers through a fourwire serial port. It is housed in an 8-pin staggered dual in-line package (DIP). Small Form Factor Programmable Periods / Response Times and Downshift Times from one mode to another for the Power-saving Modes External Interrupt Output for Motion Detection Internal Oscillator - no clock input needed Operating Voltage: as low as 1.7 V Four-wire Serial Port Interface Applications Optical mice and optical trackballs Integrated input devices Battery-powered input devices Theory of Operation The ADNS-3000 is based on Optical Navigation Technology, which measures changes in position by optically acquiring sequential surface images (frames) and mathematically determining the direction and magnitude of movement. The ADNS-3000 contains an Image Acquisition System (IAS), a Digital Signal Processor (DSP), and a four wire serial port. The IAS acquires microscopic surface images via the lens and illumination system. These images are processed by the DSP to determine the direction and distance of motion. The DSP calculates the Dx and Dy relative displacement values An external microcontroller reads and translates the Dx and Dy information from the sensor serial port into PS2, USB, or RF signals before sending them to the host PC. Pinout of ADNS-3000 Optical Mouse Sensor Pin Name Input/ Output 1 MISO O Serial Data Output (Master In/Slave Out) 2 LED I LED Illumination 3 MOTION O Motion Interrupt Output (Default active low, edge triggered) 4 NCS I Chip Select (Active low input) 5 SCLK I Serial Clock 6 GND I Ground 7 VDD I Supply Voltage 8 MOSI I Serial Data Input (Master Out/Slave In) Description Date Code 4 5 3 6 2 7 1 8 Lot Code Product Number Item Marking Product Number A3000 Remarks Date Code XYYWWZ X = Subcon Code YYWW = Date Code Z = Sensor Die Source Lot Code VVV Numeric Figure 1. Package Outline Drawing (Top View) 2 Product Number Date Code Features for Illustration only Pin 1 9.10 0.358 9.90 0.390 A (At shoulder) 3.72 0.146 3.50 0.138 5.15 0.203 12.85 0.506 Lot Code 90 3q 0.50 0.020 2.00 0.079 4.12 0.162 12.85 0.50 (At lead tip) 0.506 0.020 ( 2.74 ) 0.108 Lead Pitch A 1.00 Lead Offset 0.039 ( 0.04 ) 0.002 Lead Width Pin 1 4.55 0.179 Protective Kapton Tape Section A-A 0.70 0.028 Clear Optical Path 3.92 0.154 Notes: 1. Dimensions in millimeter / inches. 2. Dimensional tolerance: 0.1mm. 3. Coplanarity of leads: 0.1mm. 4. Lead pitch tolerance: 0.15mm. 5. Non-cumulative pitch tolerance: 0.15mm. 6. Angular tolerance: 3q 7. Maximum flash: 0.2mm. 8. Brackets () indicate reference dimension. 9. Document Number: LED_SPC_8C_PKG_002 Figure 2. Package Outline Drawing CAUTION: It is advised that normal static precautions be taken in handling and assembling of this component to prevent damage and/or degradation which may be induced by ESD. 3 Overview of Optical Mouse Sensor Assembly Avago Technologies provides an IGES file drawing describing the base plate molding features for lens and PCB alignment. The ADNS-3000 sensor is designed for mounting on a through-hole PCB, looking down. There is an aperture stop and features on the package that align to the lens. The ADNS-5110-001 lens provides optics for the imaging of the surface as well as the illumination of the surface at the optimum angle. Features on the lens align it to the sensor, base plate, and clip with the LED. The LED 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 LEDs recommended for illumination include HSDL-4261 IR LED, HLMP-EG3E-xxxxx Red LED. 26 1.024 25.00 2X 0.984 2.00 3X 0.079 0.383999 0.015118 1.00 0.039 12.9 0.508 12.60 0.496 11.22 0.442 Optional hole for alignment post if used 3.00 o 0.118 Notes: Clear zone 1. Dimensions in millimeter/inches 10X o 0.80 0.031 Figure 3. Recommended PCB Mechanical Cutouts and Spacing 4 6.290362 0.247652 7.56 0.298 0.3 0.012 Optical center 10.35 0.407 0 5.02 0.198 0 1.37 0.054 Pin 1 2.25 0.089 24.15 2X 0.951 14.94 0.588 14.5 0.571 13.06 0.514 2. View from component side of PCB (or top view of mouse) 33.45 1.317 A A Sensor Lens Section A - A Figure 4. 2D Assembly drawing of ADNS-3000 (Top and Side View) Sensor 2.40 A 0.094 Lens 6.87 0.271 B LED Clip Alignment Post (Optional) Important Note: Pin 1 of sensor should be located nearest to the LED Surface Lens Reference Plane Note: A - Distance from object surface to lens reference plane B - Distance from object surface to sensor reference plane Figure 5. Distance from lens reference plane to tracking surface (Z) 5 LED PCB 2.40 0.094 7.45 0.293 10.60 0.417 Gap between 0.05 sensor package 0.002 and top of PCB 13.10 0.516 Pin 1 Base Plate LED LED Clip ADNS-3000 (Sensor) Customer supplied PCB ADNS-5110-001 Customer supplied base plate with recommended alignment features per IGES drawing Important Note: IR LED is recommended for lower power consumption. Figure 6. Exploded View of Assembly PCB Assembly Considerations 4. This sensor package is only qualified for wave-solder process. 5. Wave solder the entire assembly in a no-wash solder process utilizing solder fixture. The solder fixture is needed to protect the sensor during the solder process. It also sets the correct sensor-to-PCB distance as the lead shoulders do not normally rest on the PCB surface. The fixture should be designed to expose the sensor leads to solder while shielding the optical aperture from direct solder contact. 6. Place the lens onto the base plate. 7. Remove the protective Kapton tape from optical aperture of the sensor. Care must be taken to keep contaminants from entering the aperture. Recommend not to place the PCB facing up during the entire mouse assembly process. Recommend to hold the PCB first vertically for the Kapton removal process. 8. Insert PCB assembly over the lens onto the base plate aligning post to retain PCB assembly. The sensor aperture ring should self-align to the lens. 6 10. Install mouse top case. There MUST be a feature in the top case to press down onto the PCB assembly to ensure all components are interlocked to the correct vertical height. ADNS-3000 VDD GND IMAGE ARRAY DSP LED SERIAL PORT AND REGISTERS 3. Insert the LED clip assembly into PCB. POWER AND CONTROL 2. Insert the LED into the assembly clip and bend the leads 90 degrees. 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. LED DRIVE 1. Insert the sensor and all other electrical components into PCB. OSCILLATOR Figure 7. Block diagram of ADNS-3000 optical mouse NCS SCLK MOSI MISO MOTION SW1 SLIDE SW SPDT ZB R0 3 352* 3 3 P20 14 5)02'8/( 2AA BATTERY BT1 2)) [$$%DWWHU\ PROG ZA 1 % % 5)0RGXOH3&% 3 3 5(6(7 *1' *1' *1' *1' *1' *1' *1' *1' *1' 9''B5) RESET MSCK S4 P6 P24 9%$7 9%$7 7 P25 2 )% 9287 TPS61220 *1' (1 9,1 / U2 )% 9287 TPS61220 *1' (1 9,1 / CON1 R14 1M 13 =(QFRGHU ZA ZB COM R13 1M 9''B5) PCB_SKT_SMD_1.27/2X5 9&&B'& PROG R2 S1 Z-ENCODER_3P $ % &20 Q1 S2 RESET R1 995HJXODWRU%ORFN U1 12 -7$*&211(&725 C4 10uF/50V L2 4.7uH 10uF/50V C5 9&&B'& 9%$7 Figure 8a. Schematic diagram of the mouse (cordless application) 21 R3 300k R4 1M1 R2 453k R1 1M3 C7 100nF C6 100nF C3 100nF C1 100nF P16 C13 4.7nF P7 9&&B'& C10 4.7nF P21 LED R LED D5 9''B/(' , /(' P22 C11 MOSI 9'' 9'',2 6',2 6&/. 027,21 11 6 1 %O 2SW ADNS-3000 ; write 0x40H into register 0x22H prior to writing into this register w 0e XX -> writing into this register w 22 00 -> write 0x00H into register 0x22H after writing into this register REST1_PERIOD Address: 0x0f Rest1 Period Register Access: Read/Write Reset Value: 0x01 Bit 7 Field RIP7 6 5 4 3 2 1 0 RIP6 RIP5 RIP4 RIP3 RIP2 RIP1 RIP0 Data Type: Eight bit number. USAGE: This register sets the Rest1 period. Period = (register value R1P [7:0] +1) x 10 ms (typical slow clock period). Min value for this register is 0x01. Max value is 0xFD. NOTE: Writing into this register when the sensor itself is operating in this rest mode may result in unexpected behavior of the sensor. To avoid this from happening, below commands should be incorporated prior and after the write command into this register. w 22 40 -> write 0x40H into register 0x22H prior to writing into this register w 0f XX -> writing into this register w 22 00 -> write 0x00H into register 0x22H after writing into this register 24 REST1_DOWNSHIFT Address: 0x10 Rest1 to Rest2 Downshift Time Register Access: Read/Write Reset Value: 0x1f Bit 7 Field R1D7 6 5 4 3 2 1 0 R1D6 R1D5 R1D4 R1D3 R1D2 R1D1 R1D0 Data Type: Eight bit number. USAGE: This register sets the Rest1 to Rest2 mode downshift time. Time = (register value R1D [7:0]) x (Rest1 period) x 16. Min value for this register is 0x01. NOTE: Writing into this register when the sensor itself is operating in this rest mode may result in unexpected behavior of the sensor. To avoid this from happening, below commands should be incorporated prior and after the write command into this register. w 22 40 -> write 0x40H into register 0x22H prior to writing into this register w 10 XX -> writing into this register w 22 00 -> write 0x00H into register 0x22H after writing into this register REST2_PERIOD Address: 0x11 Rest2 Period Register Access: Read/Write Reset Value: 0x09 Bit 7 Field R2P7 6 5 4 3 2 1 0 R2P6 R2P5 R2P4 R2P3 R2P2 R2P1 R2P0 Data Type: Eight bit number. USAGE: This register sets the Rest2 period. Period = (register value R2P [7:0] +1) x 10 ms (typical slow clock period). Min value for this register is 0x01. Max value is 0xFD. NOTE: Writing into this register when the sensor itself is operating in this rest mode may result in unexpected behavior of the sensor. To avoid this from happening, below commands should be incorporated prior and after the write command into this register. w 22 40 -> write 0x40H into register 0x22H prior to writing into this register w 11 XX -> writing into this register w 22 00 -> write 0x00H into register 0x22H after writing into this register 25 REST2_DOWNSHIFT Address: 0x12 Rest2 to Rest3 Downshift Time Register Access: Read/Write Reset Value: 0x2f Bit 7 Field R2D7 6 5 4 3 2 1 0 R2D6 R2D5 R2D4 R2D3 R2D2 R2D1 R2D0 Data Type: Eight bit number. USAGE: This register sets the Rest1 to Rest2 mode downshift time. Time = (register value R2D [7:0] ) x (Rest2 period) x 128. Min value for this register is 0x01. NOTE: Writing into this register when the sensor itself is operating in this rest mode may result in unexpected behavior of the sensor. To avoid this from happening, below commands should be incorporated prior and after the write command into this register. w 22 40 -> write 0x40H into register 0x22H prior to writing into this register w 12 XX -> writing into this register w 22 00 -> write 0x00H into register 0x22H after writing into this register REST3_PERIOD Address: 0x13 Rest3 Period Register Access: Read/Write Reset Value: 0x31 Bit 7 Field R3P7 6 5 4 3 2 1 0 R3P6 R3P5 R3P4 R3P3 R3P2 R3P1 R3P0 Data Type: Eight bit number. USAGE: This register sets the Rest3 period. Period = (register value R3P [7:0] +1) x 10 ms (typical slow clock period). Min value for this register is 0x01. Max value is 0xFD. NOTE: Writing into this register when the sensor itself is operating in this rest mode may result in unexpected behavior of the sensor. To avoid this from happening, below commands should be incorporated prior and after the write command into this register. w 22 40 -> write 0x40H into register 0x22H prior to writing into this register w 13 XX -> writing into this register w 22 00 -> write 0x00H into register 0x22H after writing into this register 26 PERFORMANCE Address: 0x22 Performance Register Access: Read/Write Reset Value: 0x00 Bit 7 Field RSVD 6 5 4 3 2 1 0 FORCE3 FORCE1 FORCE0 RSVD RSVD RSVD RSVD Bit(s) Field Name Description 7 RSVD Reserved 6:4 FORCE[2:0] force modes 0x0: Normal operation. 0x1: force mode rest 1. 0x2: force mode rest 2. 0x3: force mode rest 3. 0x4: force mode run 1. 0x5: force mode run 2. 0x6: force mode idle. 3:0 RSVD RESET Reserved Address: 0x3a Reset Register Access: Write Reset Value: 0x00 Bit 7 Field RST7 6 5 4 3 2 1 0 RST6 RST5 RST4 RST3 RST2 RST1 RST0 Data Type: Eight bit unsigned integer. USAGE: This register is used as chip reset by writing 0x5a into this register. NOT_REV_ID Address: 0x3f Inverted Revision ID Register Access: Read Reset Value: 0xff Bit 7 Field RRID7 6 5 4 3 2 1 0 RRID6 RRID5 RRID4 RRID3 RRID2 RRID1 RRID0 Data Type: Eight bit unsigned integer. USAGE: This register contains the inverse of the revision ID which is located at register 0x01. 27 LED_CTRL Address: 0x40 LED Control Register Access: Read/Write Reset Value: 0x00 Bit 7 Field RSVD 6 5 4 3 2 1 0 RSVD RSVD RSVD LCOF RSVD RSVD RSVD Data Type: Eight bit unsigned integer. USAGE: This register is used to control the LED operating mode. Bit(s) Field Name Description 7:4 RSVD Reserved 3 LCOF 0 : Normal operation (default) 1 : LED Continuous Off 2:0 RSVD MOTION_CTRL Reserved Address: 0x41 Motion Control Register Access: Read/Write Reset Value: 0x40 Bit 7 Field MOT_A 6 5 4 3 2 1 0 MOT_S RSVD RSVD RSVD RSVD RSVD RSVD Data Type: Eight bit unsigned integer. USAGE: This register is used to set the feature of MOTION interrupt output. If MOT_S bit is clear, the MOTION pin is levelsensitive. With active low (MOT_A bit is clear) level-sensitive configuration, the MOTION pin will be driven low when there is motion detected indicating there is motion data in DELTA_X and DELTA_Y registers. The mouse microcontroller can read MOTION_ST register, DELTA_X register, and then DELTA_Y register sequentially. After all the motion data has been read, DELTA_X and DELTA_Y registers will be zero, the MOTION pin will be driven high by the sensor. If MOT_S is set, the MOTION pin is edge sensitive. If MOT_A is also set, it means active high or rising edge triggered. Whenever there is motion detected by the sensor, a pulse (~380ns) will be sent out through this pin. This pulse can be used to trigger or wake the controller up from its sleep mode to read motion data from the sensor. The controller can then read MOTION_ST register, DELTA_X register, and then DELTA_Y register sequentially. (Refer to Motion Function for more information). Bit(s) Field Name Description 7 MOT_A MOTION Active 0 : LOW (default) 1 : HIGH 6 MOT_S MOTION Sensitivity 0 : Level sensitive 1 : Edge sensitive (default) 5:0 28 RSVD Reserved BURST_READ_FIRST Address: 0x42 Burst Read Starting Address Register Access: Read/Write Reset Value: 0x03 Bit 7 Field BM7 6 5 4 3 2 1 0 BM6 BM5 BM4 BM3 BM2 BM1 BM0 Data Type: Eight bit unsigned integer. USAGE: This register provides the starting register address the sensor will read during Burst Mode. For more information, refer to Burst Mode Operation. REST_MODE_CONFIG Address: 0x45 Rest Mode Configuration Register Access: Read/Write Reset Value: 0x00 Bit 7 Field RM1 6 5 4 3 2 1 0 RM0 RSVD RSVD RSVD RSVD RSVD RSVD Data Type: Eight bit unsigned integer. USAGE: This register is used to set the operating mode of the ADNS-3000. Bit(s) Field Name Description 7:6 RM[1:0] Sensor Operating Mode 0x00: Normal (default) 0x01: Rest 1 0x02: Rest 2 0x03: Rest 3 5:0 RSVD Reserved Read operation to REST_MODE_CONFIG indicates which mode the sensor is in. Write operation into this register will force the sensor into rest modes (Rest 1, 2 or 3). Write the value 0x40 into 0x45 register to force sensor into Rest 1, 0x80 to Rest 2 or 0xC0 to Rest 3. To get out of any forced rest mode, write 0x00 into this register to set back to normal mode. 29 MOTION_BURST Address: 0x63 Burst Read Register Access: Read Reset Value: 0x00 Bit 7 Field MB7 6 5 4 3 2 1 0 MB6 MB5 MB4 MB3 MB2 MB1 MB0 Data Type: Various. USAGE: This register is used to enable burst mode. Burst is initiated by a read of this register, which will then return continuous data starting from the address stored in BURST_READ FIRST register through BURST_READ_LAST register. Burst read must read the exact number of addresses set in order to complete the burst operation. For more information refer to Burst Mode Operation section. 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-2012 Avago Technologies. All rights reserved. AV02-2727EN - April 16, 2012