background image

6

Firmware Implementation

The fi rmware for this reference design is written in the 
Sunplus assembly language. The following fi les  are 
required to compile the mouse fi rmware.

SPCP825A _A6010.asm

 –main mouse fi rmware.

hiddesc3.asm

 - 3 buttons mouse mode USB descriptor ROM 

tables.  

Hiddesc5.asm

 – USB 3 Key Mode Descriptor Rom Tables

pro_6010.asm

 – Routine to access ADNS-6000 sensor 

register.

SPCP825A.inc

 – The SPCP825A I/O registers defi nition.

adns6010_SROM.inc

 – ADNS-6000 SROM fi rmware.

ADNS6010.inc

 – ADNS-6010 Sensor registers include fi les.

delay.inc

 – SPCP825A delay loop subroutine.

decode_setup.inc

 – USB descriptor and request constants.

det_Z.inc

 – SPCP825A Z-axis event handler.

DET_KEY.inc

 – SPCP825A button event handler.

MODE_SEL.inc

 – Detect Bus status for USB mode.

StartUp.asm

 – This include fi le is for AVAGO TECHNOLOGIES 

ADNS-6010 Mouse Sensor laser power calibration.

At power up, the fi rmware examines the host interface 
and automatically determines the mouse USB host con-
nection. Then the host fi rmware  confi gures  itself  to 
operate on the detected interface.

USB Interface

All USB Human Interface Device (HID) class applications 
follow the same USB start-up procedure. The procedure is 
as follows

1. Device Plug-in

When a USB device is fi rst connected to the bus, it is 
powered and running fi rmware, but communications on 
the USB remain non-functional until the host has issued 
a USB bus reset.

2. Bus Reset

The pull-up resistor on D– notifi es the hub that a low 
speed (1.5 Mbps) device has just been connected. The 
host recognizes the presence of a new USB device and 
initiates a bus reset to that device.

3. Enumeration

The host initiates SETUP transactions that reveal general 
and device specifi c information about the mouse. When 
the description is received, the host assigns a new and 
unique USB address to the mouse. The mouse begins 
responding to communication with the newly assigned 
address, while the host continues to ask for information 
about the device description, confi guration  descrip-

tion and HID report description. Using the informa-
tion returned from the mouse, the host now knows the 
number of data endpoints supported by the mouse (2). At 
this point, the process of enumeration is completed. 

Notes
1:  idVendor should be changed to the value as supplied by the USB-IF
2:  idProduct should be assigned for specifi c product.
3:  MaxPower value should be changed as per specifi c circuit’s current 

draw.

4. Post Enumeration Operation

Once communication between the host and mouse is es-
tablished, the peripheral now has the task of sending and 
receiving data on the control and data endpoints. In this 
case, when the host confi gures endpoint 1, the mouse 
starts to transmit button and motion data back to the 
host when there is data to send. At any time the periph-
eral may be reset or reconfi gured by the host.

USB Requests – Endpoint 0

Endpoint 0 acts as the control endpoint for the host. 
On power-up endpoint 0 is the default communication 
channel for all USB devices. The host initiates Control- 
Read and Control-Write (see Chapter 8 of the USB specifi -
cation) to determine the device type and how to confi gure 
communications with the device. In this particular design, 
only Control-Read transactions are required to enumerate 
a mouse. For a list of valid requests see Chapter 9 of the 
USBG specifi cation. In addition to the standard “Chapter 
9” requests, a mouse must also support all valid HID class 
requests for a mouse. 

USB Requests – Endpoint 1

Endpoint 1 is the data transfer communications channel 
for mouse button, wheel, and movement informa-
tion. Requests to this endpoint are not recognized until 
the host confi gures endpoint 1. Once this endpoint is 
enabled, then interrupt IN requests are sent from the host 
to the mouse to gather mouse data. When the mouse is 
left idle (i.e. no movement, no new button presses, no 
wheel movement) the fi rmware will NAK requests to this 
endpoint. Data is only reported when there is a status 
change with the mouse.

Two HID report formats are used in this design. The 
boot protocol, as defi ned by the HID specifi cation, is the 
default report protocol that all USB enabled systems un-
derstands. The boot protocol has a three-byte format, and 
so does not report wheel information. The HID report de-
scriptor defi nes the report protocol format. This format is 
four bytes and is the same as the report format with the 
exception of the fourth byte, which is the wheel infor-
mation. Appendix F of this document lists the USB Data 
Reporting Format. 

Содержание ADNK-6013-SP01

Страница 1: ...o moving parts which means high reliabil ity and less maintenance for the end user In addition precision optical alignment is not required facilitating high volume assembly The ADNS 6010 enables 400cp...

Страница 2: ...rive the data via MISO The microcontroller is only driving the SCLK line outputs SCLK for the serial interface Optical Sensor Avago Technologies ADNS 6010 optical sensor is used in this reference desi...

Страница 3: ...sses a button the switch will be closed and the pin will be pulled LOW to GND A LOW state at the pin is interpreted as the button being pressed A HIGH state is interpreted as the button has been relea...

Страница 4: ...6010 optical mouse sensor Dimension in millimeters inches Figure 5 Distance from lens reference plane to surface Enabling the SROM The ADNS 6010 must operate from the externally loaded programming Thi...

Страница 5: ...n Note 5088 LASER Power Adjustment Procedure 1 The ambient temperature should be 25C 5C 2 Set VDD3 to its permanent value 3 Ensure that the laser drive is at 100 duty cycle by setting bit 6 of registe...

Страница 6: ...e mouse 2 At this point the process of enumeration is completed Notes 1 idVendor should be changed to the value as supplied by the USB IF 2 idProduct should be assigned for specific product 3 MaxPower...

Страница 7: ...is to check the SROM ID if product device and program ID do not match the program is trapped in the dead loop and thus the device is unusable disable_laser This function is called to disable the oper...

Страница 8: ...nge 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...

Страница 9: ...following string ADNS 6010 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 w...

Страница 10: ...it level block diagram for ADNK 6013 SP01 designer s kit optical mouse using the Avago Technologies ADNS 6010 optical mouse sensor and Sunplus SPCP825A USB Controller Appendix A Schematic Diagram of t...

Страница 11: ...05 1 Chip RES 12 7k 1 0805 1 Cer Cap 470pF 0805 1 Cer Cap 100nF 0805 6 CAPTANTALUM 4 7uF 20V CASE A 2 CAPTANTALUM 2 2uF 10V CASE A 2 PhotoTransistor DIP 1 2N3906 TO92 1 Resonator 6MHz SMD 1 Resonator...

Страница 12: ...12 Appendix C PCB Layout Figure C1 PCB Schematic Bottom Layer Figure C2 PCB Schematic Top Layer...

Страница 13: ...13 Figure C4 PCB Schematic Bottom Overlay Figure C3 PCB Schematic Top Overlay...

Страница 14: ...Y Y Y Y The following is the USB report protocol format and allows the additional wheel movement information in the fourth byte When the wheel is moved forward the fourth byte reports a 0x01 and when...

Страница 15: ...e Lens 5 ADNS 6130 001 Laser VCSEL Trim Lens Plate Lens 5 ADNS 6230 001 Laser VCSEL Assembly Clip VCSEL Clip 5 ADNV 6340 Single Mode Vertical Cavity Surface Emitting LASER VCSEL VCSEL 5 ADNK 6013 SP01...

Отзывы: