5 usb examples, 12 .5 usb examples -16 – Maxim Integrated MAXQ622 User Manual
Page 186

MAXQ612/MAXQ622 User’s Guide
12-16
Maxim Integrated
12.5 USB Examples
12.5.1 USB Example 1: Reading from an Internal USB Register (EPINT)
To read from an internal USB register, the user will write the destination register offset to UADDR and wait for UBUSY
to clear before valid data is available from UDATA .
;; reading from USB register
MOV UADDR, #EPINT
; Read EPINT register, #EPINT = 87h
; (RW=1, ADDR=00111)
CHK: MOV
C, UADDR.6 ; loop to check UBUSY flag
JUMP NC, CHK
; and wait for it to clear
MOV C, UDATA.INBAV0 ;checking for EP0 Buffer Available Flag
Figure 12-4. Reading from an Internal USB Register
CPU_CLK
CPU WRITE
REG_ADDR1
SET UBUSY = 1
CPU READS
UBUSY = 0
CPU READS
UDATA1
CPU WAIT
UADDR[4:0]
UDATA[7:0]
USBRW
UBUSY
SIE_CLK
SIE_DATA[7:0]
SIE_UBUSY
REG_ADDR1
UDATA1
UDATA1
USBRW SELF-CLEARED
AT NEXT CPU_CLK
CLEARS CPU UBUSY
CLEARS SIE_UBUSY
SIE OUTPUT
UDATA1