CY7C68013
Document #: 38-08012 Rev. *A
Page 9 of 48
3.7.2
USB-Interrupt Autovectors
The main USB interrupt is shared by 27 interrupt sources. To save the code and processing time that normally would be required
to identify the individual USB interrupt source, the FX2 provides a second level of interrupt vectoring, called Autovectoring. When
a USB interrupt is asserted, the FX2 pushes the program counter onto its stack then jumps to address 0x0043, where it expects
to find a “jump” instruction to the USB Interrupt service routine.
The FX2 jump instruction is encoded as follows.
If Autovectoring is enabled (AV2EN = 1 in the INTSETUP register), the FX2 substitutes its INT2VEC byte. Therefore, if the high
byte (“page”) of a jump-table address is preloaded at location 0x0044, the automatically-inserted INT2VEC byte at 0x0045 will
direct the jump to the correct address out of the 27 addresses within the page.
Table 3-2. INT2 USB Interrupts
USB INTERRUPT TABLE FOR INT2
Priority
INT2VEC Value Source
Notes
1
00
SUDAV
SETUP Data Available
2
04
SOF
Start of Frame (or microframe)
3
08
SUTOK
Setup Token Received
4 0C
SUSPEND
USB
Suspend
request
5
10
USB RESET
Bus reset
6
14
HISPEED
Entered high speed operation
7 18
EP0ACK FX2
ACK’d the CONTROL Handshake
8 1C
reserved
9
20
EP0-IN
EP0-IN ready to be loaded with data
10
24
EP0-OUT
EP0-OUT has USB data
11
28
EP1-IN
EP1-IN ready to be loaded with data
12
2C
EP1-OUT
EP1-OUT has USB data
13
30
EP2
IN: buffer available. OUT: buffer has data
14
34
EP4
IN: buffer available. OUT: buffer has data
15
38
EP6
IN: buffer available. OUT: buffer has data
16
3C
EP8
IN: buffer available. OUT: buffer has data
17
40
IBN
IN-Bulk-NAK (any IN endpoint)
18 44
reserved
19
48
EP0PING
EP0 OUT was Pinged and it NAK’d
20
4C
EP1PING
EP1 OUT was Pinged and it NAK’d
21
50
EP2PING
EP2 OUT was Pinged and it NAK’d
22
54
EP4PING
EP4 OUT was Pinged and it NAK’d
23
58
EP6PING
EP6 OUT was Pinged and it NAK’d
24
5C
EP8PING
EP8 OUT was Pinged and it NAK’d
25
60
ERRLIMIT
Bus errors exceeded the programmed limit
26 64
reserved
27 68
reserved
28 6C
reserved
29
70
EP2ISOERR
ISO EP2 OUT PID sequence error
30
74
EP4ISOERR
ISO EP4 OUT PID sequence error
31
78
EP6ISOERR
ISO EP6 OUT PID sequence error
32
7C
EP8ISOERR
ISO EP8 OUT PID sequence error