background image

13

SET RESOLUTION Command

The SET RESOLUTION
command is conditionally
enabled by the statement
“#define
ENABLE_RESOLUTION”. On
most systems this command is
not supported. If you wish to
disable this command in the
firmware, comment out the
aforementioned statement.

SET SCALING Command

The SET SCALING command is
conditionally enabled by the
statement “#define
ENABLE_SCALING”. On most
systems this command is not
supported. If you wish to
disable this command in the
firmware, comment out the
aforementioned statement.

Interrupt Service Routines (ISR)

The CY7C63743-PXC features
12 different sources of
interrupts. There are only four
ISRs implemented in this
application. If an interrupt is
enabled and the conditions for
the interrupts are met, the
microcontroller will generate
an interrupt. Upon servicing
the interrupt, the hardware
will first disable all interrupts
by clearing the Global
Interrupt Enable bit. This is
followed by an automatic
CALL instruction to the ROM
address of the interrupt being
serviced in the Interrupt
Vector. The instruction in the
Interrupt Vector is typically a
JMP instruction to the
Interrupt Service Routine
(ISR). A RETI or RET
instruction at the end of the
ISR brings the program
counter (PC) back to the
location prior to the interrupt
(POR and USB Bus Reset are
exceptions).

DualMain

 

– When power is

first applied to the
CY7C63743-PXC, a Power On
Reset (POR) occurs; the
microcontroller starts executing
code from address 0x00. This
is a JMP instruction to the

DualMain 

routine. This routine

initializes the program stack
pointer (PSP), data stack
pointer (DSP), ram variables,
and the GPIO pins. This
routine calls 

GetMouseType

which returns the interface of
the mouse. If a USB interface
is detected, the program jumps
to the 

usbMain 

loop.

Otherwise, the program goes to
the 

ps2Main 

loop.

DualUsbBusReset_ps2Error

 

The USB-PS2 Interrupt Mode
bit in the USB Status and
Control Register is defaulted to
“0”, or USB mode. This
indicates that the USB Bus
Reset interrupt will be
generated if the SE0 condition
(D+ and D- are 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
buttons. Therefore, every one
millisecond the button state is
updated; the button status
information will be used by
the 

ProcessButtons 

function at

a later time. This ISR
maintains the

dualInterface1ms 

counter

variable which is used as a
1ms timing reference in other
parts of the program. This
routine also handles the
entrance/exit from suspend.
The mouse will prepare to
enter a suspend (low power)
state if there is no bus activity
in 3ms. If the mouse is
configured for remote wakeup,
the Bus Reset and wakeup
interrupts are enabled prior to

suspending the chip. The
program then enters a
suspended state, and will wake
at least as often as the
wakeup timer interrupts or as
a result of the USB Bus Reset
interrupt. Each time the chip
wakes up due to the wake up
timer interrupt, the state of
the buttons is examined by the

GetButtons 

function. If a

change in the button state has
occurred, the mouse will
generate a resume signal to
the host and exit the ISR. If
the device is not enabled for
remote wakeup, only the USB
bus reset interrupt is enabled,
and the part is suspended.
Only a Bus Reset can wake up
the chip. If the resume was
due to bus activity, the
firmware returns to the main
loop. If the resume was due to
a button press, a K state is
driven upstream for 14
milliseconds prior to returning
to the main loop. Moving the
mouse will not wake the
suspended system.

DualUsbEndpoint0_ps2Error

 

This ISR is entered upon
receiving an Endpoint 0
interrupt. Endpoint 0
interrupts occur during the
Setup, data, and status phases
of a control transfer. This ISR
handler jumps to the proper
routine to handle one of these
phases.

DualUsbEndpoint1_ps2Error

 

This ISR is entered upon
receiving an Endpoint 1
interrupt. If the ACK bit is set,
indicating that a mouse packet
was just transmitted to the
host successfully, the SIE
automatically sets the endpoint
mode to NAK_IN mode, and
the data toggle bit is flipped
for the next transaction. The
data toggle bit should never be
toggled if the interrupt was a
result of a NAK transaction.

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: