ADNS-3050 ADNS-3050 Entry-level Gaming Optical Navigation Sensor Data Sheet Description Features The Pixart ADNS-3050 is a small form factor entry-level gaming optical navigation sensor. It is housed in an 8-pin staggered dual in-line package (DIP). It is capable of high-speed motion detection typically at 60ips and acceleration up to 20g; suitable for both wired and wireless gaming navigation system. The low power management in wireless mode can be customized to suit user preferences. In addition, it has an on-chip oscillator and LED driver to minimize external components. Small Form Factor Package - 8-pin DIP The ADNS-3050 sensor along with the ADNS-5110-001 lens, PS"%/4trim MFOTLED clip, and HLMP-EG3E red LED forms a complete and compact mouse tracking system. There are no moving parts, which translates to high reliability and less maintenance for the end user. Precision optical alignment is not required, thus facilitating high volume assembly. Theory of Operation The ADNS-3050 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-3050 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 ΔX and Δy relative displacement values. An external microcontroller reads and translates the ΔX and Δy information from the sensor serial port into PS2, USB, or RF signals before sending them to the host PC. Operating Voltage: 2.8V-3.0V High Speed Motion Detection at typical of 60ips and acceleration up to 20g. Selectable Resolutions up to 2000cpi Four wire Serial Port Interface External Interrupt Output for Motion Detection Internal Oscillator — no clock input needed On-chip LED driver Minimal number of passive components Programmable power-saving modes for selectable wired or wireless application Customizable response time and downshift time for rest modes Configurable LED operating modes and drive current Applications Wired and Wireless Optical gaming mice and trackballs Integrated input devices Battery-powered input devices NOTE: The ADNS-3050 sensor is not designed for use with blue LED navigation system. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. PixArt Imaging Inc. E-mail: [email protected] 1 PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Pinout of ADNS-3050 Optical Mouse Sensor Pin Name Input/Output Description 1 MISO O Serial Data Output (Master In/Slave Out) 2 LED I LED Illumination Control Input 3 MOTION O Motion Interrupt Output (Active low,) 4 NCS I Chip Select (Active low) 5 SCLK I Serial Clock Input 6 GND I Ground 7 VDD I Supply Voltage 8 MOSI I Serial Data Input (Master Out/Slave In) Date Code 4 5 3 6 2 7 1 8 Product Number Lot Code Item Marking Product Number A3050 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) All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 2 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Product Number Date Code Features for Illustration only Pin 1 9.10 0.358 9.90 0.390 A 3.72 0.146 3.50 0.138 5.15 0.203 12.85 (At shoulder) 0.506 Lot Code ± 90 3q 0.50 0.020 A 1.00 Lead Offset 0.039 Pin 1 Protective Kapton Tape 4.55 0.179 ∅ 4.12 0.162 12.85 ± 0.50 (At lead tip) 0.506 ± 0.020 ` (2.74) 0.108 Lead Pitch 2.00 0.079 (0.04) 0.002 Lead Width Section A-A ∅ 0.70 0.028 3.92 0.154 Clear Optical Path 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. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. PixArt Imaging Inc. E-mail: [email protected] 3 PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Overview of Optical Mouse Sensor Assembly Pixart provides an IGES file drawing describing the base plate molding features for lens and PCB alignment The ADNS-3050 sensor is designed for mounting on a through-hole PCB. There is an aperture stop and features on the package that align to the lens. The ADNS-5110-001 lens BOE ADNS-5120-002 trim lens provides optics for the imaging of the surface as well as 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 HLMP-EG3E red LED is recommended for illumination. Notes: 1. Dimensions in millimeter/inches 2. View from component side of PCB (or top view of mouse) Figure 3. Recommended PCB Mechanical Cutouts and Spacing All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. PixArt Imaging Inc. E-mail: [email protected] 4 PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ TOP VIEW CROSS SECTION SIDEVIEW Important Note: Pin 1 of sensor should be located nearest to the LED Figure 4. 2D Assembly drawing of ADNS-3050 (Top and Side View) 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) All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 5 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ HLMP-EG3E LED LED Clip ADNS-3050 (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. 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-3050 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-3050 optical mouse All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 6 PixArt Imaging Inc. E-mail: [email protected] NCS SCLK MOSI MISO MOTION +:)/PPZD\ 9%86 ' ' *1' 6+,(/' 5 N & Q) & S) 9'' &21 5 5 -7$* & Q) 5 N 9'' 3&%B62&.(7B;3 5 5 & S) & S) 5 N & X)9 & S) & Q) 9&& =% 3 3 3 &211(&7723&% =$ 0&8 3 3 3 3 3 3 3 3 36&/. 30,62 3026, 31&6 3 3 3 3 3 3 3 3 3 3 =(QFRGHU &&.567 3&' 3 3 95(*,1 9%86 ' ' 8 & S) & X)9 /(' /(' /(' =% =$ 6:B/()7 6:B5,*+7 6:B0,' &3, &3, 6&/. 0,62 026, 1&6 027,21 & Q) 9'' 7 Figure 8. Schematic diagram for interface between ADNS-3050 and microcontroller with HLMP-EG3E Red LED on a corded solution NOTE: The ADNS-3050 Optical Mouse Sensor is not designed for use with blue LED navigation system. 5 : * % 6 + 5 5 & X)9 9&& 9'' &) *1' 6: 6: 6: 0LGGOH%XWWRQ 5LJKW%XWWRQ /HIW%XWWRQ & X)9 6&/. 0,62 026, 1&6 027,21 5 5 9'' &3, &3, ' +/03(' HLMP-EG3E &21 /(' /(' /(' $'166HQVRU%ORFN $'16 8 5 5 ;<B/(' 3&%B62&.(7B;3 6&/. 0,62 026, 1&6 027,21 & S) &211(&7723&% 9'' & Q) 9'' *1' J1 -7$*&RQQHFWRU SW2 SW4 0LGGOH%XWWRQ 5LJKW%XWWRQ SW3 /HIW%XWWRQ SW_LEFT SW_RIGHT SW_MID X2 32.768KHz % *1' 3 3 3 35;' 37;' ;2873 ;,13 567 3 3 37&. 3706 37', 37'2 767 U2 C3 100nF 9'' &3, SW5 [$$%DWWHU\ 2)) 0&8 3$ 3$ 3 3 3 3 3 3 3 3 30,62 3026, 36&/. 3 3 3 3 3 3 C4 100nF 9'' MOT_MCU RF_EN RF_NCS ZA ZB MISO_MCU MOSI_MCU SCLK_MCU NCS_MCU RF_IRQ SW_CPI+ PCB Notes: pin 9,24,34,25,26,28,11,17,18, 19, need to short track if need to connect to GND plane. C1 C5 4.7uF/6.3V 4.7uF/6.3V 9%$7 9%$7 (1 U1 TPS61070 L1 4.7uH *1' 100nF C11 9'' 027,21 0,62 026, 6&/. 1&6 4.7uF/6.3V C9 $6HQVRU%ORFN ADNS 3050 ;<B/(' U5 33R R5 R2 215k R1 1M 96XSSO\%ORFN 9287 )% 6: &20 % $ Q1 =(QFRGHU ZB ZA HLMP-EG3E D5 HLMP-ED80 C6 C7 4.7uF/6.3V 4.7uF/6.3V C8 10uF/6.3V 1R R6 9 8 Figure 9. Schematic diagram for interface between ADNS-3050 and microcontroller with HLMP-EG3E Red LED on a wireless solution NOTE: The ADNS-3050 Optical Mouse Sensor is not designed for use with blue LED navigation system. 9'' C2 10nF R3 100k 9'' % BT1 BATTERY 21 SW1 SW SLIDE-SPDT *1' P1 PAD2 $9&& MSP430-2274 NOTE: R1= R2 x {(Vo/Vfb) -1} R1 = 215K x {(Vo/500mV) -1} 9'' *1' R12 5.6R TP3 TP2 9ROWDJH0HDVXUHPHQW 9%$7 9 *1' C18 10nF TP1 9 C17 10uF/6.3V 9%$7 Notes: 10uF input cap optional 2SWLRQDO 9'' C19 1nF RF_NCS RF_IRQ MISO_MCU MOSI_MCU SCLK_MCU RF_EN nRF24L01 $17 $17 966 9'' U7 C22 22pF R16 1M 1% X1 16MHz 9''B3$ R15 22k R7 1R 9'' 0&8 R8 1R 9'' R9 1R 9'' 5) 6(1625 VDD1: MCU Supply VDD2: RF Supply VDD3: Sensor Supply *K]5)7UDQFHLYHU%ORFN C21 22pF &XUUHQW0HDVXUHPHQW 9 0,62 026, 6&/. &61 &( C20 33nF '9'' Notes: Pads for current measurement. Short by default. ,5() 9%$7 '9&& '966 $966 966 ,54 9'' 966 9'' 966 ;& ;& L3 8.2nH C25 2.2nF L5 2.7nH L4 3.9nH C26 4.7pF C23 1.5pF Notes: 1. 50 ohm trace (highlighted trace) E1 C24 1pF PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Design Considerations for Improved ESD Performance Regulatory Requirements For improved electrostatic discharge performance, typical creepage and clearance distance are shown in the table below. Assumption: base plate construction is as per the Pixart supplied IGES file and ADNS-5110-001 or ADNS5120-002 trim lens. Note that the lens material is polycarbonate or polystyrene HH30. Therefore, cyanoacrylate based adhesives or other adhesives that may damage the lens should NOT be used. Passes FCC B and worldwide analogous emission limits when assembled into a mouse with shielded cable and following Pixart’s recommendations. ADNS-5110-001 Lens Typical Distance (mm) Creepage 15.43 Clearance 7.77 Passes IEC-1000-4-3 radiated susceptibility level when assembled into a mouse with shielded cable and following Pixart’s recommendations. Passes EN61000-4-4/IEC801-4 EFT tests when assembled into a mouse with shielded cable and following Pixart recommendations. Provides sufficient ESD creepage/clearance distance to withstand discharge up to 15KV when assembled into a mouse according to usage instructions above. Table 1. Absolute Maximum Ratings Parameter Symbol Minimum Maximum Units Notes Storage Temperature TS -40 85 C Operating Temperature TA -15 55 C Lead Solder Temperature TSOLDER 260 C Supply Voltage VDD -0.5 3.7 V 2 kV All pins Input Voltage VIN -0.5 VDD + 0.5 V All I/O pins Output Current Iout 7 mA MISO pin Typ. Max Units ESD (Human Body Model) For 7 seconds, 1.6mm below seating plane. Table 2. Recommended Operating Condition Parameter Symbol Min Notes Operating Temperature TA 0 40 C Power Supply Voltage VDD 2.8 3.0 V Power Supply Rise Time tRT 0.005 100 ms 0 to VDD min Supply Noise (Sinusoidal) VNA 100 mVp-p 10kHz —50MHz Serial Port Clock Frequency fSCLK 1 MHz 50% duty cycle Distance from Lens Reference Z 2.5 mm 2.3 2.4 Plane to Tracking Surface Speed S 60 ips Acceleration A 20 g In run mode Load Capacitance Cout 100 pF MISO All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 9 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Table 3. AC Electrical Specifications Electrical characteristics over recommended operating conditions. Typical values at 25 °C, VDD = 2.8 V. Parameter Symbol Motion Delay after Reset Min. Typ. Max. Units Notes tMOT-RST 50 ms From RESET register write to valid motion Power Down tPD 50 ms From PD active to low current Wake from Power Down tWAKEUP 55 ms From PD inactive to valid motion (when write 0x5a to register 0x3a) 50 MISO Rise Time tr-MISO 40 200 ns CL = 100 pF MISO Fall Time tf-MISO 40 200 ns CL = 100 pF MISO Delay after SCLK tDLY-MISO 120 ns From SCLK falling edge to MISO data valid, no load condition MISO Hold Time thold-MISO 500 1/fSCLK ns Data held until next falling SCLK edge MOSI Hold Time thold-MOSI 200 ns Amount of time data is valid after SCLK rising edge MOSI Setup Time tsetup-MOSI 120 ns From data valid to SCLK rising edge SPI Time between Write Commands tSWW 30 μs From rising SCLK for last bit of the first data byte, Commands to rising SCLK for last bit of the second data byte SPI Time between Write and Read Command tSWR 20 μs From rising SCLK f or last bit of the first data byte, to rising SCLK for last bit of the second address byte SPI Time between Read and Subsequent Commands tSRW tSRR 250 ns From rising SCLK for last bit of the first data byte, to falling SCLK for the first bit of the next address SPI Read Address-Data Delay tSRAD 4 μs From rising SCLK for last bit of the address byte, to falling SCLK for first bit of data being read NCS to SCLK Active tNCS-SCLK 120 ns From NCS falling edge to first SCLK falling edge SCLK to NCS Inactive (for Read Operation) tSCLK-NCS 120 ns From last SCLK rising edge to NCS rising edge, for valid MISO data transfer SCLK to NCS Inactive (for Write Operation) tSCLK-NCS 20 μs From last SCLK rising edge to NCS rising edge, for valid MOSI data transfer NCS to MISO high-Z tNCS-MISO 250 ns From NCS rising edge to MISO high-Z state Transient Supply Current IDDT 60 mA Max supply current during a VDD ramp from 0 to VDD All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 10 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Table 4. DC Electrical Specifications Electrical characteristics over recommended operating conditions. Typical values at 25° C, VDDLED = 2.8 V, IRLED HLMPEG3E, RLED = 33 . Parameter Symbol Min Typ. DC Supply Current IDD_RUN_DC IDD_RUN_WIRELESS IDD_REST1 IDD_REST2 IDD_REST3 26.604 14.236 0.817 0.105 0.022 10 Power Down Current IPD Input Low Voltage VIL Input High Voltage VIH Input Hysteresis VI_HYS 200 Input Leakage Current Ileak ±1 Output Low Voltage VOL Output High Voltage VOH Input Capacitance Cin Max Vdd-0.5 50 Notes mA Including LED current. No load on MISO Default sensor setting for Rest 1, Rest 2 and Rest 3 modes μA 0.5 Vdd-0.7 Units V SCLK, MOSI, NCS V SCLK, MOSI, NCS mV SCLK, MOSI, NCS ±10 μA Vin=VDD-0.6V, SCLK, MOSI, NCS 0.7 V Iout=1mA, MISO, MOTION V Iout=-1mA, MISO, MOTION pF MOSI, NCS, SCLK Synchronous Serial Port Chip Select Operation The synchronous serial port is used to set and read parameters in the ADNS-3050, and to read out the motion information. The port is a four wire serial port. The host micro-controller always initiates communication; the ADNS-3050 never initiates data transfers. SCLK, MOSI, and NCS may be driven directly by a micro-controller. The port pins may be shared with other SPI slave devices. When the NCS pin is high, the inputs are ignored and the output is at tri-state. The serial port is activated after NCS goes low; otherwise, MISO will be high-Z, while MOSI and SCLK will be ignored. If NCS is raised during a transaction, the entire transaction is aborted and the serial port will be reset. This is true for all transactions. After a transaction is aborted, the normal address-to-data or transaction-to-transaction delay is still required before beginning the next transaction. To improve communication reliability, all serial transactions should be framed by NCS. NCS can also be used to reset the serial port in case of an error occurs. The lines that comprise the SPI port: SCLK: Clock input. It is always generated by the master (the micro-controller). MOSI: Input data. (Master Out/Slave In) MISO: Output data. (Master In/Slave Out) NCS: Chip select input (active low). NCS needs to be low to activate the serial port; otherwise, MISO will be high Z, and MOSI & SCLK will be ignored. NCS can also be used to reset the serial port in case of an error. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 11 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Write Operation Write operation, defined as data going from the micro-controller to the ADNS-3050, is always initiated by the microcontroller and consists of two bytes. The first byte contains the address (seven bits) and has a “1” as its MSB to indicate write sequence. The second byte contains the data. The ADNS-3050 reads MOSI on rising edges of SCLK. NCS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 1 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 A6 SCLK MOSI MISO MOSI DRIVEN BY MICRO-CONTROLLER Figure 12. Write Operation SCLK MOSI thold-MOSI tsetup-MOSI Figure 13. MOSI setup Read Operation A read operation, defined as data going from the ADNS-3050 to the micro-controller, is always initiated by the microcontroller and consists of two bytes. The first byte contains the address, is sent by the micro-controller over MOSI, and has a “0” as its MSB to indicate data direction. The second byte contains the data and is driven by the ADNS-3050 over MISO. The sensor outputs MISO bits on falling edges of SCLK and samples MOSI bits on every rising edge of SCLK. NCS SCLK Cycle # 1 2 3 4 5 6 7 0 A6 A5 A4 A3 A2 A1 8 9 10 11 12 13 14 15 16 D7 D6 D5 D4 D3 D2 D1 D0 SCLK MOSI MISO Figure 14. Read Operation A0 tSRAD DELAY SCLK tDLY-MISO MISO tHOLD-MISO D0 Note: The 500 ns minimum high state of SCLK is also the minimum MISO data hold time of the ADNS-3050. Since the falling edge of SCLK is actually the start of the next read or write command, the ADNS-3050 will hold the state of data on MISO until the falling edge of SCLK. Figure 15. MISO delay All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 12 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Required Timing between Read and Write Commands There are minimum timing requirements between read and write commands on the serial port. tSWW SCLK ADDRESS DATA ADDRESS WRITE OPERATION DATA WRITE OPERATION Figure 16. Timing between Two Write Commands Timing between Two Write Commands If the rising edge of the SCLK for the last data bit of the second write command occurs before the required delay (tSWW ), then the first write command may not complete correctly. tSWR ttt SCLK ADDRESS DATA ADDRESS ttt WRITE OPERATION NEXT READ OPERATION Figure 17. Timing between Write and Read Commands Timing between Write and Read Commands If the rising edge of SCLK for the last address bit of the read command occurs before the required delay (tSWR), the write command may not complete correctly. tSRW & tSRR tSRAD ttt SCLK ADDRESS DATA ADDRESS ttt READ OPERATION NEXT READ or WRITE OPERATION Figure 18. Timing between Read and Subsequent Write or Read Commands Timing between Read and Subsequent Write or Read Commands During a read operation SCLK should be delayed at least tSRAD after the last address data bit to ensure that the ADNS3050 has time to prepare the requested data. The falling edge of SCLK for the first address bit of either the read or write command must be at least tSRR or tSRW after the last SCLK rising edge of the last data bit of the previous read operation. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 13 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Motion Detection Routine Mode Motion Polling MOTION Interrupt Wired Yes Yes Wireless Not Supported Yes Power Up Reset Although ADNS-3050 does have an internal power up self reset circuitry, it is still highly recommended to follow the power up sequence below every time power is applied. i. Apply power Motion Polling ii. Drive NCS high, then low to reset the SPI port The micro-controller will poll the sensor for valid motion data by checking on the MOTION_ST bit of MOTION_ST register in a periodic cycle. If MOTION_ST bit is set, motion data in DELTA_X and DELTA_Y registers are valid and ready to be read out by the micro-controller. iii. Write 0x5a to register 0x3a Motion polling sequence: vi. Write 0x00 to register 0x41 1. Read MOTION_ST bit of MOTION_ST register. If MOTION_ST bit = 1, go to step 2. 2. Read DELTA_X and DELTA_Y registers consecutively 3. Optional: Read PROD_ID register to check for communication link or sensor functionality. This Product ID verification MUST be done only after reading MOTION_ST, DELTA_X and DELTA_Y registers. iv. Wait for at least tSWW (or tWAKEUP when performing reset to wake up from Power Down) v. Write 0x20 to register 0x0d vii. Configure the desired sensor settings accordingly Reset ADNS-3050 can be reset by following power up reset sequence. A full reset will thus be executed and any register settings must be reloaded. The table below shows the state of the various pins during reset. State of Signal Pins after VDD is Valid Motion polling is recommended to be used in the corded application like USB gaming mouse that requires fast motion response. This feature is not supported in wireless mode. MOTION Interrupt MOTION output signal (pin 3) can be used as interrupt input to the micro-controller of the mouse triggering the read command of motion data from the sensor whenever there is motion detected by the sensor. The MOTION signal is active low level-triggered output. The MOTION pin level will be driven low as long the MOTION_ST bit in register 0x02 is set and motion data in DELTA_X and DELTA_Y registers ready to be read out by the micro-controller. Once all the motion data has been read, DELTA_X and DELTA_Y values become zero, MOTION bit is reset and the MOTION pin level is driven high again. During Reset After Reset NCS Ignored Functional MISO Low Depends on NCS SCLK Ignored Depends on NCS MOSI Ignored Depends on NCS LED High Functional Power Down The ADNS-3050 can be set to power down mode by writing 0xE7 to register 0x3B to disable the sensor. The SPI port should not be accessed during power down. Other ICs on the same SPI bus can be accessed, as long as the sensor‘s NCS pin is not asserted. The table below shows the state of various pins during power down. To exit Power Down, reset the sensor in order to wake it up. A full reset will thus be executed. Wait tWAKEUP before accessing the SPI port. Any register settings must then be reloaded. MOTION Interrupt sequence: 1. When MOTION pin = Low, Read DELTA_X and DELTA_Y registers consecutively. 2. Optional: Read PROD_ID register to check for communication link or sensor functionality. This Product ID verification MUST be done only after reading MOTION_ST, DELTA_X and DELTA_Y registers. MOTION interrupt should be implemented in wireless application to lengthen battery life. It is very useful as the main control of power management to wake up micro-controller and radio in the wireless system from rest modes. Pin Pin During Power Down MOTION Undefined NCS Functional* MOSI Functional* SCLK Functional* MISO Undefined* *Notes: • • NCS pin must be held to 1(HIGH) if SPI Bus is shared with other devices, it can be in either state if the sensor is the only device to connect to the host micro controller Reading on register should only be performed after existing from the power down mode. Any read operation during power down will not reflect the actual data of the register. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 14 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Low Power Management for Wireless Mode Example of pseudo code in C language: The ADNS-3050 has three power-saving modes: Rest 1, Rest 2 and Rest 3 when wireless mode is enabled. Each mode can be configured to a different motion detection period, affecting response time to mouse motion (Response Time). The sensor automatically changes to the appropriate mode, depending on the time since the last reported motion (Downshift Time). The Response Time and Downshift Time for each mode are configurable via register addresses, 0x0e to 0x13. If (MOTION) To enable wireless mode for low power management with optimized tracking performance, implement the following steps after sensor power up reset sequence. EA = 1; i. Enable power-saving modes by setting F_AWAKE bit = 0 in NAV_CTRL2 register. { //Read sensor motion data and pixel statistic EA = 0; SHUTTER_HI = spi_read_sensor(ADNS3050_SHUT_HI_ADDR); SHUTTER_LO= spi_read_sensor(ADNS3050_SHUT_LO_ADDR); SQUAL = spi_read_sensor(ADNS3050_SQUAL_ADDR); PIXEL_ACCUM = spi_read_sensor(ADNS3050_PIX_ACCUM_ADDR); SHUTTER = (double)SHUTTER_HI*256+(double)SHUTTER_LO; AVERAGE_SHUTTER = 1024*(double)PIXEL_ACCUM/SHUTTER; // Lift detection monitoring ii. Write 0x26 to register 0x35 if(AVERAGE_SHUTTER<440 && SQUAL<55) iii. Write 0x30 to register 0x14 { iv. Write 0x30 to register 0x18 SYS_deltaX = 0; //Motion data suppression v. Write 0x01 to register 0x43 SYS_deltaY = 0; //Motion data suppression vi. Write 0x01 to register 0x40 } Lift Detection Cutoff Algorithm } When the mouse is raised from the tracking surface which is also known as lifted condition, there is a specific z-height whereby the tracking of the sensor will cease. However the tracking cutoff height of the ADNS-3050 sensor varies with the different tracking surfaces. In general to have a lower tracking cutoff height than the default settings, the algorithm illustrated in the form of a pseudo code is recommended as Z-height monitoring routine in the microcontroller firmware. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 15 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ Registers The ADNS-3050 registers are accessible via the serial port. The registers are used to read motion data and status as well as to set the device configuration. Address Register Name Register Description Read/Write Default Value 0x00 PROD_ID Product ID R 0x09 0x01 REV_ID Revision ID R 0x00 0x02 MOTION_ST Motion Status R/W 0x00 0x03 DELTA_X Delta_X R 0x00 0x04 DELTA_Y Delta_Y R 0x00 0x05 SQUAL Squal Quality R 0x00 0x06 SHUT_HI Shutter Open Time (Upper 8-bit) R 0x01 0x07 SHUT_LO Shutter Open Time (Lower 8-bit) R 0x00 0x08 PIX_MAX Maximum Pixel Value R 0x00 0x09 PIX_ACCUM Average Pixel Value R/W 0x00 0x0a PIX_MIN Minimum Pixel Value R 0x00 0x0b PIX_GRAB Pixel Grabber R/W 0x00 0x0d MOUSE_CTRL Mouse Control R/W 0x01 0x0e RUN_DOWNSHIFT Downshift Time from Run to Rest 1 R/W 0x46 0x0f REST1_PERIOD Time Period of Rest 1 R/W 0x00 0x10 REST1_DOWNSHIFT Downshift Time from Rest 1 to Rest 2 R/W 0x4f 0x11 REST2_PERIOD Time Period of Rest 2 R/W 0x09 0x12 REST2_DOWNSHIFT Downshift Time from Rest 2 to Rest 3 R/W 0x2f 0x13 REST3_PERIOD Time Period of Rest 3 R/W 0 x31 0x1c SHUT_THR Shutter Threshold R/W 0x41 0x1d SQUAL_THRESHOLD Squal Threshold R/W 0x3d 0x22 NAV_CTRL2 LED Mode Configuration R/W 0x00 0x25 MISC_SETTINGS DCR and wakeup settings Register R/W 0x61 0x33 RESOLUTION Full Resolution Register R/W 0x04 0x34 LED_PRECHARGE LED precharge time Register R/W 0xa0 0x3a RESET Reset W 0x00 0x3b SHUTDOWN Shutdown Register W 0x00 0x3f NOT_REV_ID Inverted Revision ID R 0xff 0x45 REST_MODE_CONFIG Rest Mode Configuration R/W 0x00 All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 16 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ PROD_ID Address: 0x00 Access: Read Reset Value: 0x09 Bit 7 Field PID7 6 5 4 3 2 1 0 PID6 PID5 PID4 PID3 PID2 PID1 PID0 Data Type: 8-Bit unsigned integer USAGE: This register contains a unique identification assigned to the ADNS-3050. The value in this register does not change; it can be used to verify that the serial communications link is functional. If using this register to verify serial communications link during rest modes, please read following registers in this sequence: 0x00, 0x02, 0x03, 0x04, 0x00 (regardless of register 0x02’s status). If both or either one of the read 0x00 value is correct, no additional action is required as the serial communication link is good. Only if both read 0x00 value attempts are wrong, perform a reset operation to the sensor to restore the serial communications link. Note: Highly recommended to use Motion pin function during rest modes for motion detection in wireless mode. REV_ID Address: 0x01 Access: Read Reset Value: 0x00 Bit 7 Field RID7 6 5 4 3 2 1 0 RID6 RID5 RID4 RID3 RID2 RID1 RID0 Data Type: 8-Bit unsigned integer USAGE: This register contains the IC revision. It is subject to change when new IC versions are released. MOTION_ST Address: 0x02 Access: Read/Write Reset Value: 0x00 Bit 7 6 Field MOTION_ST RSVD 5 4 3 2 1 0 RSVD RSVD RSVD RSVD RSVD RSVD Data Type: Bit field. USAGE: Register 0x02 allows the user to determine if motion has occurred since the last time it was read. If the MOTION_ST bit is set, then the user should read registers 0x03 (DELTA_X) and 0x04 (DELTA_Y) to get the accumulated motion data. Read this register before reading the DELTA_X and DELTA_Y registers. Writing any data into this register clears MOTION_ST bit, DELTA_X and DELTA_Y registers. However the written data byte will not be saved. Bit Field Name 7 MOTION_ST Description Motion detected since last report 0 = No motion (default) 1 = Motion occurred, data in DELTA_X and DELTA_Y registers ready to be read 6-0 RSVD Reserved All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 17 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ DELTA_X Address: 0x03 Access: Read Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field X7 X6 X5 X4 X3 X2 X1 X0 Data Type: Eight bit 2’s complement number. USAGE: X-axis movement in counts since last report. Absolute value is determined by resolution. Reading this register clears the content of this register. Motion -128 -127 -2 -1 0 +1 +2 +126 +127 Delta_X 80 81 FE FF 00 01 02 7E 7F NOTE: Pixart Recommend that register 0x03 and 0x04 to be read consecutively DELTA_Y Address: 0x04 Access: Read Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Data Type: Eight bit 2’s complement number. USAGE: Y-axis movement in counts since last report. Absolute value is determined by resolution. Reading this register clears the content of this register. Motion -128 -127 -2 -1 0 +1 +2 +126 +127 Delta_Y 80 81 FE FF 00 01 02 7E 7F NOTE: Pixart Recommend that register 0x03 and 0x04 to be read consecutively All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 18 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ SQUAL Address: 0x05 Access: Read Reset Value: 0x00 Bit 7 Field SQ7 6 5 4 3 2 1 0 SQ6 SQ5 SQ4 SQ3 SQ2 SQ1 SQ0 Data Type: Upper 8 bits of a 9-bit unsigned integer. USAGE: SQUAL (Surface Quality) is a measure of the number of valid features visible by the sensor in the current frame. The maximum SQUAL register value is 128. Since small changes in the current frame can result in changes in SQUAL, variations in SQUAL when looking at a surface are 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 (White Paper) 60 50 Squal value 40 30 20 10 784 755 726 697 668 639 610 581 552 523 494 465 436 407 378 349 320 291 262 233 204 175 146 88 117 59 1 30 0 Count Figure 20. Squal values (white paper) Mean SQUAL vs Z (White Paper) Squal count 60 50 Avg-3sigma 40 Avg Avg+3sigma 30 20 10 0 -10 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 Distance from Lens Reference Plane to Tracking Surface - Z (mm) Figure 21. Mean squal vs. Z (White Paper) All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 19 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ SHUT_HI Address: 0x06 Access: Read Reset Value: 0x01 Bit 7 Field S15 6 5 4 3 2 1 0 S14 S13 S12 S11 S10 S9 S8 SHUT_LO Address: 0x07 Access: Read Reset Value: 0x00 Bit 7 6 5 4 3 2 1 0 Field S7 S6 S5 S4 S3 S2 S1 S0 Data Type: Sixteen bit unsigned integer. USAGE: Units are in clock cycles. Read SHUT_HI first, then SHUT_LO. They should be read consecutively. The shutter is adjusted to keep the average and maximum pixel values within normal operating ranges. The shutter value is automatically adjusted. Count Figure 22. Shutter (white paper). Shutter value Mean Shutter vs Z (White paper) 600 550 500 450 400 350 300 250 200 150 100 50 0 Avg-3sigma Avg Avg+3sigma 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 Distance from Lens Reference Plane to Tracking Surface - Z (mm) Figure 23. Mean shutter vs. Z (white paper). All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. PixArt Imaging Inc. E-mail: [email protected] 20 784 757 730 703 676 649 622 595 568 541 514 487 460 433 406 379 352 325 298 271 244 217 190 163 136 82 109 55 1 28 Shutter value Shutter (White Paper) 500 450 400 350 300 250 200 150 100 50 0 PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ PIX_MAX Address: 0x08 Access: Read Reset Value: 0x00 Bit 7 Field MP7 6 5 4 3 2 1 0 MP6 MP5 MP4 MP3 MP2 MP1 MP0 Data Type: Eight-bit number. USAGE: Store the highest pixel value in current frame. Minimum value = 0, maximum value = 254. The highest pixel value may vary with different frame. PIX_ACCUM Address: 0x09 Access: Read/Write Reset Value: 0x00 Bit 7 Field AP7 6 5 4 3 2 1 0 AP6 AP5 AP4 AP3 AP2 AP1 AP0 Data Type: High 8-bits of an unsigned 17-bit integer. USAGE: This register stores the accumulated pixel value of the last image taken. This register can be used to find the average pixel value, where Average Pixel = (register value AP[7:0])* 1.058 The maximum accumulated value is 122936 but only bits [16:9] are reported, therefore the maximum register value is 240. The minimum is 0. The PIX_ACCUM value may vary with different frame. PIX_MIN Address: 0x0a Access: Read Reset Value: 0x00 Bit 7 Field MP7 6 5 4 3 2 1 0 MP6 MP5 MP4 MP3 MP2 MP1 MP0 Data Type: Eight-bit number. USAGE: Store the lowest pixel value in current frame. Minimum value = 0, maximum value = 254. The minimum pixel value may vary with different frame. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 21 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ PIX_GRAB Address: 0x0b Access: Read/Write Reset Value: 0x00 Bit 7 Field PG_VALID 6 5 4 3 2 1 0 PG6 PG5 PG4 PG3 PG2 PG1 PG0 Data Type: Eight bit word. USAGE: NOTE: The pixel grabber captures 1 pixel per frame. Bit-7 (MSB) of this register will be set to indicate that the 7-bit pixel data (PG[6:0]) is valid for grabbing. In a 19x19 pixel array, it will take 361 read operations to grab all the pixels to form the complete image. Bit(s) Field Name Description 7 PG_VALID Pixel Grabber Valid 6:0 PG[6:0] Pixel Data Any write operation into this register will reset the grabber to origin (pixel 0 position). The sensor should not be moved before the 361 read operations are completed to ensure original data is grabbed to produce good (uncorrupted) image. 19 x 19 Pixel Array Address Map – (Surface reference view from top of mouse) 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 Last 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 0 First 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Top X-ray View of Mouse Button Left +ve Y 4 5 3 6 2 7 1 8 All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 22 PixArt Imaging Inc. E-mail: [email protected] Button Right Pin 1 LED +ve X PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ MOUSE_CTRL Address: 0x0d Access: Read/Write Reset Value: 0x01 Bit 7 Field RSVD 6 5 4 3 2 1 0 RSVD 1 RES2 RES1 RES0 PD 0 Data Type: Bit field. USAGE: Resolution and chip reset information can be accessed or to be edited by this register. Bit Field Name Description 5 1 Must set to 1 4:2 RES [2:0] Set the resolution of sensor 000: 1000 dpi (default) 001: 250 dpi 010: 500 dpi 011: 1250 dpi 100: 1500 dpi 101: 1750 dpi 110: 2000 dpi Reserved 0 Reserved Reserved 0 Must set to 0 Note: As the sensor resolution increases, slight performance degradation on certain surfaces may be observed. For higher than 500 dpi setting, use 12-bit motion reporting to achieve the maximum speed. RUN_DOWNSHIFT Address: 0x0e Access: Read/Write Reset Value: 0x46 Bit 7 Field RUD7 6 5 4 3 2 1 0 RUD6 RUD5 RUD4 RUD3 RUD2 RUD1 RUD0 Data Type: Eight bit number. USAGE: This register sets the Run to Rest1 mode downshift time. The configurable value is range from 0x46 to 0xff. Min value for this register must be 0x46 or 70 in decimal. Units are 16 frames (about 430ms@2600fps) All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 23 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ REST1_PERIOD Address: 0x0f Access: Read/Write Reset Value: 0x00 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 time period in seconds. Min value for this register is 0. Max value is 0xFD. Rest 1 Period = (Register value (decimal) +1) x 0.007 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. i. Write 0x80 to register 0x22H prior to writing into this register ii. Writing the desired value to this REST1_PERIOD register iii. Write 0x00 to register 0x22H after to writing into this register REST1_DOWNSHIFT Address: 0x10 Access: Read/Write Reset Value: 0x4f 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. Rest 1 Downshift Time = (Register value (decimal) x (Rest1 period) x 16. Min value for this register is 0. REST2_PERIOD Address: 0x11 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 in seconds. Min value for this register is 0. Max value is 0xFD. Rest 2 Period = (Register value (decimal) +1) x 0.007 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. i. Write 0x80 to register 0x22H prior to writing into this register ii. Writing the desired value to this REST2_PERIOD register iii. Write 0x00 to register 0x22H after to writing into this register All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 24 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ REST2_DOWNSHIFT Address: 0x12 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. Min value for this register is 0. Rest 2 Downshift Time = (Register value (decimal) x (Rest2 period) x 128 REST3_PERIOD Address: 0x13 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 in seconds. Min value for this register is 0. Max value is 0xFD. Rest 3 Period = (Register Value (decimal) +1) x 0.007 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. i. Write 0x80 to register 0x22H prior to writing into this register ii. Writing the desired value to this REST3_PERIOD register iii. Write 0x00 to register 0x22H after to writing into this register PREFLASH_RUN Address: 0x14 Access: Read/Write Reset Value: 0x80 Bit 7 Field PREFLASH_ 6 5 4 3 2 1 0 PREFLASH_T PREFLASH_T PREFLASH_T PREFLASH_T PREFLASH_T PREFLASH_T PREFLASH_T CTRL Data Type: Bit field USAGE: This register usage is to turn on LED to saturate sensor array before electronic shutter is open. Bit Field Name Description 7 PREFLASH_CTRL 0: Preflash control during idle state. 1: Preflash control during processing state. 6:0 PREFLASH_T PREFLASH_T PREFLASH_CTRL=1: Preflash time = Processing time PREFLASH_T*32*clk_period + Idle time PREFLASH_CTRL=0: Preflash time = PREFLASH_T*64*clk_period All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 25 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ PREFLASH_RUN_DARK Address: 0x18 Access: Read/Write Reset Value: 0x80 Bit 7 Field PREFLASH_ CTRL_D 6 5 4 3 2 1 0 PREFLASH_ T_D PREFLASH_ T_D PREFLASH_ T_D PREFLASH_ T_D PREFLASH_ T_D PREFLASH_ T_D PREFLASH_ T_D Data Type: Bit field USAGE: This register usage is to turn on LED to saturate sensor array before electronic shutter is open on dark surface. Bit Field Name Description 7 PREFLASH_CTRL_D 0: Preflash control during idle state. 1: Preflash control during processing state. 6:0 PREFLASH_T_D PREFLASH_T_D PREFLASH_CTRL=1: Preflash time = Processing time PREFLASH_T_D*32*clk_period + Idle time PREFLASH_CTRL=0: Preflash time = PREFLASH_T_D*64*clk_period [if PREFLASH_T_D > Processing time/32 (~110 counts), Preflash time = Idle time] MOTION_EXT Address: 0x1b Access: Read Reset Value: 0x00 Bit 7 Field MOT_EXT 6 5 4 3 2 1 0 PG_VALID PG_FIRST DEL_Y_ OVERFLOW DEL_X_ OVER FLOW RSVD RSVD RSVD Data Type: Bit field USAGE: This register is store the status of current motion that occurred. Bit Field Name Description 7 MOTION_EXT 0: No Motion default 1: Motion occurred 6 PG_VALID 1: Pixel Grabber Valid 5 PG_FIRST 1: Pixel Grabber First 4 Delta Y overflow 0: No Overflow 1: Delta Y overflow 3 Delta X overflow 0: No Overflow 1: Delta Y overflow 2:0 Reserved Reserved All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 26 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ SHUT_THR Address: 0x1c Access: Read/Write Reset Value: 0x41 Bit 7 Field SHT_THR 6 5 4 3 2 1 0 SHT_THR SHT_THR SHT_THR SHT_THR SHT_THR SHT_THR SHT_THR Data Type: Bit field USAGE: This register is used to configure the rest mode run downshift frame operation of the sensor with the shutter time. Bit Field Name Description 7:0 SHUT_THRESH Shutter Threshold SQUAL_THRESHOLD Address: 0x1d Access: Read/Write Reset Value: 0x3d Bit 7 6 5 4 3 2 1 0 Field ST ST ST ST ST PT PT PT Data Type: Bit field USAGE: This register is used to configure the surface quality limit of the sensor. Bit Field Name Description 7:3 ST Minimum number of features to navigate 2:0 PT Minimum size of feature to be usable. NAV_CTRL2 Address: 0x22 Access: Read/Write Reset Value: 0x00 Bit 7 Field F_AWAKE 6 5 4 3 2 1 0 0 0 RSVD RSVD RSVD RSVD RSVD Data Type: Bit field USAGE: This register is used to configure the rest mode operation of the sensor. Bit Field Name Description 7 F_AWAKE Enable/Disable rest mode 0: Enabled rest mode 1: Disabled rest mode. (Default) 6:5 0 Must be set to 0 All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 27 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ MISC_SETTINGS Address: 0x25 Access: Read/Write Reset Value: 0x61 Bit 7 Field MSR 6 5 4 3 2 1 0 RSVD RSVD RSVD MSR DS DS DS Data Type: Bit field USAGE: This register is used to configure the DCR and wakeup settings register. Bit Field Name Description 7 Reserved Reserved 6:4 MSR Minimum number of feature to wakeup from rest unit in multiple of min_sq_run 3 Reserved Reserved 2:0 DS Number of bits to shift off dcr (decorrelation if correlation threshold < auto correlation) RESOLUTION Address: 0x33 Access: Read/Write Reset Value: 0x04 Bit 7 Field RSVD 6 5 4 3 2 1 0 RSVD RSVD RES_EN DPI DPI DPI DPI Data Type: Bit field USAGE: This register is used to configure the resolution of the sensor. Bit Field Name Description 7:5 Reserved Reserved 4 RES_EN 0: Disable resolution setting 1: Enable resolution setting 3:0 DPI 0x00: 4000dpi 0x01: 250dpi 0x02: 500dpi 0x03: 750dpi 0x04: 1000dpi 0x05: 1250dpi 0x06: 1500dpi 0x07: 1750dpi 0x08: 2000dpi All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 28 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ LED_PRECHARGE Address: 0x34 Access: Read/Write Reset Value: 0xa0 Bit 7 Field LED_PRE 6 5 4 3 2 1 0 LED_PRE LED_PRE LED_PRE LED_PRE LED_PRE LED_PRE LED_PRE Data Type: Bit field USAGE: This register is used to configure the LED precharge of the sensor. The default pre flash is about 190uS for nominal clock of 26MHz~28Mhz. Bit Field Name Description 7:0 LED_PRECHARGE precharge time (in clock counts) = LED_PRECHARGE" *32 + 30 FRAME_IDLE Address: 0x35 Access: Read/Write Reset Value: 0x00 Bit 7 Field FRAME_IDLE 6 5 4 3 2 1 0 FRAME_IDLE FRAME_IDLE FRAME_IDLE FRAME_IDLE FRAME_IDLE FRAME_IDLE FRAME_IDLE Data Type: Eight Bit Unsigned Integer USAGE: This register is used to control the frame rate. The value in this register is used to add frame idling time, which effectively reduces the frame rate. frame_idle_time (in clock counts) = (register value) * 32 Frame period (in clock counts) = shutter_time (reg 0x06 and reg 0x07) + (3400 clocks) + frame_idle_time When this register is set to 0x00, the maximum frame rate is about 6666 fps @26MHz internal clock frequency Bit Field Name Description 7:0 FRAME_IDLE Frame Idling time(in clock counts)=FRAME_IDLE*32 POWER_UP_RESET Address: 0x3a Access: Write Reset Value: 0x00 Bit 7 Field RESET 6 5 4 3 2 1 0 RESET RESET RESET RESET RESET RESET RESET Data Type: Bit field USAGE: This register is used to configure the resolution of the sensor. Bit Field Name Description 7:0 POWER_UP_RESET Power up reset. 0x5a/0x5b for full reset. 0x96/0x97 for partial reset. SHUTDOWN Address: 0x3b Access: Write Reset Value: 0x00 Bit 7 Field SD 6 5 4 3 2 1 0 SD SD SD SD SD SD SD Data Type: Bit field This register is used to shut down the sensor USAGE: Bit Field Name Description 7:0 SHUTDOWN Chip Shutdown Write 0xe7 to power down sensor. Write 0x5a to register 0x3a to reset the sensor in order to wake-up All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed o any other forms without permission. 29 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ INV_REV_ID Address: 0x3f 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. LED_CTRL Address: 0x40 Access: Read/Write Reset Value: 0x00 Bit 7 Field RSVD 6 5 4 3 2 1 0 RSVD RSVD RSVD LED_CONT_OFF LED_CONT_OFF LED_SEL LED_SEL Data Type: Eight bit unsigned integer. USAGE: This register is used to control the LED operating mode and current to optimization the power consumption. Bit Field Name Description 7:4 Reserved Reserved 3 LED_CONT_OFF 0: Normal operation (Default) 1: LED continuous off 2 LED_CONT_ON 0: Normal operation (Default) 1: LED continuous on 1:0 LED_SEL 0x00: LED current set to 20mA 0x01: LED current set to 15mA 0x02: LED current set to 36mA 0x03: LED current set to 30mA Note: if LED operating in Automatic current switching mode (AUTO_LED_CONTROL [0] at address 0x43 is cleared, LED current selling (LED_CONTROL) [1:0]) will be ignored. Only when AUTO current switching is disabled through setting AUTO_LED_CONTROL [0], the LED driver current is determine by LED_CONTROL [1:0]. MOTION_CTRL Address: 0x41 Access: Read/Write Reset Value: 0x40 Bit 7 Field MOT_ACT_HI 6 5 4 3 2 1 0 MOT_SENS RSVD RSVD RSVD RSVD RSVD RSVD Data Type: Eight bit unsigned integer. USAGE: This register is used to configure sensor motion control. Bit Field Name Description 7 MOTION_ACTIVE_HI 0: Motion active low (default) 1: Motion active high 6 MOTION_SENSITIVITY 0: Motion pin is level sensitive 1: Motion pin is edge sensitive(default) 5:0 Reserved Reserved All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. 30 PixArt Imaging Inc. E-mail: [email protected] PixArt Imaging Inc. E^ͲϯϬϱϬŶƚƌLJͲůĞǀĞů'ĂŵŝŶŐKƉƚŝĐĂůEĂǀŝŐĂƚŝŽŶ^ĞŶƐŽƌ AUTO_LED_CONTROL Address: 0x43 Access: Read/Write Reset Value: 0x08 Bit 7 Field RSVD 6 5 4 3 2 1 0 RSVD RSVD RSVD LED_HI LED_HI AUTO_LED_DS AUTO_LED_DS Data Type: Bit field USAGE: This is a “smart” LED drive feature whereby the LED current is self adjusting between the low and high current settings (bit 3:1) according to the brightness of the tracking surface if this feature is enable (via clearing bit 0). The brighter the surface, the lower the LED current will be. If A_LED_DIS (bit 0) is set, this means AUTO_LED mode is disable, then the LED current determine by LSEL[1:0] setting in LED_CTRL register (0x40). Bit Field Name Description 7:4 Reserved Reserved 3:2 LED_HI 0x0: Auto LED high current is 15mA 0x1: Auto LED high current is 20mA 0x2: Auto LED high current is 30mA 0x3: Auto LED high current is 36mA 1 LED_LO 0x0: Auto LED low current is 15mA 0x1: Auto LED low current is 20mA 0 AUTO_LED_DIS 0x0: Enable Auto LED current switching 0x1: Disable Auto LED current switching NOTE: When AUTO LED is enable, the AUTO_LED current will be switched between low and high current setting determined by LED_LO and LED_HI [1:0]. If LED_LO current setting is higher than the LED_HI, the current will be based on the higher setting. For example if the LED_LO is 20mA and LED_HI is 15mA, the AUTOLED current will be fixed at 20mA. REST_MODE_CONFIG Address: 0x45 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-3050. 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. All rights strictly reserved any portion in this paper shall not be reproduced, copied or transformed to any other forms without permission. PixArt Imaging Inc. E-mail: [email protected]