background image

9

ReadMotionReg

 

– Reads the

ADNS-6000 Motion register.
The data returned from this
register will be used to
determine if any motion has
occurred or if any fault
condition exists.

ReadDeltaX

 

– Reads the

ADNS-6000 Delta_X register for
the X movement. Calls the

ReadSPI 

routine to enable the

SPI interface and perform
reading operations through the
two wire serial interface. Any
new X motion information is
added to the 

[xCount] 

variable.

ReadDeltaY

 

– Reads the

ADNS-6000 Delta_Y register for
the Y movement. Calls the

ReadSPI 

routine to enable the

SPI interface and perform
reading operations through the
two wire serial interface. Any
new Y motion information is
added to the 

[yCount] 

variable.

WriteSPI

 

– Writes to the

ADNS-6000 register. A write
operation consists of two bytes.
The first byte contains the
address (7 bits) and has “1” as
its MSB. The second byte
contains data. The
microcontroller to drive both
the SCLK and the MOSI lines.

SPIWriteRoutine 

is called to

carry the write operation.

ReadSPI

 

– Reads the desired

ADNS-6000 registers. A read
operation is composed of two
parts. First, the microcontroller
performs a write to the ADNS-
6000, sending the address of
the target register to be read.
The microcontroller drives both
the SCLK and MOSI lines. After
t

SRAD 

delay, the ADNS-6000

will drive the data via MISO.
The microcontroller is only
driving the SCLK line (outputs
SCLK for the serial interface).

SPIWriteRoutine 

is called to

carry the write operation.

SPIWriteRoutine

 

– Writes the

data to be transmitted onto the
SPI pins.

CheckProductID

 

– This

function checks the product ID
of the sensor chip being used.
The ID returned should match
with the ADNS-6000’s ID.

GetButtons

 

– Returns the

current state of the buttons.

USB Functions

usbMain

 

– This routine

initializes the USB related
parameters and enables VREG
to signal the host that the
mouse has been connected. The
program then goes to the

usbTaskLoop 

.

usbTaskLoop

 

– This function

spins in an infinite loop
waiting for an event that needs
servicing. The 

ProcessButtons

and 

ReadProcessOptics

functions are called within this
loop to retrieve any new
motion or button information.
The data received from these
functions will be loaded into
the endpoint 1 buffer to be
sent to the host.

ep0SetupReceived

 

– This

routine is entered whenever a
SETUP packet is received in on
endpoint 0. It parses the
packet and calls the
appropriate routine to handle
the packet.

ep0InReceived

 

– This routine is

entered whenever an IN packet
is received on endpoint 0.

ep0OutReceived

 

– This routine

is entered whenever an OUT
packet is received on endpoint
0.

setDeviceConfiguration

 

– This

routine is entered when a SET
CONFIGURATION request has
been received from the host.

setDeviceAddress

 

– This

routine is entered whenever a

SET ADDRESS request has
been received. The device
address change cannot actually
take place until after the status
stage of this no-data control
transaction, so the address is
saved and a flag is set to
indicate that a new address
was just received. The code
that handles IN transactions
will recognize this and set the
address properly.

getDescriptor

 

– This routine is

entered when a GET
DESCRIPTOR request is
received from the host. This
function decodes the descriptor
request and sends the proper
descriptor.

setInterfaceIdle

 

– This routine

is entered whenever a SET
IDLE request is received. See
the HID specification for the
rules on setting idle periods.
This function sets the HID idle
time. See the HID
documentation for details on
handling the idle timer.

setInterfaceProtocol 

– This

routine is entered whenever a
SET PROTOCOL request is
received. This no-data control
transaction enables boot or
report protocol.

getInterfaceReport

 

– This

routine is entered whenever a
GET REPORT request is
received.

getInterfaceIdle

 

– This routine

is entered whenever a GET
IDLE request is received. This
function then initiates a
control-read transaction that
returns the idle time. See the
HID class documentation for
more details.

getInterfaceProtocol

 

– This

routine is entered whenever a
GET PROTOCOL request is
received. This request initiates
a control-read transaction that
tells the host if the mouse is

Summary of Contents for ADNK-6003

Page 1: ...ound at the USB Implementers Forum web site at www usb org ADNB 6001 laser mouse bundle set is the world s first laser illuminated navigation system With laser navigation technology the mouse can oper...

Page 2: ...x A However it may be more optimal to use a different I O configuration to meet the mechanical constraints of PCB design The reference firmware is designed to be easily configured to another set of pi...

Page 3: ...stors to turn on In between the phototransistors and LED is a pinwheel that turns on the mouse ball rollers The fan of this pinwheel is mechanically designed to block the infrared light such that the...

Page 4: ...r Customer Supplied PCB ADNS 6120 lens Customer Supplied Base Plate With Recommended Features Per IGES Drawing Customer Supplied VCSEL PCB ADNV 6330 VCSEL ADNS 6230 001 clip or ADNS 6130 001 for trim...

Page 5: ...nent manufacturing tolerances and the recommended temperature range when adjusted per the procedure below and when implemented as shown in the recommended application circuit of Figure A1 For more inf...

Page 6: ...08 or through most 3rd party programming companies For further information on this product please contact Cypress Semiconductor Lens The lens technical information is contained in the ADNS 6120 Data...

Page 7: ...Control Read and Control Write see Chapter 8 of the USB specification to determine the device type and how to configure communications with the device In this particular design only Control Read trans...

Page 8: ...dition exists on either line During this polling period we begin to count down the PS2 BAT delay If SCLK D is sampled high detect a PS2 interface If SDATA D sampled high disable the USB connect resist...

Page 9: ...t that needs servicing The ProcessButtons and ReadProcessOptics functions are called within this loop to retrieve any new motion or button information The data received from these functions will be lo...

Page 10: ...are to STALL these transactions PS 2 Firmware Description A function call map for PS 2 operation is shown in Figure 7 The following are descriptions of the functions in Adns 6000 asm PS 2 Functions PS...

Page 11: ...mmand from the host This routine then sends a mouse packet in response to the command PS2SetStreamMode This routine is called in response to a SET STREAM MODE command from the host Stream mode is then...

Page 12: ...S2SetStreamMode ReadDeviceType Reset Enable ResetWrapMode Disable PS2ResetScaling ReadDeltaX ReadDeltaY Read Z Wheel HostRequestToSend PS2HostINhibit PS2Send Send_1 Send_0 Figure 7 PS 2 Operation Func...

Page 13: ...re both LOW exists for 256us This ISR enables the USB Device Address sets up the endpoint modes and jumps to usbMain for the USB initialization Dual1msTimer This ISR reads the current status of the bu...

Page 14: ...owing string ADNS 6000 Mouse Configuration String A request for the configuration string will return the following string HID Compliant Mouse Endpoint 1 String A request for the endpoint string will r...

Page 15: ...r RBIN 24 MOSI 23 SCLK 21 MISO 22 R2 20K NCS 3 RESET NPD 4 R1 20K R9 10 K R10 10 K 24 MHz OSC_OUT OSC_IN GUARD X1 REFC REFB C9 0 1 C8 2 2 LASER_NEN XY_LASER Q2 2N3906 C2 0 1 C3 0 1 GND GND VDD3 VDD3 V...

Page 16: ...RES 20K 1 0 125W 0805_CUS 2 Chip RES 22K 1 0 125W 0805_CUS 2 Chip RES 240R 1 0 125W 0805_CUS 1 Resistor 18K7 1 0 25W AXIAL0 4 1 Resonator 24MHz RAD0 2B 1 MMBT3906 SOT 23 1 E Cap 2 2uF 50V CODE A 1 E C...

Page 17: ...17 Figure C2 PCB Schematic Top Layer Figure C1 PCB Schematic Bottom Layer Appendix C PCB Layout...

Page 18: ...18 Figure C4 PCB Schematic Bottom Overlay Figure C3 PCB Schematic Top Overlay...

Page 19: ...19 Appendix D Base Plate Feature Figure D1 Overall view of base plate...

Page 20: ...e 1 X X X X X X X X Byte 2 Y Y Y Y Y Y Y Y Bit 7 Bit 0 Byte 0 0 0 0 0 0 Middle Right Left Byte 1 X X X X X X X X Byte 2 Y Y Y Y Y Y Y Y Byte 3 R R R R R R R F R The following is the USB report protoco...

Page 21: ...Responds by sending a mouse report packet to host 0xEA Set Stream Mode Sets stream mode 0xE9 Status Request Returns current mode en disabled scaling button resolution and sampling rate information to...

Page 22: ...0x03 Read Device Type returns a value of 0x03 After the Read Device Type command returns 0x03 to indicate that this is a Microsoft compatible three button wheel mouse the wheel report format is enabl...

Page 23: ...0 001 LASER Assembly Clip LASER Clip 5 ADNV 6330 Single Mode Vertical Cavity Surface Emitting LASER VCSEL LASER 5 ADNK 6003 CD Includes Documentation and Support Files for ADNK 6003 Documentation a AD...

Page 24: ...88 6763 Europe 49 0 6441 92460 China 10800 650 0017 Hong Kong 65 6756 2394 India Australia New Zealand 65 6755 1939 Japan 81 3 3335 8152 Domestic Inter national or0120 61 1280 DomesticOnly Korea 65 67...

Reviews: