NET2888 USB Interface Controller Spec
NET2888 USB Interface Controller Spec
Technology, Inc.
335 Pioneer Way
Mt View, California 94041
(650) 526-1490 Fax (650) 526-1494
e-mail: sales@[Link]
Internet: [Link]
Doc #: 605-0002-0300
Revision: 3.0
Date: 12 / 17 / 97
Specification NET2888 USB Interface controller
This document contains material that is confidential to NetChip. Reproduction without the express written
consent of NetChip is prohibited. All reasonable attempts were made to ensure the contents of this
document are accurate, however no liability, expressed or implied is guaranteed. NetChip reserves the
right to modify this document, without notification, at any time.
Revision History
____________________________________________________________________________________ 2
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
1. Highlights .............................................................................................................................................6
1.1 Features...........................................................................................................................................6
1.2 Overview.........................................................................................................................................6
1.3 NET2888 Block Diagram ................................................................................................................7
1.4 NET2888 Typical System Block Diagram........................................................................................7
1.5 Changes from Rev 2 to Rev 3 ..........................................................................................................8
1.5.1 Pin Changes..............................................................................................................................8
1.5.2 Register Changes ......................................................................................................................8
1.5.3 Functional Changes ..................................................................................................................8
1.6 Changes From Rev 1 to Rev 2..........................................................................................................8
1.6.1 Pin Changes..............................................................................................................................8
1.6.2 Register Changes ......................................................................................................................8
1.6.3 Functional Changes ..................................................................................................................9
2. Pin Connection Diagram .....................................................................................................................10
3. Pin Description ...................................................................................................................................11
4. Functional Description ........................................................................................................................14
4.1 USB Interface................................................................................................................................14
4.2 Local Bus ......................................................................................................................................14
4.2.1 CPU Controlled USB to Local Bus Transfers ..........................................................................14
4.2.2 CPU Controlled Local Bus to USB Transfers ..........................................................................15
4.2.3 DMA Controlled USB to Local Bus Transfers.........................................................................15
4.2.4 DMA Controlled Local Bus to USB Transfers.........................................................................16
4.2.5 Terminating DMA Transfers ..................................................................................................16
4.2.6 USB Endpoint 1 Receive Mailboxes........................................................................................16
4.2.7 USB Endpoint 2 Transmit Mailboxes......................................................................................16
4.3 Suspend Mode ...............................................................................................................................17
4.3.1 The Suspend Sequence............................................................................................................17
4.3.2 Device-Remote Wake-Up........................................................................................................17
4.3.3 Host-Initiated Wake-Up ..........................................................................................................17
4.4 NET2888 Power Configuration .....................................................................................................17
4.4.1 Bus-Powered Device ...............................................................................................................18
4.4.2 Self-Powered Device ...............................................................................................................18
5. Local Registers....................................................................................................................................19
5.1 Register Description ......................................................................................................................19
5.2 Register Summary .........................................................................................................................19
5.3 (Address 00h; DCTL) DMA Control Register................................................................................20
5.4 (Address 01h; IRQENB1) Interrupt Enable Register 1 ...................................................................20
5.5 (Address 02h; IRQSTAT1) Interrupt Status Register 1 ..................................................................22
5.6 (Address 03h; IRQENB2) Interrupt Enable Register 2 ...................................................................22
5.7 (Address 04h; IRQSTAT2) Interrupt Status Register 2 ..................................................................22
5.8 (Address 08h; EP1IDX) Endpoint 1 Index Register .......................................................................23
5.9 (Address 09h; EP1DATA) Endpoint 1 Receive Mailbox Data........................................................23
5.10 (Address 0Ch; EP2IDX) Endpoint 2 Index Register.....................................................................23
5.11 (Address 0Dh; EP2DATA) Endpoint 2 Transmit Mailbox Data...................................................24
5.12 (Address 0Eh; EP2POLL) Endpoint 2 Interrupt Polling Interval Register ....................................24
____________________________________________________________________________________ 3
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 4
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 5
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
1. Highlights
1.1 Features
1.2 Overview
The NET2888 USB Interface Controller allows bulk or isochronous data transfers between a
generic local bus and a Universal Serial Bus (USB). The NET2888 supports the connection
between a host computer and an intelligent peripheral such as a digital camera or scanner.
The three main components of the NET2888 are the USB Bus Interface, the dual 64 byte FIFOs,
and a Local Bus Interface.
The USB Interface is responsible for the following functions:
• FIFO Control
• Local CPU interface
• Local DMA controller interface
• Interrupts
____________________________________________________________________________________ 6
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
D[7:0] 64 Byte
A[4:0] Receive FIFO
CS#
IOR#
64 Byte
IOW# Transmit FIFO
USB Serial D+
DRQ Interface Engine USB PORT
and Controller D-
DACK#
8-Byte Mailbox,
Bulk Endpoint
EOT#
IRQ# Local Bus
Controller
RESET# 8-Byte Mailbox,
Interrupt Endpoint
ISO#
WAKEUP#
SUSP#
DEVCFG#
BUSPWR#
PWRGOOD#
LCLK
LRESET#
Scanner/Camera
Shared Memory Microprocessor
Controller
Data Bus
DMA Controller
(Optional)
NET2888
USB PORT
____________________________________________________________________________________ 7
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
The following changes have been made to the NET2888 from Revision 1 to Revision 2.
____________________________________________________________________________________ 8
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
EXTIDX: Added.
EP4STAT: Added EP4 Valid bit
EXTDATA: Added the following extended data registers
VIDMSB: Vendor ID MSB
VIDLSB: Vendor ID LSB
PIDMSB: Product ID MSB
PIDLSB: Product ID LSB
RELMSB: Release Number MSB
RELLSB: Release Number LSB
RCVAFTH: Receive FIFO Almost Full Threshold
XMTAETH: Transmit FIFO Almost Empty Threshold
STRCTL: USB Descriptor String Control
FIFOCTL: FIFO control register
MAXPWR: Maximum power-consumption register
____________________________________________________________________________________ 9
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
VDD(LOCAL)
WAKEUP#
DEVCFG#
LRESET#
USBOE#
RESET#
SUSP#
TEST
IRQ#
ISO#
VDD
VSS
36
35
34
33
32
31
30
29
28
27
26
25
VDD 37 24 VSS
A0 38 23 PWRGOOD#
A1 39 22 BUSPWR#
A2 40 21 EOT#
A3 41 20 DACK#
A4 42
NET 2888 19 DRQ
QFP12 - 48 pin
43 18
VDD
(Top View) IOW#
CLK IN 44 17 IOR#
VSS 46 15 CS#
NC 47 14 D0
VSS 48 13 VDD
10
11
12
1
9
VDD
VSS
D1
DM
NC
DP
D7
D6
D5
D4
D3
D2
____________________________________________________________________________________ 10
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
3. Pin Description
Pin Type Description
I Input
O Output
I/O Bi-Directional
S Schmitt Trigger
TS Tri-State
TP Totem-Pole
OD Open-Drain
PD 50K Pull-Down
PU 50K Pull-Up
# Active low
NOTE: Input pins that do not have an internal pull-up or pull-down resistor (designated by PU or PD in
the ”Type” column below) must be driven externally when the Net2888 is in the suspended state.
____________________________________________________________________________________ 11
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
IOW# 18 I, PU I/O Write. The I/O write strobe is asserted along with CS# and
A[4:0] when a device on the local bus writes to an internal register or
the FIFO. It also allows the FIFO to be written during DMA transfers
when DACK# is asserted.
DRQ 19 O, 12mA, DMA Request. This signal indicates to an external DMA controller
TP that a byte should be transferred to/from the FIFO. During a transfer,
DRQ remains asserted until the DACK# input goes active. This
output floats when the device is suspended by the USB Host.
DACK# 20 I, PU DMA Acknowledge. This signal from the external DMA controller
is used to transfer data to/from the FIFO in response to DRQ. IOR#
and IOW# determine the direction of the DMA transfer.
EOT# 21 I, PU End of Transfer. This signal from the external DMA controller is
used to terminate a DMA transfer. If it is asserted during a DMA
cycle, the current byte will be transferred, but no additional bytes will
be requested. EOT# can be programmed to cause a USB interrupt.
IRQ# 26 O, 12mA, Interrupt Request Output. The interrupt request output is used to
OD interrupt a processor on the local bus. There are several sources of
this interrupt which are described in the Register Description Section.
USBOE# 27 O, 12mA, USB Port Output Enable. This active low output is true when the
TP, PU NET2888 is driving the USB port data lines. This signal is not driven
while the device is suspended, but will be pulled high by the internal
pull-up resistor.
DEVCFG# 28 O, 12mA, Device Configured. This active low output is true when the
TP, PD NET2888 has been configured by the USB host. This signal is not
driven while the device is suspended, but will be pulled low by the
internal pull-down resistor.
SUSP# 33 O, 12mA, Device Suspended. This active low output is true when the
TP, PD NET2888 has been suspended by the USB host. This signal is not
driven while the device is suspended, but will be pulled low by the
internal pull-down resistor.
LCLK 16 O, 12mA, Local Clock. This pin is a buffered output from the internal 48 MHz
TP, PD oscillator. This signal is not driven while the device is suspended, but
will be pulled low by the internal pull-down resistor.
LRESET# 32 O, 12mA, Local Reset. This active low output is asserted when either the
TP, PU RESET# pin is asserted, or a USB port reset is detected. This signal is
not driven while the device is suspended, but will be pulled high by
the internal pull-up resistor.
ISO# 29 I Isochronous Mode Select. This active low input selects isochronous
mode for USB transfers to and from the FIFOs.
WAKEUP# 34 I, PU Wakeup. This active low input causes the NET2888 to perform a
USB remote wakeup.
BUSPWR# 22 I Bus Powered. This active low input indicates that the logic external
to the NET2888 is powered by the USB bus. If this input is high,
then the external logic is self-powered.
____________________________________________________________________________________ 12
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
PWRGOOD# 23 I Power Good. This active low input indicates that an external power
supply used for self-powered mode is operational.
TEST 30 I, PD Test. For normal operation, connect this pin to ground.
NC 2, 47 -- No connect.
VDD 1, 13, Power Core Supply Voltage. Connect this pin to the +3.3V supply voltage
(USB, Core) 25, to supply the core and the USB interface.
37,43
VDD 31 Power Local Supply Voltage. Connect this pin to the +3.3V or +5.0V
(Local) supply voltage to supply the local interface.
VSS 12, 24, GND Device Ground. Connect this pin to ground.
36,
46,48
____________________________________________________________________________________ 13
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
4. Functional Description
• Endpoint 0. This control endpoint is used to initialize the device, and provides access to USB
configuration, control and status registers.
• Endpoint 1. This endpoint supports bulk transfers from the USB host to the NET2888 receive
mailboxes.
• Endpoint 2. This endpoint supports interrupt transfers from the NET2888 transmit mailboxes to the
USB host.
• Endpoint 3. This endpoint supports bulk or isochronous data transfers from the USB host to the
NET2888 Receive FIFO.
• Endpoint 4. This endpoint supports bulk or isochronous data transfers from the NET2888 Transmit
FIFO to the USB host.
If the interrupt status bit from the previous packet is not cleared, then the NET2888 will return a USB
NAK acknowledge to the host, signaling that the data could not be accepted. If the FIFO fills up during
an ISO transfer, the endpoint NAK status bit will be set in the USB Status Register, but no handshaking to
the host will occur.
If the local CPU has stalled this endpoint, the NET2888 will not store any data into the FIFO, and will
respond with a STALL acknowledge.
The local CPU can either start polling for valid FIFO data immediately after setting up the transfer with
the USB host, or can wait for a packet complete interrupt. As the FIFO is filling up from the USB side,
the local CPU can poll the FIFO status register to determine when a byte is available. Otherwise it can
wait until the packet complete interrupt and read the entire packet at once.
Once an end of packet occurs, an interrupt can be generated to the local CPU. The local CPU can read a
status port to detect whether the packet was acknowledged with an ACK, NAK, or STALL. If none of
these acknowledge bits are set, then a timeout has occurred. For NAK or timeout conditions at the
completion of bulk transfers, the USB host will send another OUT token, and the NET2888 should receive
the same packet again.
____________________________________________________________________________________ 14
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
After the block has been loaded into the transmit FIFO, the local and host CPUs arrange to transfer the
block of data from the transmit FIFO to host memory. The USB host sends an IN token to the NET2888
and starts a USB bulk or isochronous read from the transmit FIFO. The CPU writes and USB read
operations could occur concurrently if the local CPU can provide data at a fast enough rate to keep up with
the USB bus.
When the transmit FIFO becomes empty, the NET2888 will terminate the packet with an EOP (end of
packet), signaling that there is no more data available. Once an end of packet occurs, an interrupt can be
generated to the local CPU. The local CPU can read a status port to detect whether the packet was
acknowledged with an ACK from the host, or whether the NET2888 responded to the IN token with a
NAK or STALL. If none of these acknowledge bits are set, then a timeout has occurred. For NAK or
timeout conditions at the completion of bulk transfers, the USB host will send another IN token, and the
NET2888 should re-transmit the same packet.
After the DMA controller has been programmed, the DMA request enable bit is set in the NET2888. The
USB host performs USB bulk or isochronous data transfers over the USB bus to the receive FIFO in the
NET2888. If the interrupt status bit from the previous packet is not cleared, then the NET2888 will
return a USB NAK acknowledge to the host, signaling that the data could not be accepted. If the FIFO
fills up during an ISO transfer, the endpoint NAK status bit will be set in the USB Status Register, but no
handshaking to the host will occur.
If the local CPU has stalled this endpoint, the NET2888 will not store any data into the FIFO, and will
respond with a STALL acknowledge.
As long as there is data available in the FIFO, the NET2888 will request local DMA transfers by asserting
DRQ. The DMA controller then requests the local bus from the local CPU. After the DMA controller has
been granted the bus, it drives a valid memory address and asserts DACK#, IOR#, and MEMW#, thus
transferring a byte from the NET2888 receive FIFO to memory. This process continues until the DMA
byte count reaches zero. A local bus interrupt may be programmed to occur when the DMA has finished.
Once an end of packet occurs, an interrupt can be generated to the local CPU. The local CPU can read a
status port to detect whether the packet was acknowledged with an ACK, NAK, or STALL. If none of
these acknowledge bits are set, then a timeout has occurred. For NAK or timeout conditions at the
completion of bulk transfers, the USB host will send another OUT token, and the NET2888 should receive
the same packet again.
An early end-of-packet (EOP) can be detected by the local CPU if the DMA count is non-zero. The local
and host CPUs should then decide how to proceed.
____________________________________________________________________________________ 15
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
After the DMA has been started, the local CPU can signal the USB host to start a bulk read using
endpoint 2. Isochronous packets occur at pre-arranged intervals, so no signaling is required. The USB
host sends an IN token to the NET2888 and starts a USB bulk or isochronous data transfer from the
transmit FIFO. The DMA transfers continue until the DMA byte count reaches zero. An interrupt can be
generated to the local CPU when the DMA has finished.
When the transmit FIFO becomes empty, the NET2888 will terminate the packet with an EOP (end of
packet), signaling that there is no more data available. Once an end of packet occurs, an interrupt can be
generated to the local CPU. The local CPU can read a status port to detect whether the packet was
acknowledged with an ACK from the host, or whether the NET2888 responded to the IN token with a
NAK or STALL. If none of these acknowledge bits are set, then a timeout has occurred. For NAK or
timeout conditions at the completion of bulk transfers, the USB host will send another IN token, and the
NET2888 should re-transmit the same packet.
If no EOT# signal is provided by the DMA controller, the DMA transfer can be halted at any time by
resetting the NET2888 DMA request enable bit. If the NET2888 DMA request enable bit is cleared during
the middle of a DMA cycle, the current cycle will complete before DMA requests are terminated.
and sets the transmit mailbox valid bit. The host performs a USB 8-byte interrupt transfer from the
endpoint 2 transmit mailbox registers. After the USB interrupt transfer has completed, the transmit
mailbox valid bit is cleared. The CPU should only write to the transmit mailbox registers when the valid
bit is not set. This guarantees that a previous interrupt transfer has completed before the register values
are changed. If the USB host tries to read endpoint 2 when the valid bit is not set, a NAK acknowledge is
returned. An index pointer is used to access the transmit mailboxes. It must be initialized by the local
CPU, and is automatically incremented after the local CPU reads or writes the transmit mailbox data
register
The local CPU accepts this interrupt by clearing the corresponding bit in the IRQSTAT1 register, and
performs the tasks required to ensure that not more than 500 µA of current is drawn from the USB power
bus. Then it writes a 1 to bit 7 of the USB status register (USBSTAT) to initiate the suspend.
In suspend mode, the NET2888’s oscillator shuts down, and most output pins are tri-stated to conserve
power (see section 3, Pin Description, above). The SUSP# output pin will be low while the device is in
the suspended state. Note that input pins on the NET2888 which do not have an internal pull-up or pull-
down resistors should not be allowed to float during suspend mode. The NET2888 will leave suspend
mode by detecting traffic on the USB bus or by a device remote wake-up from the local CPU.
The most significant consideration when deciding whether to build a bus-powered or a self-powered
device is power consumption. The USB specification lays out the following requirements for maximum
current draw:
____________________________________________________________________________________ 17
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
• A peripheral not configured by the host (signified on the NET2888 by the DEVCFG# output
pin) can draw only 100 mA from the USB power pins.
• A device may not draw more than 500 mA from the USB connector’s power pins.
• In suspend mode, the peripheral may not draw more than 500 µA from the USB connector’s
power pins
If these power considerations can be met without the use of an external power supply, the peripheral can
be bus-powered; otherwise a self-powered design should be implemented.
While the peripheral is connected to the USB, the NET2888 will automatically request suspend mode
when appropriate, as described in section 4.3.
In power-sensitive applications, the NET2888 can be forced to enter low-power suspend mode when
disconnected from the USB. Setting bit 7 of the USBSTAT register when USB power has been removed
forces the NET2888 to enter low-power suspend mode. The NET2888 will automatically wake-up when
the peripheral is re-connected to the USB. Do not force suspend mode unless the peripheral is
disconnected from the USB.
____________________________________________________________________________________ 18
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
5. Local Registers
Writes to unused registers are ignored, and reads from unused registers return a value of 0. For
compatibility with future revisions, unused bits within a register should always be written with a zero.
NOTE: The USB device and configuration descriptors cannot be read by the USB
host until the USBENB bit in the DMA control register is set. Until then, the device
enumeration process cannot complete, so the device will not be recognized on the
USB.
____________________________________________________________________________________ 19
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 20
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
0 Reserved. Yes No 0
____________________________________________________________________________________ 21
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 22
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
1 Transmit FIFO Almost Empty Status. This bit is set when the number of bytes Yes Yes/Clr 0
in the Transmit FIFO is equal to the Transmit FIFO Almost Empty Threshold, and
another byte is sent to the USB bus from the FIFO. This status bit is cleared by
writing a 1.
0 Receive FIFO Almost Full Status. This bit is set when the number of bytes in the Yes Yes/Clr 0
Receive FIFO is equal to the Receive FIFO Almost Full Threshold, and another byte
is received from the USB bus into the FIFO. This status bit is cleared by writing a
1.
____________________________________________________________________________________ 23
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 24
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 25
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 26
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 27
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
5.26.7 (Address 1Dh, Index 06h; RCVAFTH) Receive FIFO Almost Full
Threshold
Default
Bits Description Read Write Value
7:6 Reserved. Yes No 0x00
5:0 Receive FIFO Almost Full Threshold. This register determines the threshold at Yes Yes 0x3C
which the receive FIFO almost full status bit is set.
5.26.8 (Address 1Dh, Index 07h; XMTAETH) Transmit FIFO Almost Empty
Threshold
Default
Bits Description Read Write Value
7:6 Reserved. Yes No 0x00
5:0 Transmit FIFO Almost Empty Threshold. This register determines the threshold Yes Yes 0x04
at which the transmit FIFO almost empty status bit is set.
____________________________________________________________________________________ 28
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 29
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 30
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 31
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 32
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 33
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 34
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
____________________________________________________________________________________ 35
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
8. Electrical Specifications
____________________________________________________________________________________ 36
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
8.3 DC Specifications
ILO Hi-Z State Data Line Leakage 0V < VIN < 3.3V -10 +10 µA
____________________________________________________________________________________ 37
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
IOZ Hi-Z State Data Line Leakage 0V < VIN < 3.3V -10 +10 µA
IOZ Hi-Z State Data Line Leakage 0V < VIN < 5.0V -10 +10 µA
____________________________________________________________________________________ 38
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
8.4 AC Specifications
TF Notes 4,5 4 20
TDDJ1 Source Differential Driver Jitter Notes 6,7. Figure 8-2 -3.5 0 3.5 ns
to Next Transition
TDDJ2 Source Differential Driver Jitter Notes 6,7 Figure 8-2 -4.0 0 4.0 ns
for Paired Transitions
TEOPT Source EOP Width Note 7 Figure 8-3 160 167 175 ns
TJR1 Receiver Data Jitter Tolerance to Note 7 Figure 8-4 -18.5 0 18.5 ns
Next Transition
____________________________________________________________________________________ 39
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
1. All voltages measured from the local ground potential, unless otherwise specified.
2. All timings use a capacitive load (CL) to ground of 50 pF, unless otherwise specified.
3. Full Speed timings have a 1.5 kΩ pull-up to 3.3 V on the D+ data line.
4. Measured from 10% to 90% of the data signal.
5. The rising and falling edges should be smoothly transitioning (monotonic).
6. Timing difference between the differential data signals.
7. Measured at crossover point of differential data signals.
8. The maximum load specification is the maximum effective capacitive load allowed that meets the
target hub VBUS droop of 330 mV.
9. VDDC and IDDC refer to core power supply (pins designated VDD). VDDL and IDDL refer to local bus
power supply (pins designated VDD, LOCAL).
CL 90% 90%
Differential
Data Lines
10% 10%
CL
tR tF
____________________________________________________________________________________ 40
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
TPERIOD
Crossover
Points
Differential
Data Lines
Consecutive
Transitions
N*TPERIOD+TxJR1
Paired
Transitions
N*TPERIOD+TxJR2
TPERIOD Crossover
Point Extended
Crossover
Point
Differential
Data Lines
Diff. Data to
SE0 Skew Source EOP Width: T EOPT
N*TPERIOD+TDEOP
TPERIOD
Differential
Data Lines
Consecutive
Transitions
N*TPERIOD+TJR1
Paired
Transitions
N*TPERIOD+TJR2
A[4:0]
T1 T2
CS#
T3 T4
T7
IOW#
T5 T6
D[7:0]
____________________________________________________________________________________ 42
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
A[4:0]
T1 T2
CS#
T3
T6
IOR#
T4 T5
D[7:0]
____________________________________________________________________________________ 43
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
DRQ
T1 T2
T8
DACK#
T3 T4
T9
IOW#
T5 T6
D[7:0]
T7
EOT#
____________________________________________________________________________________ 44
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
DRQ
T1 T2
T7
DACK#
T3
T8
IOR#
T4 T5
D[7:0]
T6
EOT#
____________________________________________________________________________________ 45
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
Specification NET2888 USB Interface controller
9. Mechanical Drawing
9±0.4
7±0.1
36
25
37 24
9±0.4
7±0.1
INDEX
48 13
12
1
0.5 +0.1
0.18 -0.05
1.7 max
1.4±0.1
0.125±0.05
0o
10o
0.1
0.5±0.2
____________________________________________________________________________________ 46
NetChip Technology, Inc., 1998
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490 FAX (650) 526-1494
[Link]
The DMA controller plays a vital role in the NET2888 by facilitating automated data transfers between the local bus and the FIFO, thus offloading the CPU from manual intervention. This automation allows CPU resources to be used for other critical tasks, enhancing overall system performance. For instance, DMA can operate in a "fly-by demand" mode to transfer data only when requested by the NET2888, optimizing usage of the bus bandwidth by reducing unnecessary data movement. This mode allows continuous, high-speed data transfers without frequent CPU interruptions, improving efficiency and throughput in high-volume data applications .
To handle NAK or timeout conditions during bulk transfers, the USB host will send another OUT token for host-to-device transfers, or another IN token for device-to-host transfers, and the NET2888 USB controller should attempt to receive or retransmit the same packet. This mechanism ensures that data can be successfully transferred even if initial attempts fail due to network congestion or other issues .
The NET2888 USB controller generates interrupts to the local CPU under several conditions. For instance, when the transmit FIFO becomes empty, signaled by an EOP (end of packet), an interrupt can be generated. Similarly, for receiving data, when the receive mailbox valid bit is set, it indicates data has been written by the host, prompting an interrupt. Additionally, when the FIFO reaches specific thresholds, such as almost full or empty, interrupts can be enabled to alert the CPU for timely action. These interrupts help manage the flow of data efficiently and ensure that data is processed promptly .
The NET2888 USB controller uses FIFO status registers to manage data flow and integrity effectively. These registers indicate the current state of the FIFOs, such as whether they are full, empty, or nearing their capacity (almost full or almost empty). The local CPU can read these status bits to decide when to read from or write to the FIFO, thereby preventing overflow or underflow conditions. Additionally, these status registers can trigger interrupts that notify the CPU when certain thresholds are met, ensuring timely processing of data and maintaining data integrity across transfers .
The NET2888 specification ensures reliable transfer of 8-byte packets through its endpoint mailboxes by implementing several mechanisms. First, the bulk transfer method to endpoint 1 receive mailboxes sets a valid bit after data is written, causing a local bus interrupt. This bit must be cleared before another packet is accepted, preventing overwrites. Similarly, transmit mailboxes (endpoint 2) only allow data to be sent after previous data has been acknowledged. These measures guarantee sequential and reliable processing, with error handling (e.g., NAKs) ensuring packets are retransmitted as necessary .
Threshold registers in the NET2888 controller, such as the Receive FIFO Almost Full Threshold and the Transmit FIFO Almost Empty Threshold, are critical for optimizing data processing efficiency. These registers define specific points at which interrupts are triggered, signaling the CPU to take corrective action before an overflow (for receiving) or an underflow (for transmitting) occurs. By preemptively alerting the CPU based on these thresholds, the system can manage data flows more effectively, reduce idle times waiting for data availability, and ensure that the FIFO is optimally utilized without data loss or delays .
The EOT# signal is used to halt a DMA transfer within the NET2888 USB interface controller. It is typically provided by an external DMA controller and should be asserted while DACK# and IOR# or IOW# are simultaneously active to indicate that DMA activity has stopped. Despite the EOT# signal indicating the end of DMA transfer, the USB transfer isn't considered complete until the last byte is transferred from the FIFO to the USB bus. The EOT# signal also resets the DMA request enable bit in the NET2888, ensuring no further DMA requests are made. If the EOT# signal is not provided, DMA transfers can be halted manually by resetting the NET2888's DMA request enable bit .
If the local CPU stalls an endpoint during a transfer, the NET2888 USB controller will not store any data into the FIFO and will respond with a STALL acknowledge to the USB host. This action is taken to prevent data overflow and ensure that data is processed in an orderly manner while indicating to the host that data cannot currently be accepted .
In the NET2888 USB controller, the data toggle bits for endpoints are significant for maintaining data transfer synchronization and integrity. Each endpoint has a data toggle bit that is used to indicate which data packet should be acknowledged (ACK) or negative-acknowledged (NAK) by the USB host. This helps in managing the sequence of data packets and ensures that if a packet is lost or corrupted, it is retransmitted. The data toggle mechanism prevents data duplication and ensures data continuity in the transfer process .
The local CPU ensures new data is not overwritten by monitoring the Transmit FIFO Count register, which indicates the number of entries in the transmit FIFO. Before writing new data, the CPU must verify that there is enough space available in the FIFO. If the FIFO is full, the CPU must wait until space becomes available or risk overwriting unread data. This system prevents the data integrity issues that could arise from FIFO overflow .