background image

8

2. Device Confi guration

During this time the host will set the standard PS/2 param-
eters such as scaling, resolution, stream mode; enabling 
stream mode for data reports. For a list of valid PS/2 com-
mands the mouse recognizes, see Appendix G.

3. Wheel Enable (optional)

Since the wheel is not part of the standard PS/2 specifi ca-
tion, there is a sequence of commands that enable the 
wheel. Wheel-aware drivers, such as those for Microsoft 
and Linux operating systems will initiate this special 
sequence.

After the following sequence of commands, the wheel 
report format is enabled.

0xF3, 0xC8 Set Sampling Rate 200 per second

0xF3, 0x64 Set Sampling Rate 100 per second

0xF3, 0x32 Set Sampling Rate 50 per second

0xF2, 0x03 Read Device Type returns a value of 0x03

After the Read Device Type command returns 0x03, 
indicating this is a Microsoft compatible three button 
wheel mouse, the wheel report format is enabled. See 
Appendix G for information on PS/2 standard and wheel 
reporting formats.

4. Post Start Up Operation

After the streaming mode is set and data reports are 
enabled, the mouse will send button, movement, and 
optionally, wheel reports back to the host. Whenever the 
mouse has new data to send it will initiate a transfer to 
the host.

USB Firmware Description

A function call map for USB operation is shown in Figure 
6. Following are descriptions of the functions in 

adns-

3080.asm.

Dual USB and PS2 Functions

GetMouseType

 

– called in dualMain when the mouse is fi rst 

plugged into the PC. This routine returns the interface of 
the mouse. The following sequences are performed by 
the micro-controller to determine the mouse type. 

- Delay 50mS. 

-  Initialize the PS2 BAT delay counter.

-  For a period of 2ms, poll the SCLK and SDATA lines 

every 10μs. If we get 4 samples in a row with non-
zero data on either line, detect a PS2 interface. If 2mS 
expires, enable the USB pull up resistor and delay 
500μS. 

-  Poll the SCLK and SDATA lines indefi nitely until a non-

zero condition 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 
resistor and Delay 100μS. 

-  If D+ and D- are both 0, detect a USB interface,  else 

detect a PS2 interface.

SPIInit

 

– This routine is called in the 

try_download 

to 

enable the SPI interface. The CY7C63743-PXC is always 
confi gured as a Master to drive the serial clock on P0.7. 
The clock is set to HIGH in idle state, and the SCLK fre-
quency is set to send a bit rate of 1Mbit/s.

SensorReset

 

– This routine resets the serial interface and 

the ADNS-3080 internal registers by generating a pulse 
on the RESET pin.

LoadSROM 

 

called in 

try_download 

after the initialization of 

the SPI interface. This routine is used to load the SROM 
(Shadow ROM) firmware into the ADNS-3080 optical 
sensor. It should be called after 

SensorReset

.

ProcessButtons

 

– This routine is called within the infi nite 

loop of 

usbTaskLoop 

and 

ps2TaskLoop

. The state of the 

buttons is updated every one ms in the 

Dual1msTimer 

Interrupt Service Routine (ISR). This routine compares the 
current state of the buttons with their last state to detect 
any changes in the status. If the status of these buttons 
remains until the expiration of debounce timer (15ms), 
the new button state is confi rmed. This routine will record 
the new button state in the 

[buttonValue] 

variable which 

will be reported to the host in the main loop.

ReadProcessOptics

 

– This routine returns any updates in the 

X, Y and Z-wheel motion information. The motion of the 
Z-wheel is detected using the traditional method by 
decoding the quadrature signal generated by the pho-
totransistors. The X and Y directions of the movement 
are obtained by calling the 

ReadDeltaX 

and 

ReadDeltaY 

routines. The X, Y, and Z-wheel movement is stored in 
the 

[xCount], [yCount], 

and 

[zCount] 

variables which will 

be sent to the host in the main routine. The 1600cpi is 
activated in this routine by writing to the Confi guration 
Register 0x0a with LED_MODE_1600.

ReadMotionReg

 

– Reads the ADNS-3080 Motion register. 

The data returned from this register will be used to deter-
mine if any motion has occurred or if any fault condition 
exists.

ReadDeltaX

 

– Reads the ADNS-3080 Delta_X register for the 

X movement. Calls the 

ReadSPI 

routine to enable the SPI 

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

[xCount] 

variable.

Summary of Contents for ADNK-3083

Page 1: ...load a full array of pixel values from a single frame To learn more about sensor s technical information please visit the Avago web site at http www semiconductor Avago com Introduction This design gu...

Page 2: ...D and Optical Encoder combination Mouse Buttons Mouse buttons are connected as standard switches These switches are pulled up by the pull up resistors inside the microcontroller When the user presses...

Page 3: ...0 asm listing The following statements are the pin definitions as they exist today The firmware will use these definitions to read and configure the GPIO pins without any other modifications Communica...

Page 4: ...in Figure 3 below ADNK 3083 Designer s Kit Optical Mouse The ADNK 3083 optical mouse unit allows users to evaluate the performance of the Avago s Optical Tracking Engine sensor lens LED assembly clip...

Page 5: ...r IGES drawing Sensor Lens Object Surface 2 40 0 094 To Disassemble the ADNK 3083 Unit The ADNK 3083 comprises of the plastic mouse casing printed circuit board PCB lens buttons and USB cable See Figu...

Page 6: ...lopment Kit and the CY3654 P05 Personality Board Programming support and programmer adaptors for the Cypress CY7C63743 PXC can be found through Cypress CY3649 xxxV CY3083 SC28 CY3083 08 or through mos...

Page 7: ...c product Note 3 MaxPower value should be changed as per specific circuit s current draw 4 Post Enumeration Operation Once communication between the host and mouse is established the mouse now has the...

Page 8: ...D sampled high disable the USB connect resistor and Delay 100 S If D and D are both 0 detect a USB interface else detect a PS2 interface SPIInit This routine is called in the try_download to enable t...

Page 9: ...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 Thi...

Page 10: ...l Map DualMain GetMouseType USB Main PS2 Interface System Initialization USB Initialization USBTaskLoop ProcessButtons ProcessOptics ReadMotionReg ReadDeltaX ReadDeltaY Read ZWheel Load new mouse pack...

Page 11: ...mand from the host The PS 2 mode is then set to remote mode PS2SetWrapMode This routine is called in response to a SET WRAP MODE command from the host It then sets the mouse mode to wrap mode See the...

Page 12: ...es and jumps to usbMain for the USB initialization Dual1msTimer This ISR reads the current status of the buttons Therefore every one millisecond the button state is updated the button status informati...

Page 13: ...sePacket HostRequestToSend PS2Receive GetBit send0 ReadMotionReg PS2SendResponseByte PS2Send Send_1 Send_0 ResetInterval PS2SetScaling SetWrapMode SetDefault PS2StatusRequest SetRemoteMode CheckWheel...

Page 14: ...ons L M QA QB Vcc GND V DD 19 16 GND 1K REFB 14 P0 3 7 NPD 4 P0 7 3 SCLK 21 P0 6 2 MISO 22 9 GUARD NC NC 11 18 20 P1 1 R 20 K 20 K 1 NCS LP2950ACZ 3 3 3 1 2 Vo Vin GND 4 7 F 0 1 F 0 1 F MMBT2222A 13 R...

Page 15: ...S 1 R16 Chip resistor 20K 1 0805_CUS 2 R8 R10 Chip resistor 240R 1 0805_CUS 1 R4 Resonator 24MHz XTAL4 1 X1 Transistor 2N2222 TO92C 1 Q3 Ceramic cap 2 2uF 16V 1206 1 C5 Tant cap 4 7uF 16V 1206 2 C2 C4...

Page 16: ...16 Figure C1 PCB Schematic Bottom Layer Figure C2 PCB Schematic Top Overlay Appendix C PCB Layout HLMP EG3E Figure C3 PCB Schematic Bottom Overlay...

Page 17: ...tional view of PCB assembly highlighting all optical mouse components optical mouse sensor clip lens LED PCB and base plate Clip LED PCB Sensor Lens Light Pipe Surface Base Plate Appendix D Base Plate...

Page 18: ...e Command Action 0xFF Reset Resets mouse to default states 0xFE Resend Resends last data to host 0xF6 Set Default Sets mouse to use default parameters 0xF5 Disable Disables the mouse 0xF4 Enable Enabl...

Page 19: ...dicate that this is a Microsoft compatible three button wheel mouse the wheel report format is enabled After this initialization sequence the PS 2 wheel reporting format is enabled The fourth byte rep...

Page 20: ...ADNS 2220 001 Assembly Clip Data Sheet d HLMP EG3E xxxxx Red LED Data Sheet Hardware Support Files a ADNK 3083 BOM List b ADNK 3083 Schematic c 3D Model IGES Files d Gerber File Software Support Files...

Reviews: