
C161U
USB Interface Controller
Data Sheet
349
2001-04-19
If an endpoint was stalled during a in-transfer, this transfer will be finished and the next
request by the host will return a stall-handshake. If there is data in the fifo for transission,
the data will be kept and sent, if the stall-condition is abolished and host requests for this
data.
A stall-condition during an out-transfer will finish first and the next request will return a
stall-handshake.
Endpoint zero has only one stall-bit for both directions, for in and out. A stall on one
direction will also lead to a stall in the other transfer-direction.
15.7.8
Start of Frame
Host sends a Start of Frame-(SOF)-signal every ms. A SOF-interrupt is generated and
the value of the actual frame-number is stored in the SOF-register. There is no overwirte-
protection on this register, the value is always updated if a valid SOF-packid is received.
15.7.9
Suspend and Suspendoff
In normal operation, there is the UDC-clock of 48 MHz enabled and the normal CPU-
clock which may vary according to the divider in the clock-generation-unit.
If the host is sending a suspend-request (by driving an idle-state for more than 6 ms),
after 6 ms the suspend-interrupt will be generated. This must cause SW to go in low-
power mode. There are different modes in which the chip can be set. According to the
mode the wakeup initiated by the host, must be detected differently:
Using the bit 0 in clc register of every peripheral to turn off the clock. The suspendoff
interrupt is generated even though the rest of the usbblk is turned off.
Using the SYSCON3 register to turn off the clock of xbus and pdbus peripherals
(peripheral disable only). The SYSCON3 register is a write protected register and SW
first must go into low protected mode to be able to do this (see page 393 for
SYSCON3 register description). In this mode also, the suspendoff interrupt is
generated.
Using the SYSCON3 register group disable (msb of the register) to turn off all the xbus
and pdbus peripherals. In this mode, the normal suspendoff interrupt is not generated,
wakeup must be done with the falling edge of the fast external interrupt alternate
function firq_alt(5).
Going into sleep mode which stops program execution and turns off the clock for most
of the entire chip. In this mode the fast external interrupt alternate function firq_alt(5)
is also generated and will wakeup the cpu. Program execution will start with the
interrupt procedure of the interrupt, or, if SW was in an interrupt routine with a higher
priority before, program execution will continue at the point, it was stopped.
If SW wants to send a device-wakeup this feature must have been enabled by the host.
Whether this feature was enabled or not, is reflected in the STATUS3 register. If this
feature is enabled, and SW wants to wake up the USB, it must turn on the clocks and