ISD94100 Series Technical Reference Manual
Sep 9, 2019
Page
835
of 928
Rev1.09
IS
D
9
410
0
S
ER
IE
S
T
E
C
HN
ICA
L
RE
F
E
RE
NCE
M
AN
U
AL
6.18.5 Functional Description
6.18.5.1 Serial Interface Engine (SIE)
The SIE is the front-end of the device controller and handles most of the USB packet protocol. The
SIE typically comprehends signaling up to the transaction level. The functions that it handles could
include:
Packet recognition and transaction sequencing
SOP, EOP, RESET, RESUME signal detection/generation
Clock/Data separation
NRZI Data encoding/decoding and bit-stuffing
CRC generation and checking (for Token and Data)
Packet ID (PID) generation and checking/decoding
Serial-Parallel/Parallel-Serial conversion
6.18.5.2 Endpoint Control
This controller supports 12 endpoints. Each of the endpoint can be configured as Control, Bulk,
Interrupt, or Isochronous transfer type. All the operations including Control, Bulk, Interrupt and
Isochronous transfer are implemented in this block. It is also used to manage the data sequential
synchronization, endpoint state control, current endpoint start address, current transaction status,
and data buffer status in each endpoint.
6.18.5.3
Digital Phase Lock Loop (DPLL)
The bit rate of USB data is 12 MHz. The DPLL uses the 48 MHz which comes from the clock
controller to lock the input data RXDP and RXDM. The 12 MHz bit rate clock is also converted from
DPLL.
6.18.5.4
VBUS Detection De-bouncing
A USB device may be plugged-in or plugged-out from the USB host. To monitor the state of a USB
device when it is detached from the USB host, the device controller provides hardware de-bouncing
for USB VBUS detection interrupt to avoid bounce problems on USB plug-in or unplug. VBUS
detection interrupt appears about 10 ms later than USB plug-in or plug-out. User can acknowledge
USB plug-in/plug-out by reading USBD_VBUSDET register. The VBUSDET flag represents the
current state on the bus without de-bouncing. If VBUSDET is 1, it means the USB cable is plugged-
in. If user polls the flag to check USB state, software de-bouncing must be added if needed.
6.18.5.5
Interrupt control
This USB provides 1 interrupt vector with 4 interrupt events (NEVWK, VBUSDET, USB and BUS).
The NEVWK event occurs after waking up the system from Power-down mode (The power mode
function is defined in system power-down control register, CLK_PWRCTL). The VBUSDET event
is used for USB plug-in or unplug. The USB event notifies users of some USB requests, such as IN
ACK, OUT ACK., and the BUS event notifies users of some bus events, such as suspend and,
resume. The related bits must be set in the interrupt enable register (USBD_INTEN) of USB Device
Controller to enable USB interrupts.
NEVWK interrupt is only presented when no the other USB interrupt events happened more than
20ms after the chip is waked up from Power-down mode. After the chip enters Power-down mode,
any change on USB_VBUS, USB_D+ and USB_D- can wake up this chip if USB wake-up function
is enabled. If this change is not intentionally, no interrupt but NEVWK interrupt will occur. After
waking up by USB, this interrupt will occur when no the other USB interrupt events are presented
for more than 20ms. The Figure 6.18-2 is the control flow of wake-up interrupt.