SMSC LAN91C96I Non-pci single-chip full duples ethernet controller Datasheet

LAN91C96I
Non-PCI Single-Chip Full
Duplex Ethernet
Controller
Datasheet
Product Features
ƒ
Non-PCI Single-Chip Ethernet Controller
ƒ
Pipelined Data Path
ƒ
Fully Supports Full Duplex Switched Ethernet
ƒ
Handles Block Word Transfers for any Alignment
ƒ
Supports Enhanced Transmit Queue
Management
ƒ
High Performance Chained ("Back-to-Back")
Transmit and Receive
ƒ
6K Bytes of On-Chip RAM
ƒ
ƒ
Supports IEEE 802.3 (ANSI 8802-3) Ethernet
Standards
Pin Compatible with the LAN91C92 and the
LAN91C94 in Local Bus Mode
ƒ
Dynamic Memory Allocation Between Transmit
and Receive
ƒ
Automatic Detection of TX/RX Polarity Reversal
ƒ
Enhanced Power Management Features
ƒ
Flat Memory Structure for Low CPU Overhead
ƒ
Supports “Magic Packet” Power Management
Technology
ƒ
Buffered Architecture, Insensitive to Bus
Latencies (No Overruns/Underruns)
ƒ
Simultasking Early Transmit and Early Receive
Functions
ƒ
Supports Boot PROM for Diskless Local Bus
Applications
ƒ
Enhanced Early Transmit Function
Network Interface
ƒ
Receive Counter for Enhanced Early Receive
ƒ
Hardware Memory Management Unit
ƒ
ƒ
Optional Configuration via Serial EEPROM
Interface (Jumperless)
ƒ
Supports single 5V or 3.3V VCC Design
ƒ
Industrial temperature range of –40°C to 85°C
ƒ
Supports Mixed Voltage External PHY Designs
ƒ
Integrated 10BASE-T Transceiver Functions:
-
Driver and Receiver
Link Integrity Test
Receive Polarity Detection and Correction
ƒ
Integrated AUI Interface
ƒ
10 Mb/s Manchester Encoding/Decoding and
Clock Recovery
Low Power CMOS Design
ƒ
ƒ
100 Pin QFP and TQFP (1.0mm body Thickness)
Packages; Lead-Free Packages also available
Automatic Retransmission, Bad Packet
Rejection, and Transmit Padding
ƒ
External and Internal Loopback Modes
ƒ
Pin Compatible with the LAN91C92 and
LAN91C94
ƒ
Four Direct Driven LEDs for Status/ Diagnostics
1
Software Drivers
Bus Interface
ƒ
Direct Interface to Local Bus, with No Wait States
ƒ
Flexible Bus Interface
ƒ
16 Bit Data and Control Paths
ƒ
Fast Access Time
1
Refer to Description of Pin Functions on Page 15 for
5V tolerant pins
SMSC DS – LAN91C96I
ƒ
LAN9000 Drivers for Major Network Operating
Systems Utilizing Local Bus Interface
ƒ
Software Drivers Compatible with the LAN91C92,
LAN91C94, LAN91C100FD (100 Mb/s), and
LAN91C110 (100 Mb/s) Controllers in Local Bus
Mode
ƒ
Software Drivers Utilize Full Capability of 32 Bit
Microprocessor
Page 1
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
ORDERING INFORMATION
Order Numbers:
LAN91C96IQFP for 100 Pin QFP Package
LAN91C96ITQFP for 100 Pin TQFP Package
LAN91C96I-MU for 100 Pin TQFP Package (Green, Lead-Free)
LAN91C96I-MS for 100 Pin QFP Package (Green, Lead-Free)
80 Arkay Drive
Hauppauge, NY 11788
(631) 435-6000
FAX (631) 273-3123
Copyright © SMSC 2004. All rights reserved.
Circuit diagrams and other information relating to SMSC products are included as a means of illustrating typical applications. Consequently, complete
information sufficient for construction purposes is not necessarily given. Although the information has been checked and is believed to be accurate, no
responsibility is assumed for inaccuracies. SMSC reserves the right to make changes to specifications and product descriptions at any time without
notice. Contact your local SMSC sales office to obtain the latest specifications before placing your product order. The provision of this information does
not convey to the purchaser of the described semiconductor devices any licenses under any patent rights or other intellectual property rights of SMSC
or others. All sales are expressly conditional on your agreement to the terms and conditions of the most recently dated version of SMSC's standard
Terms of Sale Agreement dated before the date of your order (the "Terms of Sale Agreement"). The product may contain design defects or errors
known as anomalies which may cause the product's functions to deviate from published specifications. Anomaly sheets are available upon request.
SMSC products are not designed, intended, authorized or warranted for use in any life support or other application where product failure could cause
or contribute to personal injury or severe property damage. Any and all such uses without prior written approval of an Officer of SMSC and further
testing and/or modification will be fully at the risk of the customer. Copies of this document or other SMSC literature, as well as the Terms of Sale
Agreement, may be obtained by visiting SMSC’s website at http://www.smsc.com. SMSC is a registered trademark of Standard Microsystems
Corporation (“SMSC”). Product names and company names are the trademarks of their respective holders.
SMSC DISCLAIMS AND EXCLUDES ANY AND ALL WARRANTIES, INCLUDING WITHOUT LIMITATION ANY AND ALL IMPLIED WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND AGAINST INFRINGEMENT AND THE LIKE, AND ANY AND
ALL WARRANTIES ARISING FROM ANY COURSE OF DEALING OR USAGE OF TRADE.
IN NO EVENT SHALL SMSC BE LIABLE FOR ANY DIRECT, INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES;
OR FOR LOST DATA, PROFITS, SAVINGS OR REVENUES OF ANY KIND; REGARDLESS OF THE FORM OF ACTION, WHETHER BASED ON
CONTRACT; TORT; NEGLIGENCE OF SMSC OR OTHERS; STRICT LIABILITY; BREACH OF WARRANTY; OR OTHERWISE; WHETHER OR
NOT ANY REMEDY OF BUYER IS HELD TO HAVE FAILED OF ITS ESSENTIAL PURPOSE, AND WHETHER OR NOT SMSC HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Rev. 11/18/2004
Page 2
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
LAN91C96I Datasheet Revision History
PAGE(S)
SECTION/FIGURE/ENTRY
CORRECTION
DATE
REVISED
2
Ordering Information
Lead-free ordering information modified
11/18/04
2
Ordering Information
Added lead-free ordering information
09/10/04
86
11.2 DC Electrical Characteristics
12/18/03
59
Chapter 8 Theory of Operation
71
8.6 Power Down
Modified Supply Current to power down
mode current
Modified descriptions of “Magic Packet
Support”
Modified description of under heading.
10
Figure 3.1 – Pin Configuration of
LAN91C96I QFP
10/31/03
11
Figure 3.2 − Pin Configuration of
LAN91C96I TQFP
I/O Space – Bank1 Offset 2
Modified pin number 95
(removed nPCMCIA)
Modified pin number 93
(removed nPCMCIA)
Modified I/O base address 300h decoding
New pin package diagrams
09/18/02
Add description of RBIAS pin
08/01/02
50
55
Figure 13.1 - 100 Pin QFP Package,
Figure 13.2 - 100 Pin TQFP
Package
Chapter 4 - Description of Pin
Functions
IO Space Bank 2 Offset 2 – Interrupt
Figure 7.2 – Interrupt Structure
Modified description of Interrupt Registers
Modified Interrupt Structure Figure
08/01/02
08/01/02
59
Bank 3 Offset A – Revision Register
Changed the REV ID to 9
08/01/02
61
8.1, 8.2 Typical Flow of Events for
Transmit
Title and document
Modified Flow Chart
08/01/02
Non-PCI replaces ISA in title. Local Bus
replaces ISA throughout document.
Figure has been updated.
04/15/02
Changed Max Offset To 1534 From 1536
Number of Bytes in Data Area Changed to
1531 from 2034
Modify figure
07/26/01
07/26/01
Update 3.3V Characteristics numbers to
replace TBD
Updated figure
07/26/01
42
109, 110
15
1
64
30
30
25
Figure 8.1 – Interrupt Service
Routine
Figure 6.1 – Data Packet Format
Data area in ram
86
Figure 5.4 – LAN91C96i Internal
Block Diagram with Data Path
DC Electrical Characteristics
67
Figure 8.4 – TXEMPTY INTR
SMSC DS – LAN91C96I
Page 3
DATASHEET
12/18/03
12/18/03
10/31/03
10/07/02
04/15/02
07/26/01
03/21/01
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Table of Contents
Chapter 1
General Description ............................................................................................................. 6
Chapter 2
Overview ............................................................................................................................... 7
Chapter 3
Pin Configurations ............................................................................................................. 10
3.1
Local Bus vs. Pin Requirements ....................................................................................................... 13
Chapter 4
4.1
Description of Pin Functions ............................................................................................. 15
Buffer Symbols .................................................................................................................................. 18
Chapter 5
5.1
5.2
5.3
5.4
Functional Description....................................................................................................... 20
Buffer Memory ................................................................................................................................... 21
Interrupt Structure ............................................................................................................................. 27
Reset Logic........................................................................................................................................ 28
Power Down Logic States ................................................................................................................. 28
Chapter 6
Packet Format in Buffer memory for Ethernet............................................................... 30
Chapter 7
Registers Map in I/O Space............................................................................................... 33
7.1
7.2
I/O Space Access.............................................................................................................................. 34
I/O Space Registers Description ....................................................................................................... 35
7.2.1
Chapter 8
8.1
8.2
8.3
8.4
8.5
8.6
Board Setup Information ............................................................................................... 82
Diagnostic LEDs............................................................................................................................. 83
Bus Clock Considerations.............................................................................................................. 83
Chapter 11
11.1
11.2
Functional Description of the Blocks................................................................................ 73
Memory Management Unit ................................................................................................................ 73
Arbiter ................................................................................................................................................ 73
Bus Interface ..................................................................................................................................... 74
Wait State Policy ............................................................................................................................... 74
Arbitration Considerations ................................................................................................................. 75
DMA Block......................................................................................................................................... 75
Packet Number FIFOs....................................................................................................................... 76
CSMA Block ...................................................................................................................................... 77
Network Interface .............................................................................................................................. 79
10BASE-T ...................................................................................................................................... 79
AUI ................................................................................................................................................. 79
Physical Interface........................................................................................................................... 80
Transmit Functions......................................................................................................................... 80
Transmit Drivers............................................................................................................................. 80
Receive Functions.......................................................................................................................... 80
Chapter 10
10.1
10.2
Theory of Operation .......................................................................................................... 59
Typical Flow Of Events For Transmit (Auto Release =0).................................................................. 61
Typical Flow of Events for Transmit (Auto Release = 1)................................................................... 62
Typical Flow Of Events For Receive ................................................................................................. 63
Memory Partitioning .......................................................................................................................... 69
Interrupt Generation .......................................................................................................................... 69
Power Down ...................................................................................................................................... 71
Chapter 9
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
9.13
9.14
9.15
Bank Select Register ..............................................................................................................................35
Operation Description .................................................................................................... 85
Maximum Guaranteed Ratings*..................................................................................................... 85
DC Electrical Characteristics ......................................................................................................... 86
Chapter 12
Rev. 11/18/2004
Timing Diagrams ............................................................................................................ 92
Page 4
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 13
Package Outlines........................................................................................................... 109
List of Figures
Figure 3.1 – Pin Configuration of LAN91C96I QFP......................................................................................................10
Figure 3.2 − Pin Configuration of LAN91C96I TQFP....................................................................................................11
Figure 3.3 – System Diagram for Local Bus with Boot Prom .......................................................................................12
Figure 4.1 - LAN91C96I Internal Block Diagram ..........................................................................................................19
Figure 5.1 – Mapping and Paging vs. Receive and Transmit Area ..............................................................................22
Figure 5.2 – Transmit Queues and Mapping................................................................................................................23
Figure 5.3 – Receive Queues and Mapping.................................................................................................................24
Figure 5.4 – LAN91C96i Internal Block Diagram with Data Path .................................................................................25
Figure 5.5 – Logical Address Generation and Relevant Registers...............................................................................26
Figure 6.1 – Data Packet Format .................................................................................................................................30
Figure 7.1 - LAN91C96I Registers ...............................................................................................................................33
Figure 7.2 – Interrupt Structure ....................................................................................................................................55
Figure 8.1 – Interrupt Service Routine .........................................................................................................................64
Figure 8.2 – RX INTR...................................................................................................................................................65
Figure 8.3 – TX INTR ...................................................................................................................................................66
Figure 8.4 – TXEMPTY INTR.......................................................................................................................................67
Figure 8.5 – Driver Send and Allocate Routines ..........................................................................................................68
Figure 8.6 – Interrupt Generation for Transmit; Receive, MMU ...................................................................................72
Figure 9.1 - MMU Packet Number Flow and Relevant Registers .................................................................................77
Figure 10.1 - 64 X 16 Serial EEPROM Map.................................................................................................................84
Figure 12.1 – Local Bus Consecutive Read Cycles.......................................................................................................92
Figure 12.2 – Local Bus Consecutive Write Cycles .......................................................................................................93
FIgure 12.3 – Local Bus Consecutive Read and Write Cycles.......................................................................................94
Figure 12.4 – Data Register Special Read Access ......................................................................................................95
Figure 12.5 – Data Register Special Write Access.......................................................................................................96
Figure 12.6 - 8-Bit Mode Register Cycles ....................................................................................................................97
Figure 12.7 – External ROM Read Access ..................................................................................................................98
Figure 12.8 – Local Bus Register Access When Using Bale .........................................................................................99
Figure 12.9 – External ROM Read Access Using Bale ..............................................................................................100
Figure 12.10 - EEPROM Read...................................................................................................................................101
Figure 12.11 - EEPROM Write ...................................................................................................................................102
Figure 12.12 – External ENDEC Interface – Start of Transmit ...................................................................................103
Figure 12.13 – External ENDEC Interface – Receive Data ........................................................................................103
Figure 12.14 – Differential Output Signal Timing (10BASE-T and AUI) .....................................................................104
Figure 12.15 – Receive Timing – Start of Frame (AUI and 10BASE-T) .....................................................................105
Figure 12.16 – Receive Timing – End of Frame (AUI and 10BASE-T).......................................................................106
Figure 12.17 – Transmit Timing – End of Frame (AUI and 10BASE-T)......................................................................106
Figure 12.18 – Collision Timing (AUI) ........................................................................................................................107
Figure 12.19 – Memory Read Timing.........................................................................................................................107
Figure 12.20 – Input Clock Timing .............................................................................................................................108
Figure 12.21 – Memory Write Timing .........................................................................................................................108
Figure 13.1 - 100 Pin QFP Package Outline ..............................................................................................................109
Figure 13.2 - 100 Pin TQFP Package Outline ............................................................................................................110
List of Tables
Table 5.1 - LAN91C96I Address Space .......................................................................................................................27
Table 5.2 - Bus Transactions In Local Bus Mode .........................................................................................................27
Table 5.3 – Interrupt Merging .......................................................................................................................................27
Table 5.4 – Reset Logic ...............................................................................................................................................28
Table 5.5 - Local Bus Mode Defined States (Refer To Table 5.6 For Next States To Wake-Up Events)......................29
Table 5.6 - Local Bus Mode .........................................................................................................................................29
Table 7.1 - Transmit Loop ............................................................................................................................................37
Table 13.1 - 100 Pin QFP Package Parameters ........................................................................................................109
Table 13.2 - 100 Pin TQFP Package Parameters ......................................................................................................110
SMSC DS – LAN91C96I
Page 5
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 1
General Description
The LAN91C96I is a VLSI Ethernet Controller that combines Local Bus interfaces in one chip. LAN91C96I
integrates all MAC and physical layer functions, as well as the packet RAM, needed to implement a high
performance 10BASE-T (twisted pair) node. For 10BASE5 (thick coax), 10BASE2 (thin coax), and
10BASE-F (fiber) implementations, the LAN91C96I interfaces to external transceivers via the provided AUI
port. Only one additional IC is required for most applications. The LAN91C96I comes with Full Duplex
Switched Ethernet (FDSWE) support allowing the controller to provide much higher throughput. 6K bytes
of RAM is provided to support enhanced throughput and compensate for any increased system service
latencies. The controller implements multiple advanced powerdown modes including Magic Packet to
conserve power and operate more efficiently. The LAN91C96I can directly interface with the Local Bus and
deliver no-wait-state operation. For Local Bus interfaces, the LAN91C96I occupies 16 I/0 locations and no
memory space.
The same I/O space is used for Local Bus operations. Its shared memory is sequentially accessed with
40ns access times to any of its registers, including its packet memory. DMA services are not used by the
LAN91C96I, virtually decoupling network traffic from local or system bus utilization. For packet memory
management, the LAN91C96I integrates a unique hardware Memory Management Unit (MMU) with
enhanced performance and decreased software overhead when compared to ring buffer and linked list
architectures. The LAN91C96I is portable to different CPU and bus platforms due to its flexible bus
interface, flat memory structure (no pointers), and its loosely coupled buffered architecture (not sensitive to
latency).
The LAN91C96I is available in 100-pin QFP and TQFP (1.0 mm body thickness) packages; green, leadfree packages are also available. The low profile TQFP is ideal for mobile applications such as PC Card
LAN adapters. The LAN91C96I operates with a single power supply voltage of 5V or 3.3V. The industrial
temperature range for LAN91C96I is –40°C to 85°C.
Rev. 11/18/2004
Page 6
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 2
Overview
A unique architecture allows the LAN91C96I to combine high performance, flexibility, high integration and
simple software interface.
The LAN91C96I incorporates the LAN91C92 functionality for Local Bus environments. The LAN91C96I
consists of the same logical I/O register structure in Local Bus modes. The MMU (Memory Management
Unit) architecture used by the LAN91C96I combines the simplicity and low overhead of fixed areas with
the flexibility of linked lists providing improved performance over other methods.
Packet reception and transmission are determined by memory availability. All other resources are always
available if memory is available. To complement this flexible architecture, bus interface functions are
incorporated in the LAN91C96I, as well as a 6144 byte packet RAM - and serial EEPROM-based setup.
The user can select or modify configuration choices. The LAN91C96I integrates most of the 802.3
functionality, incorporating the MAC layer protocol, the physical layer encoding and decoding functions
with the ability to handle the AUI interface. For twisted pair networks, LAN91C96I integrates the twisted
pair transceiver as well as the link integrity test functions.
The LAN91C96I is a true 10BASE-T single chip device able to interface to a system or a local bus.
Support for direct-driven LEDs for installation and run-time diagnostics is provided. 802.3 statistics are
gathered to facilitate network management.
The LAN91C96I is a single chip Ethernet controller designed to be 100% pin and software compatible with the
LAN91C92 and LAN91C94 in Local Bus mode.
The LAN91C96I has been designed to support full duplex switched Ethernet and provides Fully independent
transmit and receive operations.
The LAN91C96I internal packet memory is extended to 6k bytes, and the MMU will continue to manage
memory in 256 byte pages. The increase in memory size accommodates the potential for simultaneous
transmit and receive traffic in some full duplex applications as well as support for enhanced performance on
systems that introduce increased latency.
The LAN91C96I has the ability to retrieve configuration information from a serial EEPROM on reset or powerup. In Local Bus mode, the serial EEPROM acts as storage of configuration and IEEE Ethernet address
information compatible with the existing LAN91C90, LAN91C92, and LAN91C94 Local Bus Ethernet
controllers. External Flash ROM is required for CIS storage.
SMSC DS – LAN91C96I
Page 7
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
THE LAN91C96I OFFERS:
High integration:
Single chip controller including:
ƒ
Packet RAM
ƒ
Local Bus interface
ƒ
EEPROM interface
ƒ
Encoder/decoder with AUI interface
ƒ
10BASE-T transceiver
High performance:
Chained ("Back-to-back") packet handling with no CPU intervention:
ƒ
Queues transmit packets
ƒ
Queues receive packets
ƒ
Stores results in memory along with packet
ƒ
Queues interrupts
ƒ
Optional single interrupt upon completion of transmit chain
Fast block move operation for load/unload:
ƒ
CPU sees packet bytes as if stored continuously.
ƒ
Handles 16 bit transfers regardless of address alignment.
ƒ
Access to packet through fixed window.
Fast bus interface:
Compatible with Local Bus type and faster buses.
Flexibility:
Flexible packet and header processing:
ƒ
Can be set to Simultasking - Early Receive and Transmit modes. With enhanced Early Receive
functions.
ƒ
Can access any byte in the packet.
ƒ
Can immediately remove undesired packets from queue.
ƒ
Can move packets from receive to transmit queue.
Rev. 11/18/2004
Page 8
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
ƒ
Can alter receive processing order without copying data.
ƒ
Can discard or enqueue again a failed transmission.
Resource allocation:
ƒ
Memory dynamically allocated for transmit and receive.
ƒ
Can automatically release memory on successful transmission.
Configuration:
Local Bus:
ƒ
Uses non-volatile jumperless setup via serial EEPROM.
ƒ
nROMon LAN91C96I, is left open with a pullup for Local Bus mode. This pin is sampled at the end of
RESET.
SMSC DS – LAN91C96I
Page 9
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 3
Pin Configurations
nIORD/xDS
nIOWR/R/nW
nMEMR/nOE
AEN/nREG/nAS
IOCHRDY/nWAIT
VSS
D0
D1
D2
D3
VDD
D4
D5
D6
D7
VSS
RESET
PWRDWN/TXCLK
BSELED/RXD
nLNKLED/TXD
nRXLED/RXCLK
nTXLED/nTXEN
AVDD
TPETXDP
TPETXN
TPETXDN
TPETXP
TXN/nCRS
TXP/nCOLL
AVSS
AVDD
COLN
COLP
RECN
RECP
TPERXN
TPERXP
AVSS
AVSS
RBIAS
AVDD
nXENDEC
nEN16
VSS
nROM
XTAL1
XTAL2
IOS0
IOS1
VDD
80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51
50
81
49
82
48
83
47
84
46
85
45
86
44
87
43
88
42
89
41
90
40
91
39
92
38
93
37
94
36
95
35
96
97
34
98
33
99
32
100
31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2122 23 24 25 26 2728 29 30
LAN91C96I
100 Pin QFP
VDD
A19/nCE1
A18
A17
A16
A15
A14
A13
A12
A11/nFCS
VDD
A10/nFWE
A9
A8
A7
A6
A5
A4
A3
VSS
A2
A1
A0
BALE/nWE
nSBHE/nCE2
nIOCS16/nIOIS16
VSS
INTR3
INTR20
VDD
INTR1/nINPACK
INTR0/nIREQ/INTR
VSS
D15
D14
D13
D12
VDD
D11
D10
D9
D8
VSS
EESK
EECS
EEDI
EEDO/SDOUT
ENEEP
VSS
IOS2
Figure 3.1 – Pin Configuration of LAN91C96I QFP
Rev. 11/18/2004
Page 10
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TXN/nCRS
TXP/nCOLL
AVSS
AVDD
COLN
COLP
RECN
RECP
TPERXN
TPERXP
AVSS
AVSS
RBIAS
AVDD
nXENDEC
nEN16
VSS
nROM
XTAL1
XTAL2
IOS0
IOS1
VDD
IOS2
VSS
ENEEP
EEDO/SDOUT
EEDI
EECS
EESK
VSS
D8
D9
D10
D11
VDD
D12
D13
D14
D15
VSS
INTR0/nIREQ/INTR
INTR1/nINPACK
VDD
INTR2
INTR3
VSS
nIOCS16/nIOIS16
nSBHE/nCE2
BALE/nWE
LAN91C96I
100 Pin TQFP
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
TPETXP
TPETXDN
TPETXN
TPETXDP
AVDD
nTXLED/nTXEN
nRXLED/RXCLK
nLNKLED/TXD
nBSELED/RXD
PWRDWN/TXCLK
RESET
VSS
D7
D6
D5
D4
VDD
D3
D2
D1
D0
VSS
IOCHRDY/nWAIT
AEN/nREG/nAS
nMEMR/OE
nIOWR/R/nW
nIORD/xDS
VDD
A19/nCE1
A18
A17
A16
A15
A14
A13
A12
A11/nFCS
VDD
A10/nFWE
A9
A8
A7
A6
A5
A4
A3
VSS
A2
A1
A0
Figure 3.2 − Pin Configuration of LAN91C96I TQFP
SMSC DS – LAN91C96I
Page 11
DATASHEET
Rev. 11/18/2004
nIRQ
BUFFER
Page 12
DATASHEET
PROM
DATA
A0-19
D0-15
nMEMR
nROM
EESK
IOS0 IOS1 IOS2 nEN16 ENEEP
LAN91C96I
4
IOCHRDY INTR0-3
EEDO
EEDI
4
EECS
nIOCS16
XTAL2
RBIAS
COLN
COLP
RECN
RECP
TXN
TXP
TPERXN
TPERXP
TPETXDN
TPETXDP
TPETXN
TPETXP
10BASET
ADDRESS
3
nIORD, nIOWR,
nSBHE
RESET
BALE
AEN
XTAL1
DIAGNOSTIC
LEDs
N/C
SYSTEM BUS
20 MHz
Rev. 11/18/2004
EEPROM
4
SERIAL
Non-PCI Single-Chip Full Duplex Ethernet Controller
AUI
CABLE SIDE
Figure 3.3 – System Diagram for Local Bus with Boot Prom
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
3.1
Local Bus vs. Pin Requirements
FUNCTION
LOCAL BUS
SYSTEM ADDRESS BUS
SYSTEM DATA BUS
SYSTEM CONTROL BUS
SERIAL EEPROM
CRYSTAL OSC.
POWER
GROUND
10BASE-T interface
AUI interface
SMSC DS – LAN91C96I
A0
A1-9
A10
A11
A12-14
A15
A16-18
A19
AEN
D0-15
RESET
BALE
nIORD
nIOWR
nMEMR
IOCHRDY
nIOCS16
nSBHE
INTR0
INTR1
INTR2
INTR3
EEDI
EEDO
EECS
EESK
ENEEP
IOS0
IOS1
IOS2
XTAL1, XTAL2
VDD, AVDD
GND, AGND
TPERXP
TPERXN
TPETXP
TPETXN
TPETXDP
TPETXDN
RECP RECN
COLP COLN
TXP/nCOLL
TXN/nCRS
Page 13
DATASHEET
MAX NUMBER OF
PINS
21
16
12
8
2
9
11
6
6
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
FUNCTION
LEDs
MISC.
Rev. 11/18/2004
LOCAL BUS
nLNKLED/TXD
nRXLED/RXCLK
nBSELED/RXD
nTXLED/nTXEN
RBIAS
PWRDWN/TXCL
K nXENDEC
nEN16
nROM
Page 14
DATASHEET
MAX NUMBER OF
PINS
4
5
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 4
PIN NO.
TQFP
QFP
93
95
Description of Pin Functions
PIN NAME
nROM
TYPE
I/O4 with
pullup
A0-9
I
**
I
I
I
**
I with
pullup
I with
pullup
**
26-28
30-36
37
39
40-46
28,29,
30, 32-38
39
41
42-48
A10/nFWE
A11/nFCS
A12-18
47
49
A19/nCE1
52
54
24
26
AEN/
nREG/
nAS
nSBHE/
nCE2
53
55
55-58
60-63 710 12-15
65
57-60,
62-65,
9-12,
14-17
67
25
27
BALE/nWE
17
19
INTR0/
nIREQ/
INTR
18
20
INTR1/
nINPACK
O24
20
22
INTR2
O24
SMSC DS – LAN91C96I
IOCHRDY/
nWAIT
D0-15
RESET
I with
pullup
**
OD24
with
pullup
I/O24
IS with
pullup
**
IS with
pullup
**
O24
DESCRIPTION
This pin is sampled at the end of RESET. For Local Bus
operation this pin is left open and it is used as a ROM chip
select output that goes active when nMEMR is low and the
address bus contains a valid ROM address. In Local Bus
mode the LAN91C96I is pin compatible with the LAN91C92
and LAN91C94
Input address lines 0 through 9.
Local Bus - Input address line 10.
Local Bus - Input address line 11.
Input address lines 12 through 18.
Local Bus - Input address line 19.
Local Bus - Address enable input. Used as an address
qualifier. Address decoding is only enabled when AEN is low.
Local Bus - Byte High Enable input. Asserted (low) by the
system to indicate a data transfer on the upper data byte.
Local Bus - Output. Optionally used by the LAN91C96I to
extend host cycles.
Bi-directional. 16 bit data bus used to access the LAN91C96I
internal registers. The data bus has weak internal pullups.
Supports direct connection to the system bus without
external buffering.
Input. Active high Reset. This input is not considered active
unless it is active for at least 100ns to filter narrow glitches.
Local Bus - Input. Address strobe. For systems that require
address latching, the falling edge of BALE latches address
lines and nSBHE.
Local Bus - Active high interrupt signal. The interrupt line
selection is determined by the value of INT SEL1-0 bits in the
Configuration Register. This interrupt is tri-stated when not
selected.
Local Bus - Output. Active high interrupt signal. The interrupt
line selection is determined by the value of INT SEL1-0 bits
in the Configuration Register. This interrupt is tri-stated when
not selected.
Local Bus - Outputs. Active high interrupt signals. The
interrupt line selection is determined by the value of INT
SEL1-0 bits in the Configuration Register. These interrupts
are tri-stated when not selected.
Page 15
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
PIN NO.
TQFP
QFP
21
23
PIN NAME
INTR3
TYPE
O24
23
25
nIOCS16/
nIOIS16
OD24
49
51
nIORD/
xDS
50
52
nIOWR/
R/nW
51
53
nMEMR/
nOE
5
7
EESK
IS with
pullup
**
IS with
pullup
**
IS with
pullup
**
O4
4
2
6
4
3
5
EECS
EEDO/
SDOUT
EEDI
96,97
98,99
IOS0-1
99
1
IOS2
70
72
nTXLED/
nTXEN
67
69
68
Rev. 11/18/2004
69
71
70
nBSELED/
RXD
nRXLED/
RXCLK
nLNKLED/
TXD
O4
O4
I with
pulldown
**
I with
pullup
I with
pullup
**
OD16
O162
OD16
I with
pullup
OD16
DESCRIPTION
Local Bus - Outputs. Active high interrupt signals. The
interrupt line selection is determined by the value of INT
SEL1-0 bits in the Configuration Register. These interrupts
are tri-stated when not selected.
Local Bus - Active low output asserted in 16 bit mode when
AEN is low and A4-A15 decode to the LAN91C96I address
programmed into the high byte of the Base Address
Register.
Local Bus, - Input. Active low read strobe used to access the
LAN91C96I IO space.
Local Bus - Input. Active low write strobe used to access the
LAN91C96I IO space.
Local Bus - Active low signal used by the host processor to
read from the external ROM.
Output. 4usec clock used to shift data in and out of a serial
EEPROM.
Output. Serial EEPROM chip select.
Output. Connected to the DI input of the serial EEPROM.
Input. Connected to the DO output of the serial EEPROM.
Input. External switches can be connected to these lines to
select between predefined EEPROM configurations. The
values of these pins are readable.
Input. External switches can be connected to these lines to
select between predefined EEPROM configurations. The
values of these pins are readable.
INTERNAL ENDEC - Transmit LED output.
EXTERNAL ENDEC - Active low Transmit Enable output.
INTERNAL ENDEC - Board Select LED activated by
accesses to I/O space (nIORD or nIOWR active with AEN
low and valid address decode for Local Bus). The pulse is
stretched beyond the access duration to make the LED
visible.
EXTERNAL ENDEC - NRZ receive data input.
INTERNAL ENDEC - Receive LED output.
I with
pullup
OD16
EXTERNAL ENDEC - Receive clock input.
O162
EXTERNAL ENDEC - Transmit Data output.
INTERNAL ENDEC - Link LED output.
Page 16
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
PIN NO.
TQFP
QFP
1
3
PIN NAME
ENEEP
TYPE
I with
pullup
**
I with
pullup
**
91
93
nEN16
94
96
XTAL1
Iclk
**
95
97
XTAL2
Iclk
83
82
85
84
RECP/
RECN
77
76
79
78
TXP/nCOLL
TXN/nCRS
Diff.
Input
**
Diff.
Output
I
**
81
80
83
82
COLP
COLN
85
84
87
86
TPERXP
TPERXN
75
73
72
74
77
75
74
76
TPETXP
TPETXN
TPETXDP
TPETXDN
66
68
PWRDWN/
TXCLK
Diff.
Input
**
Diff.
Input
**
Diff.
Output
Diff.
Output
I with
pullup
**
88
90
RBIAS
Analog
Input
90
92
nXENDEC
I with
pullup
**
11,19,
48,59,
98,38
13,21,40,
50,
61,100
SMSC DS – LAN91C96I
VDD
DESCRIPTION
Input. This active high input enables the EEPROM to be read
or written by the LAN91C96I. Internally pulled up. Must be
connected to ground if no serial EEPROM is used.
Input. When low the LAN91C96I is configured for 16 bit bus
operation. If left open the LAN91C96I works in 8 bit bus
mode. 16 bit configuration can also be programmed via serial
EEPROM or software initialization of the CONFIGURATION
REGISTER.
An external parallel resonance 20MHz crystal should be
connected across these pins. If an external clock source is
used, it should be connected to this pin (XTAL1) and XTAL2
should be left open.
An external parallel resonance 20MHz crystal should be
connected across these pins. If an external clock source is
used, it should be connected to XTAL1 and this pin (XTAL2)
should be left open.
AUI receive differential inputs.
INTERNAL ENDEC - (nXENDEC pin open). In this mode
TXP and TXN are the AUI transmit differential outputs. They
must be externally pulled up using 150 ohm resistors.
EXTERNAL ENDEC - (nXENDEC pin tied low). In this mode
the pins are inputs used for collision and carrier sense
functions.
AUI collision differential inputs. A collision is indicated by a
10MHz signal at this input pair.
10BASE-T receive differential inputs.
INTERNAL ENDEC - 10BASE-T transmit differential outputs.
10BASE-T delayed transmit differential outputs. Used in
combination with TPETXP and TPETXN to generate the
10BASE-T transmit pre-distortion.
INTERNAL ENDEC - Powerdown input. It keeps the
LAN91C96I in powerdown mode when high (open). Must be
low for normal operation.
EXTERNAL ENDEC - Transmit clock input from external
ENDEC.
A resistor should be connected between this pin and analog
ground to determine the threshold level of the TP Receive,
AUI Receive, AUI Collision and AUI Transmit level.
When tied low the LAN91C96I is configured for EXTERNAL
ENDEC. When tied high or left open the LAN91C96I will use
its internal encoder/decoder.
+5.0V power supply pins or 3.3V power supply pins
Page 17
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
PIN NO.
TQFP
QFP
71,79,
73,81,
89
91
100,6,
2,8,18,
24,31,
22,29
56,66,
54,64,92
94
,16
78,86
80,88,89
87
4.1
PIN NAME
AVDD
TYPE
DESCRIPTION
+5.0V analog power supply pins or 3.3V power supply pins
GND
Ground pins.
AGND
Analog ground pins.
Buffer Symbols
O4
I/O4
O162
O24
OD16
OD24
I/O24
I
IS
Iclk
**
Output buffer with 2mA source and 4mA sink at 5V.
Output buffer with 1mA source and 2mA sink at 3.3V.
Output buffer with 2mA source and 4mA sink at 5V.
Output buffer with 1mA source and 2mA sink at 3.3V.
Output buffer with 2mA source and 16mA sink at 5V.
Output buffer with 1mA source and 8mA sink at 3.3V.
Output buffer with 12mA source and 24mA sink at 5V.
Output buffer with 6mA source and 12mA sink at 3.3V.
Open drain buffer with 16mA sink at 5V.
Open drain buffer with 8mA sink at 3.3V.
Open drain buffer with 24mA sink at 5V.
Open drain buffer with 12mA sink at 3.3V.
Bi-directional buffer with 12mA source and 24mA sink at 5V.
Bi-directional buffer with 6mA source and 16mA sink at 3.3V.
Input buffer with TTL levels.
Input buffer with Schmitt Trigger Hysteresis.
Clock input buffer.
Signal is 5.0V input tolerant when Vcc=3.3V.
DC levels and conditions defined in the DC Electrical Characteristics section.
Rev. 11/18/2004
Page 18
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
DATABU
ADDRES
BUS
ARBITE
ENDE
CSMA/C
AUI
BUS
INTERFAC
CONTROL
MMU
TWISTED
TRANSCEIVE
10BASE-
RAM
Figure 4.1 - LAN91C96I Internal Block Diagram
SMSC DS – LAN91C96I
Page 19
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 5
Functional Description
The LAN91C96I includes an arbitrated-shared memory of 6144 bytes. Any portion of this memory can be
used for receive or transmit packets.
The MMU unit allocates RAM memory to be used for transmit and receive packets, using 256 byte pages.
The arbitration is transparent to the CPU in every sense. There is no speed penalty for Local Bus type of
machines due to arbitration. There are no restrictions on what locations can be accessed at any time.
RAM accesses as well as MMU requests are arbitrated.
The RAM is accessed by mapping it into I/O space for sequential access. Except for the RAM accesses
and the MMU request/release commands, I/O accesses are not arbitrated.
The I/O space is 16 bits wide. Provisions for 8 bit systems are handled by the bus interface.
In the system memory space, up to 64 kbytes are decoded by the LAN91C96I as expansion ROM. The
ROM expansion area is 8 bits wide.
Device configuration is done using a serial EEPROM, with support for modifications to the EEPROM at
installation time.
The CSMA/CD core implements the 802.3 MAC layer protocol. It has two independent interfaces, the data
path and the control path.
In Local Bus mode, serial EEPROM is used for configuration and IEEE Node address making it software
compatible to the LAN9xxx family of Ethernet LAN Controllers. The EEPROM is optional for Local Bus
requiring a Minimum size of 64 X 16 bit word addresses.
Both interfaces are 16 bits wide. The control path provides a set of registers used to configure and control
the block. These registers are accessible by the CPU through the LAN91C96I I/O space. The data path is
of sequential access nature and typically works in one direction at any given time. An internal DMA type of
interface connects the data path to the device RAM through the arbiter and MMU.
The CSMA/CD data path interface is not accessible to the host CPU.
The internal DMA interface can arbitrate for RAM access and request memory from the MMU when
necessary.
An encoder/decoder block interfaces the CSMA/CD block on the serial side. The encoder will do the
Manchester encoding of the transmit data at 10 Mb/s, while the decoder will recover the receive clock, and
decode received data.
Carrier and Collision detection signals are also handled by this block and relayed to the CSMA/CD block.
The encoder/decoder block can interface the network through the AUI interface pairs, or it can be
programmed to use the internal 10BASE-T transceiver and connect to a twisted pair network.
The twisted pair interface takes care of the medium dependent signaling for 10BASE-T type of networks.
It is responsible for line interface (with external pulse transformers and pre-distortion resistors), collision
detection as well as the link integrity test function.
The LAN91C96I provides a 16-bit data path into RAM. The RAM is private and can only be accessed by
the system via the arbiter. RAM memory is managed by the MMU. Byte and word accesses to the RAM
are supported.
Rev. 11/18/2004
Page 20
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
If the system to SRAM bandwidth is insufficient the LAN91C96I will automatically use its IOCHRDY line for
flow control. However, for Local Bus, IOCHRDY will never be negated.
The LAN91C96I consists of an integrated Ethernet controller mapped entirely in I/O space.
The Ethernet controller function includes a built-in 6kbyte RAM for packet storage. This RAM buffer is
accessed by the CPU through sequential access regions of 256 bytes each. The RAM access is internally
arbitrated by the LAN91C96I, and dynamically allocated between transmit and receive packets. Each packet
may consist of one or more 256 byte page. The Ethernet controller functionality is identical to the LAN91C94
and LAN91C95 except where indicated otherwise.
The LAN91C96I Memory Management Unit parameters are:
RAM size
Max. number of pages
Max. number of
packets
Max. pages per packet
Page Size
5.1
6kbytes
24
24 (FIFOs have 24
entries of 5 bits)
6
256 bytes
Buffer Memory
The logical addresses for RAM access are divided into TX area and RX area.
The TX area is seen by the CPU as a window through which packets can be loaded into memory before
queuing them in the TX FIFO of packets. The TX area can also be used to examine the transmit
completion status after packet transmission.
The RX area is associated to the output of the RX FIFO of packets, and is used to access receive packet
data and status information.
The logical address is specified by loading the address pointer register. The pointer can automatically
increment on accesses.
All accesses to the RAM are done via I/O space.
A bit in the address pointer also specifies if the address refers to the TX or RX area.
In the TX area, the host CPU has access to the next transmit packet being prepared for transmission. In
the RX area, it has access to the first receive packet not processed by the CPU yet.
The FIFO of packets, existing beneath the TX and RX areas, is managed by the MMU. The MMU
dynamically allocates and releases memory to be used by the transmit and receive functions.
SMSC DS – LAN91C96I
Page 21
DATASHEET
Rev. 11/18/2004
1536 RX
AREA
1536 TX
AREA
RCV VS. TX
AREA
SELECTION
11-BIT
LOGICAL
ADDRESS
POINTER
REGISTER
RCV
BIT
MMU
RX PACKET
NUMBER
MMU
TX PACKET
NUMBER
PHYSICAL
MEMORY
PAGE =
256 bytes
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 5.1 – Mapping and Paging vs. Receive and Transmit Area
Rev. 11/18/2004
Page 22
DATASHEET
SMSC DS – LAN91C96I
SMSC DS – LAN91C96I
Page 23
DATASHEET
TX FIFO
TX COMPLETION
FIFO
FIFO PORTS
REGISTER
CPU
SIDE
PACKET NUMBER
REGISTER
PACKET #C
DATA
COUNT
STATUS
DATA
COUNT
STATUS
DATA
LINEAR ADDRESS
TO
CSMA
PACKET #B
PACKET #A
COUNT
STATUS
MMU MAPPING
C
B
C
A
B
MEMORY
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 5.2 – Transmit Queues and Mapping
Rev. 11/18/2004
LINEAR ADDRESS
FROM
CSMA
SIDE
CPU
FIFO PORTS
REGISTER
RX FIFO
PACKET #E
DATA
COUNT
STATUS
DATA
PACKET #D
COUNT
STATUS
MMU MAPPING
E
D
E
D
MEMORY
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 5.3 – Receive Queues and Mapping
Rev. 11/18/2004
Page 24
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
EEPROM
INTERFACE
Control
Control
Control
Address
8-16 bit
Bus
Interface
Unit
Control
ENDEC
Control
Control
AUI
Arbiter
MMU
Ethernet
Protocol
Handler
DMA
TX/RX
FIFO
Pointer
(EPH)
TPO
WR
FIFO
Data
RD
FIFO
TX Data
TX Data
6K Byte
SRAM
Twisted Pair
Transceiver
TPI
RX Data
RX Data
Figure 5.4 – LAN91C96i Internal Block Diagram with Data Path
SMSC DS – LAN91C96I
Page 25
DATASHEET
Rev. 11/18/2004
Rev. 11/18/2004
Page 26
DATASHEET
DATA
REGISTER
(FIFOS)
POINTER
REGISTER
READ
REG
READ
DATA
PACKET #
RX FIFO
PACKET
NUMBER
DATA
RAM
ADDRESS
PHYSICAL ADDRESS
MMU
LOGICAL
ADDRESS
CPU/nLAN
(FROM ARBITER)
RCV
TX
(PACKET
NUMBER REG)
POINTER REGISTER
& COUNTER
WRITE
DATA
WRITE
REG
LATCH
READ POINTER
INC
LOAD
TX COMPLETION
FIFO
TX FIFO
PNR
DMA
DATA
ADDRESS
T/nR
PACKET #
RX FIFO
CSMA/CD
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 5.5 – Logical Address Generation and Relevant Registers
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Table 5.1 - LAN91C96I Address Space
Ethernet I/O
space (1)
SIGNALS
USED
nIORD/
nIOWR
LOCAL
BUS
Y
ON-CHIP
Y
DEPTH
WIDTH
16 locations
8 or 16
bits
Table 5.2 - Bus Transactions In Local Bus Mode
8 BIT MODE
((nEN16=1)
(16BIT=0))
16 BIT MODE
A0
0
NSBHE
X
D0-7
Even byte
D8-15
-
1
0
X
0
Odd byte
Even byte
Odd byte
0
1
1
1
0
1
Even byte
-
Odd byte
otherwise
5.2
Invalid cycle
16BIT:
CONFIGURATION REGISTER bit 7
IOis8:
CSR register bit 5
nEN16:
pin nEN16
8 Bit mode:
((IOis8 = 1) + (nMIS16 = 1)
Interrupt Structure
The Ethernet interrupt is conceptually equivalent to the LAN91C94 interrupt line, it is the or function of all
enabled interrupts within the Ethernet core. The enabling, reporting, and clearing of these sources is
controlled by the ECOR register. The interrupt structure is similar for Local Bus modes with the following
exceptions:
Table 5.3 – Interrupt Merging
FUNCTION
Interrupt Output
Ethernet Interrupt Source
Ethernet Interrupt Enable
Ethernet Interrupt Status Bit
SMSC DS – LAN91C96I
LOCAL BUS MODE
INTR0-3
OR function of all interrupt bits specified in the Interrupt Status Register
ANDed with their respective Enable bits
Not Applicable in Local Bus mode
Intr bit in ECSR
Page 27
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
5.3
Reset Logic
The pins and bits involved in the different reset mechanisms are:
RESET - Input Pin
SRESET - Soft Reset bit in ECOR, or the SRESET bit
SOFT RST - EPH Soft Reset bit in RCR
Table 5.4 – Reset Logic
RESETS THE FOLLOWING FUNCTIONS
RESET pin
ECOR
Register
SRESET bit
SOFT RST
5.4
All internal logic
The Ethernet controller function except for
the bit itself. Setting this bit also lowers
the nIREQ/READY line. When cleared,
the nIREQ/READY line is raised.
The Ethernet controller itself except for
the IA, CONF and BASE registers.
SAMPLES
LOCAL BUS
MODE
Yes
No
TRIGGERS
EEPROM
READ
Yes
Yes
No
No
Power Down Logic States
Tables Table 5.5 and Table 5.6 describe the power down states of the LAN91C96I. The pins and bits
involved in power down are:
1.
2.
3.
4.
Rev. 11/18/2004
PWRDWN/TXCLK - Input pin valid when XENDEC is not zero (0).
Pwrdwn bits in ECSR
Enable Function bit in ECOR
PWRDN - Legacy power down bit in Control Register.
Page 28
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
LAN91C96I Power Down States
Table 5.5 - Local Bus Mode Defined States (Refer To Table 5.6 For Next States To Wake-Up Events)
CURRENT STATE
CTR
CTR
PWRDWN WAKEUP_EN
BIT
BIT
X
X
NO.
PWRDWN PIN
(A= ASSRTD)
1
A
ECOR
FUNCTION
ENABLE
X
2
3
4
nA
nA
nA
X
X
X
0
0
0
0
0
1
0
1
1
5
nA
X
0
1
0
ECSR
POWER
DOWN
X
POWERS
DOWN
DOES NOT POWER
DOWN
Everything.
Asserts the
modem power
down pin
(nPWDN) also
Ethernet Tx, Rx, Link
Ethernet Rx, Link
Ethernet Tx
Ethernet Tx,
Rx, Link
Ethernet Tx,
Rx, Link
Notes:
ƒ
The chart assumes that ECOR Function Enable bit is meaningless in Local Bus mode.
ƒ
ECSR Power Down bit must not be set to one(1) in Local Bus mode.
Table 5.6 - Local Bus Mode
NEXT STATE
NO.
WAKES UP BY
1
PWRDWN Pin
deassertion
2
3
By writing a 0 to
CTR WAKEUP_EN
bit
By writing a 0 to
CTR WAKEUP_EN
bit AND CTR
PWRDWN bit = 0
4
5
By writing 0 to CTR
PWRDWN bit
PWR DWN
PIN
(A=ASSRTD)
nA
ECOR
FUCNTION
ENABLE
ECSR
POWER
DOWN
No change
No
change
No change
No
change
nA
nA
X
X
0
0
0
0
0
0
nA
X
0
0
0
nA
X
0
0
0
CTR PWRDWN BIT
CTR
WAKEUP
_EN BIT
COMMENTS
ECOR Function
Enable Bit value
is meaningless in
Local Bus mode
Fully Awake
The CTR
PWRDWN bit
has precedence
unlike the
LAN91C95
Notes:
ƒ
The chart assumes that ECOR Function Enable bit is meaningless in Local Bus mode.
ƒ
ECSR Power Down bit must not be set to one (1) in Local Bus mode.
SMSC DS – LAN91C96I
Page 29
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 6
Packet Format in Buffer memory for
Ethernet
The packet format in memory is similar to that in the TRANSMIT and RECEIVE areas. The first word is
reserved for the status word, the next word is used to specify the total number of bytes, and that in turn is
followed by the data area. The data area holds the packet itself, and its length is determined by the byte
count. The packet memory format is word oriented.
RAM
OFFSET
(DECIMAL)
bit0
bit15
2nd Byte
0
2
1st Byte
STATUS WORD
BYTE COUNT (always even)
RESERVED
4
DATA AREA
1534 Max
CONTROL BYTE
LAST DATA BYTE (if odd)
Last Byte
Figure 6.1 – Data Packet Format
STATUS WORD
BYTE COUNT
DATA AREA
CONTROL BYTE
Rev. 11/18/2004
TRANSMIT PACKET
RECEIVE PACKET
Written by CSMA upon transmit Written by CSMA upon receive
completion (see Status Register) completion (see RX Frame
Status Word)
Written by CPU
Written by CSMA
Written/modified by CPU
Written by CSMA
Written by CPU to control
Written by CSMA. Also has
ODD/EVEN data bytes
ODD/EVEN bit
Page 30
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
BYTE COUNT
Divided by two, it defines the total number of words, including the STATUS WORD, the BYTE COUNT
WORD, the DATA AREA and the CONTROL BYTE.
The receive byte count always appears as even, the ODDFRM bit of the receive status word indicates if
the low byte of the last word is relevant. The transmit byte count least significant bit will be assumed 0 by
the controller regardless of the value written in memory. The maximum size of the frame can be stored in 6
pages (256 bytes per page), the maximum BYTE COUNT number is 1536.
DATA AREA (in RAM)
The data area starts at offset 4 of the packet structure, and it can extend for up to 1531 bytes. The data
area contains six bytes of DESTINATION ADDRESS followed by six bytes of SOURCE ADDRESS,
followed by a variable length number of bytes.
On transmit, all bytes are provided by the CPU, including the source address. The LAN91C96I does not
insert its own source address. On receive, all bytes are provided by the CSMA side.
The 802.3 Frame Length word (Frame Type in Ethernet) is not interpreted by the LAN91C96I. It is treated
transparently as data for both transmit and receive operations.
CONTROL BYTE (in RAM)
The CONTROL BYTE always resides on the high byte of the last word.
CONTROL BYTE is written by the CPU as:
X
X
ODD
CRC
0
0
0
For transmit packets the
0
ODD - If set, indicates an odd number of bytes, with the last byte being right before the CONTROL BYTE.
If clear, the number of data bytes is even and the byte before the CONTROL BYTE is not transmitted.
CRC - When set, CRC will be appended to the frame. This bit has only meaning if the NOCRC bit in the
TCR is set.
For receive packets the CONTROL BYTE is written by the controller as:
0
1
ODD
0
0
0
0
0
ODD - If set, indicates an odd number of bytes, with the last byte being right before the CONTROL BYTE.
If clear, the number of data bytes is even and the byte before the CONTROL BYTE should be ignored.
SMSC DS – LAN91C96I
Page 31
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
RECEIVE FRAME STATUS WORD (in RAM)
This word is written at the beginning of each receive frame in memory. It is not available as a register.
ALGN
ERR
BROD CAST
BADCRC
ODDFRM
TOOLN
G
TOO
SHO
RT
HASH VALUE
5
4
3
MULT
CAST
2
1
0
ALGNERR - Frame had alignment error.
BRODCAST - Receive frame was broadcast.
BADCRC - Frame had CRC error.
ODDFRM - This bit when set indicates that the received frame had an odd number of bytes.
TOOLNG - The received frame is longer than the 802.3 maximum size (1518 bytes on the cable).
TOOSHORT - The received frame is shorter than the 802.3 minimum size (64 bytes on the cable).
HASH VALUE - Provides the hash value used to index the Multicast Registers. Can be used by receive
routines to speed up the group address search. The hash value consists of the six most significant bits of
the CRC calculated on the Destination Address, and maps into the 64 bit multicast table. Bits 5,4,3 of the
hash value select a byte of the multicast table, while bits 2,1,0 determine the bit within the byte selected.
Examples of the address mapping are shown in the table below:
ED
0D
01
2F
ADDRESS
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00
00
00
00
HASH VALUE 5-0
000 000
010 000
100 111
111 111
MULTICAST TABLE BIT
MT-0 bit 0
MT-2 bit 0
MT-4 bit 7
MT-7 bit 7
MULTCAST - Receive frame was multicast. If hash value corresponds to a multicast table bit that is set,
and the address was a multicast, the packet will pass address filtering regardless of other filtering criteria.
Rev. 11/18/2004
Page 32
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 7
Registers Map in I/O Space
16 Bit Registers 16 Bit Registers 16 Bit Registers 16 Bit Registers
BANK0
BANK1
BANK2
MMU
COMMAND
0
TCR
CONFIG
2
EPH STATUS
BASE
4
RCR
(INDIVIDUAL
ADDRESS)
IA 0-1
FIFO PORTS
6
COUNTER
IA 2-3
POINTER
8
MIR
A
MCR
C
RESERVED
IA 4-5
PNR
ARR
BANK3
BANK4
ECOR (LOW BYTE)
ECSR (HIGH BYTE)
MULTICAST
TABLE
DATA
MGMT
GENERAL
PURPOSE
DATA
REVISION
CONTROL
INTERRUPT
ERCV
BANK SELECT REGISTER
E
16 Bit Registers
BANK SELECT
BANK2 Register
used during
run time.
Non volatile,
stored in EEPROM.
Figure 7.1 - LAN91C96I Registers
SMSC DS – LAN91C96I
Page 33
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
7.1
I/O Space Access
The address is determined by the Ethernet I/O Base Registers. The Ethernet I/O space can be configured
as an 8 or 16 bit I/O space, and is similar to the LAN91C94, LAN91C92, etc. I/O space mapping. To limit
the I/O space requirements to 16 locations, the registers are Split into 4 banks in Local Bus mode. The last
word of the I/O area is shared by all banks and can be used to change the bank in use. Banks 0 through 3
functionally correspond to the LAN91C94 banks.
Registers are described using the following convention:
OFFSET
E
BIT 15
RST
Val
BIT 7
RST
Val
BIT14
RST
Val
BIT 6
RST
Val
NAME
BANK SELECT
REGISTER
BIT 13
RST
Val
BIT 5
RST
Val
BIT 12
RST
Val
BIT 4
RST
Val
TYPE
SYMBOL
READ/WRITE
BSR
BIT 11
RST
Val
BIT 3
RST
Val
BIT 10
RST
Val
BIT 2
RST
Val
BIT9
RST
Val
BIT 1
RST
Val
BIT8
RST
Val
BIT 0
RST
Val
OFFSET - Defines the address offset within the IOBASE where the register can be accessed at, provided
the bank select has the appropriate value. The offset specifies the address of the even byte (bits 0-7) or
the address of the complete word. The odd byte can be accessed using address (offset + 1).
Some registers (e.g. the Interrupt Ack. or the Interrupt Mask) are functionally described as two eight bit
registers. In such case, the offset of each one is independently specified.
Regardless of the functional description, when the LAN91C96I is in 16 bit mode, all registers can be
accessed as words or bytes.
RST Val - The default bit values upon hard reset are highlighted below each register.
Rev. 11/18/2004
Page 34
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
7.2
I/O Space Registers Description
7.2.1
Bank Select Register
OFFSET
NAME
BANK SELECT
REGISTER
# IN HEX
TYPE
SYMBOL
READ/WRITE
BSR
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
BS2
BS1
BS0
0
0
0
X
X
X
X
X
BS2, BS1, BS0 - Determine the bank presently in use.
This register is always accessible except in power down mode and is used to select the register bank in
use.
The upper byte always reads as 33h and can be used to help determine the I/O location of the
LAN91C96I.
The BANK SELECT REGISTER is always accessible regardless of the value of BS0-2.
Accesses to non-existing banks will ignore writes and reads will return 0x33 on byte reads.
BS2
0
0
0
0
1
BS1
0
0
1
1
X
BS0
0
1
0
1
X
BANK #
0
1
2
3
None
I/O SPACE - BANK0
OFFSET
0
NAME
TRANSMIT CONTROL REGISTER
TYPE
READ/WRITE
SYMBOL
TCR
This register holds bits programmed by the CPU to control some of the protocol transmit options.
FDSE
ETENTYPE
0
PAD_EN
0
SMSC DS – LAN91C96I
0
EPH
LOOP
0
STP
SQET
0
X
X
X
FDUPLX
0
TXP_EN
0
Page 35
DATASHEET
MON_
CSN
0
FORCOL
0
NOCRC
X
LOOP
0
0
TXENA
0
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
NOCRC - Does not append CRC to transmitted frames when set, allows software to insert the desired
CRC. Defaults to zero, namely CRC inserted.
FDSE - Full Duplex Switched Ethernet. When set, the LAN91C96I is configured for Full Duplex Switched
Ethernet, it defaults clear to normal CSMA/CD protocol. In FDSE mode the LAN91C96I transmit and
receive processes are fully independent, namely no deferral and no collision detection are implemented.
When FDSE is set, FDUPLX is internally assumed high and MON_CSN is assumed low regardless of their
actual values.
ETEN-TYPE - Early transmit underrun function type. When low, ETEN bit in the PTR register will enable
the Early transmit underrun function as it was implemented in the LAN91C94. I.e. “The Early Transmit
function allows the CPU to enqueue the first transmit packet before it is fully loaded in packet memory.
The loading operation proceeds in parallel with the transmission, and in the case that the transmitter gets
ahead of the CPU, the LAN91C96I will prevent the transmission of erroneous data by forcing an Underrun
condition. Underruns will be triggered by starving the transmit DMA if the LAN91C96I detects that the
DMA TX address exceeds the pointer address.”
With ETEN-TYPE set to one (1), ETEN bit set to one(1) in the pointer register will mean the following:
“For underrun detection purposes the RAM logical address and packet numbers of the packet being
loaded are compared against the logical address and packet numbers of the packet being transmitted. If
the packet numbers match and the logical address of the packet being transmitted exceeds the address
being loaded, the LAN91C96I will prevent the transmission of erroneous data by forcing an Underrun
condition. Underruns will be triggered by starving the transmit DMA if the LAN91C96I detects that the
DMA TX address exceeds the pointer address.”
Note:
The bit may be available for chips with Rev. ID 6 only and may be assigned to a different function in the
future.
EPH_LOOP - Internal loopback at the EPH block. Does not exercise the encoder decoder. Serial data is
looped back when set. Defaults low. Note: After exiting the loopback test, an SRESET in the ECOR or the
SOFT_RST in the RCR must be set before returning to normal operation.
STP_SQET - Stop transmission on SQET error. If set, stops and disables transmitter on SQE test error.
Does not stop on SQET error and transmits next frame if clear. Defaults low.
FDUPLX - When set it enables full duplex operation. This will cause frames to be received if they pass the
address filter regardless of the source for the frame. When clear the node will not receive a frame sourced
by itself. Clearing this bit (Normal Operation), allows in promiscuous mode, not to receive it’s own packet.
TXP_EN - This bit is reserved and should always be set to 0 on the LAN91C96I.
MON_CSN - When set the LAN91C96I monitors carrier while transmitting. It must see its own carrier by
the end of the preamble. If it is not seen, or if carrier is lost during transmission, the transmitter aborts the
frame without CRC and turns itself off.
When this bit is clear the transmitter ignores its own carrier. Defaults low.
PAD_EN - When set, the LAN91C96 will pad transmit frames shorter than 64 bytes with 00. For TX, CPU
should write the actual BYTE COUNT before padded by the LAN91C96 to the buffer RAM, excludes the
padded 00. When this bit is cleared, the LAN91C96 does not pad frames.
FORCOL - When set the transmitter will force a collision by not deferring deliberately. After the collision
this bit is reset automatically. This bit defaults low to normal operation.
LOOP - Local Loopback. When set, transmit frames are internally looped to the receiver after the
encoder/decoder. Collision and Carrier Sense are ignored. No data is sent out. Defaults low to normal
mode.
Rev. 11/18/2004
Page 36
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
TXENA - Transmit enabled when set. Transmit is disabled if clear. When the bit is cleared the LAN91C96I
will complete the current transmission before stopping. When stopping due to an error, this bit is
automatically cleared.
Table 7.1 - Transmit Loop
X
X
1
0
X
FDS
E
X
X
0
0
0
X
1
AUI
FDUPLX
EPH_LOOP
LOOP
LOOPS AT
X
1
1
1
0
1
0
0
0
0
X
1
0
0
0
1
0
0
EPH Block
ENDEC
Cable
10BASE-T Driver
NORMAL CSMA/CD No Loopback
FULL DUPLEX
SWITCHED ETHERNET
- No loopback and No
SQET
TRANSMITS
TO NETWORK
No
No
Yes
Yes
Yes
Yes
I/O SPACE - BANK0
OFFSET
2
NAME
EPH STATUS REGISTER
TYPE
READ ONLY
SYMBOL
EPHSR
This register stores the status of the last transmitted frame. This register value, upon individual transmit
packet completion, is stored as the first word in the memory area allocated to the packet. Packet interrupt
processing should use the copy in memory as the register itself will be updated by subsequent packet
transmissions. The register can be used for real time values (like TXENA and LINK OK). If TXENA is
cleared the register holds the last packet completion status.
TX
UNRN
0
TX
DEFR
0
LINK_
OK
0
LTX
BRD
0
0
CTR
_ROL
0
SQET
16COL
0
0
RES
EXC
_DEF
0
LTX
MULT
0
LOST
CARR
0
MUL
COL
0
LATCOL
WAKEUP
0
SNGL
COL
0
0
TX_SUC
0
TXUNRN - Transmit Under run. Set if Under run occurs, it also clears TXENA bit in TCR. Cleared by
setting TXENA high. This bit should never be set under normal operation.
LINK_OK - State of the 10BASE-T Link Integrity Test. A transition on the value of this bit generates an
interrupt when the LE ENABLE bit in the Control Register is set.
RES – This bit is reserved and will always return a zero(0). CTR_ROL - Counter Roll over. When set one
or more 4 bit counters have reached maximum count (15). Cleared by reading the ECR register.
EXC_DEF - Excessive deferral. When set last/current transmit was deferred for more than 1518 * 2 byte
times. Cleared at the end of every packet sent.
LOST_CARR - Lost carrier sense. When set indicates that Carrier Sense was not present at end of
preamble. Valid only if MON_CSN is enabled. This condition causes TXENA bit in TCR to be reset.
Cleared by setting TXENA bit in TCR.
SMSC DS – LAN91C96I
Page 37
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
LATCOL - Late collision detected on last transmit frame. If set a late collision was detected (later than 64
byte times into the frame). When detected the transmitter JAMs and turns itself off clearing the TXENA bit
in TCR. Cleared by setting TXENA in TCR.
WAKEUP - When this bit is set, it indicates that a receive packet was received that had the “Magic” packet
(MP) signature of the node’s own Individual address repetitions in it. This bit indicates a valid detection for
magic packet.
TX_DEFR - Transmit Deferred. When set, carrier was detected during the first 6.4 uSec of the inter frame
gap. Cleared at the end of every packet sent.
LTX_BRD - Last transmit frame was a broadcast. Set if frame was broadcast. Cleared at the start of every
transmit frame.
SQET - Signal Quality Error Test. The transmitter opens a 1.6 us window 0.8 us after transmission is
completed and the receiver returns inactive. During this window, the transmitter expects to see the SQET
signal from the transceiver. The absence of this signal is a 'Signal Quality Error' and is reported in this
status bit. Transmission stops and EPH INT is set if STP_SQET is in the TCR is also set when SQET is
set. This bit is cleared by setting TXENA high.
16COL - 16 collisions reached. Set when 16 collisions are detected for a transmit frame. TXENA bit in TCR
is reset. Cleared when TXENA is set high.
LTX_MULT - Last transmit frame was a multicast. Set if frame was a multicast. Cleared at the start of
every transmit frame.
MULCOL - Multiple collision detected for the last transmit frame. Set when more than one collision was
experienced. Cleared when TX_SUC is high at the end of the packet being sent.
SNGLCOL - Single collision detected for the last transmit frame. Set when a collision is detected. Cleared
when TX_SUC is high at the end of the packet being sent.
TX_SUC - Last transmit was successful. Set if transmit completes without a fatal error. This bit is cleared
by the start of a new frame transmission or when TXENA is set high.
Fatal errors are:
ƒ
16 collisions
ƒ
SQET fail and STP_SQET = 1
ƒ
FIFO Underrun
ƒ
Carrier lost and MON_CSN = 1
ƒ
Late collision
Rev. 11/18/2004
Page 38
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK0
OFFSET
4
SOFT
RST
0
0
SMSC DS – LAN91C96I
NAME
RECEIVE CONTROL REGISTER
FILT
CAR
0
0
TYPE
READ/WRITE
SYMBOL
RCR
0
0
0
0
0
0
0
0
STRIP
CRC
0
ALMUL
PRMS
0
0
0
0
0
Page 39
DATASHEET
RXEN
0
RX_
ABORT
0
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
SOFT_RST - Software activated Reset. Active high. Initiated by writing this bit high and terminated by
writing the bit low. The LAN91C96I configuration is not preserved, except for Configuration, Base, and IA05 Registers. The EEPROM in Local Bus mode is not reloaded after software reset.
FILT_CAR - Filter Carrier. When set filters leading edge of carrier sense for 12 bit times. Otherwise
recognizes a receive frame as soon as carrier sense is active.
STRIP_CRC - When set it strips the CRC on received frames. When clear the CRC is stored in memory
following the packet. Defaults low.
RXEN - Enables the receiver when set. If cleared, completes receiving current frame and then goes idle.
Defaults low on reset.
ALMUL - When set accepts all multicast frames (frames in which the first bit of DA is '1'). When clear
accepts only the multicast frames that match the multicast table setting. Defaults low.
PRMS - Promiscuous mode. When set receives all frames.
Change vs. LAN91C92: Does not receive its own transmission when not in full duplex(FDUPLX)!.
RX_ABORT - This bit is set if a receive frame was aborted due to length longer than 1532 bytes. The
frame will not be received. The bit is cleared by RESET or by the CPU writing it low.
I/O SPACE - BANK0
OFFSET
6
NAME
COUNTER REGISTER
TYPE
READ ONLY
SYMBOL
ECR
Counts four parameters for MAC statistics. When any counter reaches 15 an interrupt is issued. All
counters are cleared when reading the register, and do not wrap around beyond 15.
NUMBER OF EXC. DEFERRED TX
0
0
0
MULTIPLE COLLISION COUNT
0
0
0
0
0
0
0
NUMBER OF DEFERRED TX
0
0
SINGLE COLLISION COUNT
0
0
0
0
Each four bit counter is incremented every time the corresponding event, as defined in the EPH STATUS
REGISTER bit description, occurs. Note that the counters can only increment once per enqueued transmit
packet, never faster, limiting the rate of interrupts that can be generated by the counters. For example if a
packet is successfully transmitted after one collision the SINGLE COLLISION COUNT field is incremented
by one. If a packet experiences between 2 to 16 collisions, the MULTIPLE COLLISION COUNT field is
incremented by one.
If a packet experiences deferral the NUMBER OF DEFERRED TX field is incremented by one, even if the
packet experienced multiple deferrals during its collision retries.
The COUNTER REGISTER facilitates maintaining statistics in the AUTO RELEASE mode where no
transmit interrupts are generated on successful transmissions.
Reading the register in the transmit service routine will be enough to maintain statistics.
Rev. 11/18/2004
Page 40
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK0
OFFSET
8
NAME
MEMORY INFORMATION REGISTER
TYPE
READ ONLY
SYMBOL
MIR
For software compatibility with other LAN9000 parts all memory-related information is represented in 256 x
M byte units, where the multiplier M is determined by the MCR upper byte. M equals “1” for the
LAN91C96I.
0
0
0
FREE MEMORY AVAILABLE (in BYTES* 256* M)
0
1
1
0
0
0
0
MEMORY SIZE (in BYTES* 256* M)
0
1
1
0
0
0
FREE MEMORY AVAILABLE - This register can be read at any time to determine the amount of free
memory. The register defaults to the MEMORY SIZE upon reset or upon the RESET MMU command.
MEMORY SIZE - This register can be read to determine the total memory size, and will always read 18H
(6144 bytes) for the LAN91C96I.
LAN91C90
LAN91C90
LAN91C92/
LAN91C94
LAN91C95
LAN91C96I
LAN91C100
MEMORY SIZE REGISTER
FFH
40H
12H
M
1
1
1
ACTUAL MEMORY
64 kbytes
16 kbytes
4608 bytes
18H
18H
FFH
1
1
2
6144 bytes
6144 bytes
128 kbytes
I/O SPACE - BANK0
OFFSET
A
NAME
MEMORY CONFIGURATION
REGISTER
TYPE
lower byte READ/WRITE
upper byte READ ONLY
SYMBOL
MCR
Memory Size Multiplier “M”
0
0
0
0
1
1
0
0
Memory Reserved for Transmit (in BYTES * 256 * M)
0
0
0
0
1
1
0
0
MEMORY RESERVED FOR TRANSMIT - Programming this value allows the host CPU to reserve
memory to be used later for transmit, limiting the amount of memory that receive packets can use up.
When programmed for zero, the memory allocation between transmit and receive is completely dynamic.
When programmed for a non-zero value, the allocation is dynamic if the free memory exceeds the
programmed value, while receive allocation requests are denied if the free memory is less or equal to the
programmed value. This register defaults to zero upon reset. It is not affected by the RESET MMU
command.
The value written to the MCR is a reserved memory space IN ADDITION TO ANY MEMORY
CURRENTLY IN USE. If the memory allocated for transmit plus the reserved space for transmit is required
to be constant (rather than grow with transmit allocations) the CPU should update the value of this register
after allocating or releasing memory.
SMSC DS – LAN91C96I
Page 41
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
The contents of MIR as well as the low byte of MCR are specified in 256* M bytes. The multiplier M is
determined by bits 11, 10 and 9 as follows:
DEVICE
FEAST
BIT 11
0
BIT 10
1
BIT 9
0
M
2
LAN91C90
0
0
1
1
FUTURE
FUTURE
FUTURE
0
1
1
1
0
0
1
0
1
4
8
16
MAX MEMORY SIZE
256 (Note 7.1) 256
(Note 7.1) 2=128k
256 (Note 7.1) 256
(Note 7.1) 1=64k
256k
512k
1M
Note 7.1 Bits 11, 10 and 9 are read only bits used by the software driver to transparently run on different controllers
of the LAN9000 family.
I/O SPACE - BANK1
OFFSET
0
NAME
CONFIGURATION REGISTER
TYPE
READ/WRITE
SYMBOL
CR
The Configuration Register holds bits that define the device configuration and are not expected to change
during run-time. This register is part of the EEPROM saved setup in Local Bus mode only.
NO
WAIT
0
0
X
16BIT
DIS LINK
function
of EN16*
pin
0
X
0
X
Reserved
1
1
0
FULL
STEP
0
INT
SEL1
0
SET
SQLCH
0
INT
SEL0
0
AUI
SELECT
0
X
NO WAIT - When set, does not request additional wait states. An exception to this are accesses to the
Data Register if not ready for a transfer. When clear, negates IOCHRDY for two to three 20MHz clocks on
any cycle to the LAN91C96I.
FULL STEP - This bit is used to select the signaling mode for the AUI port. When set the AUI port uses full
step signaling. Defaults low to half step signaling. This bit is only meaningful when AUI SELECT is high.
SET SQLCH - When set, the squelch level used for the 10BASE-T receive signal is 240mV. When clear
the receive squelch level is 400mV. Defaults low.
AUI SELECT - When set the AUI interface is used, when clear the 10BASE-T interface is used. Defaults
low.
16BIT - Used in conjunction with EN16* and IO is 8 to define the width of the system bus. If the EN16* pin
is low, this bit is forced high. Otherwise the bit defaults low and can be programmed by the host CPU.
DIS LINK - This bit is used to disable the 10BASE-T link test functions. When this bit is high the
LAN91C96I disables link test functions by not generating nor monitoring the network for link pulses. In this
mode the LAN91C96I will transmit packets regardless of the link test, the EPHSR LINK_OK bit will be set
and the LINK LED will stay on. When low the link test functions are enabled. If the link status indicates
FAIL, the EPHSR LINK_OK bit will be low, while transmit packets enqueued will be processed by the
LAN91C96I, transmit data will not be sent out to the cable.
Rev. 11/18/2004
Page 42
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
INT SEL1-0 - In Local Bus mode, used to select one out of four interrupt pins. The three unused interrupts
are tristated.
INT SEL1
INT SEL0
INTERRUPT PIN USED
0
0
INTR0
0
1
INTR1
1
0
INTR2
1
1
INTR3
I/O SPACE - BANK1
OFFSET
2
NAME
BASE ADDRESS REGISTER
TYPE
READ/WRITE
SYMBOL
BAR
For Local Bus mode only, this register holds the I/O address decode option chosen for the I/O and ROM
space. It is part of the EEPROM saved setup, and is not usually modified during run-time.
A15
0
A14
0
ROM SIZE
0
1
A13
0
RA18
1
A9
1
RA17
0
A8
1
RA16
0
A7
0
RA15
1
A6
0
RA14
1
A5
0
1
A15 - A13 and A9 - A5 - These bits are compared in Local Bus mode against the I/O address on the bus to
determine the IOBASE for LAN91C96I registers. The 64k I/O space is fully decoded by the LAN91C96I
down to a 16 location space, therefore the unspecified address lines A4, A10, A11 and A12 must be all
zeros.
ROM SIZE - Determines the ROM decode area in Local Bus mode memory space as follows:
00 = ROM disable
01 = 16k: RA14-18 define ROM select.
10 = 32k: RA15-18 define ROM select.
11 = 64k: RA16-18 define ROM select.
RA18-RA14 - These bits are compared in Local Bus mode against the memory address on the bus to
determine if the ROM is being accessed, as a function of the ROM SIZE. ROM accesses are read only
memory accesses defined by MEMRD* going low.
For a full decode of the address space unspecified upper address lines have to be: A19 = "1", A20-A23
lines are not directly decoded, however Local Bus systems will only activate SMEMRD* only when A20A23=0.
All bits in this register are loaded from the serial EEPROM in Local Bus Mode only.
The I/O base decode defaults to 300h (namely, the high byte defaults to 18h). ROM SIZE defaults to 01.
ROM decode defaults to CC000 (namely the low byte defaults to 67h).
Below chart shows the decoding of I/O Base Address 300h:
SMSC DS – LAN91C96I
Page 43
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
A15
0
A14
0
A13
0
A12
0
A11
0
A10
0
A9
1
A8
1
A7
0
A6
0
A5
0
A4
0
A3
0
A2
0
A1
0
A0
0
I/O SPACE - BANK1
OFFSET
4 THROUGH 9
NAME
INDIVIDUAL ADDRESS REGISTERS
TYPE
READ/WRITE
SYMBOL
IAR
These registers are loaded starting at word location 20h of the EEPROM upon hardware reset or
EEPROM reload. The registers can be modified by the software driver, but a STORE operation will not
modify the EEPROM Individual Address contents.
Bit 0 of Individual Address 0 register corresponds to the first bit of the address on the cable.
ADDRESS 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
ADDRESS 1
0
0
0
0
0
ADDRESS 2
0
0
0
0
0
ADDRESS 3
0
0
0
0
0
ADDRESS 4
0
0
0
0
0
ADDRESS 5
0
Rev. 11/18/2004
0
0
0
0
Page 44
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK1
OFFSET
A
NAME
GENERAL ADDRESS REGISTERS
0
0
0
0
TYPE
READ/WRITE
SYMBOL
GPR
0
HIGH DATA BYTE
0
0
0
0
0
0
LOW DATA BYTE
0
0
0
0
0
This register can be used as a way of storing and retrieving non-volatile information in the EEPROM to be
used by the software driver. The storage is word oriented, and the EEPROM word address to be read or
written is specified using the six lowest bits of the Pointer Register.
This register can also be used to sequentially program the Individual Address area of the EEPROM, that is
normally protected from accidental Store operations.
This register will be used for EEPROM read and write only when the EEPROM SELECT bit in the Control
Register is set. This allows generic EEPROM read and write routines that do not affect the basic setup of
the LAN91C96I.
I/O SPACE - BANK1
OFFSET
C
NAME
CONTROL REGISTER
0
RCV_
BAD
PWRDN
0
LE
ENABLE
0
0
CR
ENABLE
0
0
TE
ENABLE
0
WAKEUP
_EN
0
TYPE
READ/WRITE
AUTO
RELEAS
E
0
X
X
SYMBOL
CTR
1
X
EEPROM
SELECT
0
X
1
RELOAD
STORE
0
0
RCV_BAD - When set, bad CRC packets are received. When clear bad CRC packets do not generate
interrupts and their memory is released.
PWRDN - Active high bit used to put the Ethernet function in power down mode.
Cleared by:
1.
A write to any register in the LAN91C96I I/O space.
2.
Hardware reset. This bit is combined with the Pwrdwn bit in ECSR and with the powerdown bit to
determine when the function is powered down.
WAKUP_EN - Active high bit used to enable the controller in the appropriate power down modes to power
up and set the WAKEUP bit in the EPHSR -> generate an EPH interrupt(if not masked). When clear (0),
no “Magic Packet” scanning is done on receive packets.
Note:
Setting (1) the bit is meaningful only if the function is enabled (Enable Function bit in COR; offset 8000h)
SMSC DS – LAN91C96I
Page 45
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
AUTO RELEASE - When set, transmit pages are released by transmit completion if the transmission was
successful (when TX_SUC is set). In that case there is no status word associated with its packet number,
and successful packet numbers are not even written into the TX COMPLETION FIFO.
A sequence of transmit packets will only generate an interrupt when the sequence is completely
transmitted (TX EMPTY INT will be set), or when a packet in the sequence experiences a fatal error (TX
INT will be set). Upon a fatal error TXENA is cleared and the transmission sequence stops. The packet
number that failed is the present in the FIFO PORTS register, and its pages are not released, allowing the
CPU to restart the sequence after corrective action is taken.
LE ENABLE - Link Error Enable. When set it enables the LINK_OK bit transition as one of the interrupts
merged into the EPH INT bit. Defaults low (disabled). Writing this bit also serves as the acknowledge by
clearing previous LINK interrupt conditions.
CR ENABLE - Counter Roll over Enable. When set it enables the CTR_ROL bit as one of the interrupts
merged into the EPH INT bit. Defaults low (disabled).
TE ENABLE - Transmit Error Enable. When set it enables Transmit Error as one of the interrupts merged
into the EPH INT bit. Defaults low (disabled). Transmit Error is any condition that clears TXENA with
TX_SUC staying low as described in the EPHSR register.
EEPROM SELECT - This bit allows the CPU to specify which registers the EEPROM RELOAD or STORE
refers to. When high, the General Purpose Register is the only register read or written. When low, the
RELOAD and STORE functions are enabled.
RELOAD
The LAN91C96I reads the Configuration, Base and Individual Address, and STORE writes the
Configuration and Base registers.
Also when set it will read the EEPROM and update relevant registers with its contents. This bit then Clears
upon completing the operation.
STORE
The STORE LAN91C96I bit when set, stores the contents of all relevant registers in the serial EEPROM.
This bit is cleared upon completing the operation.
Note:
When an EEPROM access is in progress the STORE and RELOAD bits will be read back as high. The
remaining 14 bits of this register will be invalid. During this time, attempted read/write operations, other
than polling the EEPROM status, will NOT have any effect on the internal registers. The CPU can resume
accesses to the LAN91C96I after both bits are low. A worst case RELOAD operation initiated by RESET
or by software takes less than 750usec in either mode.
Rev. 11/18/2004
Page 46
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK2
OFFSET
NAME
0
MMU COMMAND REGISTER
TYPE
WRITE ONLY
BUSY BIT
READABLE
SYMBOL
MMUCR
This register is used by the CPU to control the memory allocation, de-allocation, TX FIFO and RX FIFO
control. The three command bits determine the command issued as described below:
COMMAND
w
x
0
y
N2
N1
N0/
BUSY
z
0
COMMAND SET:
wxyz
Note:
0000
0) -
NOOP - NO OPERATION -
0010
2) -
ALLOCATE MEMORY FOR TX - N2, N1, N0 defines the amount of memory requested
as (value + 1) 256* bytes. Namely N2, N1, N0 = 1 will request 2 256* = 512 bytes.
Valid range for N2, N1, N0 is 0 through 5. A shift-based divide by 256 of the packet
length yields the appropriate value to be used as N2, N1 and N0. Immediately generates
a completion code at the ALLOCATION RESULT REGISTER. Can optionally generate
an interrupt on successful completion. The allocation time can take worst case (N2, N1,
N0 + 2)* 200µs.
0100
4) -
RESET MMU TO INITIAL STATE - Frees all memory allocations, clears relevant
interrupts, resets packet FIFO pointers.
0110
6) -
REMOVE FRAME FROM TOP OF RX FIFO - To be issued after CPU has completed
processing of present receive frame. This command removes the receive packet number
from the RX FIFO and brings the next receive frame (if any) to the RX area (output of
RX FIFO).
0111
7) -
REMOVE FRAME FROM TOP OF TX FIFO- To be issued ONLY after the Host disabled
the transmitter and has completed processing of the present transmit frame.
Determining Transmit completion is done by polling the TEMPTY bit in the Transmit FIFO Port Register.
This command removes the Transmit packet number from the TX FIFO and brings the next Transmit
frame (if any) to the TX area (output of TX FIFO).
1000
8) -
REMOVE AND RELEASE TOP OF RX FIFO - Like 6) but also releases all memory used
by the packet presently at the RX FIFO output.
1010
A) -
RELEASE SPECIFIC PACKET - Frees all pages allocated to the packet specified in the
PACKET NUMBER REGISTER. Should not be used for frames pending transmission.
Typically used to remove transmitted frames, after reading their completion status. Can
be used following 6 (to release receive packet memory in a more flexible way than 8).
1100
C) -
ENQUEUE PACKET NUMBER INTO TX FIFO - This is the normal method of
transmitting a packet just loaded into RAM. The packet number to be enqueued is taken
from the PACKET NUMBER REGISTER.
SMSC DS – LAN91C96I
Page 47
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
1110
F) -
RESET TX FIFOs - This command will reset both TX FIFOs. The TX FIFO holding the
packet numbers awaiting transmission and the TX Completion FIFO. This command
provides a mechanism for canceling packet transmissions, and reordering or bypassing
the transmit queue.
The RESET TX FIFOs command should only be used when the transmitter is disabled. Unlike the RESET
MMU command, the RESET TX FIFOs does not release any memory.
Notes:
ƒ
Only command 2 uses N2, N1 and N0.
ƒ
When using the RESET TX FIFOS command, the CPU is responsible for releasing the memory associated with
outstanding packets, or re-enqueuing them. Packet numbers in the completion FIFO can be read via the FIFO
ports register before issuing the command.
ƒ
MMU commands releasing memory (commands 8 and A) should only be issued if the corresponding packet
number has memory allocated to it.
COMMAND SEQUENCING
A second allocate command (command 2) should not be issued until the present one has completed.
Completion is determined by reading the FAILED bit of the allocation result register or through the allocation
interrupt. A second release command (commands 8 and A) should not be issued if the previous one is still
being processed. The BUSY bit indicates that a release command is in progress. After issuing command A,
the contents of the PNR should not be changed until BUSY goes low. After issuing command 8, command 6
should not be issued until BUSY goes low. BUSY BIT - Readable at bit “0” of the MMU command register
address. When set indicates that MMU is still processing a release command. When clear, MMU has already
completed last release command. BUSY and FAILED bits are set upon the trailing edge of command.
I/O SPACE - BANK2
OFFSET
1
D7
0
NAME
AUTO TX START REGISTER
D6
0
D5
0
D4
0
D3
0
TYPE
READ/WRITE
D2
0
SYMBOL
AUTOTX
D1
0
D0
0
AUTO TX START REGISTER - This register specifies the value, in 16 byte multiples of when the transmit
state machine starts a transmit operation when the associated transmit buffer is enqueued into the
transmit FIFO.
The AutoTx bit as well as the ETEN bit must both be set in the pointer register in order for this register to
be utilized. Note: This register must be non-zero for the Auto-Tx function to work. A value of ”0” will disable
this function. The RCV bit in the Pointer register must be zero (0) as well. The RCV bit must be cleared so
that the packet being written and enqueued is being selected by the PNR and not the receive FIFO.
Register Operation: When Early Transmit is enabled via the ETEN bit in the pointer register, the host is
able to enqueue a buffer for transmit operation before all of the transmitted data is copied into the
LAN91C96I dual ported RAM. In the case of the AutoTx bit being cleared, the host must manually start the
transmit operation. When the AutoTx bit is set, the EPH Transmit engine compares the number of bytes
moved into the transmit packet buffer with the value of the Auto TX Start Register to start transmit
operation. This eliminates the requirement for the host to manually start the transmit.
Rev. 11/18/2004
Page 48
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK2
OFFSET
2
NAME
PACKET NUMBER REGISTER
RESERVED
0
0
0
TYPE
READ/WRITE
SYMBOL
PNR
PACKET NUMBER AT TX AREA
0
0
0
0
0
PACKET NUMBER AT TX AREA - The value written into this register determines which packet number is
accessible through the TX area. Some MMU commands use the number stored in this register as the
packet number parameter. This register is cleared by a RESET or a RESET MMU Command.
RESERVED – This bit is reserved.
I/O SPACE - BANK2
OFFSET
3
NAME
ALLOCATION RESULT REGISTER
TYPE
READ ONLY
SYMBOL
ARR
This register is updated upon an ALLOCATE MEMORY MMU command.
FAILED
1
0
0
0
ALLOCATED PACKET NUMBER
0
0
0
0
FAILED - A ”0” indicates a successful allocation completion. If the allocation fails the bit is set and only
cleared when the pending allocation is satisfied. Defaults high upon reset and reset MMU command. For
polling purposes, the ALLOC_INT in the Interrupt Status Register should be used because it is
synchronized to the read operation.
Sequence:
1.
Allocate Command
2.
Poll ALLOC_INT bit until set
3.
Read Allocation Result Register
ALLOCATED PACKET NUMBER - Packet number associated with the last memory allocation request.
The value is only valid if the FAILED bit is clear.
Note:
For software compatibility with future versions, the value read from the ARR after an allocation request is
intended to be written into the PNR as is, without masking higher bits (provided FAILED = “0”).
SMSC DS – LAN91C96I
Page 49
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK2
OFFSET
4
NAME
FIFO PORTS REGISTER
TYPE
READ ONLY
SYMBOL
FIFO
This register provides access to the read ports of the Receive FIFO and the Transmit completion FIFO.
The packet numbers to be processed by the interrupt service routines are read from this register.
REMPTY
1
TEMPTY
1
0
0
0
0
0
RX FIFO PACKET NUMBER
0
0
0
0
0
TX FIFO PACKET NUMBER
0
0
0
0
REMPTY - No receive packets queued in the RX FIFO. For polling purposes, uses the RCV_INT bit in the
Interrupt Status Register.
TOP OF RX FIFO PACKET NUMBER - Packet number presently at the output of the RX FIFO. Only valid
if REMPTY is clear. The packet is removed from the RX FIFO using MMU Commands 6) or 8).
TEMPTY - No transmit packets in completion queue. For polling purposes, uses the TX_INT bit in the
Interrupt Status Register.
TX FIFO PACKET NUMBER - Packet number presently at the output of the TX FIFO. Only valid if
TEMPTY is clear. The packet is removed when a TX INT acknowledge is issued.
Note:
For software compatibility with future versions, the value read from each FIFO register is intended to be
written into the PNR as is, without masking higher bits (provided TEMPTY and REMPTY = 0 respectively).
I/O SPACE - BANK2
OFFSET
6
NAME
POINTER REGISTER
RCV
AUTO
INCR.
READ
0
0
0
0
0
0
ETEN
TYPE
READ/WRITE
AutoTx
0
0
POINTER LOW
0
0
SYMBOL
PTR
POINTER HIGH
0
0
0
0
0
0
POINTER REGISTER - The value of this register determines the address to be accessed within the
transmit or receive areas. It will auto-increment on accesses to the data register when AUTO INCR. is set.
The increment is by one for every byte access, and by two for every word access. When RCV is set the
address refers to the receive area and uses the output of RX FIFO as the packet number, when RCV is
clear the address refers to the transmit area and uses the packet number at the Packet Number Register.
READ bit - Determines the type of access to follow. If the READ bit is high the operation intended is a
read. If the READ bit is low the operation is a write. Loading a new pointer value, with the READ bit high,
generates a pre-fetch into the Data Register for read purposes.
Read-back of the pointer will indicate the value of the address last accessed by the CPU (rather than the
last pre-fetched). This allows any interrupt routine that uses the pointer, to save it and restore it without
affecting the process being interrupted.
The Pointer Register should not be loaded until 400ns after the last write operation to the Data Register to
ensure that the Data Register FIFO is empty. On reads, if IOCHRDY is not connected to the host, the Data
Rev. 11/18/2004
Page 50
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Register should not be read before 400ns after the pointer was loaded to allow the Data Register FIFO to
fill.
If the pointer is loaded using 8 bit writes, the low byte should be loaded first and the high byte last.
ETEN bit - When set enables EARLY Transmit underrun detection. Normal operation when clear.
If TCR bit 14 (ETEN-TYPE) is zero and this bit is set, the Early transmit underrun function will be enabled
as it was implemented in the LAN91C94:
"The Early Transmit function allows the CPU to enqueue the first transmit packet before it is fully loaded in
packet memory. The loading operation proceeds in parallel with the transmission, and in the case that the
transmitter gets ahead of the CPU, the LAN91C94 will prevent the transmission of erroneous data by
forcing an Underrun condition. Underruns will be triggered by starving the transmit DMA if the LAN91C96I
detects that the DMA TX address exceeds the pointer address.”
If TCR bit 14 (ETEN-TYPE) is zero and this bit is set, the Early transmit underrun function defined as
follows:
“For underrun detection purposes the RAM logical address and packet numbers of the packet being
loaded are compared against the logical address and packet numbers of the packet being transmitted. If
the packet numbers match and the logical address of the packet being transmitted exceeds the address
being loaded the LAN91C96I will prevent the transmission of erroneous data by forcing an Underrun
condition. Underruns will be triggered by starving the transmit DMA if the LAN91C96I detects that the DMA
TX address exceeds the pointer address.”
Note:
ETEN-TYPE (bit 14) in TCR may be implemented for Rev. ID 6 only. In the absence of ETEN-TYPE in
TCR, ETEN will have the definition as ETEN-TYPE were clear only.
AutoTx bit - When set, enables the transmit state machine to Automatically start a transmit operation with
no host intervention determined by the number of bytes being copied into the transmit buffer enqueued in
the transmit FIFO. The ETEN bit must also be set in order for this function to be enabled and the RCV bit
must be cleared (0). When the Auto TX bit is cleared, the transmit state machine must manually be
enabled to enqueue a transmit buffer.
If AUTO INCR. is not set, the pointer must be loaded with an even value.
I/O SPACE - BANK2
OFFSET
8&A
NAME
DATA REGISTER
TYPE
READ/WRITE
SYMBOL
DATA
DATA HIGH
DATA LOW
DATA REGISTER - Used to read or write the data buffer byte/word presently addressed by the pointer
register.
SMSC DS – LAN91C96I
Page 51
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
This register is mapped into two uni-directional FIFOs that allow moving words to and from the LAN91C96I
regardless of whether the pointer address is even or odd. Data goes through the write FIFO into memory,
and is pre-fetched from memory into the read FIFO. If byte accesses are used, the appropriate (next) byte
can be accessed through the Data Low or Data High registers. The order to and from the FIFO is
preserved. Byte and word accesses can be mixed on the fly in any order.
This register is mapped into two consecutive word locations to facilitate the usage of double word move
instructions. The DATA register is accessible at any address in the 8 through Ah range, while the number
of bytes being transferred are determined by A0 and nSBHE in local Bus mode.
I/O SPACE - BANK2
OFFSET
C
NAME
INTERRUPT STATUS REGISTER
TX IDLE
INT
ERCV
INT
EPH
INT
0
0
0
OFFSET
RX_
OVRN
INT
0
ALLOC
INT
0
NAME
INTERRUPT ACKNOWLEDGE
REGISTER
C
RX_
OVRN
INT
ERCV
INT
OFFSET
D
ERCV
INT
MASK
EPH
INT
MASK
0
0
0
RX_
OVRN
INT
MASK
0
TX
EMPTY
INT
1
SYMBOL
IST
TX INT
RCV INT
0
0
TYPE
SYMBOL
WRITE ONLY
ACK
TX
EMPTY
INT
NAME
INTERRUPT MASK REGISTER
TX IDLE
INT
MASK
TYPE
READ ONLY
TX INT
TYPE
READ/WRITE
ALLOC
INT
MASK
0
TX
EMPTY
INT
MASK
0
SYMBOL
MSK
TX INT
MASK
RCV INT
MASK
0
0
This register can be read and written as a word or as two individual bytes.
The Interrupt Mask Register bits enable the appropriate bits when high and disable them when low. A
MASK bit being set will cause a hardware interrupt.
TX IDLE INT - Transmit Idle interrupt. Set when the transmit state machine is not active. This bit is used
under the condition where the TX FIFO is still NOT empty, the transmitter is disabled and the host wants to
determine when the transmitter is completed with the current transmit packet. This event usually happens
when the host wants to insert at the head of the transmit queue a frame for example.
Typical flow of events/Condition:
1.
The transmit FIFO is not empty
2.
The transmit DONE FIFO is either empty or not empty
Rev. 11/18/2004
Page 52
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
3.
The transmit engine is either active or not active
Flow of events for an insertion of a transmit packet:
1.
Disable the Transmitter
2.
Remove and release any “transmit done” packets in the TX FIFO
3.
Via polling or an interrupt driven event, determine status of TX IDLE INT bit and wait until this bit is
set. This will determine when the transmitter is truly done with all transmit events.
4.
Remove and store (if any, in software) Packet numbers from the transmit FIFO. (These packets will
later be restored into the TX FIFO after the control frame is inserted into the front of the TX FIFO).
5.
Enable Transmitter
6.
En-queue packet into TX FIFO
7.
En-queue rest of packets, if any, into TX FIFO (restore TX FIFO)
ERCV INT - Early receive interrupt. Set whenever a receive packet is being received, and the number of
bytes received into memory exceeds the value programmed as ERCV THRESHOLD (Bank 3, Offset Ch).
ERCV INT stays set until acknowledged by writing the INTERRUPT ACKNOWLEDGE REGISTER with the
ERCV INT bit set.
EPH INT - Set when the Ethernet Protocol Handler section indicates one out of various possible special
conditions. This bit merges exception type of interrupt sources, whose service time is not critical to the
execution speed of the low level drivers. The exact nature of the interrupt can be obtained from the EPH
Status Register (EPHSR), and enabling of these sources can be done via the Control Register. The
possible sources are:
1.
LINK - Link Test transition
2.
CTR_ROL - Statistics counter roll over
3.
TXENA cleared - A fatal transmit error occurred forcing TXENA to be cleared. TX_SUC will be low
and the specific reason will be reflected by the bits:
3.1 TXUNRN - Transmit under-run
3.2 SQET - SQE Error
3.3 LOST CARR - Lost Carrier
3.4 LATCOL - Late Collision
3.5 16COL - 16 collisions
Any of the above interrupt sources can be masked by the appropriate ENABLE bits in the Control Register.
1) LE ENABLE (Link Error Enable), 2) CR ENABLE (Counter Roll Over), 3) TE ENABLE (Transmit Error
Enable)
EPH INT will only be cleared by the following methods:
1.
Clearing the LE ENABLE bit in the Control Register if an EPH interrupt is caused by a LINK_OK
transition.
SMSC DS – LAN91C96I
Page 53
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
2.
Reading the Counter Register if an EPH interrupt is caused by statistics counter roll over.
3.
Setting TXENA bit high if an EPH interrupt is caused by any of the fatal transmit error listed above (3.1
to 3.5).
RX_OVRN INT - Set when 1) the receiver aborts due to an overrun due to a failed memory allocation, 2)
the receiver aborts due to a packet length of greater than 2K bytes, or 3) the receiver aborts due to the
RCV DISCRD bit in the ERCV register set. The RX_OVRN INT bit latches the condition for the purpose of
being polled or generating an interrupt, and will only be cleared by writing the acknowledge register with
the RX_OVRN INT bit set.
ALLOC INT - Set when an MMU request for TX ram pages is successful. This bit is the complement of the
FAILED bit in the ALLOCATION RESULT register. The ALLOC INT bit is cleared by the MMU when the
next allocation request is processed or allocation fails.
TX EMPTY INT - Set if the TX FIFO goes empty, can be used to generate a single interrupt at the end of a
sequence of packets enqueued for transmission. This bit latches the empty condition, and the bit will stay
set until it is specifically cleared by writing the acknowledge register with the TX EMPTY INT bit set. If a
real time reading of the FIFO empty is desired, the bit should be first cleared and then read.
The TX_EMPTY MASK bit should only be set after the following steps:
a)
A packet is enqueued for transmission
b)
The previous empty condition is cleared (acknowledged)
TX INT - Set when at least one packet transmission was completed or any of the below transmit fatal
errors occurs:
1.
TXUNRN - Transmit under-run
2.
SQET - SQE Error
3.
LOST CARR - Lost Carrier
4.
LATCOL - Late Collision
5.
16COL - 16 collisions
The first packet number to be serviced can be read from the FIFO PORTS register. The TX INT bit is
always the logic complement of the TEMPTY bit in the FIFO PORTS register. After servicing a packet
number, its TX INT interrupt is removed by writing the Interrupt Acknowledge Register with the TX INT bit
set.
RCV INT - Set when a receive interrupt is generated. The first packet number to be serviced can be read
from the FIFO PORTS register. The RCV INT bit is always the logic complement of the REMPTY bit in the
FIFO PORTS register.
Receive Interrupt is cleared when RX FIFO is empty.
Note:
For edge triggered systems, the Interrupt Service Routine should clear the Interrupt Mask Register, and
only enable the appropriate interrupts after the interrupt source is serviced (acknowledged).
Rev. 11/18/2004
Page 54
DATASHEET
SMSC DS – LAN91C96I
Page 55
DATASHEET
MERGED INTO EPH INT
EPHSR INTERRUPTS
TX_SVC
TXENA
TEMASK
CRMASK
CTR-ROL
LEMASK
EDGE DETECTOR
ON LINK ERR
nWRACK
Fatal Transmit
Error
TX Complete
IntAck6
IntAck4
IntAck2
IntAck1
nQ
Q
Q
nQ
Q
nQ
TX State
Machine is
not Active
D
Q
nQ
ERCV
D
RX_OVRN
ALLOCATION
FAILED
D S
TX
FIFO EMPTY
D S
S
SMSC DS – LAN91C96I
S
TXUNRN
SQET
LOST CARR
LATCOL
16COL
nRDIST
OE
7
5
DATA
BUS
6
4
3
2
16
D0-7
REGISTER
STATUS
INTERRUPT
1
0
7 6
5
3
2
1
D8-15
REGISTER
INTERRUPT
MASK
4
RCV FIFO
NOT EMPTY
0
nOE
MAIN INTERRUPTS
TXIDLEINT
ERCV
INT
EPH
INT
RX_OVRN
INT
ALLOC
INT
TX
EMPTY
INT
TX INT
RCV INT
INT
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 7.2 – Interrupt Structure
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK 3
OFFSET
0 THROUGH 7
0
NAME
MULTICAST TABLE
0
0
0
0
0
0
0
0
0
0
0
TYPE
READ/WRITE
SYMBOL
MT
0
Multicast Table 0
0
0
0
0
0
0
Multicast Table 1
0
0
0
0
0
0
Multicast Table 2
0
0
0
0
0
0
Multicast Table 3
0
0
0
0
0
0
Multicast Table 4
0
0
0
0
0
0
Multicast Table 5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Multicast Table 6
0
0
0
0
0
Multicast Table 7
0
0
The 64 bit multicast table is used for group address filtering. The hash value is defined as the six most
significant bits of the CRC of the destination addresses. The three msb's determine the register to be used
(MT0-7), while the other three determine the bit within the register. If the appropriate bit in the table is set,
the packet is received.
If the ALMUL bit in the RCR register is set, all multicast addresses are received regardless of the multicast
table values. Hashing is for a partial group address filtering scheme. Additional filtering is done in software.
But the hash value being a part of the receive status word, the receive routine can reduce the search time
significantly. With the proper memory structure, the search is limited to comparing only the multicast
addresses that have the actual hash value in question.
I/O SPACE - BANK3
OFFSET
8
NAME
MANAGEMENT INTERFACE
TYPE
READ/WRITE
SYMBOL
MGMT
This register contains status bits and control bits for management of different transceivers modules. Some
of the pins are shared with the serial EEPROM interface. Management is software controlled, and does not
use the serial EEPROM and the transceiver management functions at the same time.
0
0
0
0
1
1
nXNDEC
IOS2
IOS1
IOS0
MDOE
0
MCLK
0
MDI
0
MD0
0
1
1
nXNDEC - Read only bit reflecting the status of the nXENDEC pin.
IOS0-2 - Read only bits reflecting the status of the IOS0-2 pins.
MDO - The value of this bit drives the EEDO pin when MDOE=1.
Rev. 11/18/2004
Page 56
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
MDCLK - The value of this bit drives the EESK pin when MDOE=1.
MDOE - When this bit is high pins EEDO EECS and EESK will be used for transceiver management
functions, otherwise the pins assume the EEPROM values.
MODE=0
Serial EEPROM Data Out
Serial EEPROM Clock
Serial EEPROM Chip Select
EEDO
EESK
EECS
MODE=1
Bit MDO
Bit MCLK
0
I/O SPACE - BANK3
OFFSET
A
0
NAME
REVISION REGISTER
0
1
TYPE
READ ONLY
1
0
0
1
1
1
0
1
REV
CHIP
0
SYMBOL
REV
0
0
CHIP ID VALUE
3
4
5
4*
7
8
9
1
0
DEVICE
LAN91C90/LAN91C92
LAN91C94
LAN91C95
LAN91C96I
LAN91C100
LAN91C100FD
LAN91C110
CHIP - Chip ID. Can be used by software drivers to identify the device used.
REV - Revision ID. Incremented for each revision of a given device.
Note:
The LAN91C96I shares the same chip ID (#4) as the LAN91C94. The Rev. ID for the LAN91C96I will
begin from six (#6).
SMSC DS – LAN91C96I
Page 57
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
I/O SPACE - BANK3
OFFSET
C
0
RCV
DISCRD
0
NAME
EARLY RCV REGISTER
0
1
0
0
TYPE
READ/WRITE
RCV COUNTER
1
0
0
1
ERCV THRESHOLD
1
1
1
1
SYMBOL
ERCV
1
1
RCV DISCRD - Set to discard a packet being received.
ERCV THRESHOLD - Threshold for ERCV interrupt. Specified in 64 byte multiples. Whenever the number
of bytes written in memory for the presently received packet exceeds the ERCV THRESHOLD, ERCV INT
bit of the INTERRUPT STATUS REGISTER is set.
Rcv Counter - This 8 bit value is the “Real Time” count, in bytes, of the current Receive packet (this
includes the 4 bytes of status and packet length). The count is rounded to the nearest Nibble (16 bytes).
The Counter is multiplied by 16 decimals to obtain the number of bytes currently received.
Notes:
ƒ
The value of the RCV Counter is in real time asynchronous format (i.e. The value is constantly changing). It is
recommended that the register be read multiple times to get an accurate reading.
ƒ
The Rcv Counter register will return a value of “0” when no receive event is occurring.
Rev. 11/18/2004
Page 58
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 8
Theory of Operation
The concept of presenting the shared RAM as a FIFO of packets, with a memory management unit
allocating memory on a per packet basis responds to the following needs:
Memory allocation for receive vs. transmit - A fixed partition between receive and transmit area would not
be efficient. Being able to dynamically allocate it to transmit and receive represents almost the equivalent
of duplicating the memory size for some workstation type of drivers.
Software overhead - By presenting a FIFO of packets, the software driver does not have to waste any time
in calculating pointers for the different buffers that make up different packets. The driver usually deals with
one packet at a time. With this approach, packets are accessible always at the same fixed address, and
access is provided to any byte of the packet.
Headers can be analyzed without reading out the entire packet. The packet can be moved in or out with a
block move operation.
Multiple upper layer support - The LAN91C96I facilitates interfacing to multiple upper layer protocols
because of the receive packet processing flexibility. A receive lookahead scheme like ODI or NDIS drivers
is supported by copying a small part of the received packet and letting the upper layer provide a pointer for
the rest of the data. If the upper layer indicates it does not want the packet, it can be removed upon a
single command. If the upper layer wants a specific part of the packet, a block move operation starting at
any particular offset can be done. Out of order receive processing is also supported: if memory for one
packet is not yet available, receive packet processing can continue.
Efficiency - Lacking any level of indirection or linked lists of pointers, virtually all the memory is used for
data. There are no descriptors, forward links and pointers at all. This simplicity and memory efficiency is
accomplished without giving up the benefits of linked lists which is unlimited back-to-back transmission
and reception without CPU intervention for as long as memory is available.
Full Duplex Support
Full Duplex Ethernet operation refers to the ability of the network (or parts of it) to simultaneously transmit
and receive packets. The CSMA/CD protocol used by Ethernet for accessing a shared medium is
inherently half duplex , and so is the 10BASE-T physical layer where simultaneous transmit and receive
activity is interpreted as a collision.
The LAN91C96I supports two types of Full Duplex operation:
Note:
1.
Full Duplex mode for diagnostic purposes only, where the received packet is the transmit packet being
looped back. This mode is enabled using the FDUPLX bit in the TCR. In this mode the CSMA/CD
algorithm is used to gain access to the media.
2.
FDSE (Full Duplex Switched Ethernet). Enabled by FDSE bit in TCR bit. When the LAN91C96I is
configured for FDSE, its transmit and receive paths will operate independently with Carrier Sense
CSMA/CD function disabled.
In FDSE mode the packets are not looped back internally. The loopback (Full Duplex for Diagnostics
(FDUPLX)) function of 10BASE-T transceivers is permanently engaged. It presents the transmit pair
waveform to the receive circuit internally. This function allows the receiver to see the controller’s own
transmission, not only to permit diagnostics, but also to ensure sure that the node defers to its own
transmission - as specified in 802.3.
SMSC DS – LAN91C96I
Page 59
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Behavior in FDSE mode
A) No deferral - The transmit channel is dedicated and always available - The device transmits whenever
it has a packet ready to be sent, while respecting the interframe spacing between transmit packets.
B) No collision detection - There are no collisions in a switched full duplex environment.
Magic Packet Support
If the WAKEUP_EN bit in the Control Register (Bank1, Offset C) is set, the controller will generate the
interrupt; If this bit is not set, this functionality is disabled. Setting (1) the bit is meaningful only if the
function is enabled.
For Local Bus mode, when WAKEUP_EN bit in Control Register (Bank1, Offset C) is set, the controller is
set ready for scanning of Magic Packet, the device will not drop into lower power state.
When a magic packet is received, the Ethernet controller will generate an interrupt causing the host to
initiate a service routine to find the source of the event. The Interrupt bit in the ECSR is also set if the host
plans on polling the controller for Wakeup status.
Rev. 11/18/2004
Page 60
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
8.1
Typical Flow Of Events For Transmit (Auto Release =0)
1
2
3
4
S/W DRIVER
ISSUE ALLOCATE MEMORY FOR TX - N
BYTES - the MMU attempts to allocate N bytes
of RAM.
WAIT FOR SUCCESSFUL COMPLETION
CODE - Poll until the ALLOC INT bit is set or
enable its mask bit and wait for the interrupt.
The TX packet number is now at the Allocation
Result Register.
LOAD TRANSMIT DATA - Copy the TX packet
number into the Packet Number Register. Write
the Pointer Register, then use a block move
operation from the upper layer transmit queue
into the Data Register.
ISSUE "ENQUEUE PACKET NUMBER TO TX
FIFO" - This command writes the number
present in the Packet Number Register into the
TX FIFO. The transmission is now enqueued.
No further CPU intervention is needed until a
transmit interrupt is generated.
5
The enqueued packet will be transferred to the
MAC block as a function of TXENA (nTCR) bit
and of the deferral process (1/2 duplex mode
only) state.
a) Upon transmit completion the first word in
memory is written with the status word. The
packet number is moved from the TX FIFO
into the TX completion FIFO. Interrupt is
generated by the TX completion FIFO being
not empty.
b) f a TX failure occurs on any packets, TX
INT is generated and TXENA is cleared,
transmission sequence stops. The packet
number of the failure packet is presented at
the TX FIFO PORTS Register.
6
7
MAC SIDE
a)
b)
SERVICE INTERRUPT - Read Interrupt
Status Register. If it is a transmit interrupt,
read the TX FIFO Packet Number from the
FIFO Ports Register. Write the packet
number into the Packet Number Register.
The corresponding status word is now
readable from memory. If status word
shows successful transmission, issue
RELEASE packet number command to free
up the memory used by this packet.
Remove packet number from completion
FIFO by writing TX INT Acknowledge
Register.
Option 1) Release the packet.
Option 2) Check the transmit status in the
EPH STATUS Register, write the packet
number of the current packet to the Packet
Number Register, re-enable TXENA, then
go to step 4 to start the TX sequence again.
SMSC DS – LAN91C96I
Page 61
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
8.2
Typical Flow of Events for Transmit (Auto Release = 1)
1
2
3
4
S/W DRIVER
ISSUE ALLOCATE MEMORY FOR TX - N
BYTES - the MMU attempts to allocate N bytes
of RAM.
WAIT FOR SUCCESSFUL COMPLETION
CODE - Poll until the ALLOC INT bit is set or
enable its mask bit and wait for the interrupt.
The TX packet number is now at the Allocation
Result Register.
LOAD TRANSMIT DATA - Copy the TX packet
number into the Packet Number Register. Write
the Pointer Register, then use a block move
operation from the upper layer transmit queue
into the Data Register.
ISSUE "ENQUEUE PACKET NUMBER TO TX
FIFO" - This command writes the number
present in the Packet Number Register into the
TX FIFO. The transmission is now enqueued.
No further CPU intervention is needed until a
transmit interrupt is generated.
5
The enqueued packet will be transferred to the
MAC block as a function of TXENA (nTCR) bit
and of the deferral process (1/2 duplex mode
only) state.
Transmit pages are released by transmit
completion.
a) The MAC generates a TXEMPTY interrupt
upon a completion of a sequence of
enqueued packets.
b) If a TX failure occurs on any packets, TX
INT is generated and TXENA is cleared,
transmission sequence stops. The packet
number of the failure packet is presented at
the TX FIFO PORTS Register.
6
7
8
MAC SIDE
a)
b)
Rev. 11/18/2004
SERVICE INTERRUPT – Read Interrupt
Status Register, exit the interrupt service
routine.
Option 1) Release the packet.
Option 2) Check the transmit status in the
EPH STATUS Register, write the packet
number of the current packet to the Packet
Number Register, re-enable TXENA, then
go to step 4 to start the TX sequence again.
Page 62
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
8.3
Typical Flow Of Events For Receive
1
S/W DRIVER
ENABLE RECEPTION - By setting the RXEN
bit.
2
A packet is received with matching address.
Memory is requested from MMU. A packet
number is assigned to it. Additional memory is
requested if more pages are needed.
The internal DMA logic generates sequential
addresses and writes the receive words into
memory. The MMU does the sequential to
physical address translation. If overrun, packet
is dropped and memory is released.
When the end of packet is detected, the status
word is placed at the beginning of the receive
packet in memory. Byte count is placed at the
second word. If the CRC checks correctly the
packet number is written into the RX FIFO. The
RX FIFO being not empty causes RCV INT
(interrupt) to be set. If CRC is incorrect the
packet memory is released and no interrupt will
occur.
3
4
5
CSMA/CD SIDE
SERVICE INTERRUPT - Read the Interrupt
Status Register and determine if RCV INT is
set. The next receive packet is at receive area.
(Its packet number can be read from the FIFO
Ports Register).
The software driver can
process the packet by accessing the RX area,
and can move it out to system memory if
desired. When processing is complete the
CPU issues the REMOVE AND RELEASE
FROM TOP OF RX command to have the MMU
free up the used memory and packet number.
SMSC DS – LAN91C96I
Page 63
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
ISR
Save Bank Selec & Address
Ptr Registerst
Mask Interrupts
Read Interrupt Register
No
Yes
TX
INTR?
Call TX INTR or
TXEMPTY INTR
RX
INTR?
Yes
No
Call
RXINTR
Get Next TX
No
Yes
No
Packet
Available for
Transmission?
ALLOC
INTR?
Yes
Write Allocated Pkt# into
Packet Number Reg.
Call ALLOCATE
Write Ad Ptr Reg. &
CopyData & Source Address
Yes
Call EPH
INTR
No
EPH
INTR?
Enqueue Packet
Set "Ready for Packet" Flag
Restore Address Pointer &
Bank Select Registers
Return Buffers to Upper Layer
Unmask Interrupts
Disable Allocation Interrupt
Mask
Exit ISR
Figure 8.1 – Interrupt Service Routine
Rev. 11/18/2004
Page 64
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
RX INTR
Write Ad. Ptr. Reg. & Read
Word 0 from RAM
Yes
Destination
Multicast?
No
Read Words 2, 3, 4 from RAM
for Address Filtering
No
Address Filtering
Pass?
Yes
No
Status Word
OK?
Yes
Do Receive Lookahead
Get Copy Specs from Upper
Layer
No
Okay to
Copy?
Yes
Copy Data Per Upper Layer
Specs
Issue "Remove and Release"
Command
Return to ISR
Figure 8.2 – RX INTR
SMSC DS – LAN91C96I
Page 65
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
TX Interrupt With AUTO_RELEASE = FALSE
1.
Save the Packet Number Register
Saved_PNR = Read Byte (Bank 2, Offset 2)
2.
Read the EPH Status Register
Temp = Read (Bank 0, Offset 2)
3.
Acknowledge TX Interrupt
Write Byte (0x02, (Bank 2, Offset C));
4.
Check for Status of Transmission
If ( Temp AND 0x0001)
{
//If Successful Transmission
Step 4.1.1: Issue MMU Release (Release Specific Packet)
Write (0x00A0, (Bank2, Offset 0));
Step 4.1.2: Return from the routine
}
else
{
//Transmission has FAILED
// Now we can either release or re-enqueue the packet
Step 4.2.1: Get the packet to release/re-enqueue, stored in FIFO
Temp = Read (Bank 2, Offset 4)
Temp = Temp & 0x003F
Step 4.2.2: Write to the PNR
Write (Temp, (Bank2, Offset 2))
Step 4.2.3
// Option 1: Release the packet
Write (0x00A0, (Bank2, Offset 0));
//Option 2: Re-Enqueue the packet
Write (0x00C0, (Bank2, Offset 0));
Step 4.2.4: Re-Enable Transmission
Temp = Read(Bank0, Offset 0);
Temp = Temp2 OR 0x0001
Write (Temp2, (Bank 0, Offset 0));
Step 4.2.5: Return from the routine
}
5.
Restore the Packet Number Register
Write Byte (Saved_PNR, (Bank 2, Offset 2))
Figure 8.3 – TX INTR
Rev. 11/18/2004
Page 66
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
TXEMPTY INTR
Write Acknowledge Reg. with
TXEMPTY Bit Set
Read TXEMPTY & TX INTR
TXEMPTY = 0
&
TXINT = 0
(Waiting for Completion)
TXEMPTY = X
&
TXINT = 1
(Transmission Failed)
TXEMPTY = 1
&
TXINT = 0
(Everything went through
successfully)
Read Pkt. # Register & Save
Write Address Pointer
Register
Read Status Word from RAM
Update Statistics
Issue "Release" Command
Update Variables
Acknowledge TXINTR
Re-Enable TXENA
Restore Packet Number
Return to ISR
Figure 8.4 – TXEMPTY INTR
(Assumes Auto Release Option Selected)
SMSC DS – LAN91C96I
Page 67
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
DRIVER SEND
ALLOCATE
Choose Bank Select
Register 2
Issue "Allocate Memory"
Command to MMU
Call ALLOCATE
Read Interrupt Status Register
Exit Driver Send
Yes
Allocation
Passed?
No
Read Allocation Result
Register
Write Allocated Packet into
Packet # Register
Store Data Buffer Pointer
Write Address Pointer
Register
Clear "Ready for Packet" Flag
Copy Part of TX Data Packet
into RAM
Enable Allocation Interrupt
Write Source Address into
Proper Location
Copy Remaining TX Data
Packet into RAM
Enqueue Packet
Set "Ready for Packet" Flag
Return Buffers to Upper Layer
Return
Figure 8.5 – Driver Send and Allocate Routines
Rev. 11/18/2004
Page 68
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
8.4
Memory Partitioning
Unlike other controllers, the LAN91C96I does not require a fixed memory partitioning between transmit
and receive resources. The MMU allocates and de-allocates memory upon different events. An additional
mechanism allows the CPU to prevent the receive process from starving the transmit memory allocation.
Memory is always requested by the side that needs to write into it, that is: The CPU for transmit or the
CSMA/CD for receive. The CPU can control the number of bytes it requests for transmit but it cannot
determine the number of bytes the receive process is going to demand. Furthermore, the receive process
requests will be dependent on network traffic, in particular on the arrival of broadcast and multicast
packets that might not be for the node, and that are not subject to upper layer software flow control.
In order to prevent unwanted traffic from using too much memory, the CPU can program a "memory
reserved for transmit" parameter. If the free memory falls below the "memory reserved for transmit" value,
MMU requests from the CSMA/CD block will fail and the packets will overrun and be ignored. Whenever
enough memory is released, packets can be received again. If the reserved value is too large, the node
might lose data which is an abnormal condition. If the value is kept at zero, memory allocation is handled
on first-come first-served basis for the entire memory capacity.
Note that with the memory management built into the LAN91C96I, the CPU can dynamically program this
parameter. For instance, when the driver does not need to enqueue transmissions, it can allow more
memory to be allocated for receive (by reducing the value of the reserved memory). Whenever the driver
needs to burst transmissions it can reduce the receive memory allocation. The driver program the
parameter as a function of the following variables:
1.
Free memory (read only register)
2.
Memory size (read only register)
The reserved memory value can be changed on the fly. If the MEMORY RESERVED FOR TX value is
increased above the FREE MEMORY, receive packets in progress are still received, but no new packets
are accepted until the FREE MEMORY increases above the MEMORY RESERVED value.
8.5
Interrupt Generation
The interrupt strategy for the transmit and receive processes is such that it does not represent the
bottleneck in the transmit and receive queue management between the software driver and the controller.
For that purpose there is no register reading necessary before the next element in the queue (namely
transmit or receive packet) can be handled by the controller. The transmit and receive results are placed
in memory.
The receive interrupt will be generated when the receive queue (FIFO of packets) is not empty and receive
interrupts are enabled. This allows the interrupt service routine to process many receive packets without
exiting, or one at a time if the ISR just returns after processing and removing one.
There are two types of transmit interrupt strategies:
1.
One interrupt per packet.
2.
One interrupt per sequence of packets.
The strategy is determined by how the transmit interrupt bits and the AUTO RELEASE bit are used.
TX INT bit - Set whenever the TX completion FIFO is not empty.
SMSC DS – LAN91C96I
Page 69
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
TX EMPTY INT bit - Set whenever the TX FIFO is empty.
AUTO RELEASE - When set, successful transmit packets are not written into completion FIFO, and their
memory is released automatically.
1.
One interrupt per packet: enable TX INT, set AUTO RELEASE=0. The software driver can find the
completion result in memory and process the interrupt one packet at a time. Depending on the
completion code the driver will take different actions. Note that the transmit process is working in
parallel and other transmissions might be taking place. The LAN91C96I is virtually queuing the packet
numbers and their status words.
In this case, the transmit interrupt service routine can find the next packet number to be serviced by
reading the TX FIFO PACKET NUMBER at the FIFO PORTS register. This eliminates the need for
the driver to keep a list of packet numbers being transmitted. The numbers are queued by the
LAN91C96I and provided back to the CPU as their transmission completes.
2.
One interrupt per sequence of packets: Enable TX EMPTY INT and TX INT, set AUTO RELEASE=1.
TX EMPTY INT is generated only after transmitting the last packet in the FIFO. TX INT will be set on
a fatal transmit error allowing the CPU to know that the transmit process has stopped and therefore
the FIFO will not be emptied.
This mode has the advantage of a smaller CPU overhead, and faster memory de-allocation. Note that
when AUTO RELEASE=1 the CPU is not provided with the packet numbers that completed
successfully.
Note:
The pointer register is shared by any process accessing the LAN91C96I memory. In order to allow
processes to be interruptible, the interrupting process is responsible for reading the pointer value before
modifying it, saving it, and restoring it before returning from the interrupt.
Typically there would be three processes using the pointer:
1.0 Transmit loading (sometimes interrupt driven)
2.0 Receive unloading (interrupt driven)
3.0 Transmit Status reading (interrupt driven).
1) and 3) also share the usage of the Packet Number Register. Therefore saving and restoring the PNR is
also required from interrupt service routines.
Rev. 11/18/2004
Page 70
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
8.6
Power Down
The LAN91C96I can enter power down mode by means of the PWRDWN pin (pin 68) or the PWRDN bit
(Control Register, bit 13). When in power down mode, the LAN91C96I will:
ƒ
Stop the crystal oscillator
ƒ
Tristate:
Data Bus
Interrupts(only by PWRDN bit)
nIOCS16
10BASE-T and AUI outputs
Turn off analog bias currents
ƒ
Drive the EEPROM and ROM outputs inactive
ƒ
Preserve contents of registers and memory
The PWRDWN pin is internally gated with the RESET (RESET pin before de-glitching) and with the
SRESET bit (COR bit 7). This gating function internally negates power down whenever RESET is high or
SRESET is high to allow the oscillator to run during RESET. Except for this gating function, all other uses
of the RESET pin use a de-glitched version of the signal as defined in the pin description section.
NXENDEC PIN
0
1
1
PWRDN PIN
X
0
1
PWRDN BIT
0
0
0
X
X
1
SMSC DS – LAN91C96I
Normal external ENDEC operation
Normal internal ENDEC operation
Powerdown - Normal mode restored by
PWRDWN pin going low
Powerdown - Bit is cleared by a write
access to any LAN91C96I register or by
hardware reset
Page 71
DATASHEET
Rev. 11/18/2004
Rev. 11/18/2004
OPTIONS
TWO
INTERRUPT
INT
ALLOC
INT
TX
TX EMPTY
INT
INT
RCV
STATUS REGISTER
M.S. BIT ONLY
PACKET NUMBER
TX DONE
TX COMPLETION
FIFO
'NOT EMPTY'
'EMPTY'
TX
FIFO
PACK # OUT
CPU ADDRESS
REGISTER
PACKET NUMBER
Page 72
DATASHEET
PACKET #
RAM
PHYSICAL ADDRESS
MMU
LOGICAL
ADDRESS
RX FIFO
NUMBER
RX PACKET
RX
FIFO
PACKET NUMBER
CSMA ADDRESS
'NOT EMPTY'
CSMA/CD
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 8.6 – Interrupt Generation for Transmit; Receive, MMU
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 9
9.1
Functional Description of the Blocks
Memory Management Unit
The MMU interfaces the on-chip RAM on one side and the arbiter on the other for address and data flow
purposes. For allocation and de-allocation, it interfaces the arbiter only.
The MMU deals with a single ported memory and is not aware of the fact that there are two entities
requesting allocation and actually accessing memory. The mapping function done by the MMU is only a
function of the packet number accessed and of the offset within that packet being accessed. It is not a
function of who is requesting the access or the direction of the access.
To accomplish that, memory accesses as well as MMU allocation and de-allocation requests are arbitrated
by the arbiter block before reaching the MMU.
Memory allocation could take some time, but the ALLOC INT bit in Interrupt Status Register is negated
immediately upon allocation request, allowing the system to poll that register at any time. Memory deallocation command completion indication is provided via the BUSY bit, readable through the MMU
command register.
The mapping and queuing functions of the MMU rely on the uniqueness of the packet number assigned to
the requester. For that purpose the packet number assignment is centralized at the MMU, and a number
will not be reused until the memory associated with it is released. It is clear that a packet number should
not be released while the number is in the TX or RX packet queue.
The TX and RCV FIFOs are deep enough to handle the total number of packets the MMU can allocate,
therefore there is no need for the programmer or the hardware to check FIFO full conditions.
9.2
Arbiter
The function of the arbiter is to sequence packet RAM accesses as well as MMU requests in such a way
that the on-chip single ported RAM and a single MMU can be shared by two parties. One party is the host
CPU and the other party is the CSMA/CD block.
The arbiter is address transparent, namely, any address can be accessed at any time. In order to exploit
the sequential nature of the access, and minimize the access time on the system side, the CPU cycle is
buffered by the Data Register rather than go directly to and from memory. Whenever a write cycle is
performed, the data is written into the Data Register and will be written into memory as a result of that
operation, allowing the CPU cycle to complete before the arbitration and memory cycle are complete.
Whenever a read cycle is performed, the data is provided immediately from the Data Register, without
having to arbitrate and complete a memory cycle. The present cycle results in an arbitration request for
the next data location. Loading the pointer causes a similar pre-fetch request.
This type of read-ahead and write-behind arbitration allows the controller to have a very fast access time,
and would work without wait states for as long as the cycle time specification is satisfied. The values are
40 ns access time, and 185ns cycle time.
By the same token, CSMA/CD cycles might be postponed. The worst case CSMA/CD latency for arbiter
service is one memory cycle. The arbiter uses the pointer register as the CPU provided address, and the
internal DMA address from the CSMA/CD side as the addresses to be provided to the MMU.
SMSC DS – LAN91C96I
Page 73
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
The data path routed by the arbiter goes between memory (the data path does not go through the MMU)
on one side and either the CPU side bus or the data path of the CSMA/CD core.
The data path between memory and the Data Register is in fact buffered by a small FIFO in each direction.
The FIFOs beneath the Data Register can be read and written as bytes or words, in any sequential
combination. The presence of these FIFOs makes sure that word transfers are possible on the system bus
even if the address loaded into the pointer is odd.
9.3
Bus Interface
The bus interface handles the data, address and control interfaces and is compliant with the Local Bus.
The functions in this block include address decoding for I/O and ROM memory (including address
relocation support) for Local Bus, data path routing, sequential memory address support, optional wait
state generation, boot ROM support, EEPROM setup function, bus transceiver control, and interrupt
generation / selection.
For Local Bus, I/O address decoding is done by comparing A15-A4 to the I/O BASE address determined in
part by the upper byte of the BASE ADDRESS REGISTER, and also requiring that AEN be low. If the
above address comparison is satisfied and the LAN91C96I is in 16 bit mode, nIOCS16 will be asserted
(low).
A valid comparison does not yet indicate a valid I/O cycle is in progress, as the addresses could be used
for a memory cycle, or could even glitch through a valid value. For Local Bus, only when nIORD or
nIOWR are activated the I/O cycle begins.
9.4
Wait State Policy
The LAN91C96I can work on most system buses without having to add wait states. The two parameters
that determine the memory access profile are the read access time and the cycle time into the Data
Register.
The read access time is 40ns and the cycle time is 185ns. If any one of them does not satisfy the
application requirements, wait states should be added.
If the access time is the problem, IOCHRDY should be negated for all accesses to the LAN91C96I. This
can be achieved by programming the NO WAIT ST bit in the configuration register to “0”. The LAN91C96I
will negate IOCHRDY for 100ns to 150ns on every access to any register.
If the cycle time is the problem, programming NO WAIT ST as described before will solve it but at the
expense of slowing down all accesses. The alternative is to let the LAN91C96I negate IOCHRDY only
when the Data Register FIFOs require so. Namely, if NO WAIT ST is set, IOCHRDY will only be negated if
a Data Register read cycle starts and there is less than a full word in the read FIFO, or if a write cycle
starts and there is more than two bytes in the write FIFO.
The cycle time is defined as the time between leading edges of read from the Data Register, or
equivalently between trailing edges of write to the Data Register. For example, in an Local Bus system
the cycle time of a 16 bit transfer will be at least 2 clocks for the I/O access to the LAN91C96I (+ one clock
for the memory cycle) for a total of 3 clocks. In absolute time it means 375ns for an 8MHz bus, and 240ns
for a 12.5 MHz bus.
The cycle time will not increase when configured for full duplex mode, because the CSMA/CD memory
arbitration requests are sequenced by the DMA logic and never overlap.
Rev. 11/18/2004
Page 74
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
9.5
Arbitration Considerations
The arbiter exploits the sequential nature of the CPU accesses to provide a very fast access time. Memory
bandwidth considerations will have an effect on the CPU cycle time but no effect on access time.
For normal 8MHz, 10MHz, and 12.5MHz Local Bus, as well as EISA normal cycles, the LAN91C96I can be
accessed without negating ready.
When write operations occur, the data is written into a FIFO. The CPU cycle can complete immediately,
and the buffered data will be written into memory later. The memory arbitration request is generated as a
function of that FIFO being not empty. The nature of the cycle requested (byte/word) is determined by the
LSB of the pointer and the number of bytes in the FIFO.
When read operations occur, words are pre-fetched upon pointer loading in order to have at least a word
ready in the FIFO to be read. New pre-fetch cycles are requested as a function of the number of bytes in
the FIFO.For example, if an odd pointer value is loaded, first a byte is pre-fetched into the FIFO, and
immediately a full word is pre-fetched completing three bytes into the FIFO. If the CPU reads a word, one
byte will be left again a new word is pre-fetched.
In the case of write, if an odd pointer value is loaded, and a full word is written, the FIFO holds two bytes,
the first of which is immediately written into an odd memory location. If by that time another byte or word
was written, there will be two or three bytes in the FIFO and a full word can be written into the now even
memory address.
When a CSMA/CD cycle begins, the arbiter will route the CSMA/CD DMA addresses to the MMU as well
as the packet number associated with the operation in progress. In full-duplex mode, receive and transmit
requests are alternated in such a way that the CPU arbitration cycle time is not affected.
9.6
DMA Block
The DMA block resides between the CSMA/CD block and the arbiter. It can interface both the data path
and the control path of the CSMA/CD block for different operations.
Its functions include the following:
ƒ
Start transmission process into the CSMA/CD block.
ƒ
Generate CSMA/CD side addresses for accessing memory during transmit and receive operations.
ƒ
Generate MMU memory requests and verify success.
ƒ
Compute byte count and write it in first locations of receive packet.
ƒ
Write transmit status word in first locations of transmit packet.
ƒ
Determine if enough memory is available for reception.
ƒ
De-allocate transmit memory after suitable completion.
ƒ
De-allocate receive memory upon error conditions.
ƒ
Initiate retransmissions upon collisions (if less than 16 retries).
ƒ
Terminate reception and release memory if packet is too long.
SMSC DS – LAN91C96I
Page 75
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
The specific nature of each operation and its trigger event are:
1.
TX operations will begin if TXENA is set and TX FIFO is not empty. The DMA logic does not need to
use the TX PACKET NUMBER, it goes directly from the FIFO to the MMU. However the DMA logic
controls the removal of the PACKET NUMBER from the FIFO.
2.
Generation of CSMA/CD side addresses into memory: Independent 11-bit counters are kept for
transmit and receive in order to allow full-duplex operation.
3.
MMU requests for allocation are generated by the DMA logic upon reception. The initial allocation
request is issued when the CSMA block indicates an active reception. If allocation succeeds, the DMA
block stores the packet number assigned to it, and generates write arbitration requests for as long as
the CSMA/CD FIFO is not empty. In parallel the CSMA/CD completes the address filtering and
notifies the DMA of an address match. If there is no address match, the DMA logic will release the
allocated memory and stop reception.
4.
When the CSMA/CD block notifies the DMA logic that a receive packet was completed, if the CRC is
OK, the DMA will either write the previously stored packet number into the RX PACKET NUMBER
FIFO (to be processed by the CPU), or if the CRC is bad the DMA will just issue a release command
to the MMU (and the CPU will never see that packet).
Packets with bad CRC can be received if the RCV_BAD bit in the configuration register is set.
9.7
5.
If AUTO_RELEASE is set, a release is issued by the DMA block to the MMU after a successful
transmission (TX_SUCC set), and the TX completion FIFO is clocked together with the TX FIFO
preventing the packet number from moving into the TX completion FIFO.
6.
Based on the RX counter value, if a receive packet exceeds 1532 bytes, reception is stopped by the
DMA and the RX ABORT bit in the Receive Control Register is set. The memory allocated to the
packet is automatically released.
7.
If an allocation fails, the CSMA/CD block will activate RX_OVRN INT upon detecting a FIFO full
condition. RXEN will stay active to allow reception of subsequent packets if memory becomes
available. The CSMA/CD block will flush the FIFO upon the new frame arrival.
Packet Number FIFOs
The transmit packet FIFO stores the packet numbers awaiting transmission, in the order they were
enqueued. The FIFO is advanced (written) when the CPU issues the "enqueue packet number
command", the packet number to be written is provided by the CPU via the Packet Number Register. The
number was previously obtained by requesting memory allocation from the MMU. The FIFO is read by the
DMA block when the CSMA/CD block is ready to proceed on to the next transmission. By reading the TX
EMPTY INT bit the CPU can determine if this FIFO is empty.
The transmit completion FIFO stores the packet numbers that were already transmitted but not yet
acknowledged by the CPU. The CPU can read the next packet number in this FIFO from the FIFO Ports
Register. The CPU can remove a packet number from this FIFO by issuing a TX INT acknowledge. The
CPU can determine if this FIFO is empty by reading the TX INT bit or the FIFO Ports Register.
The receive packet FIFO stores the packet numbers already received into memory, in the order they were
received. The FIFO is advanced (written) by the DMA block upon reception of a complete valid packet into
memory. The number is determined the moment the DMA block first requests memory from the MMU for
that packet. The first receive packet number in the FIFO can be read via the FIFO Ports Register, and the
data associated with it can be accessed through the receive area. The packet number can be removed
from the FIFO with or without an automatic release of its associated memory.
Rev. 11/18/2004
Page 76
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
The FIFO is read out upon CPU command (remove packet from top of RX FIFO, or remove and release
command) after processing the receive packet in the receive area.
The width of each FIFO is 5 bits per packet number. The depth of each FIFO equals the number of
packets the LAN91C96I can handle (18).
The guideline is software transparency; the software driver should not be aware of different devices or
FIFO depths. If the MMU memory allocation succeeded, there will be room in the transmit FIFO for
enqueuing the packet. Conversely if there is free memory for receive, there should be room in the receive
FIFO for storing the packet number.
RAM
PACK # OUT
ALLOCATION
RESULT REGISTER
MMU
REGISTER
DECODER
RELEASE
PACK # OUT
PHYSICAL ADDRESS
DMA
RELEASE
ALLOCATE
ADDRESS
CPU ADDRESS
MMU
COMMAND
TX DONE
PACKET NUMBER
INT
TX
TX
FIFO
WR
REGISTER
PACKET NUMBER
LOGICAL
PACKET #
ALLOCATE
NUMBER
FIFO
CSMA ADDRESS
RX PACKET
COMPLETION
RD
RX
FIFO
PACKET NUMBER
RX FIFO
CSMA/CD
Note that the CPU can enqueue a transmit command with a packet number that does not follow the
sequence in which the MMU assigned packet numbers. For example, when a transmission failed and it is
retried in software, or when a receive packet is modified and sent back to the network.
Figure 9.1 - MMU Packet Number Flow and Relevant Registers
9.8
CSMA Block
The CSMA/CD block is first interfaced via its control registers in order to define its operational
configuration. From then on, the DMA interface between the CSMA/CD block and memory is used to
transfer data to and from its data path interface.
SMSC DS – LAN91C96I
Page 77
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
For transmit, the CSMA/CD block will be asked to transmit frames as soon as they are ready in memory. It
will continue transmissions until any of the following transmit error occurs:
1.
Collisions on same frame
2.
Late collision
3.
Lost Carrier sense and MON_CSN set
4.
Transmit Underrun
5.
SQET error and STP_SQET set
In that case TXENA will be cleared and the CPU should restart the transmission by setting it again. If a
transmission is successful, TXENA stays set and the CSMA/CD is provided by the DMA block with the
next packet to be transmitted.
For receive, the CPU sets RXEN as a way of starting the CSMA/CD block receive process. The CSMA/CD
block will send data after address filtering through the data path to the DMA block. Data is transferred into
memory as it is received, and the final check on data acceptance is the CRC checking done by the
CSMA/CD block. In any case, the DMA takes care of requesting/releasing memory for receive packets, as
well as generating the byte count.
The receive status word is provided by the CSMA/CD block and written in the first location of the receive
structure by the DMA block. If configured for storing CRC in memory, the CSMA/CD unit will transfer the
CRC bytes through the DMA interface, and then will be treated like regular data bytes.
Note that the receive status word of any packet is available only through memory and is not readable
through any other register. In order to let the CPU know about receive overruns, the RX_OVRN INT is set
and latched in the Interrupt Status Register, which is readable by the CPU at any time.
The address filtering is done inside the CSMA/CD block. A packet will be received if the destination
address is broadcast, or if it is addressed to the individual address of the LAN91C96I, or if it is a multicast
address and ALMUL bit is set, or if it is a multicast address matching one of the multicast table entries. If
the PRMS bit is set, all packets are received.
The CSMA/CD block is a full duplex machine, and when working in full duplex mode, the CSMA/CD block
will be simultaneously using its data path transmit and receive interfaces.
Statistical counters are kept by the CSMA/CD block, and are readable through the appropriate register.
The counters are four bits each, and can generate an interrupt when reaching their maximum values.
Software can use that interrupt to update statistics in memory, or it can keep the counter interrupt disabled,
while relying on the transmit interrupt routine reading the counters. Given that the counters can increment
only once per transmit, this technique is a good complement for the single interrupt per sequence strategy.
The interface between the CSMA/CD block and memory is word oriented. Two bi-directional FIFOs make
the data path interface.
Whenever a normal collision occurs (less than 16 retries), the CSMA/CD will trigger the backoff logic and
will indicate the DMA logic of the collision. The DMA is responsible for restarting the data transfer into the
CSMA/CD block regardless of whether the collision happened on the preamble or not.
Only when 16 retries are reached, the CSMA/CD block will clear the TXENA bit, and CPU intervention is
required. The DMA will not automatically restart data transfer in this case, nor will it transmit the next
enqueued packet until TXENA is set by the CPU. The DMA will move the packet number in question from
the TX FIFO into the TX completion FIFO.
Rev. 11/18/2004
Page 78
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
9.9
Network Interface
The LAN91C96I includes both an AUI interface for thick and thin coax applications and a 10BASE-T
interface for twisted pair applications. Functions common to both are:
9.10
1.
Manchester encoder/decoder to convert NRZ data to Manchester encoded data and back.
2.
A 32ms jabber timer to prevent inadvertently long transmissions. When 'jabbing' occurs, the
transmitter is disabled, automatic loopback is disabled (in 10BASE-T mode), and a collision indication
is given to the controller. The interface 'unjabs' when the transmitter has been idle for a minimum of
256 ms.
3.
A phase-lock loop to recover data and clock from the Manchester data stream with up to plus or minus
18ns of jitter.
4.
Diagnostic loopback capability.
5.
LED drivers for collision, transmission, reception, and jabber.
10BASE-T
The 10BASE-T interface conforms to the twisted pair MAU addendum to the 802.3 specification. On the
transmission side, it converts the NRZ data from the controller to Manchester data and provides the
appropriate signal level for driving the media. Signal are predistorted before transmission to minimize ISI.
The collision detection circuitry monitors the simultaneous occurrence of received signals and transmitted
data on the media. During transmission, data is automatically looped back to the receiver except during
collision periods, in which case the input to the receiver is network data. During collisions, should the
receive input go idle prior to the transmitter going idle, input to the receiver switches back to the transmitter
within nine bit times. Following transmission, the transmitter performs a SQE test. This test exercises the
collision detection circuitry within the 10BASE-T interface.
The receiver monitors the media at all times. It recovers the clock and data and passes it along to the
controller. In the absence of any receive activity, the transmitter is looped back to the receiver. In addition,
the receiver performs automatic polarity correction. The 10BASE-T interface performs link integrity tests
per section 14.2.1.7 of 802.3, using the following values:
1.
Link_loss_timer: 64 ms
2.
Link_test_min_timer: 4 ms
3.
Link_count: 2
4.
Link_test_max_timer: 64 ms
The state of the link is reflected in the EPHSR.
9.11
AUI
The LAN91C96I also provides a standard six wire AUI interface to a coax transceiver.
SMSC DS – LAN91C96I
Page 79
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
9.12
Physical Interface
The internal physical interface (PHY) consists of an encoder/decoder (ENDEC) and an internal 10BASE-T
transceiver. The ENDEC also provides a standard 6-pin AUI interface to an external coax transceiver for
10BASE-2 and 10BASE-5 applications. The internal signals between MAC and the PHY can be routed to
pins by asserting the nXENDEC pin low. This feature allows the interface to an external ENDEC and
transceiver. The PHY functions can be divided into transmit and receive functions.
9.13
Transmit Functions
Manchester Encoding
The PHY encodes the transmit data received from the MAC. The encoded data is directed internally to the
selected output driver for transmission over the twisted-pair network or the AUI cable. Data transmission
and encoding is initiated by the Transmit Enable input, TXE, going low.
9.14
Transmit Drivers
The encoded transmit data passes through to the transmit driver pair, TPETXP(N), and its complement,
TPETXDP(N). Each output of the transmit driver pair has a source resistance of 10 ohms maximum and a
current rating of 25 mA maximum. The degree of predistortion is determined by the termination resistors;
the equivalent resistance should be 100 ohms.
Jabber Function
This integrated function prevents the DTE from locking into a continuous transmit state. In 10BASE-T
mode, if transmission continues beyond the specified time limit, the jabber function inhibits further
transmission and asserts the collision indicator nCOLL. The limits for jabber transmission are 20 to 15 ms
in 10BASE-T mode. In the AUI mode, the jabber function is performed by the external transceiver.
SQE Function
In the 10BASE-T mode, the PHY supports the signal quality error (SQE) function. At the end of a
transmission, the PHY asserts the nCOLL signal for 10+/-5 bit times beginning 0.6 to 1.6ms after the last
positive transition of a transmitted frame. In the AUI mode, the SQE function is performed by the external
transceiver.
9.15
Receive Functions
Receive Drivers
Differential signals received off the twisted-pair network or AUI cable are directed to the internal clock
recovery circuit prior to being decoded for the MAC.
Manchester Decoder and Clock Recovery
The PHY performs timing recovery and Manchester decoding of incoming differential signals in 10BASE-T
or AUI modes, with its built-in phase-lock loop (PLL). The decoded (NRZ) data, RXD, and the recovered
clock, RXCLK, becomes available to the MAC, typically within 9 bit times (5 for AUI) after the assertion of
nCRS. The receive clock, RXCLK, is phase-locked to the transmit clock in the absence of a received
signal (idle).
Rev. 11/18/2004
Page 80
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Squelch Function
The integrated smart squelch circuit employs a combination of amplitude and timing measurements to
determine the validity of data received off the network. It prevents noise at the differential inputs from
falsely triggering the decoder in the absence of valid data or link test pulses. Signal levels below 300mV
(180mV for AUI) or pulse widths less than 15ns at the differential inputs are rejected. Signals above
585mV (300mV for AUI) and pulse widths greater than 30ns will be accepted. When using the extended
cable mode with 10BASE-T media which extends beyond the standard limit of 100 meters, the squelch
level can optionally be set to reject signals below 180mV and accept signals above 300mV. If the input
signal exceeds the squelch requirements, the carrier sense output, nCRS, is asserted.
Reverse Polarity Function
In the 10BASE-T mode, the PHY monitors for receiver polarity reversal due to crossed wires and corrects
by reversing the signal internally.
Collision Detection Function
In the 10BASE-T mode, a collision state is indicated when there are simultaneous transmissions and
receptions on the twisted pair link. During a collision state, the nCOLL signal is asserted. If the received
data ends and the transmit control signal is still active, the transmit data is sent to the MAC within 9 bit
times. The nCOLL signal is de-asserted within 9 bit times after the collision terminates. In the AUI mode,
the external transceiver sends a 10MHz signal to the PHY upon detection of a collision.
Link Integrity
The PHY test for a faulty twisted-pair link. In the absence of transmit data, link test pulses are transmitted
every 16+/-8ms after the end of the last transmission or link pulse on the twisted pair medium. If neither
valid data nor link test pulses are received within 10 to 150ms, the link is declared bad and both data
transmission as well as the operational loopback function are disabled. The Link Integrity function can be
disabled for pre-10BASE-T twisted-pair networks.
SMSC DS – LAN91C96I
Page 81
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 10 Board Setup Information
The following parameters are obtained
from the EEPROM as board setup
information:
ƒ
ETHERNET INDIVIDUAL ADDRESS
ƒ
I/O BASE ADDRESS
ƒ
ROM BASE ADDRESS
ƒ
8/16 BIT ADAPTER
ƒ
10BASE-T or AUI INTERFACE
ƒ
INTERRUPT LINE SELECTION
EEPROM WORD
ADDRESS
REGISTER
Configuration Register
IOS Value * 4
Base Register
(IOS Value *4) + 1
All the above mentioned values are read from the EEPROM upon hardware reset. Except for the
INDIVIDUAL ADDRESS, the value of the IOS switches determines the offset within the EEPROM for these
parameters, in such a way that many identical boards can be plugged into the same system by just
changing the IOS jumpers.
In order to support a software utility based installation, even if the EEPROM was never programmed, the
EEPROM can be written using the LAN91C96I. One of the IOS combination is associated with a fixed
default value for the key parameters (I/O BASE, ROM BASE, INTERRUPT) that can always be used
regardless of the EEPROM based value being programmed. This value will be used if all IOS pins are left
open or pulled high.
The EEPROM is arranged as a 64 x 16 array. The specific target device is the 9346 1024-bit Serial
EEPROM. All EEPROM accesses are done in words. All EEPROM addresses shown are specified as
word addresses.
INDIVIDUAL ADDRESS 20-22 hexIf IOS2-0 = 7, only the INDIVIDUAL ADDRESS is read from the
EEPROM. Currently assigned values are assumed for the other registers. These values are default if the
EEPROM read operation follows hardware reset.
The EEPROM SELECT bit is used to determine the type of EEPROM operation: a) normal or b) general
purpose register.
a)
NORMAL EEPROM OPERATION - EEPROM SELECT bit = 0
On EEPROM read operations (after reset or after setting RELOAD high) the CONFIGURATION
REGISTER and BASE REGISTER are updated with the EEPROM values at locations defined by the
IOS2-0 pins. The INDIVIDUAL ADDRESS registers are updated with the values stored in the
INDIVIDUAL ADDRESS area of the EEPROM.
On EEPROM write operations (after setting the STORE bit) the values of the CONFIGURATION
REGISTER and BASE REGISTER are written in the EEPROM locations defined by the IOS2-0 pins.
The three least significant bits of the CONTROL REGISTER (EEPROM SELECT, RELOAD and
STORE) are used to control the EEPROM. Their values are not stored nor loaded from the EEPROM.
b)
Rev. 11/18/2004
GENERAL PURPOSE REGISTER - EEPROM SELECT bit = 1
Page 82
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
On EEPROM read operations (after setting RELOAD high) the EEPROM word address defined by the
POINTER REGISTER 6 least significant bits is read into the GENERAL PURPOSE REGISTER.
On EEPROM write operations (after setting the STORE bit) the value of the GENERAL PURPOSE
REGISTER is written at the EEPROM word address defined by the POINTER REGISTER 6 least
significant bits.
RELOAD and STORE are set by the user to initiate read and write operations respectively. Polling the
value until read low is used to determine completion. When an EEPROM access is in progress the
STORE and RELOAD bits of CTR will read-back as both bits high. No other bits of the LAN91C96I
can be read or written until the EEPROM operation completes and both bits are clear. This
mechanism is also valid for reset initiated reloads.
Note:
If no EEPROM is connected to the LAN91C96I, the ENEEP pin should be grounded and no accesses to
the EEPROM will be attempted. Configuration, Base and Individual Addresses assume their default values
upon hardware reset and the CPU is responsible for programming them for their final value.
10.1
Diagnostic LEDs
The following LED drive signals are available for diagnostic and installation aid purposes:
10.2
ƒ
nTXLED - Activated by transmit activity.
ƒ
nBSELED - Board select LED. Activated when the board space is accessed, namely on accesses to
the LAN91C96I register space or the ROM area decoded by the LAN91C96I. The signal is stretched
to 125 msec.
ƒ
nRXLED - Activated by receive activity.
ƒ
nLINKLED - Reflects the link integrity status.
Bus Clock Considerations
The arbiter exploits the sequential nature of the CPU accesses to provide a very fast access time.
Memory bandwidth considerations will have an effect on the CPU cycle time but no effect on access time.
For normal 8MHz, 10MHz, and 12.5MHz Local Bus, as well as EISA normal cycles, the LAN91C96I can
be accessed without negating ready.
See Arbitration Considerations in Functional Description of the Blocks for more details.
SMSC DS – LAN91C96I
Page 83
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
16 BITS
IOS2-0
W ORD AD DRESS
000
0h
CONFIGURATION REG.
1h
BASE REG.
4h
CONFIGURATION REG.
5h
BASE REG.
8h
CONFIGURATION REG.
9h
BASE REG.
Ch
CONFIGURATION REG.
Dh
BASE REG.
10h
CONFIGURATION REG.
11h
BASE REG.
14h
CONFIGURATION REG.
15h
BASE REG.
18h
CONFIGURATION REG.
19h
BASE REG.
20h
IA0-1
21h
IA2-3
22h
IA4-5
001
010
011
100
101
110
XXX
Figure 10.1 - 64 X 16 Serial EEPROM Map
Rev. 11/18/2004
Page 84
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 11 Operation Description
11.1
Maximum Guaranteed Ratings*
Operating Temperature Range ................................................................................................-40°C to 85°C
Storage Temperature Range ...............................................................................................-55°C to +150°C
Lead Temperature Range (soldering, 10 seconds) ............................................................................+325°C
Positive Voltage on 3.3V-Only tolerant I/O pin, with respect to Ground ........................................VCC + 0.3V
Positive Voltage on 5V tolerant I pin, with respect to ground …………………………………………… ... 5.5V
Negative Voltage on any pin, with respect to Ground ........................................................................... -0.3V
Maximum VCC ....................................................................................................................................... +5.5V
* Stresses above those listed above could cause permanent damage to the device. This is a stress rating
only and functional operation of the device at any other condition above those indicated in the operation
sections of this specification is not implied.
Note:
When powering this device from laboratory or system power supplies, it is important that the Absolute
Maximum Ratings not be exceeded or device failure can result. Some power supplies exhibit voltage
spikes on their outputs when the AC power is switched on or off. In addition, voltage transients on the AC
power line may appear on the DC output. If this possibility exists, it is suggested that a clamp circuit be
used.
SMSC DS – LAN91C96I
Page 85
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
11.2
DC Electrical Characteristics
(TA= -40°C TO 85°C, VCC = +5.0V
±10%, OR VCC = +3.3 V ± 10%)
PARAMETER
Input Voltage Levels for Vcc = 5.0V
I Type Input Buffer
SYMBOL
Low Input Level
VILI
High Input Level
IS Type Input Buffer
VIHI
Low Input Level
VILIS
High Input Level
VIHIS
Schmitt Trigger Hysteresis
ICLK Input Buffer
VHYS
Low Input Level
VILCK
High Input Level
Input Voltage Levels for Vcc = 3.3V
I Type Input Buffer
VIHCK
MIN
TYP
MAX
UNITS
COMMENTS
0.8
V
TTL Levels
V
2.0
0.8
2.2
V
Schmitt Trigger
V
Schmitt Trigger
mV
250
0.4
V
V
3.3
0.8
V
Low Input Level
VILI
High Input Level
IS Type Input Buffer
VIHI
Low Input Level
VILIS
High Input Level
VIHIS
Schmitt Trigger Hysteresis
ICLK Input Buffer
VHYS
Low Input Level
VILCK
High Input Level
Input Leakage for Vcc = 5.0V
Input Leakage
(All I and IS buffers except pins with
pullups/pulldowns)
VIHCK
2.0
Low Input Leakage
IIL
-10
+10
µA
VIN = 0
High Input Leakage
IIH
-10
+10
µA
VIN = VCC
Rev. 11/18/2004
V
2.0
0.8
2.0
0.3
DATASHEET
Schmitt Trigger
V
Schmitt Trigger
mV
165
Page 86
V
V
V
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
(TA= -40°C TO 85°C, VCC = +5.0V
±10%, OR VCC = +3.3 V ± 10%)
PARAMETER
Input Leakage for Vcc = 3.3V
Input Leakage
(All I and IS buffers except pins with
pullups/pulldowns)
SYMBOL
MIN
Low Input Leakage
IIL
High Input Leakage
TYP
MAX
UNITS
COMMENTS
-10
+10
µA
VIN = 0
IIH
-10
+10
µA
VIN = VCC
IIL
-150
µA
VIN = 0
µA
VIN = VCC
µA
VIN = 0
+100
µA
VIN = VCC
0.4
V
IOL = 4 mA
V
IOH = -2 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 24 mA
V
IOH = -12 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 24 mA
V
IOH = -12 mA
µA
VIN = 0 to VCC
Input Current for Vcc = 5.0V
IP Type Buffers
Input Current
-50
ID Type Buffers
Input Current
IIH
+50
+150
Input Current for Vcc = 3.3V
IP Type Buffers
Input Current
ID Type Buffers
IIL
Input Current
Output Voltage for Vcc = 5.0V
I/O4 Type Buffer
IIH
-100
-50
+50
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
I/O24 Type Buffer
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
O24 Type Buffer
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
SMSC DS – LAN91C96I
Page 87
DATASHEET
+10
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
(TA= -40°C TO 85°C, VCC = +5.0V
±10%, OR VCC = +3.3 V ± 10%)
PARAMETER
O4 Type Buffer
SYMBOL
MIN
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
TYP
MAX
UNITS
COMMENTS
0.4
V
IOL = 4 mA
V
IOH = -2 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 16 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 16 mA
V
IOH = -2 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 24 mA
+10
µA
VIN = 0 to VCC
0.4
V
IOL = 2 mA
V
IOH = -1 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 16 mA
V
IOH = -6 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 12 mA
V
IOH = -6 mA
µA
VIN = 0 to VCC
OD16 Type Buffer
Low Output Level
VOL
Output Leakage
ILEAK
-10
O162 Type Buffer
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
OD24 Type Buffer
ILEAK
-10
Low Output Level
VOL
Output Leakage
Output Voltage for Vcc = 3.3V
I/O4 Type Buffer
ILEAK
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
-10
I/O24 Type Buffer
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
O24 Type Buffer
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
Rev. 11/18/2004
Page 88
DATASHEET
+10
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
(TA= -40°C TO 85°C, VCC = +5.0V
±10%, OR VCC = +3.3 V ± 10%)
PARAMETER
O4 Type Buffer
SYMBOL
MIN
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
ILEAK
-10
TYP
MAX
UNITS
COMMENTS
0.4
V
IOL = 2 mA
V
IOH = -1 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 8 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 8 mA
V
IOH = -1 mA
+10
µA
VIN = 0 to VCC
0.5
V
IOL = 12 mA
+10
µA
VIN = 0 to VCC
95
mA
OD16 Type Buffer
Low Output Level
VOL
Output Leakage
ILEAK
-10
O162 Type Buffer
Low Output Level
VOL
High Output Level
VOH
2.4
Output Leakage
OD24 Type Buffer
ILEAK
-10
Low Output Level
VOL
Output Leakage
Supply Current for Vcc = 5.0V
Supply Current Active
ILEAK
ICC
50
Supply Current in Power Down
Mode
Supply Current for Vcc = 3.3V
Supply Current Active
ICdwn
8
ICC
20
Supply Current in Power Down
Mode
XTAL2 Output Drive for Vcc = 5.0V
XTAL2 Output Drive High
XTAL2 Output Drive Low
XTAL2 Output Drive for Vcc = 3.3V
XTAL2 Output Drive High
XTAL2 Output Drive Low
ICdwn
3
mA
ICX2H
ICX2L
TBD
TBD
mA
mA
ICX2H
ICX2L
-6
3
mA
mA
SMSC DS – LAN91C96I
-10
Page 89
DATASHEET
mA
64
mA
@2.4V
@0.4V
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
CAPACITANCE TA = 25°C; fc = 1MHz; VCC = 5V, or VCC = +3.3V
PARAMETER
Clock Input Capacitance
(XTAL1)
Clock Output Capacitance
(XTAL2)
Input Capacitance
Output Capacitance
SYMBOL
CCIN
MIN
CCOUT
LIMITS
TYP
5
MAX
6
UNIT
pF
5
6
pF
10
20
pF
pF
CIN
COUT
TEST CONDITION
All pins except pin
under test tied to AC
ground
VCC = 5V +/- 10%
PARAMETER
MIN
10BASE-T
Receiver Threshold Voltage
Receiver Squelch
Receiver Common Mode Range
Transmitter Output: Voltage
Source Resistance
Transmitter Output DC Offset
Transmitter Backswing Voltage to Idle
Differential Input Voltage
300
0
±2
TYP
100
400
±2.5
±0.585
AUI
Receiver Threshold Voltage
Receiver Squelch
Receiver Common Mode Range
180
0
±0.45
Transmitter Output Voltage (R=78Ω)
Transmitter Backswing Voltage to Idle
Input Differential Voltage
Output Short Circuit (to VCC or GND) Current
60
240
±0.85
±0.3
Differential Idle Voltage (measured 8.0 µs after
last positive transition of data frame)
MAX
585
VDD
±3
10
50
100
±3
300
VDD
±1.2
UNITS
mV
mV
V
ohms
mV
mV
V
mV
mV
V
100
±1.2
±150
±40
mV
V
mA
mV
MAX
UNITS
VCC = 3.3V +/- 10%
PARAMETER
MIN
10BASE-T
Receiver Threshold Voltage
Receiver Squelch
Receiver Common Mode Range
Transmitter Output:
Voltage
Source Resistance
Transmitter Output DC Offset
Transmitter Backswing Voltage to Idle
Differential Input Voltage
Receiver Threshold Voltage
Receiver Squelch
Rev. 11/18/2004
225
0
+/- 1.3
TYP
TBD
260
+/- 1.5
+/- 0.520
AUI
120
Page 90
DATASHEET
TBD
140
mV
mV
520
Vdd
+/- 1.6
10
50
100
+/- 3
V
ohms
mV
mV
V
160
mV
mV
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
PARAMETER
Receiver Common Mode Range
MIN
0
+/- 0.39
Transmitter Output Voltage (R=78Ω)
Transmitter Backswing Voltage to Idle
Input Differential Voltage
Output Short Circuit (to VCC or GND) Current
+/- 0.25
Differential Idle Voltage (measured 8.0 µs after
last positive transition of data frame)
TYP
+/- 0.47
MAX
Vdd
+/- 0.55
UNITS
100
+/- 0.990
TBD
40
mV
V
mA
mV
V
CAPACITIVE LOAD ON OUTPUTS
nIOCS16, IOCHRDY
240 pF
INTR0-3
120 pF
All other outputs
45 Pf
SMSC DS – LAN91C96I
Page 91
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 12 Timing Diagrams
A0-15
AEN, nSBHE
VALID ADDRESS
VALID ADDRESS
t4
t15
nIOCS16
nIORD
t20
t3
t6
t5
VALID DATA
OUT
D0-15
Z
Parameter
t3
t4
t5
t6
t15
t20
Z
VALID DATA
OUT
min
Address, nSBHE, AEN Setup to Control Active
Address, nSBHE, AEN Hold after Control
Inactive
nIORD Low to Valid Data
nIORD High to Data Floating
A4-A15, AEN Low, BALE High to nIOCS16
Low
Cycle time*
typ
max
10
20
185
units
ns
ns
25
ns
15
12
ns
ns
ns
BALE Tied High
IOCHRDY not used - t20 has to be met
*Note: The cycle time is defined only for consecutive accesses to the Data Register. These
values assume
that IOCHRDY is not used.
Figure 12.1 – Local Bus Consecutive Read Cycles
Rev. 11/18/2004
Page 92
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-15
AEN, nSBHE
VALID ADDRESS
VALID ADDRESS
t4
t15
nIOCS16
t3
t20
nIOWR
t7
D0-15
t8
Parameter
t3
t4
t7
t8
t15
t20
VALID DATA
VALID DATA IN
min
Address, nSBHE, AEN Setup to Control Active
Address, nSBHE, AEN Hold after Control
Inactive
Data Setup to nIOWR Rising
Data Hold after nIOWR Rising
A4-A15, AEN Low, BALE High to nIOCS16
Low
Cycle time*
typ
max
units
10
5
ns
ns
5
5
ns
ns
ns
12
185
ns
BALE Tied High
IOCHRDY not used - t20 has to be met
*Note: The cycle time is defined only for consecutive accesses to the Data Register. These values assume
that IOCHRDY is not used.
Figure 12.2 – Local Bus Consecutive Write Cycles
SMSC DS – LAN91C96I
Page 93
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-15
AEN,
nSBHE
VALID ADDRESS
VALID ADDRESS
nIOCS16
t20
nIORD
nIOWR
t9
Z
IOCHRDY
D0-D15
Z
t10
Z
VALID DATA
Parameter
t9
t10
t20
Z
VALID DATA
min
Control Active to IOCHRDY Low
IOCHRDY Low Pulse Width*
Cycle time**
100
185
typ
max
units
12
150
ns
ns
ns
Z
*Note: Assuming NO WAIT ST = 0 in configuration register and cycle time observed.
**Note: The cycle time is defined only for accesses to the Data Register as follows:
For Data Register Read - From nIORD falling to next nIORD falling
For Data Register Write - From nIOWR rising to next nIOWR rising
FIgure 12.3 – Local Bus Consecutive Read and Write Cycles
Rev. 11/18/2004
Page 94
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-15
(ISA)
AEN,
nSBHE
VALID ADDRESS
nIOCS16
nIORD
IOCHRDY
t9
Z
t18
Z
t19
VALID DATA
OUT
D0-D15
Parameter
t9
t18
t19
min
typ
Control Active to IOCHRDY Low
IOCHRDY Width when Data is Unavailable at
Data Register
Valid Data to IOCHRDY Inactive
max
units
15
ns
575
225
ns
ns
IOCHRDY is used instead of meeting t20 and t43.
"No Wait St' bit is 1 - IOCHRDY only negated if needed and only for Data Register access.
Figure 12.4 – Data Register Special Read Access
SMSC DS – LAN91C96I
Page 95
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-15
(ISA)
AEN,
nSBHE
VALID ADDRESS
nIOCS16
nIOWR
t9
IOCHRDY
t18
Z
D0-D15
VALID DATA IN
Parameter
t9
t18
Z
min
typ
Control Active to IOCHRDY Low
IOCHRDY Width when Data Register is Full
max
units
15
425
ns
ns
IOCHRDY is used instead of meeting t20 and t44.
'No Wait St' bit is 1 - IOCHRDY only negated if needed and only for Data Register access.
Figure 12.5 – Data Register Special Write Access
Rev. 11/18/2004
Page 96
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-15
(ISA)
AEN
VALID ADDRESS
VALID ADDRESS
t3
nIOWR
t3
nIORD
t7
t8
t5
Z
D0-7
Parameter
t3
t5
t7
t8
Z
VALID DATA OUT
min
Address, nSBHE, AEN Setup to Control Active
nIORD Low to Valid Data
Data Setup to nIOWR Rising
Data Hold after nIOWR Rising
VALID DATA IN
typ
max
25
40
30
9
units
ns
ns
ns
ns
Figure 12.6 - 8-Bit Mode Register Cycles
SMSC DS – LAN91C96I
Page 97
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-19
ADDRESS VALID
t3
t4
nMEMRD
Z
D0-15
t16
t17
nROM
Parameter
min
typ
max
units
t3
Address Setup to Control Active
10
ns
t4
Address Hold after Control Inactive
20
ns
t16
nMEMRD Low to nROM Low(Internal)
0
20
ns
t17
nMEMRD High to nROM High(Internal)
0
35
ns
BALE tied high
Figure 12.7 – External ROM Read Access
Rev. 11/18/2004
Page 98
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
t4
AEN
A0-15,
nSBHE
VALID
t1
BALE
t2
t15
nIOCS16
nIORD
nIOWR
t1
t2
t3
t4
t15
t5
t3
t5
Parameter
min
Address, nSBHE Setup to BALE Falling
Address, nSBHE Hold after BALE Falling
Address, nSBHE, AEN Setup to Control Active
AEN Hold after Control Inactive
A4-A15, AEN Low, BALE High to nIOCS16 Low
BALE Pulse Width
10
5
25
20
typ
max
units
12
15
ns
ns
ns
ns
ns
ns
t4 not needed. nIOCS16 not relevant in 8-bit mode.
Figure 12.8 – Local Bus Register Access When Using Bale
SMSC DS – LAN91C96I
Page 99
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
A0-19
VALID
t1
t2
BALE
t3
nMEMRD
t16
t17
nROM
Parameter
t1
t2
t3
t16
t17
mi n
Address Setup to BALE Falling
Address Hold after BALE Falling
Address Setup to Control Active
nMEMRD Low to nROM Low
nMEMRD High to nROM High
ty p
max
10
5
25
20
35
unit s
ns
ns
ns
ns
ns
Figure 12.9 – External ROM Read Access Using Bale
Rev. 11/18/2004
Page 100
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
EESK
EEDO
t68
EEDI
EECS
t21
Parameter
t21
EESK Falling to EECS Changing
t68
EESK Falling to EEDO Changing
min
0
typ
max
units
15
ns
25
ns
9346 is typically the serial EEPROM used.
Figure 12.10 - EEPROM Read
SMSC DS – LAN91C96I
Page 101
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
EESK
EEDO
t70
EEDI
EECS
t69
Parameter
min
typ
max
units
t69
EESK Falling to EECS Changing
5
ns
t70
EESK Falling to EEDO Changing
20
ns
9346 is typically the serial EEPROM used.
Figure 12.11 - EEPROM Write
Rev. 11/18/2004
Page 102
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
nTXEN
TXD
TXCLK
t22
t22
t22
Parameter
min
TXD, nTXEN Delay from TXCLK Falling
0
typ
max
u
unit
25
ns
Figure 12.12 – External ENDEC Interface – Start of Transmit
t23
t24
RXD
RXCLK
nCRS
t23
Parameter
t23
t24
min
typ
max
10
30
nCRS, RXD Setup to RXCLK Falling
nCRS, RXD Hold after RXCLK Falling
units
ns
ns
Figure 12.13 – External ENDEC Interface – Receive Data
(RXD Sampled by Falling RXCLK)
SMSC DS – LAN91C96I
Page 103
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
TPETXP
t31
t31
TPETXN
t32
t32
TPETXDN
t33
t33
TPETXDP
TWISTED PAIR DRIVERS
TXP
t34
t34
TXN
AUI DRIVERS
Parameter
t31
t32
t33
t34
min
TPETXP to TPETXN Skew
TPETXP(N) to TPETXDP(N) Delay
TPETXDN to TPETXDP Skew
TXP to TXN Skew
-1
47
-1
-1.5
typ
max
units
+1
53
+1
1.5
ns
ns
ns
ns
Figure 12.14 – Differential Output Signal Timing (10BASE-T and AUI)
Rev. 11/18/2004
Page 104
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
RECP
RECN
t35
first bit decoded
nCRS
(internal)
t36
1
0
1
1
0
1
0
TPERXP(N)
t37
nCRS
(internal)
first bit decoded
t38
Parameter
t35
t36
t37
t38
Noise Pulse Width Reject (AUI)
Carrier Sense Turn On Delay (AUI)
Noise Sense Pulse Width Reject (10BASE-T)
Carrier Sense Turn On Delay (10BASE-T)
min
typ
max
units
15
50
15
450
25
70
25
500
30
100
30
550
ns
ns
ns
ns
Figure 12.15 – Receive Timing – Start of Frame (AUI and 10BASE-T)
SMSC DS – LAN91C96I
Page 105
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
last bit
b
a
1/0
TPERXP
TPERXN
RECP
RECN
t39
nCRS
(internal)
Parameter
t39
min
typ
200
Receiver Turn Off Delay
max
units
300
ns
Figure 12.16 – Receive Timing – End of Frame (AUI and 10BASE-T)
t40
t41
TPETXP
TPETXN
last bit
b
a
1/0
TXP
TXN
Parameter
t40
t41
min
Transmit Output High to Idle in Half-Step Mode
Transmit Output High before Idle in Half-Step
Mode
typ
max
units
800
ns
ns
200
Figure 12.17 – Transmit Timing – End of Frame (AUI and 10BASE-T)
Rev. 11/18/2004
Page 106
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
COLLP
COLLN
t42
t43
COL
(internal)
Parameter
t42
t43
min
typ
Collision Turn On Delay
Collision Turn Off Delay
max
units
50
350
ns
ns
Figure 12.18 – Collision Timing (AUI)
ADDRESS
POINTER
REGISTER
DATA
REGISTER
nIOWR
t44
nIORD
IOCHRDY/
nWAIT (Z)
Parameter
t44
min
Pointer Register Reloaded to a Word of Data
Prefetched into Data Register
typ
2 * t20
max
units
ns
Note: If t44 is not met, IOCHRDY will be negated for the required time. This parameter can be ignored if
IOCHRDY is connected to the system.
Figure 12.19 – Memory Read Timing
SMSC DS – LAN91C96I
Page 107
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
t1
t2
t2
CLOCK
tR
tF
Figure 12.20 – Input Clock Timing
NAME
t1
t2
tR, tF
DESCRIPTION
Clock Cycle Time for 20 MHz
Clock High Time/Low Time for 20 MHz
Clock Rise Time/Fall Time
Xtal1 Startup time (from 1.6v of Vcc rising)
Xtal1 Capture Range (Xtal1 frequency
variation)
Xtal Internal feedback resistor
ADDRESS
MIN
TYP
50
MAX
19.7
20/30
5
50
20.3
UNITS
ns
ns
ns
msec
MHz
1
3
Meg Ohm
30/20
DATA
REGISTER
POINTER
REGISTER
nIOWR
t45
Parameter
t45
min
Last Access to Data Register to Pointer
Reloaded
typ
2 * t20
max
units
ns
Figure 12.21 – Memory Write Timing
Rev. 11/18/2004
Page 108
DATASHEET
SMSC DS – LAN91C96I
Non-PCI Single-Chip Full Duplex Ethernet Controller
Chapter 13 Package Outlines
Figure 13.1 - 100 Pin QFP Package Outline
Table 13.1 - 100 Pin QFP Package Parameters
MIN
NOMINAL
MAX
REMARKS
A
~
~
3.4
Overall Package Height
A1
0.05
~
0.5
Standoff
A2
2.55
~
3.05
Body Thickness
D
23.65
~
24.15
X Span
D1
19.90
~
20.10
X body Size
E
17.65
~
18.15
Y Span
E1
13.90
~
14.10
Y body Size
H
0.11
~
0.23
Lead Frame Thickness
L
0.73
0.88
1.03
Lead Foot Length
L1
~
1.95
~
Lead Length
e
0.65 Basic
Lead Pitch
o
~
7o
Lead Foot Angle
0
θ
W
0.20
~
0.40
Lead Width
R1
0.10
~
0.25
Lead Shoulder Radius
R2
0.15
~
0.40
Lead Foot Radius
ccc
~
~
0.10
Coplanarity
Notes:
1
Controlling Unit: millimeter.
2
Tolerance on the true position of the leads is ± 0.065 mm maximum
3
Package body dimensions D1 and E1 do not include the mold protrusion.
Maximum mold protrusion is 0.25 mm.
4
Dimension for foot length L measured at the gauge plane 0.25 mm above the seating plane.
5
Details of pin 1 identifier are optional but must be located within the zone indicated.
SMSC DS – LAN91C96I
Page 109
DATASHEET
Rev. 11/18/2004
Non-PCI Single-Chip Full Duplex Ethernet Controller
Figure 13.2 - 100 Pin TQFP Package Outline
Table 13.2 - 100 Pin TQFP Package Parameters
MIN
NOMINAL
MAX
REMARKS
A
~
~
1.20
Overall Package Height
A1
0.05
~
0.15
Standoff
A2
0.95
~
1.05
Body Thickness
D
15.80
~
16.20
X Span
D1
13.90
~
14.10
X body Size
E
15.80
~
16.20
Y Span
E1
13.90
~
14.10
Y body Size
H
0.09
~
0.20
Lead Frame Thickness
L
0.45
0.60
0.75
Lead Foot Length
L1
~
1.00
~
Lead Length
e
0.50 Basic
Lead Pitch
o
0o
~
7
Lead Foot Angle
θ
W
0.17
0.22
0.27
Lead Width
R1
0.08
~
~
Lead Shoulder Radius
R2
0.08
~
0.20
Lead Foot Radius
ccc
~
~
0.08
Coplanarity
Notes:
1
Controlling Unit: millimeter.
2
Tolerance on the true position of the leads is ± 0.04 mm maximum.
3
Package body dimensions D1 and E1 do not include the mold protrusion.
Maximum mold protrusion is 0.25 mm.
4
Dimension for foot length L measured at the gauge plane 0.25 mm above the seating plane.
5
Details of pin 1 identifier are optional but must be located within the zone indicated.
Rev. 11/18/2004
Page 110
DATASHEET
SMSC DS – LAN91C96I
Similar pages