FUJITSU SEMICONDUCTOR DATA SHEET DS04-22113-3E ASSP Communication Network CMOS LAN Controller with PC Card, ISA Bus, and General-purpose Bus Interfaces MB86967 ■ DESCRIPTION The MB86967 is a highly-integrated, high-performance single-chip Ethernet LAN controller which contains a PC card interface based on the JEIDA4.2 standard, an ISA bus interface that can be connected directly to the ISA bus, a general-purpose bus interface, a Manchester encoder/decoder based on the IEEE802.3 standard, and 10BASE-T transceiver. The LAN controller and buffer manager are software compatible with the MB86965A and MB86964. The buffer manager has functions for arbitration and buffer management of external buffer memory (SRAM) which can be expanded to 32 KB. These functions provide simultaneous access from the host and data link controller and updating of transmit and receive buffer pointers. This permits substantial reduction of software overhead in buffer management. The Manchester encoder/decoder and 10BASE-T transceiver can be easily interfaced with twisted-pair cable just by addition of a pulse transformer and filter. Mode pin setting allows the system interface to switch between the PC card interface, ISA bus interface, and general-purpose bus interface. When in the ISA bus interface mode, two modes can be selected: a jumperless mode allowing software setting of I/O addresses and interrupt signals, and a jumper mode allowing DIPswitch setting. ■ FEATURES System Interface • Allows switching between PC card interface, ISA bus interface, and general-purpose bus interface • Allows byte swapping of word data according to host CPU (in ISA bus mode and general-purpose bus mode) (Continued) ■ PACKAGE 100-pin Plastic LQFP (FPT-100P-M05) MB86967 (Continued) • Has functions for high-speed burst DMA transfer and single DMA transfer (slave operation) (in ISA bus mode and general-purpose bus mode) • Provides node ID EEPROM interface (in ISA bus mode) • Allows software setting of I/O addresses and interrupt signals (in jumperless mode of ISA bus mode) • Can be connected to 8-bit and 16-bit standard microprocessor buses (in general-purpose bus mode) • Provides JEIDA protocol interface (in PC card mode) • Has overlapping address window function (in PC card mode) • Has memory control (common memory, attribute memory, I/O addresses) (in PC card mode) LAN Interface • Contains Manchester encoder/decoder based on IEEE802.3 standard and 10BASE-T transceiver • Has functions for jabber control, link test, and SQE test • Has functions for inversion detection and automatic correction • Contains LED driver for monitoring network status (link test, collision, transmitting and receiving) • Has function for 10BASE-T external loopback (full-duplex) Controller • Software compatible with MB86965A and MB86964 • Has dual-bank transmit buffer and ring receive buffer (expandable to 32 KB) set by program • Contains 64-bit hash table for multicast address filter • Has function for removing receive long packets (1792-byte or more receive packets) • Has two power-down modes; standby mode (continued crystal oscillation) and shut-down mode (stopped crystal oscillation) Others • Aluminum two-layer wiring CMOS technology • 100-pin LQFP package • Power-supply voltage of 5 V ±5% ■ PIN ASSIGNMENT 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 (Top view) 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 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 (FPT-100P-M05) 2 MB86967 • PC card mode Pin no. Symbol I/O Pin no. Symbol I/O Pin no. Symbol I/O Pin no. Symbol I/O 1 VDD1 P 26 VDD2 P 51 VDD3 P 76 GNDA2 G 2 INPACK O 27 PD11 BD 52 MODE0/LEDL IU/OD 77 TPOPB O 3 WAIT O 28 PD4 BD 53 BA6 O 78 TPOPA O 4 PA0 ID 29 PD3 BD 54 BA5 O 79 TPONA O 5 PA1 ID 30 BCS O 55 BA4 O 80 TPONB O 6 PA2 ID 31 GND3 G 56 BA3 O 81 VDDA2 P 7 PA3 ID 32 BWE O 57 GND5 G 82 CE1 IU 8 PA4 ID 33 BOE O 58 BA2 O 83 CE2 IU 9 PA5 ID 34 BD7 B 59 BA1 O 84 IOIS16 O 10 PA6 ID 35 BD6 B 60 BA0 O 85 PD10 BD 11 PA7 ID 36 BD5 B 61 CLKO O 86 GND6 G 12 PA8 ID 37 BD4 B 62 CLKI I 87 PD2 BD 13 PA9 ID 38 BD3 B 63 RESET2 ISD 88 PD9 BD 14 PA10 ID 39 BD2 B 64 RESET1 ISU 89 PD1 BD 15 IORD IU 40 BD1 B 65 LEDR OD 90 PD8 BD 16 GND1 G 41 BD0 B 66 LEDT OD 91 PD0 BD 17 IOWR IU 42 BA14 O 67 GNDA1 G 92 IREQ O 18 PD15 BD 43 BA13 O 68 LEDC OD 93 REG IU 19 PD14 BD 44 BA12 O 69 NC0 — 94 VDD4 P 20 PD7 BD 45 BA11 O 70 VDDA1 P 95 WE IU 21 PD13 BD 46 GND4 G 71 TPIP I 96 OE IU 22 PD6 BD 47 BA10 O 72 TPIN I 97 ROMAD O 23 PD12 BD 48 BA9 O 73 GNDM I 98 ROMS O 24 GND2 G 49 BA8 O 74 NC1 — 99 ROMRD O 25 PD5 BD 50 BA7 O 75 NC2 — 100 GND7 G I: Input ID: Input with pull-down resistor IS: Schmitt input O:Output BD: Input/output with pull-down resistor IU: Input with pull-up resistor B: Input/output OD:Open-drain output P: Power supply G:Ground 3 MB86967 • ISA bus mode Pin no. Symbol I/O Pin no. Symbol I/O Pin no. Symbol I/O Pin no. Symbol I/O 1 VDD1 P 26 VDD2 P 51 VDD3 P 76 GNDA2 G 2 DREQ O 27 SD11 BD 52 LEDL OD 77 TPOPB O 3 IOCHRDY OD 28 SD4 BD 53 BA6 O 78 TPOPA O 4 SA0 ID 29 SD3 BD 54 BA5 O 79 TPONA O 5 SA1 ID 30 BCS O 55 BA4 O 80 TPONB O 6 SA2 ID 31 GND3 G 56 BA3 O 81 VDDA2 P 7 SA3 ID 32 BWE O 57 GND5 G 82 SBHE IU 8 SA4 ID 33 BOE O 58 BA2 O 83 DMACK IU 9 SA5 ID 34 BD7 B 59 BA1 O 84 IOIS16 OD 10 SA6 ID 35 BD6 B 60 BA0 O 85 SD10 BD 11 SA7 ID 36 BD5 B 61 CLKO O 86 GND6 G 12 SA8 ID 37 BD4 B 62 CLKI I 87 SD2 BD 13 SA9 ID 38 BD3 B 63 AEN ISD 88 SD9 BD 14 ALE ID 39 BD2 B 64 CHRESET ISU 89 SD1 BD 15 IOR IU 40 BD1 B 65 EOP ID 90 SD8 BD 16 GND1 G 41 BD0 B 66 LEDT OD 91 SD0 BD 17 IOW IU 42 BA14 O 67 GNDA1 G 92 IREQ0 O 18 SD15 BD 43 BA13 O 68 LEDC OD 93 ENHB O 19 SD14 BD 44 BA12 O 69 IREQ1/IOSEL0 IU/O 94 VDD4 P 20 SD7 BD 45 BA11 O 70 VDDA1 P 95 ENLB O 21 SD13 BD 46 GND4 G 71 TPIP I 96 EEPDO IU 22 SD6 BD 47 BA10 O 72 TPIN I 97 EEPDI O 23 SD12 BD 48 BA9 O 73 MODE/LEDR I/OD 98 EEPCS O 24 GND2 G 49 BA8 O 74 IREQ2/IOSEL1 IU/O 99 EEPSK O 25 SD5 BD 50 BA7 O 75 IREQ3/IOSEL2 IU/O 100 GND7 G I: Input ID: Input with pull-down resistor IS: Schmitt input O:Output BD: Input/output with pull-down resistor IU: Input with pull-up resistor B: Input/output OD:Open-drain output 4 P: Power supply G:Ground MB86967 • General-purpose bus mode Pin no. Symbol I/O Pin no. Symbol I/O Pin no. Symbol I/O Pin no. Symbol I/O 1 VDD1 P 26 VDD2 P 51 VDD3 P 76 GNDA2 G 2 DREQ O 27 SD11 BD 52 MODE0 IU 77 TPOPB O 3 READY O 28 SD4 BD 53 BA6 O 78 TPOPA O 4 SA0 ID 29 SD3 BD 54 BA5 O 79 TPONA O 5 SA1 ID 30 BCS O 55 BA4 O 80 TPONB O 6 SA2 ID 31 GND3 G 56 BA3 O 81 VDDA2 P 7 SA3 ID 32 BWE O 57 GND5 G 82 ECS I 8 MODE1 ID 33 BOE O 58 BA2 O 83 N.C — 9 N.C — 34 BD7 B 59 BA1 O 84 N.C — 10 RDYPOL ID 35 BD6 B 60 BA0 O 85 SD10 BD 11 BHE ID 36 BD5 B 61 CLKO O 86 GND6 G 12 DMACK ID 37 BD4 B 62 CLKI I 87 SD2 BD 13 EOP ID 38 BD3 B 63 N.C — 88 SD9 BD 14 N.C — 39 BD2 B 64 HWRST ISU 89 SD1 BD 15 IOR Iu 40 BD1 B 65 LEDR OD 90 SD8 BD 16 GND1 G 41 BD0 B 66 N.C — 91 SD0 BD 17 IOW Iu 42 BA14 O 67 GNDA1 G 92 INT O 18 SD15 BD 43 BA13 O 68 N.C — 93 LEDT OD 19 SD14 BD 44 BA12 O 69 N.C — 94 VDD4 P 20 SD7 BD 45 BA11 O 70 VDDA1 P 95 LEDL OD 21 SD13 BD 46 GND4 G 71 TPIP I 96 LEDC OD 22 SD6 BD 47 BA10 O 72 TPIN I 97 N.C — 23 SD12 BD 48 BA9 O 73 GNDM G 98 SB/SW O 24 GND2 G 49 BA8 O 74 N.C — 99 N.C — 25 SD5 BD 50 BA7 O 75 N.C — 100 GND7 G I: Input ID: Input with pull-down resistor IS: Schmitt input O:Output BD: Input/output with pull-down resistor IU: Input with pull-up resistor B: Input/output OD:Open-drain output P: Power supply G:Ground 5 MB86967 ■ PIN DESCRIPTION • System interface pins in PC card mode Pin no. Symbol Pin name I/O Function 18 to 23, 25, 27 to 29, 85, 87 to 91 PD0 to PD15 PC CARD DATA BUS BD PD15 for most significant bit and PD0 for least significant bit. A built-in 150-kΩ pull-down resistor eliminates the need for any resistor on the card. 4 to 14 PA0 to PA10 PC CARD ADDRESS BUS ID PA10 for most significant bit and PA0 for least significant bit. PA0 is invalid at word access. A built-in 150-kΩ pull-down resistor eliminates the need for any resistor on the card. 82 CE1 CARD ENABLE 1,2 IU 83 CE2 CE1 controls even addresses and CE2 controls odd addresses. At power-on or after reset-canceling, these pins must be kept High for 20 ms to initialize the I/O card. 96 OE OUTPUT ENABLE IU This pin is used to control the output of read data from attribute memory space. 95 WE WRITE ENABLE IU This pin is used to control a write operation to attribute memory space. 93 REG REGISTER SELECT IU This pin must be kept Non-active High at access to common memory. Keeping this pin Low accesses attribute memory by OE/WE. The I/O area is accessed by IORD/IOWE. Attribute memory is allocated only to even addresses. Therefore, for word access, data signals PD0 to PD7 are valid and PD8 to PD15 are invalid. Access to odd addresses is disabled at byte access. When setting IORD/IOWE Low during DMA operation, REG must be kept High to prevent illegal access. 64 RESET1 HARDWARE RESET1 (Active High) ISU This pin is used to clear the card configuration register (CCR), set the card to an unset state (IC card interface mode), and initialize the pointers and registers in the LAN controller and 10BASE-T transceiver. When power is applied to the card, the system must keep this pin High or high-impedance for 1 ms after the power supply has stabilized. A builtin 150-kΩ pull-down resistor eliminates the need for any resistor on the card. 63 RESET2 HARDWARE RESET2 (Active High) ISD This pin is internally ORed with RESET1 and contains a 50-kΩ pull-down resistor. 15 IORD I/O READ IU This pin is used to read data from the I/O area. The MB86967 sends no response to IORD until a write operation to the CCR sets the card to the I/O card interface mode. 17 IOWR I/O WRITE IU This pin is used to write data to the I/O area. The MB86967 sends no response to IOWR until a write operation to the CCR sets the card to the I/O card interface mode. 3 WAIT WAIT O A Low level is output to this pin to delay the end of an I/O access cycle in progress. (Continued) 6 MB86967 (Continued) Pin no. Symbol Pin name I/O Function 2 INPACK INPUT RESPONSE O When CE,REG, and IORD are 0s and the address on the address bus agrees with the I/O port in the card, a Low level is output to this pin. When I/O addresses are independent, a Low level is always output to this pin when CE,REG, and IORD are 0s. 84 IOIS16 16-BIT I/O PORT O When 16-bit access (word access) to the I/O port is possible, a Low level is output to this pin. When a High level is output to this pin, the system has 8-bit access (byte access). Note: In the IC memory interface mode (no write operation to the CCR) when power is applied and a reset is canceled, this pin serves as a WP+ (write-protect) pin. Under this condition, a High level is output to this pin (write-protect). 1 should be set in the device ID tuple, WPS, in the CIS to perform a write operation to the card. 92 IREQ INTERRUPT REQUEST O A Low level is output to this pin to request software service from the system. For no interrupt request, a High level is output to this pin. An interrupt signal is sent to one of the interrupt request signals on the bus in the system via the socket interface. Note: In IC memory interface mode (no write operation to the CCR) when power is applied and a reset is canceled, this pin serves as a +RDY/BSY pin. Under this condition, a High level (+RDY) is output to this pin. 98 ROMS ROM SELECT O This pin is used for output of EEPROM OR FLASH chip select signals. 99 ROMRD ROM READ O This pin is used for output of EEPROM OR FLASH read signals. 97 ROMAD ROM ADDRESS O This pin is used when I/O-reading the I/O number. Connection of this pin to the most significant address of EEPROM OR FLASH permits I/O-reading of address space in the upper half of ROM. For a write operation, both the write enable (WE) and I/O write (IOWR) pins must be enabled. If there is no need to set the ID number in the CIS for I/O-reading, this pin should be kept open. 7 MB86967 • System interface pins in ISA bus mode Pin no. Symbol Pin name I/O Function 18 to 23, 25, 27 to 29, 85, 87 to 91 SD0 to SD15 SYSTEM DATA BUS BD These pins are used as data buses for data exchange between the host system and the MB86967. They are also used for DMA transfer. In the 8-bit bus mode (bit 5 of DLCR6 = 1), only the 8 lower bits (SD0 to SD7) are used. 4 to 13 SA0 to SA9 SYSTEM ADDRESS BUS ID These pins are used for input of system address signals for selecting LAN controller registers. 64 CHRESET CHIP RESET (Active High) 15 IOR I/O READ (Active Low) IU This pin is used for input of I/O read strobe signals. 17 IOW I/O WRITE (Active Low) IU This pin is used for input of I/O write strobe signals. 63 AEN ADDRESS ENABLE (Active High) 65 EOP END OF PROCESS (Active High or Active Low) ID This pin is used for input of signals indicating the end of DMA transfer between the buffer memory and host system. At input of EOP, the next BREQ is not output and the handshaking cycle is terminated. 14 ALE ADDRESS LATCH ENABLE ID This pin is used for input of signals indicating that the addresses of SA0 to SA9 are determined. 82 SBHE SYSTEM BUS HIGH ENABLE IU This pin is used for controlling byte/word transfer. In the 16-bit data bus mode (bit 5 (SB/SW) of DLCR6 = 0), this pin, together with SA0, controls word transfer and the transfer of upper and lower bytes on the data bus. ISU This pin is used for input of hardware reset signals. ISD This pin is used for input of signals indicating that the DMA controller controls the system bus. SB/SW SBHE SA0 Function 0 0 0 Word transfer 0 0 1 Transfer of upper bytes on data bus (SD15 to SD8) 0 1 0 Transfer of lower bytes on data bus (SD7 to SD0) 0 1 1 Unused 1 × × Byte transfer (SD7 to SD0) ×: don’t care 2 DREQ DMA REQUEST (Active High) O This pin is used for output of DMA transfer request signals. (Continued) 8 MB86967 (Continued) Pin no. Symbol Pin name 69 74 75 92 IREQ1/IOSEL0 IREQ2/IOSEL1 IREQ3/IOSEL2 IREQ0 INTERRUPT REQUEST 0 to 3 (Active High) I/O Function IU/O Jumperless Mode These pins are used for output of IR signals. One of IREQ0 to IREQ3 is selected by configuration data in EEPROM. I/O ADDRESS SELECT Jumper Mode These pins are used to select the I/O base addresses to which the LAN controller is allocated. IOSEL2 IOSEL1 IOSEL0 I I/O Base Address 0 0 0 260H to 27FH 0 0 1 280H to 29FH 0 1 0 2A0H to 2BFH 0 1 1 240H to 25FH 1 0 0 340H to 35FH 1 0 1 320H to 33FH 1 1 0 380H to 39FH 1 1 1 300H to 31FH 83 DMACK DMA ACKNOWLEDGE This pin is used for input of DMAC acknowledge signals indicating that the DMAC is ready to transmit and receive data to and from buffer memory. 3 IOCHRDY I/O CHANNEL READY (Active Low, open-drain output) 84 IOCS16 I/O CHANNEL SELECT 16 (Active Low, open-drain output) 93 ENHB ENABLE DATA HIGH (Active Low) O This pin is used for output of enable signals for an external upper system data bus transceiver. 95 ENLB ENABLE DATA LOW (Active Low) O This pin is used for output of enable signals for an external lower system data bus transceiver. 99 EEPSK SHIFT CLOCK O This pin is used for output of EEPROM shift clock pulses. 97 EEPDI DATA IN O This pin is connected to DATA IN pin of EEPROM. 96 EEPDO DATA OUT IU This pin is connected to DATA OUT pin of EEPROM. 98 EECS EEPROM CHIP SELECT (Active High) O This pin is used for output of EEPROM chip select signals. OD This pin is used for output of signals indicating READY for handshaking with the host system. OD This pin is used for output of signals indicating that data transfer is made in a 16-bit I/O access cycle. 9 MB86967 • System interface pins in general-purpose mode Pin no. Symbol Pin name I/O Function 18 to 23, 25, 27 to 29, 85, 87 to 91 SD0 to SD15 SYSTEM DATA BUS BD These pins are used as a data bus for data exchange between the host system and the MB86967. They are also used for DMA transfer. In the 8-bit bus mode (bit 5 of DLCR6 = 1), only the 8 lower bits (SD0 to SD7) are used. 4 to 7 SA0 to SA3 SYSTEM ADDRESS BUS ID These pins are used for input of system address signals for selecting MB86967 registers, BOOT PROM, and ID PROM. 82 ECS ENABLE CHIP SELECT IU This pin is used for input of Active-Low chip select signals. 64 HWRST CHIP RESET 15 IOR I/O READ IU This pin is used for input of I/O read strobe signals (Active Low). 17 IOW I/O WRITE IU This pin is used for input of I/O write strobe signals (Active Low). 13 EOP END OF PROCESS ID This pin is used for input of signals indicating the end of DMA transfer between the buffer memory and host system. At EOP input, the next DREQ is not output and the handshaking cycle is terminated. Either Active High or Active Low can be selected. 12 DMACK DMA ACKNOWLEDGE ID This pin is used for input of Active-Low signals and for connection of DMAC acknowledge signals indicating that the DMAC is read for transmitting and receiving data to and from buffer memory. 11 BHE SYSTEM BUS HIGH ENABLE ID This pin is used for input of Active-Low signals and for controlling byte/word transfer. In the 16-bit data bus mode (bit 5 (SB/SW)of DLCR6 = 0), this pin, together with SA0, controls word transfer and the transfer of upper and lower bytes on the data bus. ISU This pin is used for input of hardware reset signals (Active High). SB/SW SBHE SA0 Function 0 0 0 Word transfer 0 0 1 Transfer of upper bytes on data bus (SD15 to SD8) 0 1 0 Transfer of lower bytes on data bus (SD7 to SD0) 0 1 1 Unused 1 × × Byte transfer (SD7 to SD0) ×: don’t care 92 INT INTERRUPT REQUEST O This pin is used for output of Active-Low interrupt request signals. 2 DREQ DMA REQUEST (Active High) O This pin is used for input of DMA transfer request signals. (Continued) 10 MB86967 (Continued) Pin no. Symbol Pin name I/O Function 3 READY READY O This pin is used for output of signals indicating READY for handshaking with the host system. Either Active High or Active Low can be selected. 10 RDYPOL READY POLARITY ID This pin is used for selecting the polarity of the READY signal. 1: Active High 0: Active Low 98 SB/SW SYSTEM BYTE/WORD CONFIGURATION O This pin is used for output of signals indicating the system bus width. The value of bit 5 of the internal register DLCR6 is reversed. Low: 8-bit data bus mode High: 16-bit data bus mode 8 MODE1 MODE1 ID This pin is used for setting to general-purpose bus mode. • Network interface pins in PC card mode, ISA bus mode, and general-purpose bus mode Pin no. Symbol Pin name I/O Function 68 (PC card mode) 68 (ISA bus mode) 96 (General-purpose bus mode) LEDC COLLISION LED 52 (PC card mode) 52 (ISA bus mode) 95 (General-purpose bus mode) LEDL LINK LED 66(PC card mode) 66 (ISA bus mode) 93 (General-purpose bus mode) LEDT TRANSMIT LET OD These pins are used for driving the LED indicating transmit-on status (open-drain output). 65 (PC card mode) 73 (ISA bus mode) 65 (General-purpose bus mode) LEDR RECEIVE LET OD These pins are used for driving the LED indicating receive-on status (open-drain output). 77 78 79 80 TPOPB TPOPA TPONA TPONB TWISTED PAIR OUTPUT O These pins are used for output of differential transmit signals from the builtin 10BASE-T transceiver. Preconditioning is performed by two output pins and external filters. 71 72 TPIP TPIN TWISTED PAIR INPUT I These pins are used for input of receive signals from the twisted-pair cable. OD These pins are used for driving the LED indicating the occurrence of collisions (open-drain output). OD These pins are used for driving the LED indicating the status of the link test (opendrain output). These pins are placed in the link-passed state when the link test is enabled. A Low level is output to this pin when the link test is disabled. When in the power-down or shut-down mode, these pins enter the highimpedance state, regardless of the status of the link test. 11 MB86967 • Buffer memory interface pins in PC card mode, ISA bus mode, and general-purpose bus mode Pin no. Symbol Pin name I/O Function 34 to 41 BD0 to BD7 BUFFER MEMORY DATA BUS B These pins are used as data buses for data exchange between the SRAM buffer memory and the MB86967. 42 to 45, 47 to 50, 53 to 56, 58 to 60 BA0 to BA14 BUFFER MEMORY ADDRESS BUS O These pins permit addressing of external SRAM buffer memory expandable to 32 Kbytes. 33 BOE BUFFER OUTPUT ENABLE O This pin is used for output of Active-Low signals and for enabling buffer memory at a read operation. 32 BWE BUFFER WRITE ENABLE O This pin is used for output of Active-Low signals and for enabling buffer memory at a write operation. 30 BCS BUFFER RAM CHIP SELECT O This pin is used for output of Active-Low signals and RAM chip select signals. • Other pins in PC card mode, ISA bus mode, and general-purpose bus mode Pin no. Symbol Pin name 52 MODE/LEDL (PC card mode) MODE SELECT/ LINK LED LEDL (ISA bus mode) MODE (General-purpose bus mode) 73 12 GNDM (PC card mode) I/O Function IU/OD This pin serves as a mode select pin or a pin for driving the LED indicating the status of the link OD test according to the mode used. It is pulled-up internally. IU MODE SELECT/ RECEIVE LED G MODE/LEDR (ISA bus mode) I/OD GNDM (General-purpose bus mode) G This pin serves as a mode select pin or a pin for driving the LED indicating the receive status according to the mode used. It serves as a GND pin in the PC card mode and general-purpose bus mode. 61 62 CLKO CLKI CRYSTAL OSCILLATOR O I Connect an external 20-MHz crystal oscillator. Input external clock pulses to CLKI. The wiring between CLKO/CLKI and the crystal oscillator should be as short as possible to prevent crosstalk with other signal lines. 1, 26, 51, 94 VDD1 to VDD4 DIGITAL VDD — These pins are used for power supply to the digital sections. 70 81 VDDA1 VDDA2 ANALOG VDD — These pins are used for power supply to the encoder/decoder and 10BASE-T transceiver. 16, 24, 31, 46, 57, 86, 100 GND1 to GND7 DIGITAL GROUND — These pins are used for grounding the digital sections. 67 76 GNDA1 GNDA2 ANALOG GROUND — These pins are used for grounding the encoder/ decoder and 10BASE-T transceiver. MB86967 ■ SETTING EACH MODE Pin 73 Pin 52 Pin 8 Pin 41 (BD0) 1 × × 0 1 × × PC card mode*3 0 0 0 × General-purpose bus mode External pull-up*1 External pull-down*2 Operation Mode ISA bus mode (Jumperless mode) ISA bus mode (Jumper mode) ×: don’t care *1: To set the jumperless mode, pull up pin 41 (BD0) at about 50 kΩ to 150 kΩ . *2: To set the jumper mode, pull down pin 41 (BD0) at about 50 kΩ to 150 kΩ . *3: The PC card mode has a bug. Please refer to the Page 58 errata sheet in this document. 13 MB86967 ■ BLOCK DIAGRAM • PC card mode PD0 to 15 PC card interface Internal data bus Data link controller Internal address bus PA0 to 10 CE1 CE2 IOIS16 INPACK Manchester encoder/ decoder Configuration register Buffer memory port Lan card register Control Buffer manager Receive data IREQ COL control MODE0 /LEDL XCD LBC BD0 to BD7 BA0 to BA14 BWE BOE BCS CLKO CLKI 20 MHz X'tal 14 LEDC LEDR Multicast address register Control ROMS ROMRD ROMAD TPIP TPIN LEDT COL RESET1 RESET2 TPOPB TPOPA TPONA TPONB RCK control Transmit data 10BASE-T TX-DATA transceiver RX-DATA TCK Data link control register IORD IOWR WAIT TXD RXD REG OE WE TEN MB86967 • ISA bus mode SD0 to 15 System interface Internal data bus Internal address bus SA0 to 9 ALE IOR IOW ECS SBHE IOCHRDY IOCS16 DREQ DMACK EOP AEN CHRESET IREQ0 ENHB ENLB Data link controller TEN TXD Manchester encoder/ decoder RX-DATA TCK RXD Data link control register Buffer memory port Receive data Control Buffer manager COL RCK control Transmit data 10BASE-T TX-DATA transceiver control TPOPB TPOPA TPONA TPONB TPIP TPIN LEDT LEDL LEDC MODE /LEDR Multicast address register COL XCD EEPSK EEPDI EEPCS EEPDO Control LBC IOSEL0/IREQ1 IOSEL1/IREQ2 IOSEL2/IREQ3 BD0 to BD7 BA0 to BA14 BWE BOE BCS CLKO CLKI 20 MHz X'tal 15 MB86967 • General-purpose bus mode SD0 to 15 System interface Internal data bus Data link controller Internal address bus SBHE TEN TXD Manchester encoder/ decoder RX-DATA TCK RXD SA0 to 3 Data link control register IOR 10BASE-T TX-DATA transceiver COL RCK IOW Buffer memory port ECS READY DREQ DMACK EOP Receive data Control Buffer manager RDYPOL control Transmit data control Multicast address register COL Control RESET XCD MODE0 MODE1 LBC INT BD0 to BD7 BA0 to BA14 BWE BOE BCS CLKO CLKI 20 MHz X'tal 16 TPOPB TPOPA TPONA TPONB TPIP TPIN LEDT LEDL LEDC LEDR MB86967 ■ BLOCK DESCRIPTION The MB86967 has five functional blocks. The functions of each block in the PC card mode, ISA mode, and general-purpose bus mode is explained below. 1. 10BASE-T Transceiver The 10BASE-T transceiver pre-distorts transmit packets from the Manchester encoder/decoder to be suitable for use in the 10BASE-T jitter template. Filtering is performed by an external active filter. The transceiver passes the received packets through an internal receive filter and transfers them to the encoder/decoder. 2. Manchester Encoder/Decoder The Manchester encoder/decoder converts NRZ-formatted transmit packets from the data link controller into Manchester code and transfers them to the 10BASE-T transceiver. The encoder/decoder converters the receive packets from the transceiver from Manchester code to NRZ format and transfers them to the data link controller. 3. Data Link Controller The data link controller performs the function of the data link layer specified in the IEEE802.3 standard. At transmitting, the controller attaches the preamble and CRC code to transmit data from buffer memory and transmits it as serial data to the Manchester encoder/decoder. In the event of a collision, the controller automatically executes the back-off algorithm for re-transmission. At receiving, the data link controller performs address-matching and error checks for receive packets from the Manchester encoder/decoder, removes the preamble and CRC code from the packets, and converts them to serial data before writing to buffer memory. The data link controller has a multicast address filter to recognize up to 64 groups of multicast addresses. 4. Buffer Manager The MB86967 needs external SRAM (expandable to 32 Kbytes) for buffering transmit and receive data. Buffer memory is divided into a dual-bank transmit buffer and ring receive buffer where all processing such as arbitration of access from the system and network and updating of buffer pointers is performed automatically by the buffer manager. The transmit buffer has a packet chain function for continuously transmitting the packets of data stored in it using one transmit-start instruction. 5. System Interface Like the MB86965B and MB86964, the mode pin setting allows the system interface to switch between the general-purpose interface, ISA bus interface enabling direct interface with the ISA bus, and PC card interface based on the JEIDA4.2 standard. When in the ISA bus interface mode, a serial EEPROM can be connected for storing node IDs and two modes can be selected: a jumperless mode allowing software setting of I/O addresses and interrupt signals for the LAN controller, and a jumper mode allowing DIP-switch setting. 17 MB86967 ■ FUNCTIONAL DESCRIPTION 1. Local Buffer Configurations The MB86967 is designed to operate with local buffer which holds packets received from the host processor prior to transmission and assembles packets received from the network before they are delivered to the host processor. The buffer is implemented by using a single byte-wide SRAM whose size is selected via DLCR6<1> as 8 kbytes (DLCR6<1> = 0) or 32 kbytes DLCR6<1> = 1). See Buffer Access section for information on how the host accesses the buffer memory. 2. Crystal Oscillator The clock rate of 10 Mbits/s specified by the international LAN standard, ISO/ANSI/IEEE 8802-3, is derived from an on-chip oscillator that is controlled by a 20 MHz crystal connected across pins 61 and 62 (CLKO and CLKI). Capacitance specified by the crystal manufacturer must be connected as shown in Figure 1 to stabilize the effects of stray capacitance that may vary crystal frequency. The 20 MHz clock also serves as an internal phaselocked loop (PLL) reference for decoder clock recovery. Use a crystal with the following specifications: quartz (AT-cut); 20-MHz; frequency acurracy of ±50ppm at 25°C and ±100ppm at 0°C to 70°C; parallel resonant with 20 pF-load in fundamental mode. MB86967 CLKO CLKI 20 MHz 20 pF 20 pF Figure 1 Crystal Oscillator Connection 3. Byte-Order Control Byte-order control provided by BYTESWEAP bit, DLCR7<0>, provides compatibility with various higher-level protocols, such as TCP/IP and XNS. These protocols may have a different order for transmission of the bytes within a word. When BYTESWEAP is low, the least-significant byte of the word transmits first, followed by the most-significant. When BYTESWEAP is set high, the byte order reverses. This feature applies only when the system bus operates in 16-bit (word) mode. The byte-order control works by reversing, or not reversing, the bytes of all words as they pass between the buffer memory and the system bus. Thus all data stored in the transmit buffer or retrieved from the receive buffer is affected, including nontransmitted headers. This control bit does not affect the MB86967 registers other than the Buffer Memory Port registers, BMPR8 and BMPR9. When using this feature, ensure the reversal of header information as well as packet data in the software driver code. See Table 1 for examples of using least..most and most..least byte ordering. 18 MB86967 4. Register Access The MB86967 includes four sets of user-accessible registers, all of which are accessible as bytes or words. Each register set contains eight registers. Direct access is available to two sets of registers in the device’s register set at a time, via register addresses 00H through 0FH. The Data Link Control Registers set (DLCR0 - DLCR7) is always accessible via addresses 00H to 07H. Access to one of the remaining three sets is accomplished by programming the register bank select bits, DLCR7<3:2>. This selects the register set accessible via addresses 08H to 0FH. The bank-switched registers are the Node ID set , DLCR7 - DLCR15, (for setting the Ethernet Address and performing TDR diagnostics), the Hash Table set, HT8 - HT15, (for setting up multicast address filtering) and the Buffer Memory Port set, BMPR7 - BMPR15. During operation (excluding initialization or diagnostics), the Buffer Memory Port set should normally be selected. Table 1 Byte Ordering Data<15:8> Data<7:0> FOR TRANSMIT PACKET LEAST....MOST Transmit Length, high byte Transmit Length, low byte Destination Address, 2nd byte Destination Address, 1st byte Source Address, 2nd byte Source Address, 1st byte Length Field, low byte* Length Field, high byte* Data Field, 2nd byte Data Field, 1st byte MOST....LEAST Transmit Length, low byte* Transmit Length, high byte* Destination Addr, 1st byte Destination Addr, 2nd byte Source Addr, 1st byte Source Addr, 2nd byte Length Field, high byte Length Field, low byte Data Field, 1st byte Data Field, 2nd byte FOR RECEIVE PACKET LEAST....MOST Unused, reserved Receive Packet Status Receive Length, high byte Receive Length, low byte Destination Address, 2nd byte Destination Address, 1st byte Source Address, 2nd byte Source Address, 1st byte Length Field, low byte* Length Field, high byte* Data Field, 2nd byte Data Field, 1st byte MOST....LEAST Receive Packet Status Unused; reserved Receive Length, low byte* Receive Length, high byte* Destination Addr, 1st byte Destination Addr, 2nd byte Source Addr, 1st byte Source Addr, 2nd byte Length Field, high byte Length Field, low byte Data Field, 1st byte Data Field, 2nd byte Items shown with an asterisk are in numerically reversed byte order 19 MB86967 5. Buffer Access The Buffer Memory Port register pair BMPR8 and BMPR9 provide 8- or 16-bit data access to the receive and transmit buffers through on-chip FIFOs. To eliminate the need for complicated directional control, FIFOs are dedicated to each direction of data transfer. Writing to the transmit buffer can be interleaved with reading from the receive buffer, with the MB86967 automatically maintaining buffer memory pointers, thus relieving the host of that task. The Buffer Memory port register pair is at address 08H when DLCR7<3:2> are programmed to ‘10’ to select the Buffer Memory Port register set. When using DMA, the buffer memory port is automatically selected when the DMA Acknowledge input, DMACK, is asserted. The host accesses are byte-wide when the system is configured for byte-wide operation and word-wide when the system interface is configured for word-wide operation. In the latter mode, byte-wide access to the buffer memory port is not supported. Data can transfer from the host memory to the transmit buffer, or from the receive buffer to host memory by using string moves, single-transfer programmed I/O moves, or DMA. Select the method that yields the highest system-level efficiency. A rapid transfer process results in best performance. Slow transfer can result in poor throughput and performance, and cause the receive buffer to overflow and lose packets. 6. DMA Operation (ISA, Generic Mode Only) The MB86967 supports single-cycle and burst DMA operation for data transfers between the host and the packet buffer. Hand-shaking between the MB86967 and the external DMA controller is accomplished by the DREQ and DMACK signals. The end of process input, when asserted by the system DMA controller during a transfer cycle, terminates DMA activity after completion of the current cycle. If a DMA interrupt (DLCR3<5>) is enabled, the MB86967 generates an interrupt after completion of DMA activity. Usually only one DMA operation will be run at a time, although the MB86967 could run two interleaving operations, one reading and one writing. There is only one DMA EOP bit, and only one DREQ pin and one DMACK pin, so most hosts could not support more than one DMA operation at a time. 6.1 DMA Write (Transmit) ISA, Generic Mode Only Setting the TX DMA Enable bit, BMPR12<0>, enables DMA transfer of data packets from the host memory to the MB86967 transmit buffer. The DMA burst control bits, BMPR13<1:0>, set the maximum number of data transfer cycles (bytes or words) in a single bus acquisition to be 1, 4, 8, or 12. The MB86967, when ready to accept data from the host, sets the DMA request output, DREQ, and the host responds by asserting DMA acknowledge, DMACK, followed by Write Strobe, WR, and placing data on the data bus. The MB86967 asserts the RDY(RDY) output when ready to complete the current data-transfer cycle. (The assertive states of the RDY(RDY) output and the EOP(EOP) input are independently programmable.) The MB86967 accepts the data byte/word into its bus write FIFO and later moves it into buffer memory. At the close of a transfer cycle, the host negates WR. In burst mode and depending on the value of the DREQ EXTND bit, DLCR4<2>, the MB86967 negates DREQ at the next-to-last or last transfer cycle of the burst. The host DMA then completes the last one or two transfer cycles and negates DACK to terminate the burst. To start another burst, the MB86967 reasserts DREQ. The DMA controller asserts the end of process input, EOP(EOP), concurrent with the last required data-transfer cycle to indicate completion of the entire transfer process. This action sets the DMA EOP status bit, DLCR1<5>, and discontinues further data requests from the MB86967. The MB86967 will also generate an interrupt if the DMA EOP interrupt enable bit, DLCR3<5>, is high. The host can use this interrupt to begin action to close the process. The host should reset the MB86967 DMA logic and clear the interrupt by writing 00H to BMPR12. Note: DMA EOP, DLCR1<5> must be cleared to close the transmit DMA process before attempting another DMA process. This is accomplished by writing 00H to BMPR12. When this is done, the DMA EOP bit will clear automatically, clearing the EOP status and interrupt, (if enabled) so it is not necessary to clear the interrupt separately. 20 MB86967 After finishing the loading of packets into the buffer, the host initiates packet transmission. This is done by loading the number of packets to be transmitted into the Transmit Start Register, BMPR10<6:0>, and asserting the Transmit Start bit, TXST, of the same register, BMPR10<7>. 6.2 DMA Read (Receive) ISA, Generic Mode Only The MB86967 indicates that it has received packets and stored them in the packet buffer with status bits or interrupts. Before attempting to transfer a packet from the buffer, the host processor should read the RX BUF EMPTY bit, DLCR5<6>. If this bit is 0, there are one or more packets ready for transfer in the receive buffer. After reading each packet, the host will check this bit again to see if there are more. Prior to beginning the transfer of a packet from the receive buffer to host memory via DMA, the host must first read the four-byte receive packet header from the buffer to obtain the packet status and the length of the packet in bytes. Calculating from the packet length the number of DMA cycles needed to read the packet, the host will load that number into the cycle counter of the host DMA controller. Next, RX DMA EN, BMPR12<1>, is set to high to enable DMA read operation to transfer the packet to host memory. The DMA burst control bits, BMPR13<1:0>, set the maximum number of data transfer cycles (bytes or words) in a single bus acquisition to be 1, 4, 8, or 12. When it is ready to begin, the MB86967 asserts its DMA Request output, DREQ. The host responds by asserting DMA Acknowledge, DMACK, followed by the Read Strobe, RD. The MB86967 will assert its RDY(RDY) output when it has placed the byte/word on the data bus and is ready to complete the data transfer cycle. The system memory will accept the data, then the host negates RD. The MB86967 shifts the data down in its bus read FIFO, then moves its internal read pointer to point to the next byte/word in the buffer, moving it into the FIFO. In burst mode and depending on the value of the DREQ EXTND bit, DLCR4<2>, the MB86967 negates DREQ at the next-to-last or last transfer cycle of the burst. The host DMA then completes the last one or two transfer cycles and negates DMACK to terminate the burst. The MB86967 reasserts DREQ to repeat the process if it can transfer more data after the host negates DMACK. The DMA controller asserts the end of process input, EOP(EOP) concurrent with the last byte/word data transfer to indicate completion of the entire process. The MB86967 then stops requesting more DMA cycles. When EOP(EOP) is asserted by the host DMA controller, the DMA EOP bit, DLCR1<5>, will be set high, and an interrupt will also be generated, provided it is enabled by a high in the associated interrupt enable bit, DLCR3<5>. This interrupt can be used by the host to initiate the final actions to close the DMA process. The interrupt is cleared and the DMA is disabled and reset by writing 00H to the DMA Enable Register, BMPR12. Note: Clearing RX DMA EN must be done to close the receive DMA process before attempting another DMA process. This is accomplished by writing 00H to BMPR12. When this is done, the DMA EOP bit will clear automatically, clearing the EOP status and interrupt, so it is not necessary to clear the interrupt separately. After completion of the DMA process, RX DMA EN must be reasserted when the host wants to begin reading another packet from the receive buffer by using DMA. 21 MB86967 7. Buffer Controller TRANSMIT BUFFERS ONE OR TWO TRANSMIT BUFFER RECEIVED PACKET n+3 (LAST PART) CURRENTLY AVAILABLE FREE BUFFER AREA RECEIVED PACKET n RECEIVE BUFFER RING (30 KILOBYTES MAX) RECEIVED PACKET n+1 RECEIVED PACKET n+2 RECEIVED PACKET n+3 (FIRST PART) Figure 2 Buffer Memory Organization 7.1 General The MB86967 uses a dedicated buffer memory, organized as shown in Figure 2, for intermediate storage of packets to be transmitted, and of packets received from the network. The MB86967 can operate with 8 or 32 kilobytes of total buffer memory, including both transmit and receive spaces. Memory partitioning into transmit and receive sections is controlled by the system software. The total size of the transmit buffer space can be up to 16 kilobytes. The buffer memory not used for the transmitter is used for the receiver, and is automatically configured as a ring buffer. Packets are stored head-to-toe in the receive buffer, as they are in the transmit buffer. However, each packet in the receive buffer is aligned on an eight-byte boundary. As packets are being stored in the receive buffer, as the end of the linear addressing space is reached, the chip’s receive write pointer automatically wraps around to the top of the receive addressing range to make a seamless ring. The receive read pointer does the same as the packets are read out to the system. By programming the sizes allocated to transmit and receive buffers, an optimum usage of the memory can be selected according to the demands of a particular application. The buffer controller keeps track of buffer memory partitioning and allocation and updates internal address pointers automatically for the tasks of transmit, retransmit, receive, rejection of packets with errors and data transfers to and from the host. The host and its drivers are thus relieved of buffer management functions, making the MB86967 easy to operate and substantially reducing software requirements. Packets with errors are normally automatically rejected by the MB86967 as are packets shorter than the IEEE minimum length packet of 60 bytes, excluding Preamble and CRC. Since these tasks can be done faster in hardware than in software, this not only 22 MB86967 off-loads the host system, but it also speeds up the communication processes, yielding higher throughput. As a result, the MB86967 can typically win benchmark performance tests over competing controllers. 7.2 Arbitration of Buffer Access The buffer controller automatically prioritizes and services requests for access to memory from the transmitter, receiver and host system. The MB86967’s arbitration mechanism, illustrated in Figure 3, interleaves accesses to the buffer memory so that the operation appears to be simultaneous: data can be written to or read from the buffer memory by the host via Buffer Memory Port Register 8 (BMPR8), while data is being read from the buffer by the transmitter and/or written in for storage by the receiver. Each interface, whether host system or network access, appears to be served independently by the controller. Each interface has an associated FIFO to provide time for the buffer interleaving. Thus, packet data is pipelined through the system for highest performance and throughput, and the buffer controller supports all the cases of simultaneous access to the buffer memory as follows: 1. Data from the network is stored in the receive buffer. 2. The host retreives packets from the receive buffer. 3. The host loads packet data into the transmit buffer. 4. The transmitter obtains data for transmission from the transmit buffer. 5. Any combination of the above can occur concurrently. HOST CPU READ OR WRITE MB86967 BUFFER CONTROLLER TRANSMIT RECEIVE INTERLEAVED DATA DEDICATED BUFFER MEMORY NETWORK Figure 3 Simultaneous Access to Buffer Memory 7.3 Transmit Buffer The section of the memory used by the transmitter can be configured by programming the Transmitter Buffer Size control bits, DLCR6<3:2>. Configurations include a single buffer 2 kilobytes long, or a pair of banks, each either 2, 4 or 8 kilobytes long, as illustrated in Figure 4. Within each buffer or bank, one or more packets can be written by the system until the available space is too small for another packet. When a single transmit buffer is used, the system and the transmitter time-share the use of the buffer. When two buffers are used, the system can load packets into one of the buffers while the contents of the other are being transmitted. Using dual buffers and loading multiple packets for ’packet chaining’ gives the highest rate of transmission. 23 MB86967 At reset, internal pointers are initialized to point to the beginning of one of the transmit buffers. Each time the host writes data to the buffer via the Buffer Memory Port Register, an internal pointer is advanced to the next memory location within the transmit buffer. Once a data byte/word is written, it cannot be read and the internal pointer cannot be reversed. When the host completes loading the transmit buffer, it writes the number of packets it has loaded into TX PKT CNT, BMPR10<6:0> and sets the transmit start bit, BMPR10<7>. When this occurs, the MB86967 will switch banks and will start transmitting at the earliest opportunity. Another automatically-managed pointer, the transmit read pointer, sequences through the bank being transmitted to read the packet data into the transmitter through its FIFO. If a collision occurs, the packet will be automatically retransmitted after a pseudo-random waiting interval called the backoff interval. If there are multiple packets in the buffer, the MB86967 will continue down the list until all are transmitted. Upon reaching the end of the list or chain of packets, the transmitter will stop, update its status bits and, if enabled, generate an interrupt. The details of this operation are described in the section on packet transmission. 7.4 Transmit Packet Header As shown in Figure 5, each packet within one transmit bank is separated by a non-transmitted, two-byte header containing an 11-bit value which specifies the length of the associated packet in bytes. The length specification includes only what is stored in the buffer (shown in the figure as ‘DATA’), which are the Destination ID, Source ID, Length, and Data fields of the packet. It does not include the Preamble and CRC fields which are generated by the MB86967 as it transmits the packet, and therefore are not stored in the buffer. 24 MB86967 BANK0 2KILOBYTES TRANSMIT SECTION BANK0 2KILOBYTES TRANSMIT SECTION BANK0 4KILOBYTES TRANSMIT SECTION BANK1 4KILOBYTES 6KILOBYTES RECEIVE SECTION 30KILOBYTES RECEIVE SECTION 24KILOBYTES BANK0 2KILOBYTES BANK1 2KILOBYTES 4KILOBYTES TRANSMIT SECTION RECEIVE SECTION BANK0 2KILOBYTES BANK1 2KILOBYTES 28KILOBYTES TRANSMIT SECTION BANK0 8KILOBYTES TRANSMIT SECTION RECEIVE SECTION BANK1 8KILOBYTES 16KILOBYTES Using 8k × 8 SRAM RECEIVE SECTION RECEIVE SECTION Using 32k × 8 SRAM Figure 4 Transmit Buffer Configurations 7.5 Receive Buffer Once initialized and enabled, the receiver will automatically load any error-free incoming packets which pass the address filter into the receive buffer through an on-chip FIFO. An interrupt can be provided to alert the host processor that a packet is available in the buffer. The host processor can read out received packets as they become available. Continuous reception can continue as long as the receive buffer does not become full. If the host processor reads the receive packets from the buffer promptly, the buffer will not fill up. If overflow does occur, the receiver will stop and an interrupt will be generated to indicate the problem. If this occurs, the buffer should be emptied so that reception can resume. As soon as space becomes available in the receive buffer, the receiver will automatically resume reception. The receive buffer size can vary between a maximum of 30 kilobytes when 2 kilobytes are allocated for the transmit section and a 32 kilobyte SRAM is used, to a minimum of 4 kilobytes if 4 kilobytes are allocated for the transmit section and an 8 kilobyte SRAM is used. The receive section dynamically allocates space for each individual incoming data packet, aligning each at an eight-byte ‘page’ boundary. Each received packet is preceded by a four byte header which provides packet status and the length of that data packet. The data packets are linked or chained by internal pointers which use the length value in the packet header to calculate the starting address of the next packet. This buffer format is shown in Figure 6. Since the MB86967 controls its dedicated 25 MB86967 buffer memory, FIFO size and depth are unimportant in this architecture, and need not be considered in system timing considerations. A status bit in one of the MB86967’s internal registers informs the host when one or more packets are resident in the receive buffer and available to be read. The host retrieves these packets from the buffer memory by successive reads of BMPR8. Once a data byte/word is read from the buffer memory, internal pointers are advanced to the next byte/word. As data is thus read by the system, that memory becomes available for reception of new packets. The MB86967 automatically rejects an incoming packet if there is not enough buffer space to fully receive that packet. Therefore, there is no chance for packets already received to be ‘overrun’ by incoming packets. LENGTH LSB LENGTH MSB PACKET 1 DATA 1 LENGTH LSB LENGTH MSB PACKET 2 DATA 2 LENGTH LSB LENGTH MSB DATA 3 LENGTH LSB LENGTH MSB DATA 4 DATA n UNUSED BUFFER AREA Figure 5 Transmit Buffer Detail When DLCR5<5>, the ACPT BAD PKTS bit, is set to a ‘0’ (disabled), detection of a bad incoming packet causes the MB86967 to release the buffer space in which that packet is contained and to reset its internal pointers so as to use that space for the next incoming packet. If this bit is set to a ‘1’, a packet with a CRC or alignment error will be accepted and the appropriate error bits in the status field of its header will be set. The same applies to DLCR5<3>, ACPT SHORT PKTS, which when high allows retention of packets below 60 bytes in length, excluding Preamble and CRC (which is shorter than IEEE 802.3 minimum packet size). 26 MB86967 7.6 Skip Packet Writing a ‘1’ to BMPR14<2> commands the buffer controller to skip the balance of the current receive packet in memory. The bit can then be read to determine completion of the skip process is complete (within 300 ns). If there is another packet, the bit returns to 0 when the chip is ready to read the next packet. DATA STATUS RESERVED LENGTH LSB LENGTH MSB PACKET N DATA STATUS RESERVED LENGTH LSB LENGTH MSB DATA PACKET N + 1 UNUSED BUFFER AREA STATUS RESERVED LENGTH LSB LENGTH MSB DATA Figure 6 Receive Buffer Detail 7.7 Receive Packet Header The receive packet header contains four bytes and is stored in the receive buffer preceding each packet. The receive packet header comprises one byte of packet status, an unused byte and two bytes (11 bits) for packet length. Bits 1 through 4 of the status byte are an image of the same bits in the Receive Status Register, DLCR1, with respect to the packet that follows. Bit 5 is the GOOD PKT bit, which when set to 1 indicates that no errors were detected in the packet. Bits 0, 6 and 7 are unused and are always set to 0. See Table 2. The length stored in bytes 3 and 4 of the header specifies the length of the portion of the packet stored in the buffer. This length specification is in bytes, regardless of whether the system interface is programmed for byte or word mode. During reception, the MB86967 strips the Preamble field and checks and strips the CRC field, so, as is the case for the transmit buffer, those fields of the packet are not stored in the buffer. The length specification thus includes only the Destination ID, Source ID, Length, and Data fields of the incoming packet. 27 MB86967 Table 2 Receive Packet Header Status Indications Condition N/A (Bit 7) N/A (Bit 6) Good PKT (Bit 5) RMT 0900H (Bit 4) SHORT PKT ERR (Bit 3) ALIGN ERR (Bit 2) CRC ERR (Bit 1) N/A (Bit 0) GOOD PACKET 0 0 1 0/1 X X X X PACKET WITH ERROR 0 0 0 0/1 0/1 0/1 0/1 X 0/1 indicates that the value of the bit will be 0 or 1 depending on the condition of the packet. An ‘X’ indicates that the value should be ignored. 8. Transmitter Circuits Circuits within the transmitter include a transmitter state machine, a small FIFO for pipelining the packet data, preamble generator, CRC generator, parallel to serial converter, backoff generator, interpacket gap timer and time domain reflectometer (TDR) counter. Additional circuits involved in packet transmission are described in the Transceiver section of this document. The transmitter state machine provides sequencing of events for the transmitter, including idle, preamble, data, CRC, interpacket gap, jam and backoff. It detects various transmit error conditions and sets appropriate bits within the DLCR registers. The pipeline FIFO provides elastic buffering that the buffer controller can load with data to be transmitted. The chip’s CRC generator calculates the 32-bit CRC on the destination and source address, the length field and the data field as specified by the ISO/ANSI/IEEE 8802-3 specification for Ethernet. This value is appended to the end of the packet when it is transmitted. 8.1 Media Access Control The MB86967 transmitter state machine implements the Carrier Sense, Multiple Access with Collision Detection (CSMA/ CD) network media-access protocol. The MB86967 monitors the network for any other node’s carrier, and defers transmission (collision avoidance) while other nodes are transmitting, except when DSC, DLCR4<0>, is high. Collision detection handles collisions that may still occur when two nodes separated on the network begin transmitting at nearly the same time. All nodes monitor the network for collisions and, when involved in one, transmit a 32-bit jam signal to reinforce the collision and then terminate transmission. After waiting a pseudorandom backoff interval, generated as described below, the node automatically retries transmission of the packet. Packets on the network must be separated by at least 9.6 microseconds, the ‘interpacket gap’ (IPG) during which the network medium is specified to be idle. The MB86967 transmitter state machine measures this IPG starting from the end of a packet on the network, and does not attempt to transmit until the end of the IPG. If carrier reappears on the network during the first two-thirds of the IPG, the MB86967 resets the timer to re–time the IPG from the end of the new transmission. Such an event can occur during a collision, since data and carrier indications can be corrupted by the superimposition of the two packets. During the last one-third of the IPG, the MB86967 ignores the occurrence of a carrier indication, in accordance with 8802-3, to ensure fairness and equality in access to the network. Thus, if one station begins transmission slightly ahead of another, there is no advantage to the earlier start. Both nodes transmit, a collision occurs, and backoff interval differentials resolve the media-access contention. 8.2 Transmit Packet Processing To transmit one or more packets, the host system first loads the packet(s), preceded by a two-byte header giving their lengths, into a transmit buffer by writing the data to the Buffer Memory Port Register, BMPR8. Only the destination address, source address, length and data fields of the packets are loaded by the system. After the 28 MB86967 packets are loaded into the transmit buffer, the system turns the transmitter on to initiate transmission. Observing the media access protocol, the MB86967 defers transmitting to carrier from other nodes, minimum interpacket gap intervals and backoff intervals, if any, and then begins to serialize the data. It generates the Preamble field at the beginning, and calculates and appends the CRC field at the end. Figure 7 illustrates the standard packet format. The serialized signal is routed to the transceiver section which encodes the data into the required Manchester code, appends an end-of-packet delimiter. The transmitter transmits the packets in the transmit buffer in the order in which they were loaded. If a collision is detected by the transceiver, the transmitter automatically retransmits the packet until successful or until 16 consecutive attempts have ended in collision. In the latter case, depending on the mode selection made at initialization time, the transmitter continues to try to transmit the same packet starting again with a collision count of zero, skips the current packet and tries to transmit the next packet starting with a collision count of zero, or halts and waits for instruction from the host. In the last case, the host can elect to terminate transmission attempts by setting ENADLC, DLCR6<7> to one, continue to attempt to transmit the same packet (collision counter reset), or skip the current packet and try to transmit the next packet(collision count is zero). DESTINATION LENGTH ADDRESS SOURCE PREAMBLE ADDRESS 8 6 6 2 DATA CRC 46-1500 4 LENGTHS SHOWN IN BYTES Figure 7 Packet Format 8.3 Backoff Generator A 17-bit pseudo-random number generator clocked at the 10 MHz bit rate provides the collision backoff function. Distances between stations become part of the randomizing function. The number generator is sampled at the time of collision, masking all but the appropriate number of bits specified by the 8802-3 backoff algorithm. This value is then counted down at the slot-time rate (512 bit times) to generate the backoff interval. For a first collision, only one bit is used, giving a backoff of either 51.2 microseconds or 0. For a second consecutive collision, two bits are used, and so forth, up to ten bits. From the tenth to the 16th collisions, 10 bits are used. This generates a pseudo-random backoff interval of from 0 to 52.38 ms, the so-called ‘binary exponential backoff’ for collisions per the 8802-3 standard. 8.4 Transmit Error Processing The MB86967 provides four transmit error status bits in its Transmit Status Register (DLCR0) for reporting the four possible transmit errors. The errors are: 1) loss of carrier during transmission, which usually indicates a medium fault or a collision, 2) collision, 3) 16 consecutive collisions and 4) jabber error, which occurs if the length of a single transmission substantially exceeds the time required to transmit a maximum length packet conforming to the standard. The latter three can be enabled separately to generate interrupts. A status bit in the Transmit Status Register is set in case a collision terminates transmission. Collision counter DLCR4<7:4>, automatically increments after each collision up to the sixteenth collision, at which time it rolls over to zero. Another status bit indicates that sixteen consecutive attempts to transmit a packet have been made and all have been terminated by collision. The occurrence of 16 collisions may indicate a network problem, such as a disconnected cable or terminator, that produces false collisions. While rare, 16 collisions may normally occur. 29 MB86967 8.5 Time Domain Reflectometry When a node transmits, a short or open on the network causes a reflected signal to the node receiver, which can sometimes be detected. The reflection causes failure of the carrier sense or detection of a false collision. An open on the network may cause a false collision, whereas a short usually causes loss of carrier sense. Time domain reflectometry (TDR) allows estimates of the distance along the network cable from the node to the fault. The MB86967 is equipped with a special counter to perform the TDR function. The contents of the counter after any transmission can be determined by reading the Time Domain Reflectometry registers, DLCR14 (the leastsignificant byte) and DLCR15 (the most-significant byte). Only the lower 14 bits of the counter are equipped, which is more than is needed for an IEEE or Ethernet LAN. The top two bits, DLCR15<7:6>, are always 0. The TDR counter counts the actual number of bits transmitted for each packet before a collision indication, carrier loss indication or completion of transmission, whichever comes first. A complete transmission with no error indications clears the TDR counter. The elapsed time represents twice the signal delay from node to fault. To perform the TDR fault test, first enable interrupts for TMT OK, by setting DLCR2<7> high. An alternative to using the interrupt is to poll the TMT OK bit, looking for a high level. Set the 16 Collisions Register, BMPR11, to 07H for this test (no halt, skip-failed packet). Clear status bits by writing 0FF86H to the Receive and Transmit Status registers. Next, try to transmit a packet length of 600 or more bits. Up to 16 attempts may be made automatically, if collisions are indicated. Upon completion of the transmission attempts, TMT OK goes high, generating an interrupt if so enabled. When this occurs, read the Transmit Status register and the TDR register. 8.6 Interpreting the Results If the count is zero, no fault was detected. If the count is greater than zero, but smaller than the packet length, a cable fault may exist. If the count is less than 525, a real collision may have occurred during the test. Real collisions normally occur within the first 65 bytes of the packet, including preamble. Note the error status bits, COL and CR LOST. COL high suggests a cable open, whereas CR LOST suggests a short. Repeat the measurement several times, discarding any anomalous values, and average the rest. A cluster of readings at about the same value is a strong indicator of a valid fault measurement. If such a cluster of readings occurs, multiply the average of the cluster by 39 feet to estimate the distance from the node to the fault. [39 feet = (100 ns × 0.8 × 186,282 miles/second × 5280 feet/mile)/2; this assumes the network is mostly coaxial cable with signal propagation speed of approximately 0.8 × C, the speed of light.] 9. Receiver Circuits The receiver includes a receive state machine, serial-to-parallel conversion, pipe-line FIFO, preamble recognition, bit and byte-framing, address filtering, CRC and other error checking. Additional circuits involved in packet reception are described in the Transceiver section of this document. The receiver state machine provides sequencing of events for the receiver, including idle, busy, address filtering, and data storage, detects receive error conditions and sets appropriate bits within the DLC registers. A small data FIFO provides elastic buffering for synchronization with the buffer controller timing and buffering of data while the buffer controller is servicing other buffer memory access requests. 9.1 Monitoring the Network Whenever the data link section is enabled (ENA DLC bit, DLCR6<7>, is set to zero), the MB86967 constantly monitors the network for carrier. Signals that exceed the AC and DC squelch thresholds of the transceiver cause the internal carrier sense line to assert, which in turn causes the receiver to attempt to receive a packet. (The transmitter also uses the carrier sense function to defer to transmissions from other nodes.) The receiver monitors the serial data stream from the transceiver for the end-of-preamble bit pattern, a four-bit pattern of 1011 ending the preamble’s pattern of alternating ones and zeros. This pattern also provides byte 30 MB86967 and field synchronization for the receiver; the bit immediately following the end of preamble is the first bit of the first byte of the packet’s destination address field. When packet transmission is unflawed, carrier sense remains asserted for the duration of the packet, negating just after the last bit of the CRC field is received, when the transceiver detects the end-of-packet symbol at the end of the packet. Loss of carrier sense at any other time may also result from a collision or other network problems. 9.2 Address Filtering A receive packet can be filtered by applying selectable criteria to the contents of its Destination Address field, which is the first data-bearing field following immediately after the Preamble. There are several control bits in the MB86967’s registers which provide programmablility of the filter criteria. The contents of the Destination Address field can be of three basic types. The first data type which can occur in this 48-bit field is a single node address, the unique, single-node address, globally registered with the IEEE. This data type is indicated by a “0” in the first bit position of the address. The second type is the multicast address, an address for a pre-defined group of nodes. The multicast address is indicated by a “1” in the first bit position of the address. The MB86967 filters multicast addresses using a hash function and a 64-bit hash table. Thirdly, a broadcast address is defined as a special case of the multicast address which addresses all nodes on the local network. This address value consists of all “1”s. The MB86967 provides programmable address filtering logic for each of these address types. Among the address filtering selections possible with the MB86967 are the following examples: 1. All Pass (no filtering) 2. Node address and broadcast packets only 3. Node address xxx.xxx, multicast addresses yyy.yyy and zzz.zzz and broadcast packets only 9.3 Hash Table The Hash Table provides a way to filter incoming multicast packets so the host processor need not process packets that are not of interest. The principle behind this filtering process is based on the arrangement of a large number of elements of an array, or database, to facilitate searching for elements associated with a given key or datum. The hash function is a mathematical or logical function that maps all elements in a domain onto a smaller domain called the hash table. Assume this hashing function as an example: treat the multicast address as a nonnegative 48-bit integer, divide this number by 64 and take the remainder. This function maps all multicast addresses into a 64-element hash table because the remainder must be an integer between 0 and 63. Applying this hashing function results in taking the least-significant six bits of the multicast address as an integer. In the hash table, for each element, 0 through 63, a single bit is stored to indicate if the address is accepted (1) or rejected (0). If, for example, the node belongs to three multicast groups, only three or fewer of the hash table elements store ones, and the rest store zeroes. The scheme allows the acceptance of any number of addresses, including all of them. However, while this filters out most nonspecific addresses, there may be addresses not of interest used on the network that also fall into the accept elements, so filtering may be imperfect. The actual hashing function used in the MB86967 is to calculate the CRC on the multicast address and to store the most-significant six bits of this calculation in a register . The six bits are used to address the elements of the hash table: the three MSBs are used as the Hash Table register address, and the three LSBs are used as the bit address within a register byte. If the addressed Hash Table element yields a ‘1’ and the packet is a multicast packet (first bit of destination address equals 1), and it passes the error filters, the packet will be accepted. The hash filter criteria are only used on multicast addresses, which all start with a one. Node IDs that start with a zero are not filtered by the hash filter. The broadcast address, a special case of the multicast set wherein all the bits are ones, is accepted anyway unless the Reject All Packets mode is selected. 31 MB86967 The hash filter is used only when the Address Filter mode select bit AF1 is 1 and mode select bit AF0 is 0, selecting the Node ID, Broadcast, Multicast + Hash Table mode. Hash Table registers should only be accessed when the Receiver is disabled, i.e., when ENA DLC is high, to avoid interaction with the Receiver. There are eight bytes of registers in the Hash Table containing 64 one-bit elements, as shown in the Table 7. 9.4 Receive Packet Processing As a packet arrives from the network, its destination address field is tested for the various address filter criteria selected by the Address Filter Mode bits, DLCR5<1:0>, and the Hash Table. Only if the address meets the filter criteria selected will the packet be accepted for storage in the receive buffer. In addition, the packet must be error-free, unless the chip has been enabled to receive flawed packets for diagnostic purposes. If these conditions are met, the packet reception results in the packet being stored in the buffer, its 4-byte header being updated at the end of reception, the BUF EMPTY status bit, DLCR5<6>, being cleared, the RX PKT status bit, DLCR1<7>, being set high and an interrupt being generated if so enabled. The last four bytes of the packet are the CRC field and are checked for correct CRC. The CRC bytes are not transferred to the Receive Buffer. If the packet has an error and reception of such packets has not been enabled, it will be discarded and pointers will be reset to reuse the same portion of the receive buffer for the next packet to arrive. If a flawed packet is accepted for storage for diagnostic purposes, its error(s) will be reported in the status byte of its header (see Receive Packet Header section). 9.5 Receive Error Processing Status bits in the receive status register are set to indicate errors associated with packet reception. These errors are: 1) bus read error, which occurs if the host system attempts to read from an empty receive buffer (this need never occur if the RX BUF EMPTY bit is checked), 2) short packet error, 3) alignment error (incomplete byte fragment at end of packet), 4) CRC error and 5) buffer overflow, which occurs if the receive buffer space is insufficient to hold the entire received packet (the receive controller automatically removes such packets from the receive buffer and packets already stored in the buffer are not lost). Each of these receive error conditions may optionally generate an interrupt. None of these errors requires special host processing or intervention, other than optional tallying of the error for network management purposes. 10. 10BASE-T Transceiver The MB86967’s transceiver section provides the electrical interface for RJ45 (10BASE-T) connections to the Ethernet local area network. Its functions include Manchester encoding and decoding of serial data streams to the transmitter and from the receiver, level conversion, collision detection, signal quality error (SQE) and link integrity testing, jabber control, loopback, and automatic correction of polarity reversal on the twisted-pair input. Also provided are outputs for transmit, collision and link test pass LEDs, and compatibility with unshielded twisted-pair cables. Receive threshold can be reduced to allow an extended range between nodes in low-noise environments. Programmable functions are controlled via BMPR13. Transceiver status is presented in BMPR15. 10.1 Data Encoder The encoder converts the serialized NRZ data from the transmitter to Manchester code, the format used on the network medium. In Manchester code a one is represented as a bit cell (nominally 100-nanoseconds) starting with a low, ending with a high, with a low-to-high transition at the midpoint; Manchester code for a zero is the inverse. The encoder also monitors the state of the internal transmit enable signal from the transmitter section and appends an end-of-packet symbol (illegal Manchester code) to the data stream when that signal is negated at the end of the CRC field of the transmitted packet. 32 MB86967 10.2 Transmitter Circuits The transceiver’s transmitter section receives the encoded data from the Manchester encoder and the twistedpair network via the TPO circuit. Advanced integrated pulse-shaping produces an output signal that is predistorted and prefiltered to meet the 10BASE-T jitter template on the TPON and TPOP pins. During idle periods, the MB86967 transmits link integrity test pulses on the TPO circuit if LINK TEST EN, BMPR13<5>, is asserted. 10.3 Jabber Control An on-chip watchdog timer prevents the chip from locking into a continuous transmit mode. When a transmission exceeds the maximum time limit (specified for the MB86967 as 20 to 150 msec), the watchdog timer disables the transmit and loopback functions and asserts the JABBER error status bit, DLCR0<3>, generating an interrupt if so enabled. Before the MB86967 can exit the jabber state, the transmit data circuit must remain idle for between 0.25 and 0.75 seconds. 10.4 SQE Test The transceiver supports the signal quality error (SQE) test function specified in the standard. After every successful transmission on the 10BASE-T network, the MB86967 transceiver section transmits the SQE signal to the controller for 10±5 bit times over the internal CI circuit. BMPR15<1> reflects the status of this SQE test. 10.5 Receive Input Circuits Valid received signals from the twisted-pair network connection (the TPI circuit) pass through on-chip filters to the data decoder. An internal intelligent squelch function discriminates noise from link test pulses and valid data streams. The receiver is activated only by valid data streams above the squelch level and with proper timing. If the differential signal at the TPI circuit inputs falls below 75% of the threshold level (unsquelched) for eight bit times (typical), the receiver enters the idle state. 10.6 Data Decoder The data decoder section performs three functions on the received data: clock recovery, carrier detection, and Manchester data decoding. Carrier detection is indicated to the receiver section by assertion of the internal carrier sense signal, which occurs shortly after the received data signals appear. Carrier sense status can be monitored via DLCR0<6>. Clock recovery and data separation are accomplished by an internal phase-locked loop. The recovered clock is supplied to the receiver together with the recovered NRZ serial data stream. 10.7 Reverse Polarity The transceiver polarity reverse circuit uses link pulses and end-of-frame data to determine the polarity of the received signal. A reversed polarity condition is detected when eight opposite receive link pulses are detected without receipt of a link pulse of the expected polarity. Reversed polarity is also detected if four frames are received with a reversed start-of-idle. Whenever polarity is reversed, these two counters are reset to zero. If the transceiver enters the link fail state and no valid data or link pulses are received within 96 to 128 milliseconds, polarity resets to the default uninverted condition. If Link Integrity testing is disabled, polarity detection is based only on received data. The transceiver automatically corrects reversed polarity. Polarity reversal is reported via BMPR15<3>. 33 MB86967 10.8 Collision Detection The collision detection function operates on the twisted-pair side of the interface. A collision is defined as the simultaneous presence of valid signals on both the TPI circuit and the TPO circuit. The transceiver reports collisions to the back-end via an internal signal. If the TPI circuit is active while there is activity on the TPO circuit, the TPI data passes to the back-end as received data, disabling normal loopback. 10.9 Loopback The MB86967 provides the automatic local loopback function specified by the 10BASE-T standard for the twistedpair port. This function is in effect except when the LBC bit, DLCR4<1>, is asserted. Data transmitted by the transmitter is passed through the data encoder, internally looped back within the MB86967 before the TPO drivers to the data decoder and returned to the receiver. This local loopback function is disabled when a data collision occurs, clearing the received data circuit in the transceiver for the data arriving at the twisted-pair inputs. The local loopback is also disabled during the link fail and jabber states. The MB86967 provides additional loopback testing functions controlled by LBC. When the twisted-pair port is selected and LBC is asserted, the loopback is forced regardless of the state of the TPI inputs or link test failure. During loopback, data is routed from the transmit buffer to the transmit section of the data link controller, through the Manchester encoder, back through the Manchester decoder, through the receiver section of the data link controller, and is then stored in the receive buffer. Software can then read and check the received packet that has traveled through the MB86967 transmit and receive sections. Receipt of the loopback data into the receive buffer can be disabled by asserting FILTER SELF RX, BMPR14<0>. The transmitted data is blocked from appearing at the network outputs while the MB86967 is in forced loopback mode (LBC asserted). 10.10 Link Integrity Test The link integrity test determines the status of the receive side twisted-pair cable. Link integrity testing is enabled when LINK TEST EN, BMPR13<5>, is set low. When enabled, the receiver recognizes the link integrity pulses transmitted in the absence of receive traffic. If no serial data stream or link integrity pulses are detected within 50 to 150 milliseconds, the MB86967 enters a link-fail state and disables the transmit and automatic local loopback functions. The MB86967 ignores any link integrity pulse with an interval less than 2 to 7 milliseconds. The MB86967 remains in the link-fail state until it detects either a serial data packet or two or more link integrity pulses. 34 MB86967 ■ CONTROL REGISTERS IN LAN CONTROLLER These control registers are used in all modes (PC card mode, ISA bus mode, and general-purpose bus mode). The I/O address space between the base and 0 to F addresses has 32 control registers in the LAN controller for two address-extended bits (RBS1 and RBS0). The two address-extended bits (RBS1 and RBS0) are at bits 3 and 2 of the control register DLCR7 in the LAN controller (base address +7). Notes:1. At reset, the LAN controller defaults to the 8-bit system interface. However, in the PC card mode, the 8-bit or 16-bit interface is set by bit 5 (IOIS8) of CCR1 at switching from the IC memory interface to the I/O card interface according to the CCR setting condition. 2. The PC card mode does not support DMA. 1. Arrangement of Registers Register name Symbol Transmit status Receive status Transmit interrupt enable Receive interrupt enable Transmit mode Receive mode Control 1 Control 2 Node ID 0 Node ID 1 Node ID 2 Node ID 3 Node ID 4 Node ID 5 TDR0 TDR1 Multicast address 0 Multicast address 1 Multicast address 2 Multicast address 3 Multicast address 4 Multicast address 5 Multicast address 6 Multicast address 7 Buffer memory port Transmit packet count 16 collision DMA enable DMA burst/transceiver mode Receive control/transceiver interrupt Transceiver status/control DLCR0 DLCR1 DLCR2 DLCR3 DLCR4 DLCR5 DLCR6 DLCR7 DLCR8 DLCR9 DLCR10 DLCR11 DLCR12 DLCR13 DLCR14 DLCR15 MAR8 MAR9 MAR10 MAR11 MAR12 MAR13 MAR14 MAR15 BMPR8 BMPR10 BMPR11 BMPR12 BMPR13 System address SA3/PA3 SA2/PA2 SA1/PA1 SA0/PA0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 Register bank RBS1 RBS0 × × × × × × × × × × × × × × × × 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 BMPR14 1 1 1 0 1 0 BMPR15 1 1 1 1 1 0 35 MB86967 2. Explanation of Control Registers in LAN Controller 2.1 Data Link Controller Register (1) DLCR0: Transmit Status Register DLCR0 indicates the transmit status of the data link controller. The external interrupt INT is asserted by setting the bits of DLCR2 corresponding to the status bits, bit 7 and bit 3 to 0. Bit 7 Bit 6 Bit 5 Bit 4 Bit 2 Bit 1 Bit 0 JABBER COL 16 COL BUS WR ERR Read TMT OK Write BIT CLR — — — BIT CLR BIT CLR BIT CLR BIT CLR Initial Value 0 Undefined 0 0 0 0 0 0 Bit no. 7 Bit name TMT OK (Transmit O.K) NET BSY TMT REC SRT RKT Bit 3 Operation Value Read 0 Indicates transmission in progress 1 This bit is set automatically when transmission of all packets in the transmitter buffer is completed. In the single buffer mode, the next transmit data can be transferred from the host system. In the dual buffer mode, transmission of data from the second bank can be started (Bit 7 (TMST) of the BMR10 is set). The dual buffer mode permits transfer of the next transmit data from the host system to one buffer, while the other buffer is transmitting packets. 0 Not affected 1 This bit is cleared. 0 Indicates network empty (no carrier detected) 1 Indicates network in use (carrier detected) Write — Not affected Read 0 Indicates packets transmitted by this register not received normally. This bit is cleared automatically at the start of transmission of each packet. 1 Indicates packets transmitted by this register received normally. This bit must not be used in normal operation. Write — Not affected Read 0 No short packet error. This bit is cleared automatically at the start of transmission of each packet. 1 Indicates network carrier detect disappeared during packet transmission. This bit is usually set in the event of a packet collision or physical damage to the cable. — Not affected Write 6 5 4 NET BSY (Net Busy) TMT REC (Transmit Packet Receive) SRT PKT (Short Packet) Read Write Function (Continued) 36 MB86967 (Continued) Bit no. 3 Bit name JABBER Operation Value Read 0 No jabber 1 Indicates transmission suspension with continuous transmission over specified time detected by internal watchdog timer 0 Not affected 1 This bit is cleared. 0 No collision error 1 Indicates occurrence of packet collision on network during packet transmission. The data link controller performs retransmission automatically until 16 collisions occur. The count of collision can be checked by reading bits 7 to 4 of the collision counter register DLCR4. 0 Not affected 1 This bit is cleared. 0 No 16 collision error 1 Indicates collisions occurred 16 times continuously during packet transmission. The operation after 16 collision errors can be set using bits 2 and 1 of the 16 collision control register BMPR11. 0 Not affected 1 This bit is cleared. 0 No bus write error 1 Indicates LSI failed to assert RDY signal within 2.15 µs at writing transmit data from system to transmitter buffer. In other words, transmit data could not be written because the transmitter buffer is full. This bit is never set at transmitting based on the normal operation flow. 0 Not affected 1 This bit is cleared. Write 2 COL (Collision Error) Read Write 1 16COL (16 Collision Error) Read Write 0 BUS WR ERR (Bus Write Error) Read Write Function 37 MB86967 (2) DLCR1: Receive Status Register DLCR1 indicates the receive status of the data link controller. The external interrupt INT is asserted by setting the bits of DLCR3 corresponding to the status bits, bit 7 to 0. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read PKT RDY BUS RD ERR DMA EOP RMT RST RX SRT PKT ALG ERR CRC ERR OVRFLO Write BIT CLR BIT CLR BIT CLR BIT CLR BIT CLR BIT CLR BIT CLR BIT CLR Initial Value 0 0 0 0 0 0 0 0 Bit no. Bit name Operation Value 7 PKT RDY (Packet Ready) Read 0 No received packet is in the receiver buffer. 1 Indicates packets from self office received normally and transferred completely to receiver buffer. In other words, at least one packet of receive data is in the receiver buffer. 0 Not affected 1 This bit is cleared. If there are still received packets in the receiver buffer even after the host system has read one packet of receive data from the receiver buffer, this bit is automatically reset. 0 No bus read error 1 Indicates LSI failed to assert RDY signal within 2.15 µs at reading data in receiver buffer from host system. In other words, the host system attempted to read data from the receiver buffer, although the buffer has no data to read. 0 Not affected 1 This bit is cleared. 0 Indicates DMA transfer not yet completed during DMA transfer. This bit is cleared when both the DMA RENA and DMA TENA bits of the BMPR12 are cleared. 1 Indicates DMA transfer completed and EOP signal asserted by external DMA controller 0 Not affected 1 This bit is cleared. This clearing should be done by clearing both the DMA RENA and DMA TENA bits of the BMPR12. Write 6 BUS RD ERR (Bus Read Error) Read Write 5 DMA EOP Read Write Function * : This bit is invalid in the PC card mode. (Continued) 38 MB86967 (Continued) Bit no. Bit name Operation Value 4 RMT RST (Remote Reset) Read 0 The received packet is not a remote reset packet. 1 Indicates value of data length field in received packet is 0900H. This bit is set only when the ENA RMT RST bit of DLCR5 is set and a physical address match occurs; it is not set for the multicast address and broadcast address. It is also not set when the ENA SRT PKT bit of DLCR5 is set. 0 Not affected 1 This bit is cleared. It is also cleared automatically at the start of receiving the next packet. 0 No short packet error 1 Indicates data length (address + data length + data) of received packet not more than minimum data length (60 bytes). This bit is set for not more than 6 bytes when the ENA SRT PKT bit of DLCR5 is set. It is not set when a collision occurs at the self-TXPKT. 0 Not affected 1 This bit is cleared. 0 No alignment error 1 Indicates CRC of received packet incorrect and bit count of received data not multiple of 8 0 Not affected 1 This bit is cleared. 0 No CRC error 1 Indicates CRC of received packet incorrect. This bit is not set when a collision occurs at the self-TXPKT. 0 Not affected 1 This bit is cleared. 0 No overflow error 1 Indicates that data erased because data length of received packet larger than free capacity of receiver buffer memory. Even when this bit is set, data is received normally when the data length of the next packet is smaller than the free capacity of the receiver buffer memory. This bit is set to indicate that the receiver buffer memory is almost full; transfer data immediately from the buffer to the host system. This bit is not set in the loopback mode. 0 Not affected 1 This bit is cleared. Write 3 RX SRT PKT (Short Packet) Read* Write 2 ALG ERR (Alignment Error) Read* Write 1 CRC ERR (CRC Error) Read* Write 0 OVRFLO (Overflow Error) Read* Write Function * : The bit 3 to bit 0 are cleared when the new packet is received. 39 MB86967 (3) DLCR2: Transmit Interrupt Enable Register The DLCR2 register enables a transmit interrupt. When the bit corresponding to the status bit of DLCR0 is set to 1, the external interrupt INT is asserted when the status bit is set. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read/Write ENA TMT OK 0 0 0 ENA JABBER ENA COL ENA 16COL ENA BUS WR ERR Initial Value 0 0 0 0 0 0 0 0 Bit no. 7 6 to 4 3 2 1 0 40 Bit name ENA TMT OK Operation Value Function Read/Write 0 Disables TMT OK interrupt 1 Enables TMT OK interrupt Not used Read/Write — The read value is always 0. Write 0 to these bits at writing. ENA JABBER Read/Write 0 Disables JABBER interrupt 1 Enables JABBER interrupt 0 Disables COL interrupt 1 Enables COL interrupt 0 Disables 16COL interrupt 1 Enables 16COL interrupt 0 Disables BUS RD ERR interrupt 1 Enables BUS RD ERR interrupt ENA COL ENA 16COL ENA BUS RD ERR Read/Write Read/Write Read/Write MB86967 (4) DLCR3: Receive Interrupt Enable Register The DLCR3 register enables a receive interrupt. When the bit corresponding to the status bit of DLCR1 is set to 1, the external interrupt INT is asserted when the status bit is set. Bit 7 Read/Write Initial Value Bit no. 7 6 5 4 3 2 1 0 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ENA PKT ENA BUS ENA DMA ENA ENA RX ENA ALG ENA ENA RDY RD ERR EOP RMT RST SRT PKT ERR CRC ERR OVRFLO 0 Bit name ENA PKT RDY ENA BUS RD ERR 0 0 0 0 Operation Value Read/Write 0 Disables PKT RDY interrupt 1 Enables TMT OK interrupt 0 Disables BUS RD ERR interrupt 1 Enables BUS RD ERR interrupt 0 Disables DMA EOP interrupt 1 Enables DMA EOP interrupt 0 Disables RMT RST interrupt 1 Enables RMT RST interrupt 0 Disables RX SRT ERR interrupt 1 Enables RX SRT ERR interrupt 0 Disables ALG ERR interrupt 1 Enables ALG ERR interrupt 0 Disables CRC ERR interrupt 1 Enables CRC ERR interrupt 0 Disables OVRFLO interrupt 1 Enables OVRFLO interrupt Read/Write ENA DMA EOP Read/Write ENA RMT RST Read/Write ENA RX SRT ERR Read/Write ENA ALG ERR Read/Write ENA CRC ERR Read/Write ENA OVRFLO 0 Read/Write 0 0 Function * : This bit is invalid in the PC card mode. 41 MB86967 (5) DLCR4: Transmit Mode Register DLCR4 sets the transmitter operation modes, and displays the count of collision occurrence. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Read COL3 COL2 COL1 COL0 TST1 Write — — — — 0 Initial Value 0* 0* 0* 0* 0 Bit 2 Bit 1 Bit 0 CNTRL LBC DSC 1 1 0 Bit no. Bit name Operation Value Function 7 to 4 COL3 to COL0 (Collision Count) Read — Displays count of collision until transmission completed. These bits are cleared at the completion of transmission. 3 TST1 (Chip Test 1) Read/Write — This is a chip test bit. Always write 0 to this bit at writing to DLCR4. 1 cannot be written to this bit during normal operation. 2 CNTRL Read/Write (DREQ Control) 0 The DREQ signal is negated in the last cycle of DMA transfer. 1 The DREQ signal is negated two cycles before the last cycle of DMA transfer. 0 Forced to enter loopback mode. The loopback is not canceled even when a collision is detected. Transmit data is not output from the TPOP*/TPON* pin. 1 Enters standard loopback mode specified in 10BASE-T standard. The loopback function works only at data transmission. The transmit data is loopbacked to the receiver by the encoder/ decoder. If the MB86967 is in the link fail and jabber states when a collision is detected, the loopback mode is canceled and signals are accepted from the twisted-pair board. — When this bit is set to 1, the MB86967 is enabled for duplex transmission. In this case, data can be transmitted irrespective of the state of the receiver, enabling external loopback operation. 1 0 LBC (Loopback Control) DSC (Disable Carrier Detec) Read/Write Read/Write * : This bit is invalid in the PC card mode. * : These bits are undefined until the first packet is completely transmitted after power-on. 42 MB86967 (6) DLCR5: Receive Mode Register DLCR5 sets the receiver operation mode, and displays the status of the receiver buffer memory. Bit 7 Bit 6 Bit 5 Bit 4 Read TST2 BUF EMP Write 0 — ACPT BAD PKT ADD SIZE Initial Value 0 1 0 0 Bit no. Bit 3 Bit 2 ENA SRT ENA PKT RMT RST 0 0 Bit 1 Bit 0 AM1 AM0 0 1 Bit name Operation Value 7 TST2 (Chip Test 2) Read/Write — This is a chip test bit. Always write 0 to this bit at writing to DLCR5. Writing 1 to this bit is prohibited during normal operation. 6 BUF EMP (Buffer Empty) Read 0 Indicates valid data remaining in receiver buffer memory 1 Indicates no valid data in receiver buffer memory — Not affected 0 If the received packet has short packet, alignment, and CRC errors, it is discarded and is not transferred to the receiver buffer. 1 A packet with short packet, alignment, and CRC errors is transferred to the receiver buffer like a normally-received packet. 0 Compares destination addresses of receive packet and ID addresses of node for match at all 6 bytes (48 bits) 1 Compares destination addresses of received packet and ID addresses of node for match only at upper byte and 5 bytes (40 bits) ENA SRT PKT Read/Write (Enable Short Packet Receive) 0 A packet of more than 60 bytes and less than 2 Kbytes can be received. 1 A packet of more than 6 bytes and less than 2 Kbytes can be received. The value of this bit is ignored when bit 5 (ACPT BAD PKT) is set. ENA RMT RST Read/Write (Enable Remote Reset) 0 The remote reset packet is not detected. 1 Checks whether value of data length field in receive packet is 0900H — Selects node ID address match detect mode at packet receiving (Tables 3 and 4) Write 5 4 3 2 ACPT BAD PKT Read/Write (Bad Packet Receive) ADD SIZE (Address Size) 1 and 0 AM1, AM0 (Address Match Mode) Read/Write Read/Write Function 43 MB86967 Table 3 Receiving Packets from Other Nodes Physical Packet Multicast Packet Broadcast Lower ID Address ID Packet Mismatch Filter*2 Match*1 AM1 DLCR5 Bit 1 AM0 DLCR5 Bit 0 LBC DLCR4 Bit 1 SELF RX BMPR14 Bit 0 ID Match 0 0 × × Discarded Discarded Discarded Discarded Discarded 0 1 0 × Discarded Discarded Discarded Discarded Discarded 0 1 1 × Received Discarded Received Received Discarded 1 0 0 × Discarded Discarded Discarded Discarded Discarded 1 0 1 × Received Discarded Received Discarded Discarded 1 1 0 × Discarded Discarded Discarded Discarded Discarded 1 1 1 × Received Received Received Received Received Table 4 Receiving Packets Transmitted from Self Office Physical Packet Multicast Packet Broadcast Lower ID Address ID Packet Mismatch Filter*2 Match*1 AM1 DLCR5 Bit 1 AM0 DLCR5 Bit 0 LBC DLCR4 Bit 1 SELF RX BMPR14 Bit 0 ID Match 0 0 × × Discarded Discarded Discarded Discarded Discarded 0 1 0 × Received Discarded Received Received Discarded 0 1 1 × Received Discarded Discarded Discarded Discarded 1 0 0 × Received Discarded Received Discarded Received 1 0 1 × Received Discarded Discarded Discarded Discarded 1 1 0 × Received Received Received Received Received 1 1 1 0 Received Received Received Received Received 1 1 1 1 Discarded Discarded Discarded Discarded Discarded *1: Lower ID Match: Receive the packets because a match occurs at the 24 lower bits of the node ID and bit 0 of the node ID register is 1. *2: Address Filter: Receive the packets because bit 0 of the node ID register is 1 and the CRC value of the node ID register is selected by the multicast address register. 44 MB86967 (7) DLCR6: Control Register 1 DLCR6 sets the MB86966 operation modes. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read/Write ENA DLC 100NS/ 150NS SB/SW BB/BW TX BUF SIZE 1 TX BUF SIZE 0 BUF SIZE 1 BUF SIZE 0 Initial Value 1 0 1 1 0 1 1 0 Bit no. 7 6 5 Bit name Operation ENA DLC Read/Write (Enable Data Link Controller) 100NS/150NS (SRAM Cycle Time Select) Read/Write SB/SW (System Bus Width Select) Read/Write Value Function 0 When 0 is written to this bit, the MB86967 is ready for transmitting and receiving. When this bit is 0, the node ID register and multicast address register cannot be accessed. 1 The data link controller and buffer manager in the MB86967 are initialized and both the transmitter and receiver buffers are also initialized. 0 Sets cycle time of external SRAM to 150 ns 1 Sets cycle time of external SRAM to 100 ns. In this case, use SRAM with an access time of 80 ns or less. — Selects width of system data bus SB/SW System Data Bus 0 16 bit 1 8 bit • PC Card Mode When 1 is written to bit 5 (IOIS8) of the CCR1, the SB/-SW bit is set to 1, placing the system data bus in the byte transfer mode. When 0 is written, the SB/-SW bit is set to 0, placing the system data bus in the word transfer mode. In the PC card mode, writing to the SB/-SW bit is performed by CCR1. Writing from DLCR6 does not affect bit 5. • General-purpose Bus Mode The reversed value of the SB/SW bit is output to the external pin SB/SW. 4 BB/BW (Buffer Memory Bus Width) Read 1 The width of the buffer memory data bus is fixed to 8 bits. The read value of this bit is always 1. Write — Not affected — Sets size of transmitter buffer. 3 and 2 TX BUF SIZE 1 Read/Write TX BUF SIZE 0 (Transmitter Buffer Size) TX BUF SIZE 1 0 Bank Capacity Bank Count Buffer Capacity 0 0 2 Kbyte 1 2 Kbyte 0 1 2 Kbyte 2 4 Kbyte 1 0 4 Kbyte 2 8 Kbyte 1 1 8 Kbyte 2 16 Kbyte (Continued) * : This register is accessible only for the device initialization. 45 MB86967 (Continued) Bit no. 1 Bit name BUF SIZE 1 0 Operation Value Function Read/Write — Sets size of external buffer memory (transmitter buffer size + receiver buffer size) BUF SIZE 0 BUF SIZE 1 Buffer Size 0 8 Kbyte 1 32 Kbyte Read 0 The read value of this bit is fixed at 0. Write — Not affected (8) DLCR7: Control Register 2 DLCR7 sets the MB86967 operation modes. Read Write Bit 7 Bit 6 Bit 5 IDENT1 IDENT0 STBY 1 0 1 Initial Value Bit no. Bit name 7 and 6 IDENT1 IDENT0 5 4 STBY RDYPOL Bit 4 RDYPOL — × Bit 3 Bit 2 Bit 1 Bit 0 RBS1 RBS0 EOP/EOP BYTE SWAP 0 0 0 0 Operation Value Function Read — Reading the initial values of these bits permits checking the type of controller used in software. Read values 10: MB86967 Read values 11: MB86965A Read values 01: MB86964 Read values 00: MB86960A Writing to these bits is invalid. Read/Write 0 The LAN controller is placed in the standby mode. In the standby mode, the clock stops, reducing current consumption to about 10%. When 1 is prewritten to bit 4 of BMPR14, the MB86967 enters the shutdown mode. In this mode, the crystal oscillator stops, reducing the current consumption to about 1%. In the PC card mode, when the PwrDwn bit of CCR1 is set to 1, this bit is set to 0. Writing from DLCR7 to this bit is prohibited. 1 Operating state (not standby state). In the PC card mode, when the PwrDwn bit of CCR1 is set to 0, this bit is set to 1. Writing from DLCR7 to this bit is prohibited. Return from the shutdown mode by resetting. Read — The value of the external pin RDYPOL can be read. In the PC card mode, the read value is always 1. In the ISA bus mode, the read value of this bit is always 0. Write — Not affected (Continued) 46 MB86967 (Continued) Bit no. Bit name 3 and 2 RBS1 RBS0 Operation Value Function Read/Write — The MB86967 has three internal register sets. Bank switching by these bits allows the system to access each register set. DLCR0 to DLCR7 can always be accessed irrespective of the conditions of register banks. RBS1 RBS2 Address 00H to 07H Address 08H to 0FH 1 0 EOP/EOP Read/Write BYTE SWAP Read/Write 0 0 DLCR0 to DLCR7 DLCR8 to DLCR15 0 1 DLCR0 to DLCR7 MAR8 to MAR15 1 0 DLCR0 to DLCR7 BMPR8 to BMPR15 1 1 DLCR0 to DLCR7 Reserved 0 Sets DMA end signal (EOP) input pin Active Low 1 Sets DMA end signal (EOP) input pin Active High 0 When the system bus is the 16-bit mode, byte swapping is not performed for access to BMPR8. The bus is an Intel 16-bit bus. 1 When the system bus is the 16-bit mode, byte swapping is performed for access to BMPR8, switching between upper and lower data. The bus is a Motorola 16-bit bus. * : This bit is invalid in the PCMCIA mode. * : Writing 1 to this bit is prohibited in the PC card mode. Always write 0 to this bit. (9) DLCR8 to DLCR13: Node ID Registers Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 DLCR8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 DLCR9 ID15 ID14 ID13 ID12 ID11 ID10 ID9 ID8 DLCR10 ID23 ID22 ID21 ID20 ID19 ID18 ID17 ID16 DLCR11 ID31 ID30 ID29 ID28 ID27 ID26 ID25 ID24 DLCR12 ID39 ID38 ID37 ID36 ID35 ID34 ID33 ID32 DLCR13 ID47 ID46 ID45 ID44 ID43 ID42 ID41 ID40 DLCR8 to DLCR13 store the node ID of the self office. After comparing the destination addresses in the receive packet with the values of the node ID registers, the matching packets are received according to the setting conditions of the Address Match Mode bits of DLCR5. Usually, set bit 0 (ID 0) of DLCR8 to 0 (When bit 0 of the destination address is 1, the received data serve as the multicast address and the packet is received according to the setting conditions of the Address Match Mode bits of DLCR5, irrespective of their values). The initial values of the node ID registers are undefined. Reading and writing are possible only when bit 7 (ENA DLC) of DLCR6 is 1. 47 MB86967 (10) DLCR14 and DLCR15: TDR Registers Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 DLCR14 TDR7 TDR6 TDR5 TDR4 TDR3 TDR2 TDR1 TDR0 DLCR15 0 0 TDR13 TDR12 TDR11 TDR10 TDR9 TDR8 DLCR14 and DLCR15 are 14-bit counters that are reset at the start of transmission to count the transmit bits until a collision occurs or the carrier is dropped. They are read-only registers. The read values of bits 7 and 6 of DLCR15 is always 0. 2.2 Multicast Address Registers Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MAR8 MID7 MID6 MID5 MID4 MID3 MID2 MID1 MID0 MAR9 MID15 MID14 MID13 MID12 MID11 MID10 MID9 MID8 MAR10 MID23 MID22 MID21 MID20 MID19 MID18 MID17 MID16 MAR11 MID31 MID30 MID29 MID28 MID27 MID26 MID25 MID24 MAR12 MID39 MID38 MID37 MID36 MID35 MID34 MID33 MID32 MAR13 MID47 MID46 MID45 MID44 MID43 MID42 MID41 MID40 MAR14 MID55 MID54 MID53 MID52 MID51 MID50 MID49 MID48 MAR15 MID63 MID62 MID61 MID60 MID59 MID58 MID57 MID56 The multicast address registers select the multicast address packet to receive when the Address Match Mode bits of DLCR5 are set to 1 and 0, respectively. Multicast addresses are input to a 32-bit CRC circuit and grouped into 64 by the six rightmost bits of the calculated CRC. Packets with multicast addresses of groups in which set the bits corresponding to the multicast address registers are received. The initial values of the multicast address registers are undefined. Reading and writing are possible only when bit 7 (ENA DLC) of DLCR6 is 1. 2.3 Buffer Memory Port Registers (1) BMPR8: Buffer Memory Port BMPR8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 BMP7 BMP6 BMP5 BMP4 BMP3 BMP2 BMP1 BMP0 BMP15 BMP14 BMP13 BMP12 BMP11 BMP10 BMP9 BMP8 BMPR8 is a data port for transferring transmit and receive data between the host system and buffer memory. When the system interface is in the byte mode, BMPR8 serves as an 8-bit I/O port. When the system interface is in the 16-bit bus mode, BMPR8 serves as a 16-bit I/O port. In the 16-bit bus mode, other registers can be accessed in both bytes and words, but this register can be accessed only in words. In the 16-bit bus mode, setting bit 0 (BYTE SWAP) of DLCR7 permits order swapping between MSB and LSB, allowing this register to work with both Intel and Motorola processors. 48 MB86967 (2) BMPR10: Transmit Packet Count Register BMPR10 sets the transmit start bit and transmit packet count. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read 0 Write TMST TX PKT CNT 6 TX PKT CNT 5 TX PKT CNT 4 TX PKT CNT 3 TX PKT CNT 2 TX PKT CNT 1 TX PKT CNT 0 Initial Value 0 × × × × × × × Bit no. 7 6 to 0 Bit name TMST TX PKT CNT 6 to 0 Operation Value Function Read 0 The read value of this bit is always 0. Write 0 Not affected 1 Starts transmitting packet. When the transmitter buffer is in the single buffer mode, set this bit after transferring the transmit packet from the host to the transmit buffer. When the transmitter buffer is in the dual buffer mode, set this bit after transferring the transmit packet to the transmitter buffer and completing transmission of the packet to the second bank (after the TMT OK bit of DLCR0 is set). Read — These bits are decremented each time transmission of one packet is completed, and display the count of packets that have not been transmitted yet. They are set to 00H after all packets have been transmitted. Write — The MB86967 can start transmitting more than one packet using one transmit command. Set the TMST bit and write the transmit packet count (the count of packet transferred to buffer memory). 49 MB86967 (3) BMPR11: 16 Collision Control Register BMPR11 controls operation of the data link controller after a 16 collisions occur. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read/Write 0 0 0 0 0 16COL CNTL 2 16COL CNTL 1 16COL CNTL 0 Initial Value 0 0 0 0 0 0 0 0 Bit no. 7 to 3 2 to 0 Bit name Not used 16COL CNTL 2 to 0 Operation Value Function Read 0 The read values of these bits is always 0. Write 0 Writing 1 is prohibited. Always write 0 at writing. Read/ Write — 16COL CNTL 1 0 1 1 0 Similar to ordinary collisions, the transmit packet causing 16COLs is retransmitted automatically (Auto Mode). 1 1 1 The next packet is transmitted automatically after skipping the transmit packet causing the 16COLs (Auto Mode). 0 1 × When 16COLs occur, stop the transmitted data link controller temporarily. To resume transmission, write the values listed in the table below to this register. These values are valid only when written. Write them to this register each time transmission stops after 16COLs occur (Manual Mode). 16COL CNTL 50 Operation after 16COLs Occur 2 Operation when Resuming Transmission in Manual Mode 2 1 0 0 1 0 Similar to ordinary collisions, the transmit packet causing 16COLs is retransmitted. 0 1 1 The next packet is transmitted after skipping the transmit packet causing the 16COLs. MB86967 (4) BMPR12: DAM Enable Register The BMPR12 controls DMA transfer between the host system and the MB86967. Bit 7 Bit 6 Bit 5 Bit 4 Read × × × × Write 0 0 0 Initial Value × × × Bit no. 7 to 4 3 Bit name Not used Bit 3 Bit 2 Bit 1 Bit 0 0 LONGPKT RCV DIS 0 DMA RENA DMA TENA × 0 0 0 0 Operation Value Read — The read values of these bits are always undefined. Write 0 Writing 1 is prohibited. Always write 0 at writing. 0 The receive long packet removal function is enabled. Packets with a length of 1792 bytes or more are not received. 1 The receive long packet removal function is disabled. Packets with a length of up to 2047 bytes cannot be received normally. The read value of this bit is always 0. Writing 1 is prohibited. Always write 0 at writing. LONGPKT RCV Read/Write DIS Function 2 Not used Read/Write — 1 DMA RENA Read/Write 0 (*1) DMA read operation is disabled. 1 (*2) DMA read operation (reading from receiver buffer) is enabled. 0 (*1) The DMA write operation is disabled. 1 (*2) The DMA write operation (writing to receiver buffer) is enabled. 0 DMA TENA Read/Write * : Writing 1 to this bit is prohibited in the PC card mode. Always write 0 to this bit. *1: The DLCR1 DMAEOP bit is cleared if the DMA RENA bit and DMA TENA bit are set to “00”. *2: Writing “11” to both DMA RENA bit and DMA TENA bit is prohibited. 51 MB86967 (5) BMPR13: DMA Burst/Transceiver Mode Control Register The BMPR13 sets the DMA transfer cycle count between the host system and MB86967 and the operation modes of the 10BASE-T transceiver. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Write I/O BASE UNLOCK 0 LINK TEST ENA 0 0 0 DMA BRST 1 DMA BRST 0 Initial Value 1 0 0 0 0 0 0 0 Read Bit no. 7 Bit name I/O BASE UNLOCK Operation Value Function Read/Write 0 The I/O base address is not changed even after an I/O-read operation to address X12H. 1 An I/O-read operation to address X12H increments the values of the I/O base address select signals (IOSEL0 to IOSEL2), causing a change in the I/O base address (This is valid only in the jumperless ISA bus mode). 6 Not used Read/Write — The read value of this bit is always 0. Writing 1 is prohibited. Always write 0 to this bit at writing. 5 LINK TEST ENA Read/Write 0 The link test on the 10BASE-T transceiver is enabled. 1 The link test on the 10BASE-T transceiver is disabled. Not used Read/Write — The read values of these bits is always 0. Writing 1 is prohibited. Always write 0 to these bits at writing. Read/Write — The DMA transfer cycle count is set by one bus request (These bits are invalid in the PC card mode). 4 to 2 1 and 0 DMA BRST 1 and 0 BRST1 BRST0 52 DAM Transfer Cycle Count (Max.) 0 0 1 (single DMA) 0 1 4 1 0 18 1 1 12 MB86967 (6) BMPR14: Receiver Control/Transceiver Interrupt Enable/Shutdown Register BMPR14 controls interrupts from the receiver buffer pointer and 10BASE-T transceiver. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 ENA LKF INT 0 SHUT DWN MODE TST3 0 0 0 0 0 Read Write Initial Value Bit no. Bit name Operation Value Bit 2 Bit 1 Bit 0 0 SKIP RX PKT ENA SQE INT ENA FILTER 0 0 0 0 Function 7 Not used Read/Write — The read value of this bit is always 0. Always write 0 to this bit at writing. 6 ENA LKF INT Read/Write 0 The link fail interrupt is disabled. 1 The link fail interrupt is enabled. 5 Not used Read/Write — The read value of this bit is always 0. Always write 0 to this bit at writing. 4 SHUT DWN MODE Read/Write 0 When bit 5 (STBY) of DLCR7 is set, the MB86967 enters the standby state (oscillation continues). 1 When bit 5 (STBY) of DLCR7 is set, the MB86967 enters the shutdown state (oscillation stops). 3 TST3 (Chip Test Read/Write 3) — This a chip test bit. Always write 0 to this bit at writing to the BMPR14. Writing 1 to this bit during normal operation is prohibited. 2 SKIP RX PKT 0 Skipping the receiver buffer pointer is completed. 1 The receiver buffer pointer is being skipped (updated), indicating the transient state from when 1 is written to this bit until skipping the pointer is completed (about 200 ns). 0 Not affected. The receiver buffer pointer is not skipped. 1 When 1 is written to this bit, the receiver buffer pointer is skipped up to the beginning of the next packet. This bit is cleared automatically when skipping is completed. If the packet to be skipped is the last one in the receiver buffer, the BUF EMP bit of DLCR5 is set after the receiver buffer pointer is skipped. This function works only after reading the receive packet header (4 bytes). And, it is prohibited to write “1” when the remainder of the packet becomes 8-byte. 0 The signal quality error interrupt is disabled. 1 The signal quality error interrupt is enabled. 0 When the Address Match Mode bits AM1 and AM0 are 11, the packet transmitted from the self office is also received. 1 When the Address Match Mode bits AM1 and AM0 are 11, the packet transmitted from the self office is not received. 1 0 ENA SQE INT FILTER SELF RX Read/Write Read/Write Read/Write 53 MB86967 (7) BMPR15: Transceiver Status Control Register BMPR15 indicates the status of the 10BASE-T transceiver. Bit 7 Read 0 Write Initial Value Bit no. Bit name 7 Not used 6 LKF Bit 6 3 POL REV Not used 1 SQE 54 Not used 0 0 0 × 0 Bit 3 Bit 2 POL REV BIT CLR × 0 0 Bit 1 SQE BIT CLR 0 Bit 0 0 0 Operation Value Read/Write — The read value of this bit is always 0. Writing 1 is prohibited. Always write 0 to this bit at writing. Read 0 No link fail is detected. 1 A link fail is detected. 0 Not affected 1 This bit is cleared. Read/Write — The read value of this bit is always 0. Writing 1 is prohibited. Always write 0 to this bit at writing. Read 0 Polarity reversal is not detected. 1 Polarity reversal is detected. 0 Not affected 1 This bit is cleared. Read/Write — The read value of this bit is always 0. Writing 1 is prohibited. Always write 0 to this bit at writing. Read 0 An SQE error is not detected. 1 An SQE error is detected. 0 Not affected 1 This bit is cleared. — The read value of this bit is always 0. Writing 1 is prohibited. Always write 0 to this bit at writing. Write 0 0 BIT CLR Write 2 Bit 4 LKF Write 5 and 4 Not used Bit 5 Read/Write Function * : The read value of this bit is always 0 when bit 0 of DLCR4(DSC: Disable Carrier Detect) is enabled (1). MB86967 ■ EXPLANATION OF ISA BUS MODE 1. Jumperless ISA Mode In this mode, the LAN controller reads the I/O addresses and interrupt outputs from initialization data in external E2PROM after the hardware reset at power-on, and initializes them. It takes about 50 µs until initialization is completed. This eliminates the need for on-board DIP switches for address decode selection. The initialization data can be changed because the E2PROM can be read and written. Utilities for changing initialization data allow an inexperienced user to retrieve contentions between I/O addresses and mount a LAN interface card in any personal computer. Only one byte is used for the initialization data in the E2PROM. Second and later bytes should be used to store node ID. Data (node ID) at the second and later bytes should be read bit-by-bit, converted to parallel data, and then written to the node ID registers (DLCR8 to DLCR15). 1.1 Setting at E2PROM The initial values should be prewritten to the first byte in the E2PROM as shown in Figure 8; the node ID should be prewritten to the second and later bytes. After a hardware reset, the LAN controller reads the initialization data at the first one byte in E2PROM automatically, and sets it at the BMPR19 internal register. Bit 7 Bit 6 INTSEL1 INTSEL0 Bit 5 Bit 4 Bit 3 Not used Bit 2 Bit 1 Bit 0 IOSEL2 IOSEL1 IOSEL0 Setting I/O Addresses IOMSEL2 IOMSEL1 IOMSEL0 Setting Interrupt Channels I/O Base Address 0 0 0 260H to 27FH 0 0 1 280H to 29FH 0 1 0 2A0H to 2BFH INTSEL1 INTSEL0 Interrupt Channel (Pin) 0 1 1 240H to 25FH 0 0 IRQ0 1 0 0 340H to 35FH 0 1 IRQ1 1 0 1 320H to 33FH 1 0 IRQ2 1 1 0 380H to 39FH 1 1 IRQ3 1 1 1 300H to 31FH Figure 8 Configuration of Bits at First One Byte in E2PROM 55 MB86967 1.2 Setting I/O Base Addresses After completing jumperless initialization, read 8 bytes (DLCR0 to DLCR7) of the registers in the LAN controller using the system software and check that the initial values in these registers have been read correctly. If they are not read correctly, the I/O addresses are assumed to overlap other I/O addresses, and must be changed. To make a change, read BMPR18 (the read value is meaningless). Each time BMPR18 is read, the values of IOSEL2 to IOSEL0 are incremented from 000 to 111 and the updated values become valid in BMPR19. When the I/O addresses are updated until the values of DLCR0 to DLCR7 can be read properly, the LAN controller is located at the correct I/O addresses. After the I/O addresses have been defined, to prevent them being updated in error when BMPR18 is read, clear bit 7 (I/O BASE UNLOCK) of BMPR13. When the I/O address values found by the above operation are prewritten to E2PROM, the above operation is not needed at the next system startup, which reduces the system startup overhead. Consequently, the above retrieval of I/O addresses is required only when the LAN interface board is first installed in a personal computer. 1.3 Setting Interrupt Signals The LAN controller has four interrupt output pins. The interrupt output pin from which interrupt signals should be output can be specified by initialization data in E2PROM. If contention occurs between the interrupt signals and other I/O devices, the address decoder cannot be updated like the I/O addresses. Write another address decode value to E2PROM and then restart the system. Repeat the above process until interrupt signals are allocated to the correct address area. 1.4 Restarting System To restart the system, perform a hardware reset or a write operation to the reset registers RESET0 to RESET7 (any data can be written to any of RESET0 to RESET7). The write operation provides the same condition as the hardware reset except that BMPR16 and BMPR17 are not initialized. Initialization takes about 50 µs after canceling a hardware reset, or completing a write operation at the reset registers. 2. Jumper + E2PROM ISA Mode This mode is the jumperless ISA mode without automatic initialization function. The I/O addresses are set by external pins. The interrupt output pin is fixed at IRQ0. The E2PROM interface functions only to store node ID. Read and write operations from and to E2PROM are performed by the system software. After converting read serial data to parallel data, write the data to the node ID registers (DLCR8 to DLCR15). 3. Performance Comparison between Jumperless ISA Mode and Jumper + E2PROM ISA Mode Jumperless ISA Mode × Automatic initialization E2PROM interface Interrupt output selection 56 Jumper + E2PROM ISA Mode (Required) (Option) × MB86967 4. Register Arrangement Registers accessible only in the ISA mode are listed below. Register Name System Address Symbol Register Bank SA4 SA3 SA2 SA1 SA0 RBS1 RBS0 BMPR16 1 0 0 0 0 × × E PROM data BMPR17 1 0 0 0 1 × × I/O base address BMPR18 1 0 0 1 0 × × Jumperless setting BMPR19 1 0 0 1 1 × × Reserved — 1 0 1 0 0 × × Reserved — 1 0 1 0 1 × × Reserved — 1 0 1 1 0 × × Reserved — 1 0 1 1 1 × × Reset 0 RES0 1 1 0 0 0 × × Reset 1 RES1 1 1 0 0 1 × × Reset 2 RES2 1 1 0 1 0 × × Reset 3 RES3 1 1 0 1 1 × × Reset 4 RES4 1 1 1 0 0 × × Reset 5 RES5 1 1 1 0 1 × × Reset 6 RES6 1 1 1 1 0 × × Reset 7 RES7 1 1 1 1 1 × × 2 E PROM control 2 5. BMPR16: E2PROM Control Register BMPR16 controls external E2PROM. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read × × × × × × × × Write 0 ESK ECS 0 0 0 0 0 Initial Value × 0 0 × × × × × Bit no. 7 6 5 4 to 0 Bit name Not used ESK ECS Not used Operation Value Function Read — The read value of this bit is undefined. Write 0 Always write 0 to this bit at writing. Read — The read value of this bit is undefined. Write — Shift clocks to E2PROM are generated by repeatedly writing 1 or 0 to this bit. Read — The read value of this bit is undefined. Write — When 1 is written to this bit, the E2PROM chip select signal is asserted. When 0 is written to this bit, the E2PROM chip select signal is negated. Read — The read values of these bits are undefined. Write 0 Always write 0s to these bits at writing. 57 MB86967 6. BMPR17: E2PROM Data Register BMPR17 is an external E2PROM data port. Bit 7 Read Bit name Bit 3 Bit 2 Bit 1 Bit 0 × × × × × × × 0 0 0 0 0 0 0 × × × × × × × Operation Value Read — Port for reading output data from E2PROM Write — Port for writing input data to E2PROM Read — The read values of these bits are undefined. Write 0 Always write 0s to these bits at writing. EDIO 6 to 0 Bit 4 0 Initial Value 7 Bit 5 EDIO Write Bit no. Bit 6 Not used Function 7. BMPR18: I/O Base Address Register BMPR18 updates and displays the I/O base addresses (valid only in jumperless mode). 58 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read IOBA7 IOBA6 IOBA5 IOBA4 IOBA3 IOBA2 IOBA1 IOBA0 Write — — — — — — — — Initial Value 0 0 0 0 0 0 0 0 Bit no. Bit name Operation Value 7 to 0 IOBA7 to IOBA0 Read — Function Each time this register is read, the I/O base address select signals (IOSEL2 to IOSEL0) are incremented to update the I/O base addresses. The updated values can be read from bits 2 to 0 of BMPR19. The read values of this register have no meaning. MB86967 8. BMPR19: Jumperless Setting Register BMPR19 displays the initialization value in the jumperless mode (valid only in jumperless mode). Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read INTSEL1 INTSEL1 × × × IOSEL2 IOSEL1 IOSEL0 Write — — — — — — — — Initial Value 0 0 0 0 0 0 0 0 Bit no. 7 to 6 Bit name INTSEL1 INTSEL0 Operation Value Read — Function Display the interrupt channels. INTSEL1 INTSEL0 Interrupt Channel (Pin) 0 0 IRQ0 0 1 IRQ1 1 0 IRQ2 1 1 IRQ3 5 to 3 Not used Read — The read values of these bits are undefined. 2 to 0 IOSEL2 IOSEL1 IOSEL0 Read — Display the boot ROM addresses. IOSEL2 IOSEL1 IOSEL0 I/O Base Address 0 0 0 260H to 27FH 0 0 1 280H to 29FH 0 1 0 2A0H to 2BFH 0 1 1 240H to 25FH 1 0 0 340H to 35FH 1 0 1 320H to 33FH 1 1 0 380H to 39FH 1 1 1 300H to 31FH 9. RES0 to RES7: Reset Registers These 8-byte reset registers are valid only in the ISA bus mode. Writing to these registers (any data can be written to any of RES0 to RES7) allows initialization of the buffer manager, data link controller, Manchester encoder/decoder, and 10BASE-T transceiver. This writing also allows the internal registers to be initialized by a reset, but prohibits initialization of BMPR18 and BMPR19. 59 MB86967 ■ EXPLANATION OF PC CARD MODE 1. E2PROM/FLASH Interface Card slot * PA0 to PA10 or more OE Data bus (PD0 to PD7) WE Address 0 to 10 or more*1 WE Data 0 to 7 E2PROM or FLASH ROM CE OE Most significant address*2 PA0 to PA10 ROMS ROMRD ROMAD OE WE PD0 to PD7 PC card interface • CCR • LAN card control register • Others Data bus (PD8 to PD15) PD8 to PD15 IORD IOWR • CIS (including ID number) • ID number (I/O space)*2 MB86967 Figure 9 Example of E2PROM/FLASH Interface *1: Changed depending on size of E2PROM or flash ROM [Example] PA0 to PA16 for 128-KB flash ROM *2: To I/O-read the ID number, connect the ROMAD pin to the most significant bit of ROM. If I/O-read is not required, leave the ROMAD pin open to set the ID number in the CIS. 60 MB86967 2. Use of E2PROM and Flash ROM 2.1 Setting ID Number in CIS CIS Space Common Memory Space CCR Location Address Pin from System to ROM 128-Kbyte flash ROM 2 Kbytes 126 Kbytes 7F0H to 7F6H A0 to A16 2-Kbyte E2PROM 2 Kbytes — 7F0H to 7F6H A0 to A10 ROM Size Address Pin from System to MB86966 A0 to A10 [Example of 2-Kbyte E2PEOM] Index 31 3E0H Index 30 3C0H 7F6H CCR (R/W) 7F0H CIS (R) Attribute memory space I/O address space Index 3 060H Index 2 040H 000H Index 1 020H [Example of 128-Kbyte Flash ROM] 1FFFFH Index 31 Common memory (R/W) Common memory space 3E0H Index 30 3C0H Index 29 3A0H 800H 7F6H CCR (R/W) 7F0H CIS (R) Attribute memory space I/O address space Index 3 060H Index 2 040H 000H Index 1 020H 61 MB86967 2.2 I/O-reading ID Number Common Memory Space CIS Space ROM Size I/O Space CCR Location Address Pin from System to ROM Address Pin from System to MB86966 Address Pin from MB86966 to ROM 128-Kbyte flash ROM 2 Kbytes 62 Kbytes 62 Kbytes 7F0H to 7F6H A0 to A10 A0 to A10 Connect ROMAD pin to A16. 4-Kbyte E2PROM 2 Kbytes A0 to A10 A0 to A10 Connect ROMAD pin to A11. — 2 Kbytes 7F0H to 7F6H [Example of 4-Kbyte E2PEOM] 1FFFFH ID number (Read only) Common memory space Index 31 3E0H Index 30 3C0H 800H 7F6H CCR (R/W) 7F0H CIS (R) Attribute memory space I/O address space Index 3 060H Index 2 040H 000H Index 1 020H Index 31 [Example of 128-Kbyte Flash ROM] 3C0H ID number (Read only) Common memory (R/W) Common memory space I/O address space Index 3 060H 040H Attribute memory space 7F0H CIS (R) 62 3A0H Index 2 CCR (R/W) 000H Index 29 I/O address space FFFFH 800H 7F6H 3E0H Index 30 1FFFFH Index 1 020H MB86967 3. Address Space The configuration of the LAN PC card in the MB86967 (in PC card mode) has up to three address spaces (for common memory, I/O memory, and attribute memory). Table 5 gives the common memory space, I/O memory space, and attribute memory space of the MB86967. Table 5 Memory Map for PC Card Common Memory Space*1 (E2PROM or FLASH) I/O Memory Space • Control registers in LAN controller (Core of LAN controller) • LAN card control register (PC card interface) • ID number (E2PROM or FLASH)*2 Attribute Memory Space • Card attribute data register (CIS) (E2PROM or FLASH) • LAN card configuration register (CCR) (PC card interface) Note: Parts in parentheses are the blocks where each item is located. *1: Common memory space cannot allocated if the E2PROM or flash ROM to be selected is less than 2 Kbytes. *2: Connecting P97 (ROMAD) to the most significant address bit of ROM allows I/O-reading of the ID number. To write to this space, both the IOWR and WE pins must be enabled. 63 MB86967 4. Common Memory Space Common memory space can be used if the capacity of E2PROM or flash ROM to be selected is large. The address space is located higher than the CIS (card attribute data register) of attribute memory space (See examples of E2PROM and flash ROM in 2). Only even addresses are used in the CIS, but both common memory space even and odd addresses can be used in common memory space. Only byte access (8 bits) is available. Writing to common memory space is possible. Efficient writing is performed by data-polling the selected E2PROM or flash ROM. However, in this case, the PwrDwn bit of CCR1 must be not set for the power-down state without ending writing. Batch erase should not be selected for flash ROM. When erasing common memory in blocks, take care not to erase attribute memory space. (1) Read from Common Memory PA0 PD8 to PD15 PD0 to PD7 ROMS 0 Invalid Even byte L L L 1 Invalid Odd byte L L L 1 × Invalid Invalid H H L 0 1 × Invalid Invalid H H L PA0 PD8 to PD15 PD0 to PD7 ROMS REG CE2 CE1 OE WE Byte access (8 bits) 1 1 0 0 1 Word access (16 bits) 1 0 0 0 High byte only 1 0 1 Mode ROMRD ROMAD (2) Write to Common Memory REG CE2 CE1 OE WE Byte access (8 bits) 1 1 0 0 1 Word access (16 bits) 1 0 0 0 High byte only 1 0 1 0 Mode 64 ROMRD ROMAD 0 Don’t care Even byte L H L 1 Don’t care Odd byte L H L 1 × Don’t care Don’t care H H L 1 × Don’t care Don’t care H H L MB86967 5. Attribute Memory Space Attribute memory space has the card attribute data register (CIS) and card configuration register (CCR). It can be accessed in 8 bits from even addresses; odd addresses are invalid. The MB86967 can have access to both 8-bit and 16-bit data. When attribute memory space is accessed in the 16-bit mode, only the data signals D0 to D7 are valid, and D8 to D15 are invalid. CIS is located at 000H to 7EEH, starting with address 0. CCR has four registers, located at 7F0H, 7F2H, 7F4H, and 7F6H. Address Symbol Register 7F0H CCR0 Card configuration option register 7F2H CCR1 Card configuration status register 7F4H CCR2 Pin replacement register 7F6H CCR3 Socket/copy register [Reference] CIS: In E2PROM or flash ROM CCR: In MB86967 (1) Read from CIS Mode REG CE2 CE1 PD8 to PD15 PD0 to PD7 0 Invalid Even byte L L L 1 Invalid Invalid H H L × Invalid Even byte L L L PD8 to PD15 PD0 to PD7 OE IORD WE PA0 Byte access (8 bits) 0 1 0 0 1 1 Word access (16 bits) 0 0 0 0 1 1 ROMS ROMRD ROMAD (2) Write to CIS Mode REG CE2 CE1 OE IOWR WE PA0 Byte access (8 bits) 0 1 0 1 1 0 Word access (16 bits) 0 0 0 1 1 0 ROMS ROMRD ROMAD 0 Don’t care Even byte L H L 1 Don’t care Don’t care H H L × Don’t care Even byte L H L (3) Read from CCR Mode Byte access (8 bits) Word access (16 bits) PD8 to PD15 PD0 to PD7 0 Invalid Even byte 1 Invalid Invalid × Invalid Address REG CE2 CE1 OE IORD WE PA0 7F0H to 7F6H 0 0 1 0 0 0 0 0 1 1 1 1 Even byte ROMS ROMRD ROMAD H H L H H L H H L 65 MB86967 (4) Write to CCR Mode PD8 to PD15 PD0 to PD7 0 Don’t care Even byte H H L 1 Don’t care Don’t care H H L × Don’t care Even byte H H L Address REG CE2 CE1 OE IOWR WE PA0 Byte access (8 bits) 0 7F0H to 7F6H Word access (16 bits) 0 1 0 0 1 0 1 1 1 0 0 ROMS ROMRD ROMAD 6. LAN Card Configuration Register (1) CCR0: Card Configuration Option Register (00007F0H) The card configuration option register (CCR0) sets a software reset, interrupt signal, and configuration index. Bit 7 Read SRESET Write Initial Value Bit no. 7 66 Bit 6 0 Bit name Bit 5 Bit 4 LevIREQ 1 SRESET Read/Write (Software Reset) Bit 2 Bit 1 Bit 0 0 0 Configuration index — Operation Bit 3 0 0 0 0 Value Function 0 When 0 is written to this bit, the MB86967 enters the hardware reset state or the same state as that after hardware reset. 1 Reset state; this is the same as the hardware reset state except that this bit is not cleared. When this bit is set, the pointers and registers in the LAN controller are also reset. 6 LevIREQ (Level Interrupt Request) Read — Since the MB86967 is in the level interrupt request mode, 1 is always read in the I/O interface card mode. This bit is not affected by writing. 5 to 0 CONF INDX (Configuration Index) Read/Write — These bits are used to select 32 configuration indexes provided for the card. MB86967 (2) CCR1: Card Configuration Status Register (00007F2H) This register indicates the configuration status of the card. Bit 7 Bit 6 Read Changed 0 Write — — Initial Value 0 0 Bit no. Bit name Bit 5 IOis8 0 Operation Value Bit 4 Bit 3 0 0 — — 0 0 Bit 2 PwrDwn 0 Bit 1 Bit 0 0 0 — — 0 0 Function 7 Changed (State Change) Read — This bit is 1, indicating that the bit value (bit 5) of the pin replacement register is 1. The value of bit 5 of the pin replacement register, indicating that this bit becomes 0. This is a read-only bit and it is not affected by writing. 6 Not used Read — The read value of this bit is always 0 and this bit is not affected by writing. 5 IOIS8 (8-bit I/O) Read/Write 0 The MB86967 enters the word transfer mode (PD0 to PD15). In this case, bit 5 (SB/SW) of the control register (DLCR6) in the LAN controller is set to 0. 1 The MB86967 enters the byte transfer mode (PD0 to PD7). In this case, SB/-SW (bit 5) of DLCR6 in the LAN controller is set to 1. The system must set CE2 Non-active. Read — The read value is always 0. These bits are not affected by writing. Read/Write 0 This bit clears the power-down mode. When this bit is cleared, bit 5 (STBY) of DLCR7 in the LAN controller is also cleared to 1. 1 The power-down mode is set. When this bit is set, bit 5 (STBY) of DLCR7 is set to 0, making it possible to place the LAN controller and 10BASE-T transceiver in the standby state. Presetting bit 4 of BMPR14 in the LAN controller causes the MB86967 to enter the shutdown mode (oscillation stopped). This bit should be set after initializing the LAN controller. Return from the shutdown mode should be made by reset. See 4. Operation Sequence in PC Card Mode. — The read values of these bits is always 0. These bits are not affected by writing. 4 and 3 Not used 2 PwrDwn 1 and 0 Not used Read 67 MB86967 (3) CCR2: Pin Replacement Register (00007F4H) This register indicates the card ready or busy state. Bit 7 Bit 6 Read 0 0 Write — — Initial Value 0 0 Bit no. Bit name 7 and 6 Not used 5 CRdy/Bsy (Ready/Busy State Change) 4 Bit 5 CRdy/Bsy 0 Bit 4 Bit 3 Bit 2 0 1 1 — — — 0 1 1 Bit 1 RRdy/Bsy 0 Bit 0 0 — 0 Operation Value Function Read — The read values of these bits is always 0. These bits are not affected by writing. Read/Write 0 Indicates that Ready/Busy bit (bit 1) not changed (from 1 to 0 or from 0 to 1) 0 can be written to this bit only when this bit is 1 with bit 1 set to 1. 1 Indicates that Ready/Busy changed (from 1 to 0 or from 0 to 1) 0 can be written to this bit only when this bit is 1 with bit 1 set to 1. Not used Read — The read value of this bit is always 0. This bit is not affected by writing. 3 and 2 Not used Read — The read values of these bits is always 1. These bits are not affected by writing. Read/Write 0 Indicates card in busy state 1 Indicates card in ready state In the IC memory card interface mode, such as power-on and reset a High level is output (when a write operation to the CCR is not performed). — The read value of this bit is always 0. This bit is not affected by writing. 1 RRdy/Bsy (Ready/Busy) 0 Not used Read (4) CCR3: Socket/Copy Register (00007F6H) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Read 0 0 0 0 0 0 0 0 Write — — — — — — — — Initial Value 0 0 0 0 0 0 0 0 Bit no. 0 to 7 68 Bit name Not used Operation Value Read — Function The read values of these bits is always 0. These bits are not affected by writing. MB86967 7. I/O Address Space I/O address space has control registers in the LAN controller and the LAN card control register; in some cases, it has ID numbers. The MB86967 supports both the independent I/O addressing mode, and overlapping I/O addressing mode. Index 0 of the 32 I/O indexes is used to address the independent I/O, and index 31 is used to address the overlapping I/O. One index has 32 bytes of address space. In the independent I/O addressing mode, the I/O address pins A4 to A0 are used. When using the overlapping I/O addressing mode in the ISA and EISA buses, I/O address space is allocated to any one of the 31 indexes. The system can select any I/O base address by writing different indexes to bits 0 to 5 of the card configuration option register. In this mode, all I/O address pins A0 to A10 are used. If 32 bytes of I/O address space are allocated to the control registers in the LAN controller, the LAN card control register, and ID numbers are as follows: Base Address Register +0 to F Control registers in LAN controller +10 LAN card control register +12, 14, 16, 18, 1A, 1C, 1E For setting ID numbers (only read value valid) A read value that is not used as the ID number is undefined. +11, 13, 15, 17, 19, 1B, 1D, 1F Reserved (The read value is undefined and writing is invalid.) The configuration indexes and I/O base addresses to be assigned are as follows: CCR 7F0H Bit 0 to 5 I/O Address Space Index CCR 7F0H Bit 0 to 5 I/O Address Space 000000 I/O function in non-active 16 110000 200H to 21FH 0 100000 Independent I/O addressing 17 110001 220H to 23FH 1 100001 020H to 03FH 18 110010 240H to 25FH 2 100010 040H to 05FH 19 110011 260H to 27FH 3 100011 060H to 07FH 20 110100 280H to 29FH 4 100100 080H to 09FH 21 110101 2A0H to 2BFH 5 100101 0A0H to 0BFH 22 110110 2C0H to 2DFH 6 100110 0C0H to 0DFH 23 110111 2E0H to 2FFH 7 100111 0E0H to 0FFH 24 111000 300H to 31FH 8 101000 100H to 11FH 25 111001 320H to 33FH 9 101001 120H to 13FH 26 111010 340H to 35FH 10 101010 140H to 15FH 27 111011 360H to 37FH 11 101011 160H to 17FH 28 111100 380H to 39FH 12 101100 180H to 19FH 29 111101 3A0H to 3BFH 13 101101 1A0H to 1BFH 30 111110 3B0H to 3DFH 14 101110 1C0H to 1DFH 31 111111 3E0H to 3FFH 15 101111 1E0H to 1FFH Index 69 MB86967 (1) I/O-read (+0 to +10) Mode PD8 to PD15 PD0 to PD7 0 Invalid Even byte H H L 1 Invalid Odd byte H H L REG CE2 CE1 IORD OE IOWR PA0 ROMS ROMRD ROMAD Byte access (8 bits) 0 1 0 0 1 1 Word access (16 bits) 0 0 0 0 1 1 0 Odd byte Even byte H H L High byte only 0 0 1 0 1 1 × Even byte Invalid H H L (2) I/O-read (+12, +14, +16, +18, 1A, 1C, 1E: ID number) Mode REG CE2 CE1 IORD OE IOWR PA0 PD8 to PD15 PD0 to PD7 ROMS ROMRD ROMAD Byte access (8 bits) 0 1 0 0 1 1 0 Invalid Even byte L L H Word access (16 bits) 0 0 0 0 1 1 0 Odd byte Even byte L L H PD8 to PD15 PD0 to PD7 (3) I/O-write (+0 to +10) Mode REG CE2 CE1 IORD IOWR WE PA0 ROMS ROMRD ROMAD 0 Don’t care Even byte H H L 1 Don’t care Odd byte H H L 1 0 Odd byte Even byte H H L 1 × Even byte Don’t care H H L Byte access (8 bits) 0 1 0 1 0 1 Word access (16 bits) 0 0 0 1 0 High byte only 0 0 1 1 0 (4) I/O-write (+12, +14, +16, +18, 1A, 1C, 1E: ID number) Mode REG CE2 CE1 IORD IOWR* WE* PA0 PD8 to PD15 PD0 to PD7 Byte access (8 bits) 0 1 0 1 0 0 0 Don’t care Even byte L H H Word access (16 bits) 0 0 0 1 0 0 0 Odd byte L H H Even byte * : To write the ID number, both the IOWR and WE pins must be set Active. 70 ROMS ROMRD ROMAD MB86967 (5) CARDCR: LAN Card Control Register (Base address +10) This is an external ROM control register that can be accessed only in the PC card mode. Read Write Initial Value Bit no. 7 6 5 0 to 4 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CIS WR ENA COMMON WR ENA ID NUMBER WR ENA 0 0 0 0 0 — — — — — 0 0 0 0 0 0 0 0 Bit name Operation Value CIS WRITE ENABLE (CIS Write Enable) Read/Write 0 The system cannot write data to CIS in E2PROM or flash ROM. 1 The system can write data to CIS in E2PROM or flash ROM. COMMON WR ENABLE (Common Memory Write Enable) Read/Write 0 The system cannot write data to common memory in E2PROM or flash ROM. 1 The system can write data to common memory in E2PROM or flash ROM. ID NUMBER WR ENABLE (ID Number Write Enable) Read/Write 0 The system cannot write data to I/O space (for ID number) in E2PROM or flash ROM. 1 The system can write data to I/O space (for ID number) in E2PROM or flash ROM. — The read values of these bits are always 0s. These bits are not affected by writing. Not used Read Function 8. Initializing Card (Using MB86967 in PC Card) Immediately after the card is installed in the system, the IC memory card interface (memory card) is selected. The following instructions describe how to switch to the I/O card interface: a. The system reads card attribute data (CIS) for setting operating environments. b. The data is written to the card configuration register (CCR). At this time, the LAN controller is set to the 8-bit interface or 16-bit interface by setting the bit 5 (IOIS8) of CCR1. c. The Ethernet ID numbers read from CIS or I/O space are written. Note: Switch from the I/O card interface to IC memory card interface by setting the external RESET pin or the SRESET bit of CCR0. 71 MB86967 ■ RESET, STANDBY, AND SHUTDOWN MODES 1. PC Card Mode Interface LAN Controller Operation Input of 1 to external reset register • The CCR is initialized. • The I/O card interface is switched to the IC memory interface. • The LAN controller and 10BASE-T transceiver are also initialized. CCR0 Bit 7 SRESET = 1 Same as above, except this bit not cleared • The CCR is initialized. • The I/O card interface is switched to the IC memory interface. • The LAN controller and 10BASE-T transceiver are also initialized. DLCR6 Bit 7 ENA DLC = 1 CCR1 Bit 2 PwrDwn = 1 • The LAN controller is initialized. The previous values of the control registers (DLCR, MAR, and BMPR) in the LAN controller are retained. • The TP or AUI transceiver is in the power-down mode. DLCR7 Bit 5 BMPR14 Bit 4 • Standby mode STBY = 0* SHUT DWN MODE = 0 The clock stops and current consumption is reduced to about 10%. BMPR14 Bit 4 • Shutdown mode SHUT DWN MODE = 1 Crystal oscillation stops and current consumption is reduced to about 1%. * : The STBY bit of the DLCR7 is set automatically. 2. ISA Bus Mode Operation Input of 1 to external reset register • The LAN controller and 10BASE-T transceiver are initialized. Write to reset registers: RES0 to RES7 (any values) • The LAN controller and 10BASE-T transceiver are initialized but BMPR16 and BMPR17 are not. DLCR6 Bit 7 ENA DLC = 1 • The LAN controller is initialized. The previous values of the control registers (DLCR, MAR, and BMPR) in the LAN controller are retained. • The TP transceiver is in the power-down mode. DLCR7 Bit 5 STBY = 0 72 BMPR14 Bit 4 SHUT DWN MODE = 0 • Standby mode The clock stops and current consumption is reduced to about 10%. BMPR14 Bit 4 SHUT DWN MODE = 1 • Shutdown mode Crystal oscillation stops and current consumption is reduced to about 1%. MB86967 3. General-purpose Bus Mode Operation Input of 1 to external reset register • The LAN controller and 10BASE-T transceiver are initialized. DLCR6 Bit 7 ENA DLC = 1 • The LAN controller is initialized. The previous values of the control registers (DLCR, MAR, and BMPR) in the LAN controller are retained. • The TP transceiver is in the power-down mode. DLCR7 Bit 5 STBY = 0 BMPR14 Bit 4 SHUT DWN MODE = 0 • Standby mode The clock stops and current consumption is reduced to about 10%. BMPR14 Bit 4 SHUT DWN MODE = 1 • Shutdown mode Crystal oscillation stops and current consumption is reduced to about 1%. 73 MB86967 4. Operation Sequence in PC Card Mode Operable state Power on CCR0: SRESET = High Is crystal oscillation stabilized? RESET pin = High NO Is crystal oscillation stabilized? YES YES Write 1 to ENA DLC bit of DLCR6. NO RESET pin = Low CCR0: SRESET = Low Switch from IC memory card interface to I/O card interface. Controller is in initialized state. *2 Write 1 to PwrDwn bit of CCR1. BMPR14 Bit 4 = 0? Set DLCR, MAR, and BMPR registers. *1 NO 200 µs WAIT? NO YES Standby state Shutdown state Write 0 to ENA DLC bit of DLCR6. *3 Write 0 to PwrDwn bit of CCR1. *1: The time for setting the DLCR, MAR, and BMPR registers may be included in the waiting time of 200 µs. *2: The STBY bit of DLCR7 is automatically set to 0. *3: The STBY bit of DLCR7 is automatically set to 1. In the PC card mode, the STBY bit of DLCR7 is set from the PwrDwn bit of CCR1 to as shown in *2 and *3. Direct change (from 0 to 1 or from 1 to 0) is not allowed. • Standby state: The clock to each circuit stops but crystal oscillation does not. • Shutdown state: Crystal oscillation stops. 74 MB86967 5. Operation Sequence in ISA Bus Mode Power on Operable state Write to reset register. NO 200 ns WAIT? RESET pin = High RESET pin = High 200 ns WAIT? YES NO Is crystal oscillation NO YES YES RESET pin = Low Write 1 to ENA DLC bit of DLCR6. Jamper Mode? Jamperless 50 ms WAIT? NO YES Initialized state Set DLCR, MAR, and BMPR registers. Write 0 to STBY bit of DLCR7. BMPR14 Bit 4 = 0? * NO YES Standby state 200 µs WAIT? NO YES Shutdown stat Write 0 to ENA DLC bit of DLCR6. Write 1 to STBY bit of DLCR7. * : The time for setting the DLCR, MAR, and BMPR registers may be included in the waiting time of 200 µs. • Standby state: The clock to each circuit stops but crystal oscillation does not. • Shutdown state: Crystal oscillation stops. 75 MB86967 6. Operation Sequence in General-purpose Bus Mode Operable state Power on RESET pin = High RESET pin = High NO 200 ns WAIT? Write 1 to ENA DLC bit of DLCR6. Is crystal oscillation stabilized? YES NO YES RESET pin = Low Initialized state Set DLCR, MAR, and BMPR registers. Write 0 to STBY bit of CCR1. BMPR14 Bit 4 = 0? * NO NO YES YES Standby state 200 µs WAIT? Shutdown state Write 0 to ENA DLC bit of DLCR6. Write 1 to STBY bit of DLCR7. * : The time for setting the DLCR, MAR, and BMPR registers may be included in the waiting time of 200 µs. • Standby state: The clock to each circuit stops but crystal oscillation does not. • Shutdown state: Crystal oscillation stops. 76 MB86967 ■ SOFTWARE SUPPORT FOR POPULAR NETWORK OPERATING SYSTEMS 1. LAN Node Drivers The so-called driver is the hardware-dependent portion of the software complement for a network node. It’s purpose is to marry a specific hardware configuration to a more-or-less generic interface provided by the networking software. Network software suppliers provide such generic interfaces for drivers to encourage universal support from a variety of hardware products. By partitioning or layering the software into a stack of components with standardized interfaces between the layers, the job of integrating various hardware and software offerings with a particular network operating system becomes easier. More drivers will become available, and everyone benefits. As seen in Figure 9, which depicts a model of LAN node components, the driver sits between the generic network software and the hardware, and acts as a bridge between the system and the node hardware. The interface of the driver to the network software and its applications is a generic interface and virtually the same for all drivers running on a given operating system. But the driver comprehends the configuration and nuances of the hardware, and optimizes it’s performance in the system. A good, well-written driver is a positive advantage to the system, allowing it to achieve its performance potential; whereas a poor driver will limit the performance and reliability of the system. The best drivers have a certain intimacy with the hardware, which allows them to take full advantage of its features. High data throughput, data integrity, and reliable operation are the key goals for which every nodedriver writer should strive. In addition, the final driver should be efficient, by requiring minimum host execution time. These are all things the end user will and should take for granted; if they are not supplied with the design, there will be no customer satisfaction. Most network software suppliers offer technical support for third-party driver development. This often comes in the form of a developer’s kit that includes a manual and software examples. Some suppliers also offer test suites and certification testing to verify the driver product, because they know that good drivers benefit both users and suppliers. IN Q Network MB86967 Network Software Driver OUT Q Figure 9 Model of LAN Node 77 MB86967 2. What’s in a Driver? Typical node drivers manage the movement of packet data between system memory and the network, and vice versa, as well as providing diagnostic testing, error processing, and error statistics on-demand for the system. The first thing a driver does when the system is powered up is system check-out, which may include buffer memory testing, and loopback testing of the transmit and receive circuits. If the network supports it, as does Ethernet, for example, the testing may include sending and receiving test packets on the network to verify the ability to communicate. As shown in Figure 10, the driver provides control of the initialization, interrupt and branch control processes, supporting both the transmit and the receive functions. Start Newtwork Software Transmit Request Interrupt Branch Control Initialization Interrupt Service Request Receive Read Transmit Write Exit Exit Exit Figure 10 Software Driver Model Figure 11 shows an example in flow chart form of a check-out routine written for the Fujitsu MB86967 Controller. The driver first initializes the control and status registers in the controller for memory and loopback testing. Loopback and memory testing are conducted simultaneously by transmitting memory test patterns from the transmit buffer area of memory to the receive buffer area using loopback. This test sequence simultaneously exercises and tests the transmitter, the receiver and the buffer memory. The loopback/memory startup test is performed by first loading a test pattern in the form of several packets into the controller chip’s transmit buffer, then transmitting the packets in loopback mode. The loopback transmission path through the chip exercises the data link controller as well as the encoder and decoder circuitry, but does not affect the network. The MB86967 controller has a unique buffer memory architecture which pipelines packets through the system in both directions, optimizing data through-put. MB86967’s buffer controller provides all the pointer management for accessing the buffer automatically, greatly reducing the complexity of the driver and minimizing the software overhead. Receive packets with errors are automatically purged by MB86967. When a collision occurs, MB86967 automatically re-transmits without host interaction. These features provide high data throughput while minimizing the host and memory overhead. At the successful conclusion of the tests, the driver starts up the MB86967 chip for regular service on the network. 78 Start Report EtherCoupler Found YES EtherCoupler Found? NO Initialize software flags and values Load Ethernet address into NODE ID Registers Read ID EEPROM for Ethernet address Set operating modes into EtherCoupler registers Install Interrupt Service Routine (ISR) Allocate interrupt request channel Determine type of and configure medium Read and interpret EEPROM settings data if available Reprogram I/O Address(es) if necessary to resolve contention with other devices INITIALIZE ETHERCOUPLER(S) Scan I/O Address(es) to find EtherCoupler(s) SCAN FOR ETHERCOUPLER(S) Exit Report ready for network operation Configure for network operation YES Self Tests Passed? Perform Self Tests SELF TEST Call or queue disposition Report EtherCoupler not found NO Exit Call or queue disposition Report error(s) Exit MB86967 Figure 11 Start-up Testing 79 MB86967 3. Operating on the Network Driver code for operating on the network might be partitioned into three main modules as shown in the example for the MB86967 controller in this section. The modules, shown in Figures 12, 13, and 14 are Transmit Packet Write, in which packets to be transmitted are moved from host memory to the point marked TX PKT WRITE. Transmission takes place in two steps. First, packets to be transmitted are loaded into the transmit buffer. Secondly, when the transmitter is not busy, it will be started to transmit the stored packets. Each of these steps may have to wait for resources. The packets cannot be loaded unless there is buffer space available. MB86967 provides the option of a single or two independent transmit buffers. With two buffers there is usually no waiting. The transmitter cannot transmit but one buffer full of packets at a time. To manage these resources, two software flags are used, TBUF STAT and TX STAT, the status of the transmit buffer and the transmitter respectively. TBUF STAT refers to the current buffer which might be available to the driver for loading. Its status can be Busy if no buffer is available, Loading when in the process of being loaded, in Standby if ready to transmit, but not full, ready and Full or Empty. The transmitter status can be either Busy or Idle. Packet length is checked during the loading process to assure that the ISO/ANSI/IEEE 8802-3 length requirements are met. Packets ready to be loaded can be loaded into an Empty or Standby buffer, the latter being a buffer with packets waiting for the transmitter to become idle. If a standby buffer has more room for packets, additional packets can be loaded until it is full. The Empty buffer is available for loading and has no packets. The driver takes ownership of an Empty or Standby buffer by changing its status to Loading. After the packets are loaded, the transmit status flag is checked for an idle transmitter. If idle, it can be immediately started to transmit the contents of either a Full or Standby buffer. When the transmitter of the MB86967 chip is started, buffer status also changes. In single buffer mode, starting the transmitter makes the single buffer unavailable to the system. In dual buffer mode, starting the transmitter re-allocates its previously-transmitted buffer as an empty buffer, available for loading. If the transmitter is busy, the routine will suspend execution at that point pending an idle transmitter. Two key interrupts used in this example are the receive packet interrupt (RX PKT), indicating that one or more packets has been received since the interrupt was last enabled, and the transmitter done interrupt (TX DONE), indicating that the transmitter has finished transmitting the contents of its current buffer. The interrupt service routine for network operation, illustrated in Figure 13, is short and sweet. If the receive packet interrupt has occurred, it calls or queues the routine for reading packets (RX PKT READ). Further receive interrupts are masked until the driver has emptied the receive buffer. This prevents redundant interrupts which would otherwise occur if packets come in during the read sequence. If the transmitter done interrupt has occurred, the status flags are updated, and appropriate action is taken to satisfy pending activity, if any, with the newly available buffer and/or transmitter resource. The driver is structured to read all receive packets in the buffer whenever one or more packets arrive. A status bit in MB86967 (BUF EMPTY) indicates whether the receive buffer is empty or not (indicating whole packets only). The packet read routine, shown in Figure 14, starts by masking further receive interrupts until it has emptied the buffer and suspended execution. This prevents redundant interrupts which would otherwise occur if packets come in during the read sequence. As each packet is read, it can be read in parts. If after reading the first part the packet is not of interest, the rest can be discarded without being moved to host memory using MB86967’s Skip Packet feature. Reading will continue until the buffer is empty, as indicated by RBUF EMPTY bit. The Transmit Packet Write Routine, shown in Figure 12, and the Receive Packet Read Routine, shown in Figure 14, together comprise the driver core, which can be called by the network software or from the Network Interrupt Service Routine, shown in Figure 13. Once called, this core routine transfers both transmit and receive packets until there are no more to be transferred, then exits or returns. If packets are transferring, this core routine avoids locking out either the transmitter or the receiver while the other is very busy, by alternating between the two after a fixed number of packets, set by TX MAX and RX MAX. While in operation, the core routine polls key status bits. Interrupts are disabled to prevent unnecessary interrupts while the core is executing. 80 NO TX CNT = TX MAX? YES TX Request Pending? NO TX DONE? Busy TX STAT? YES NO YES Idle Load length into Transmit Buffer Move packet data into Transmit Buffer Recalcuate TBUF FREE Call or queue disposition Report error Short Packet Error Busy, or Full NO Will it fit in buffer? 60 or 1515 Length in bytes? Set TBUF STAT to Standby YES <60 Increment TX CNT NO >1514 Call or queue disposition Report error Long Packet Error From Fig. 14 B NO Busy,or Empty YES TX DONE? TX CNT = TX MAX? Set TBUF STAT to Empty YES Dual TBUF MODE? Single NO Set TBUF STAT to Busy Write packet count (TPKT CNT) into BMPR10<6:0>, and write 1 to TX START Clear TX DONE Set TX STAT to Busy Idle TX STAT? Busy Standby or Full TBUF STAT? Set TX CNT = 0 Mask Interrupts TX STARTUP START TRANSMITTER TX Buffer Full Set TBUF STAT to Full Defer remainder of packets for processing later Calculate/retrieve length of next packet Set TBUF FREE = TBUF SIZE Set TPKT CNT = 0 Empty TBUF STAT? LOAD TX BUFFER Standby YES TX Request Pending? Set TX CNT = 0 Mask Interrupts TX PKT WRITE Busy,or Empty To Fig. 14 A Set TBUF STAT to Empty Set TX STAT to Idle To TX STARTUP YES NO Full, or Standby TBUF STAT? YES TX DONE? NO RX PKT? Full or Busy To TX PKT WRITE YES TX Request Pending? NO Empty, or Standby TBUF STAT? Exit Enable Interrupts MB86967 Figure 12 Transmit Packet Write Routine 81 MB86967 A driver such as the one illustrated in this section might typically occupy 4 to 6 kilobytes on its distribution diskette. The host-resident portion, when loaded for network operation, might use typically 2 to 3 kilobytes of host memory. A set of quality software drivers bundled with the hardware is well worth providing to LAN equipment customers. By providing better performance and reliability, good drivers will enhance both customer satisfaction and sales, while reducing customer service calls. Table 6 represents typical control and status parameter used in MB86967 Network Drivers. Network ISR Interrupt Read Status Registers Report, clear and process error interrupts, if any YES RX PKT? Clear and mask receive interrupts Call or queue RX PKT READ NO YES Clear and mask transmit interrupts TX DONE? Set TX STAT to Idle Dual TX MODE? Single Set TBUF STAT to Empty Call or queue TX PKT WRITE Retum from interrupt Figure 13 Network Interrupt Service Routine 82 Call or queue TX STARTUP MB86967 RX PKT READ “A” From Flg. 12 Set RX CNT = 0 Mask interrupts RBUF EMPTY? YES NO RC CNT = RX MAX? To Flg. 12 “B” YES NO Read packet header from buffer Set RPKT LEFT to length given in header Increment RX CNT Clear RX PKT Read all or part of packet Recalculate RPKT LEFT, subtracting byte count read Process packet =0 RPKT LEFT? >0 Read more of packet? YES NO 8bytes RPKT LEFT? Read and discard balance of packet > 8bytes Write 04H to Skip Packet Register, BMPR14 Delay 260 ns minimum or poll BMPR14 utill it is 00H Figure 14 Receive Packet Read Routine 83 MB86967 Table 6 Control and Status Parameters Symbol Type Name Description DLC EN Register DATA LINK Bit CONTROL ENABLE When high, resets all buffer memory pointers and disables both the transmitter and the receiver circuits. When low, enables buffer memory, transmitter and receiver. LBC Register LOOPBACK Bit CONTROL When set low, places MB86967 in internal loopback mode. RBUF EMPTY Register RECEIVE Bit BUFFER EMPTY When high, indicates that there is at least one complete packet stored in the receive buffer, ready to read. When low, indicates there are no packets ready to read in the receive buffer. RPKT LEFT Software RECEIVE Value PACKET LENGTH LEFT The number of bytes remaining in the receive packet being read from the buffer. Calculated by the driver from the original length given by MB86967 in the 3rd and 4th bytes of the receive packet header, less the number of bytes already read out. RX CNT Software RECEIVE Value TRANSFER COUNT A running count of the number of packets transferred from the receive buffer to system memory since entering the Receive Packet Read Routine. This parameter can share the same memory location with TX CNT, because both are not used concurrently in the same subroutine. RX MAX Software MAXIMUM The maximum number of packets that may be processed in the Value VALUE FOR RX Receive Packet Read Routine.before passing control to the Transmit CNT Packet Write Routine. This parameter can be fixed or allowed to vary according to need. Typical range for this parameter is 15 - 32. TBUF FREE Software TRANSMIT Value BUFFER FREE SPACE TBUF MODE Register TRANSMIT The configuration of the transmit buffer space, SINGLE buffer or Bits BUFFER MODE DUAL buffers. The number of available bytes remaining in the transmit buffer being loaded with packets by the driver. Calculated by driver. TBUF SIZE Software TRANSMIT Value BUFFER SIZE The size in bytes of each transmit buffer, which depends on initial configuration parameters for the buffer memory. TBUF STAT Software TRANSMIT Value BUFFER STATUS Current status of the transmit buffer available for loading packets. Maintained by the driver. TBUF STAT 84 Value Description Empty Current transmit buffer available to system bus is completely empty. Busy No buffer is currently available to the system bus because a) MB86967 is in single-buffer mode and b) the transmitter is using the buffer. Standby The buffer currently available to the system bus has one or more packets in it, but may still have room for additional packet(s). Full The buffer currently available to the system bus has one or more packets in it, and does not have room for the next packet presented to the driver from the transmit queue. MB86967 Symbol Type Name Description TPKT CNT Software TRANSMIT Value PACKET COUNT The number of packets loaded into the current transmit buffer by the driver. Value is counted by driver. This value is written into MB86967 register BMPR10<6:0> at the time transmitter is started. TX CNT Software TRANSMIT Value TRANSFER COUNT A running count of the number of packets transferred from system memory to the transmit buffer since entering the Transmit Packet Write Routine. This parameter can share the same memory location with RX CNT, because both are not used concurrently in the same subroutine. TX DONE Register TRANSMITTER Bit DONE When transmitter finishes transmitting, MB86967 sets this bit high. Normally cleared by driver prior to starting transmitter. Hardware reset or DLC EN being set high also clears this bit. TX MAX Software MAXIMUM Value VALUE FOR TX CNT The maximum number of packets that may be processed in the Transmit Packet Write Routine before passing control to Receive Packet Read Routine. This parameter can be fixed or allowed to vary according to need. Typical range for this parameter is 15-32. TX START Register START Bit TRANSMITTER When set high, activates transmitter to transmit all packets in the current transmit buffer. See also TPKT CNT. TX STAT Software TRANSMIT Value BUFFER STATUS Current status of the transmitter, maintained by driver. TX STAT Value Description Busy Transmitter has not finished transmitting packets previously given to it to transmit. Idle Transmitter has finished transmitting all packets in its buffer. 85 MB86967 ■ ABSOLUTE MAXIMUM RATINGS (GND = 0 V) Parameter Rating Symbol Unit Min. Max. VDD VSS – 0.5 +6.0 V Input voltage VI VSS – 0.5 VDD + 0.5 V Output voltage VO VSS – 0.5 VDD + 0.5 V Storage temperature Tstg –55 +125 °C Operating temperature Top –40 +85 °C IO –40 +40 mA Power supply voltage Output current * : Duration of voltage applied is within 1 sec per terminal. WARNING: Semiconductor devices can be permanently damaged by application of stress (voltage, current, temperature, etc.) in excess of absolute maximum ratings. Do not exceed these ratings. ■ RECOMMENDED OPERATING CONDITIONS Parameter Symbol Value Min. Typ. Max. Unit Power supply voltage VDD 4.75 5.00 5.25 V Operating temperature Ta 0 — +70 °C — –2.0 TTL “H” level output current TTL “L” level output current Crystal oscillator frequency IOH IOL fXtal — mA — –4.0* 1 — mA — –8.0*3 — mA — 3.2 — mA — 12.0*2 — mA — 3 — mA 24.0* 20.000 ± 0.005% MHz *1: Applies to P92 (IREQ, IREQ0, INT) *2: Applies to LED terminal (open-drain output) and P92 (IREQ, IREQ0, INT) *3: Applies to P3 (WAIT, IOCHRDY, READY) and P84 (IOIS16) WARNING: The recommended operating conditions are required in order to ensure the normal operation of the semiconductor device. All of the device's electrical characteristics are warranted when the device is operated within these ranges. Always use semiconductor devices within their recommended operating condition ranges. Operation outside these ranges may adversely affect reliability and could result in device failure. No warranty is made with respect to uses, operating conditions, or combinations not represented on the data sheet. Users considering application outside the listed conditions are advised to contact their FUJITSU representatives beforehand. 86 MB86967 ■ ELECTRICAL CHARACTERISTICS 1. DC Characteristics (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Conditions Value Min. Typ. Max. Unit IDD Operation state*1 — 70 100 mA IDDP Power down*2 — 10 15 mA IDDS Shut down*3 — 0.1 0.5 mA TTL “H” level output voltage VOH IOH = –2 mA, –4 mA, –8 mA 4.0 — VDD V TTL “L” level output voltage VOL IOL = 3.2 mA, 12 mA VSS — 0.4 V IOL = 24 mA VSS — 0.5 V TTL “H” level input voltage VIH TTL standard cell 2.2 — VDD V TTL schmitt trigger cell 2.4 — VDD V TTL “L” level input voltage VIL TTL standard cell VSS — 0.8 V TTL schmitt trigger cell VSS — 0.6 V TTL input leak current ILI –10 — 10 µA –10 — 10 µA 100 — — kΩ Power supply current 4 TTL HI-Z leak current* Input pull-up/pull-down resistor ILZ RPUPD VI = 0 to VDD VI = 0 V to VDD *1: For TP in operation. *2: With the use of register settings, enable power saving mode, including RESET=Low, TP input/input with pull-up resistor = OPEN, other input terminal = Low or High, All output terminals = OPEN *3: With the use of register settings, enable shut-down mode, including RESET=Low, TP input/input with pull-up resistor = OPEN, other input terminal = Low or High, All output terminals = OPEN *4: Leak current when the TTL I/O terminal is in a high-impedance state. 87 MB86967 2. TP Interface DC Characteristics (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Conditions Value Min. Typ. Max. Unit TPO “H” level output voltage VTOH ITOH = 24 mA VDD – 0.5 — VDD V TPO “L” level output voltage VTOL ITOL = 24 mA VSS — 0.4 V TPO “H” level output current ITOH — — 24.0 — mA TPO “L” level output current ITOL — — 24.0 — mA TPO output impedance ZTO — — 10.0 — Ω TPI input impedance ZTI — — 10.0 — kΩ TPI input bias voltage VTIBIAS — — 3.3 — V TPI differential input voltage VTID — ±0.58 — ±3.1 V TPI differential input squelch threshold voltage VTIDSH — — –420 — mV VTIDNSH — –80 0 +80 mV TPI differential input non-squelch threshold voltage 88 Symbol MB86967 3. AC Characteristics (1) Bus Timing (PC card mode, CCR read cycle) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to OE assert Value Unit Min. Max. t1 5 — ns Hold time for address, CE1, CE2, REG after OE negate t2 5 — ns Output delay time for read data t3 — 40 ns Output hold time for read data t4 5 — ns PA t2 REG CE1, CE2 OE t1 PD t3 t4 89 MB86967 (2) Bus Timing (PC card mode, CCR write cycle) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to WE assert Value Max. t1 5 — ns Hold time for address, CE1, CE2, REG after WE negate t2 5 — ns Setup time for write data input t3 10 — ns Hold time for write data input t4 5 — ns PA t2 REG CE1, CE2 WE t1 PD t3 90 Unit Min. t4 MB86967 (3) Bus Timing (PC card mode, CIS read) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to OE assert Value Unit Min. Max. t1 5 — ns Hold time for address, CE1, CE2, REG after OE negate t2 5 — ns ROMS assert output delay after OE assert t3 — 30 ns ROMS negate output delay after OE negate t4 — 30 ns ROMRD assert output delay after OE assert t5 — 30 ns ROMRD negate output delay after OE negate t6 — 30 ns PA REG CE1, CE2 OE t1 t2 t3 t4 t5 t6 ROMS ROMRD 91 MB86967 (4) Bus Timing (PC card mode, CIS write) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to WE assert Value Max. t1 5 — ns Hold time for address, CE1, CE2, REG after WE negate t2 5 — ns ROMS assert output delay after WE assert t3 — 30 ns ROMS negate output delay after WE negate t4 — 30 ns PA REG CE1, CE2 WE t1 t2 IOWR t3 ROMS 92 Unit Min. t4 MB86967 (5) Bus Timing (PC card mode, common memory read) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Max. Unit Setup time for address, CE1 prior to OE assert t1 5 — ns Hold time for address, CE1 after OE negate t2 5 — ns ROMS assert output delay after OE assert t3 — 30 ns ROMS negate output delay after OE negate t4 — 30 ns ROMRD assert output delay after OE assert t5 — 30 ns ROMRD negate output delay after OE negate t6 — 30 ns PA CE1 OE t1 t2 t3 t4 t5 t6 ROMS ROMRD 93 MB86967 (6) Bus Timing (PC card mode, common memory write) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Max. Setup time for address, CE1 prior to WE assert t1 5 — ns Hold time for address, CE1 after WE negate t2 5 — ns ROMS assert output delay after WE assert t3 — 30 ns ROMS negate output delay after WE negate t4 — 30 ns PA CE1 WE t1 t2 t3 ROMS 94 Unit t4 MB86967 (7) Bus Timing (PC card mode, I/O read cycle) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to IORD assert Value Unit Min. Max. t1 5 — ns Hold time for address, CE1, CE2 after IORD negate t2 5 — ns Hold time for REG after IORD negate t3 0 — ns Output delay for read data after IORD assert t4 — 44 ns Output hold for read data after IORD negate t5 10 — ns Read pulse width t6 30 — ns Output delay for INPACK assert after IORD assert t7 — 45 ns Output delay for INPACK negate after IORD negate t8 — 45 ns Output delay time of WAIT assert from IORD assert t9 5*1 35*1 ns Output delay time of WAIT negate from IORD assert t10 — 175*2 ns *1: WAIT is asserted only when the write access conflicts with that of the network on reading the buffer memory port (BMPR8). *2: WAIT is asserted only when the write access conflicts with that of the network on reading the buffer memory port (BMPR8). This value will be 2.15 µs when the bus write error occurs on reading the buffer memory port. PA t2 REG t3 CE1, CE2 t6 IORD t1 t7 t8 INPACK t9 WAIT t10 PD t4 t5 95 MB86967 (8) Bus Timing (PC card mode, I/O write cycle) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to IOWR assert Value Unit Min. Max. t1 5 — ns Hold time for address, CE1, CE2 after IOWR negate t2 5 — ns Hold time for REG after IOWR negate t3 0 — ns Setup time for write data input t4 10 — ns Hold time for write data input t5 5 — ns Write pulse width t6 36 — ns Output delay time for IOIS16 assert from address t7 — 35 ns Output delay time for IOIS16 negate from address t8 — 35 ns Output delay time for WAIT assert from IOWR assert t9 5*1 35*1 ns Output delay time for WAIT negate from IOWR assert t10 — 175*2 ns *1: WAIT is asserted only when the write access conflicts with that of the network on writing the buffer memory port (BMPR8). *2: WAIT is asserted only when the write access conflicts with that of the network on writing the buffer memory port (BMPR8). This value will be 2.15 µs when the bus write error occurs on writing the buffer memory port. PA t2 REG t3 CE1, CE2 t6 t1 IOWR t8 IOIS16 t7 t9 WAIT t10 PD t4 96 t5 MB86967 (9) Bus Timing (PC card mode, ID number read from EEPROM: I/O access) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to IORD assert Value Unit Min. Max. t1 5 — ns Hold time for address, CE1, CE2 after IORD negate t2 5 — ns Hold time for REG after IORD negate t3 0 — ns Output delay for INPACK assert after IORD assert t4 — 45 ns Output delay for INPACK negate after IORD negate t5 — 45 ns Output delay for ROMS assert after IORD assert t6 — 35 ns Output delay for ROMS negate after IORD negate t7 — 35 ns Output delay for ROMRD assert after IORD assert t8 — 30 ns Output delay for ROMRD negate after IORD negate t9 — 30 ns Output delay for ROMAD assert after IORD assert t10 — 30 ns Output delay for ROMAD negate after IORD negate t11 — 30 ns PA t2 REG t3 CE1, CE2 IORD t1 IOWR t4 t5 t6 t7 t8 t9 INPACK ROMS ROMRD t11 t10 ROMAD 97 MB86967 (10)Bus Timing (PC card mode, ID number write from EEPROM: I/O access) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Setup time for address, CE1, CE2, REG prior to IOWR assert Value Max. t1 5 — ns Hold time for address, CE1, CE2 after IOWR negate t2 5 — ns Hold time for REG after IOWR negate t3 0 — ns Output delay for ROMS assert after IOWR assert t4 — 35 ns Output delay for ROMS negate after IOWR negate t5 — 35 ns Output delay for ROMAD assert after IOWR assert t6 — 30 ns Output delay for ROMAD negate after IOWR negate t7 — 30 ns PA t2 REG t3 CE1, CE2 IOWR, WE t1 t4 t5 t6 t7 ROMS ROMAD 98 Unit Min. MB86967 (11)ISA Bus Mode Read Cycle (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter From the rising edge of SA19 to SA14, SA9 to SA0, and ALE or establishment of AEN or SBHE until IOR assert Hold time of SA19 to SA14, SA9 to SA0, AEN, SBHE from IOR negate IOR pulse width From IOR negate to IOCHRDY negate IOCHRDY pulse width (on conflict at the time of BMPR8 access) From IOCHRDY assert to SD15 to 0 enabled From IOCHRDY assert to IOR hold time From IOR assert to SD15 to 0 enabled (no conflict on bus access) From IOR negate to SD15 to SD0 high impedance From SA19 to SA14, SA9 to SA0, ALE rising edge, AEN or SBHE rising edge up to IOCS16 assert From SA19 to SA14, SA9 to SA0, ALE rising edge, AEN or SBHE rising edge up to IOCS16 negate From IOR assert to ENHB, or ENLB assert From IOR negate to ENHB or ENLB negate ALE pulse width ALE Min. Value Typ. Max. t1 15 — — ns t2 21 — — ns t3 t4 50 — — — — 20 ns ns t5 — — 175 ns t6 t7 — 20 — — 30 — ns ns t8 — — 38 ns t9 — — 38 ns t10 — — 28 ns t11 — — 71 ns t12 t13 t14 — — 30 — — — 46 24 — ns ns ns Symbol Unit t14 SA19 to 14, 9 to 0 AEN, SBHE IOR t3 t1 t2 t4 t7 t5 IOCHRDY t6 SD15 to 0 t10 t8 t9 t11 IOCS16 t12 t13 ENHB, ENLB 99 MB86967 (12)ISA Bus Mode Write Cycle (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol From the rising edge of SA19 to SA14, SA9 to SA0, and ALE or establishment of AEN or SBHE until IOW assert Value Typ. Max. t1 15 — — ns Hold time of SA19 to SA14, SA9 to SA0, AEN, SBHE from IOW negate t2 21 — — ns IOW pulse width t3 50 — — ns From IOW negate to IOCHRDY negate t4 — — 20 ns IOCHRDY pulse width (on conflict at the time of BMPR8 access) t5 — — 175 ns From IOCHRDY assert to IOW hold time t6 20 — — ns IOW to SD15 to 0 setup time t7 5 — — ns IOW to SD15 to SD0 hold time t8 33 — — ns From SA19 to SA14, SA9 to SA0, ALE rising edge, AEN or SBHE rising edge up to IOCS16 assert t9 — — 38 ns From SA19 to SA14, SA9 to SA0, ALE rising edge, AEN or SBHE rising edge up to IOCS16 negate t10 — — 71 ns From IOW assert to ENHB, or ENLB assert t11 — — 46 ns From IOW negate to ENHB or ENLB negate t12 — — 24 ns ALE pulse width t13 30 — — ns ALE t13 SA19 to 14, 9 to 0 AEN, SBHE t3 IOW t1 t2 t4 t6 t5 IOCHRDY SD15 to 0 t9 t7 t8 IOCS16 t11 ENHB, ENLB 100 Unit Min. t12 t10 MB86967 (13)General-purpose Bus Mode Read Cycle (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Address setup time (from IOR assert) t1 3 — — ns Address hold time (from IOR negate) t2 3 — — ns IOR pulse width t3 30 — — Output delay time for READY negate t4 7* 2 — Output delay time for READY assert t5 — — 175* ns Output delay time for READY assert t6 — — 28/175*3 ns Output delay time for READY negate t7 — — 28 ns Output delay time for read data (from IOR assert) t8 — — 44 ns Output delay time for read data (from READY assert) t9 — — 8 ns Output delay time for read data (from READY assert) t10 — — 18 ns Output hold time for read data t11 10 — 80 ns 26* ns 2 1 ns *1: READY is negated only when the read access is conflicted with that of the network on reading the buffer memory port (BMR8). This value would be 2.15 µs when the bus read error occurs on reading the buffer memory port. *2: READY is negated only when the read access is conflicted with that of the network on reading the buffer memory port (BMR8). *3: Max time is 28 ns for normal read. Max time is 175 ns only when the read access is conflicted with that of the network on reading the buffer memory port (BMR8). This value would be 2.15 µs when the bus read error occurs on reading the buffer memory port. 101 MB86967 SA3 to 0 SBHE ECS t3 t1 t2 IOR t5 IOCHRDY (READY)* t4 t7 IOCHRDY (READY)* t6 t10 t11 SD15 to 0 t9 t8 * : The IOCHRDY output terminal allows the RDYPNSEL terminal to toggle between READY (active high) and READY (active low). 102 MB86967 (14)General-purpose Bus Mode Write Cycle (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Address setup time (from IOW assert) t1 3 — — ns Address hold time (from IOW negate) t2 3 — — ns IOW pulse width t3 36 — — Delay time for READY negate output t4 7* 2 — Delay time for READY assert output t5 — — 175* Delay time for READY assert output t6 — — 28/175*3 ns Delay time for READY negate output t7 — — 28 ns Setup time for write data input t8 5 — — ns Hold time for write data input t9 6 — — ns ns 2 26* 1 ns ns *1: READY is negated only when the write access is conflicted with that of the network on writing the buffer memory port (BMR8). This value would be 2.15 µs when the bus write error occurs on writing the buffer memory port. *2: READY is negated only when the write access is conflicted with that of the network on writing the buffer memory port (BMR8). *3: Max time is 28 ns for normal write. Max time is 175 ns only when the write access is conflicted with that of the network on writing the buffer memory port (BMR8). This value would be 2.15 µs when the bus write error occurs on writing the buffer memory port. SA3 to 0 BHE ECS t1 t2 t3 IOW t5 IOCHRDY* (READY) t4 t7 IOCHRDY* (READY) t6 t8 t9 SD15 to 0 * : The IOCHRDY output terminal allows the RDYPNSEL terminal to toggle between READY (active high) and READY (active low). 103 MB86967 (15)General-purpose Bus Mode Write Input Inhibit Period (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Value Symbol Input inhibit period for IOR and IOW. t1 IOR IOW t1 104 t1 t1 Min. Typ. Max. 50 — — Unit ns MB86967 (16)Single DMA Access Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Delay time for DREQ negate output (from DMACK assert) t1 — — 21 ns Delay time for DREQ assert output (from DMACK negate) t2 — — 19 ns EOP pulse width t3 10 — — ns Delay time for EOP assert input t4 3 — — ns Setup time for EOP negate t5 3 — — ns Setup time for DMACK t6 0 — — ns Hold time for DMACK input t7 3 — — ns DREQ t1 t2 DMACK t7 t6 IOR, IOW t4 t3 t5 EOP* EOP* * : EOP input allows the values of EOP/EOP register values for bit 1 of DLCR7 to toggle between EOP (active high) and EOP (active low). Note: IOCHRDY signal timing is identical as that of bus timing. 105 MB86967 (17)Burst DMA Access Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Hold time for DREQ output t1 — — 32 ns Hold time for DMACK input (from IOR, IOW negate) t2 3 — — ns Hold time for DREQ output t3 4 — 28 ns Hold time for DMACK input (from EOP/EOP negate) t4 3 — — ns Setup time for DMACK input t5 0 — — ns • Burst DMA access timing (Exiting DMA from the MB86967) *1 DREQ *2 DMACK t1 t1 t2 IOR, IOW *1: This transition goes low at a single cycle before the last DMA when DLCR4 bit 2 is 1. *2: This transition goes low at the last cycle of DMA when DLCR4 bit 2 is 0. • Burst DMA access timing (When DMA is interrupted by DMACK input) DREQ DMACK t5 t2 t1 IOR, IOW IOCHRDY*1 *2 *1: IOCHRDY signal timing is identical as that of bus timing. *2: Interrupt period for DMA transfer 106 t2 MB86967 • Burst DMA access timing (When DMA is exited with the EOP input) DREQ t3 DMACK t2 IOR, IOW t4 EOP* EOP* * : EOP input allows the values of EOP/EOP register values for bit 1 of DLCR7 to toggle between EOP (active high) and EOP (active low). Note: IOCHRDY signal timing is identical as that of bus timing. 107 MB86967 (18)Buffer Memory Read Timing • 100 ns cycle access (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Read cycle time (100 ns cycle mode) t1 — 100 — ns Address access time t2 — — 81 ns Address setup time (from BCS Low) t3 0 — 8 ns Address hold time (from BCS High) t4 0 — — ns Setup time for BOE output (from BCS High) t5 — — 5 ns Access time for chip select t6 — — 81 ns Access time for output enable t7 — — 49 ns Setup time for data t8 15 — — ns Hold time for data t9 0 — — ns t1 BA14 to 0 t3 t4 BCS t2 BWE t6 t7 t5 BOE t8 BD7 to 0 (Input) 108 t9 MB86967 • 150 ns cycle access (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Read cycle time (150 ns cycle mode) t1 — 150 — ns Address access time t2 — — 81 ns Address setup time (from BCS Low) t3 0 — 8 ns Address hold time (from BCS High) t4 0 — — ns Setup time for BOE output (from BCS High) t5 — — 5 ns Access time for chip select t6 — — 81 ns Access time for output enable t7 — — 49 ns Setup time for data t8 15 — — ns Hold time for data t9 0 — — ns t1 BA14 to 0 t3 t4 BCS t2 BWE t6 t7 t5 BOE t8 t9 BD7 to 0 (Input) 109 MB86967 (19)Buffer Memory Write Timing • 100 ns cycle access (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Write cycle time (100 ns cycle mode) t1 — 100 — ns Setup time for data t2 40 — — ns Hold time for data t3 10 — — ns Address hold time (from WE High) t4 12 — — ns WE pulse width t5 60 — — ns Address setup time (from BCS Low) t6 2 — 8 ns Address hold time (from BCS High) t7 0 — — ns Delay time for WE output (from BCS Low) t8 0 — — ns Setup time for WE output (from BCS High) t9 0 — — ns Address determination time t10 71 — — ns Chip select determination time t11 62 — — ns t1 BA14 to 0 t6 t7 BCS t10 t4 t11 BOE t8 t5 t9 BWE t2 BD7 to 0 (Output) 110 t3 MB86967 • 150 ns cycle access (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Write cycle time (150 ns cycle mode) t1 — 150 — ns Setup time for data t2 40 — — ns Hold time for data t3 10 — — ns Address hold time (from WE High) t4 12 — — ns WE pulse width t5 100 — — ns Address setup time (from BCS Low) t6 2 — 8 ns Address hold time (from BCS High) t7 0 — — ns Delay time for WE output (from BCS Low) t8 0 — — ns Setup time for WE output (from BCS High) t9 0 — — ns Address determination time t10 110 — — ns Chip select determination time t11 100 — — ns t1 BA14 to 0 t6 t7 BCS t10 t4 t11 BOE t8 t5 t9 BWE t2 t3 BD7 to 0 (Output) 111 MB86967 (20)Reset Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Reset pulse width t1 200 — — ns Register access enable start time t2 300 — — ns Start time for transmit & receive operation t3 200 — — µs CHRESET t1 t2 (-ENA DLC clear) IOR or IOW t3 (21)Skip Packet Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Skip end time t1 Value Min. Typ. Max. 300 — — IOW t1 IOR (SKIP RX PKT bit set) (Next receive packet read) 112 Unit ns MB86967 (22)Interrupt Output Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Delay time for interrupt output clear t1 Value Min. Typ. Max. 5 — 40 Unit ns IOW t1 IRQX (23)Jabber Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Condition Max transmit time — Jabber stop timer — Value Unit Min. Typ. Max. — 64 96 128 ns — 480 512 544 ns 113 MB86967 (24)Link Test Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Min. Typ. Max. Unit Link pulse width for TPOPA t1 — 100 — ns Link pulse width for TPOPB and TPONB t2 — 50 — ns Link pulse transmit interval t3 15 16 17 ms Effective link pulse receive interval t4 4.0 — 65 ms TPOPA TPOPB t1 t2 TPONB t2 TPONA TP± (after predistortion) t3 TPIP/N t4 114 Value MB86967 (25)Timing for reading the EEPROM default setting information (jumperless ISA mode) (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Shift clock “H” pulse width t1 — 600 — ns Shift clock “L” pulse width t2 — 600 — ns Chip select setup time t3 — 400 — ns Chip select hold time t4 — 200 — ns DI data setup time t5 — 200 — ns DI data hold time t6 — 200 — ns DO data setup time t7 100 — — ns DO data hold time t8 100 — — ns EEPCS t3 t1 t2 t4 EEPSK t5 t6 EEPDI (output) t7 t8 EEPDO (input) EEPCS EEPSK EEPDI EEPDO 1 1 0 A5 A4 A3 A2 A1 A0 0 D15 D14 D13 D12 D11 D10 D9 D8 Notes:• Use the NMC93C06 or NMC93C46 for EEPROM by National Semiconductor or its equivalent. • Control signal or data for EEPROM requires control through software when writing data or reading the node ID data. It is to be controlled so that it meets the AC timing requirements for EEPROM. 115 MB86967 (26)SQE Test Timing (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit SQE test wait timer — 800 1000 1200 ns SQE test timer — 800 1000 1200 ns (27)LED Turn-on Time (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Receive LED turn-on time — — 128 — ms Transmit LED turn-on time — — 128 — ms Collision turn-on time — — 128 — ms (28)Loopback Test (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter 116 Symbol Value Min. Typ. Max. Unit Setup time for loopback signal (DLCR4, bit 1) prior to starting to transmit — 100 — — ns Hold time for loopback signal (DLCR4, bit1) after transmit. — 100 — — ns MB86967 (29)Timing for transmitting TP (VDD = +5 V ± 5%, GND = 0 V, Ta = 0°C to +70°C) Parameter Symbol Value Min. Typ. Max. Unit Data width for transmitting TP (1, 0, 1, 0⋅⋅⋅) t1 — 100 — ns Data with for transmitting TP (1, 1, 1, 1, ⋅⋅⋅ or 0, 0, 0, 0, ⋅⋅⋅) t2 — 50 — ns Data width for end of packet (the last data: “0”) t3 — 250 — ns Data width for end of packet (the last data: “1”) t4 — 300 — ns Delay time from TPOPA to TPOPB or from TPONA to TPONB. t5 — 50 — ns • When the last data is “0” 1 TPOPA 0 1 t1 t2 t5 1 0 1 0 t2 TPOPB TPONB TPONA 1 0 1 TP± (after predistortion) t3 • When the last data is “1” 0 1 1 0 0 1 1 0 1 TPOPA TPOPB TPONB TPONA TP± (after predistortion) 1 t4 117 MB86967 ■ SYSTEM CONFIGURATION EXAMPLE • PC card mode PCMCIA Card slot Address Control signal Data bus (MSB) Fillter • CIS • Common memory (EEPROM or FLASH ROM) Various (LINK, COLLISION, RECEIVE and TRANSMIT) LEDs Data bus (LSB) 10BASE-T twisted-pair cable MB86967 Data Address 20 pF 20 pF Buffer SRAM 20 MHz X'tal 118 Transformer MB86967 • ISA bus mode ISA bus Address Data Bus driver* Control signal *: Option Data LINK LED Fillter Transformer Collision LED 10BASE-T twisted-pair cable MB86967 Transmit LED Receiver LED ID serial EEPROM Data Address 20 pF 20 pF Buffer SRAM 20 MHz X'tal 119 MB86967 • General-purpose bus mode System bus Address Control signal Data Bus driver interface Control signal Data Fillter LINK LED Collision LED 10BASE-T twisted-pair cable MB86967 Transmit LED Receiver LED Data Address 20 pF 20 pF Buffer SRAM 20 MHz X'tal 120 Transformer MB86967 ■ 10 BASE-T INTERFACE CIRCUIT MB86967 290 Ω TPOPB 1:1 50 Ω TPOPA TX Filter 50 Ω TPONA RJ45 1 2 Zo = 100 Ω 290 Ω TPONB TPIP TPIN 1:1 50 Ω 50 Ω 3 To 10BASE−T Twisted−Pair Network Rx Filter 4 Zo = 100 Ω 0.01 µF 5 6 121 MB86967 • Recommended pulse transformer Recommended transformer for the MB86967 is as follows: Model: S556-9004-09 Manufacturer: Bel Fuse Ltd. • Overview of S556-9004-09 [External view units in inches] 0.1 × 6 0.67 0.09 12 10 8 14 0.56 bel DATE CODE 0.084 MAX “DATAIL-A” CL S556-9004-09 PCMCIA 7 1 R 0.015 0.077 DETAIL-A 0.79 0.01 R 0.015 0.035 [Internal circuit] 287 Ω 1:1 PIN 7 PIN 6 49.9 Ω 49.9 Ω PIN 5 TX FILTER PIN 8 Z0 = 100 OHM PIN 9 PIN 4 287 Ω PIN 3 PIN 2 PIN 1 122 1:1 49.9 Ω RX FILTER PIN 13 49.9 Ω Z0 = 100 OHM PIN 14 MB86967 Model: TLA-3M103 Manufacturer ⋅ Distributor: TDK Co. • Overview of TLA-3M103 [External view units in mm] 5.95 MAX. 25.7 MAX. 2.54 TYP. 9.5 TYP. 12.5 ± 0.3 0.8 TYP. #9 #16 TDK * * * Part No. Lot No. #8 #1 0.25 TYP. 0.45 TYP. * * * : COUNTRY OF ORIGIN [Internal circuit] 1 3 L.P.FILTER 1 CT : 1 CT TX 6 L.P.FILTER 5 16 8 7 L.P.FILTER 1 CT : 1 CT 9 RX 14 12 L.P.FILTER 11 10 N.C. pin: 2 4 13 15 123 MB86967 Model: 851C2N-0005 Manufacturer ⋅ Distributor: Toko Co. • Overview of 851C2N-0005 [External view units in inches] 1.0 ± 0.02 0.39 PIN 1 I.D. 0.47 φ0.024 ± 0.002 0.14 ± 0.02 0.1 0.3 0.7 [Internal circuit] 1 XMIT RCV 2 LPF 15 3 14 6 11 7 8 124 16 LPF 10 9 Test for transmit, receive, collision, link LED for monitoring network status 0, 1 1, 0 Yes External reset or writing IDRB0 to 7 No Internal 1: 2 Yes Selectable No Yes Full duplex operation Jumperless mode default setting Shutdown mode TP transceiver filter Winding ratio for TP transmit pulse transformer Remote signalling 100 Ω/150 Ω termination resistor Deleting receive long packet Lower Squelch Yes No Selectable Yes 1: 2 Internal No No DLCR7 bit 6, 7 Writable by selecting Flash ROM Notes DLCR 0 to 15, MAR 8 to 15, BMPR 8, 10 to 15, CARDCR, (ID), CCR 0 to 3 No Yes 100 Ω No 1:1 External Yes (crystal oscillation stop) External reset or writing IDRB 0-7 Yes BMPR13 bit 6 BMPR12 bit 3 BMPR13 bit 2 BMPR14 bit 5, 7 BMPR15 bit 4, 5, 7 BMPR14 bit 4 × DLCR7 bit 5 DLCR4 bit 0 DLCR 0 to 15, MAR 8 to 15, *: Change name to RES0 BMPR 8, 10 to 19, (IDRB 0 to 7 to 7)* General-purpose DLCR 0 to 15, MAR 8 to 15, DLCR 0 to 15, MAR 8 to 15, DLCR 0 to 15, MAR 8 to 15, bus mode BMPR 8, 10 to 15 BMPR 8, 10 to 15 BMPR 8, 10 to 15 PC card mode 1, 1 DLCR 0 to 15, MAR 8 to 15, BMPR 8, 10 to 19, IDRB 0 to 7 Internal register ISA bus mode Device ID Test for transmit, receive, collision, link General-purpose Test for transmit, bus mode receive, collision, link Test for transmit, receive, collision, link No 8 bits 32 Kbytes TP Test for transmit, receive, collision, link Test for transmit, receive, collision, link No 8 bits 32 Kbytes TP/AUI PC card mode ISA bus mode Internal PROM or Flash ROM ROM type for boot program Buffer memory bus width ROM interface for boot program 64 Kbytes 8/16 bits Max buffer memory size TP/AUI Network interface 5 V ± 5% PC card I/F General-purpose bus I/F Jumperless +ISA I/F Jumper + E2PROM + ISA I/F 5 V ± 5% General-purpose bus I/F 5 V ± 5% Jumperless +ISA I/F Jumper+E2PROM+ISA I/F Jumper+PROM+ISA I/F General-purpose I/F Supply voltage SQFP100 MB86967 SQFP100 MB86964-R QFP160 Operation mode Package MB86965B MB86967 ■ FEATURES OF MB86965B, MB86964-R, MB86967 125 MB86967 ■ ERRATA SHEET Category Power supply OFF sequence in PC card mode,. Summary Whin the CIS area is prepared with an EEPROM device, MB86967 mulfunctions with miswriting occasionally for the CIS area (This error depends on the type of PC.) Recommendation Please insert the OR-gate between MB86967 and EEPROM. As a result. even if Pin 95 is driven to Low, it does not influence EEPROM. MB86967 PCMCIA /WE 126 EEPROM P95 /WE P98 /CS MB86967 ■ ORDERING INFORMATION Part number Package MB86967PFV 100-pin Plastic LQFP (FPT-100P-M05) Remarks 127 MB86967 ■ PACKAGE DIMENSION 100-pin Plastic LQFP (FPT-100P-M05) +0.20 16.00±0.20(.630±.008)SQ 75 1.50 −0.10 +.008 .059 −.004 51 14.00±0.10(.551±.004)SQ 76 (Mounting height) 50 12.00 (.472) REF 15.00 (.591) NOM Details of "A" part 0.15(.006) INDEX 100 0.15(.006) 26 0.15(.006)MAX LEAD No. "B" 25 1 0.40(.016)MAX "A" 0.50(.0197)TYP +0.08 0.18 −0.03 +.003 .007 −.001 +0.05 0.08(.003) M 0.127 −0.02 +.002 .005 −.001 Details of "B" part 0.10±0.10 (STAND OFF) (.004±.004) 0.10(.004) C 128 1995 FUJITSU LIMITED F100007S-2C-3 0.50±0.20(.020±.008) 0~10˚ Dimensions in mm (inches) MB86967 FUJITSU LIMITED For further information please contact: Japan FUJITSU LIMITED Corporate Global Business Support Division Electronic Devices KAWASAKI PLANT, 4-1-1, Kamikodanaka Nakahara-ku, Kawasaki-shi Kanagawa 211-8588, Japan Tel: 81(44) 754-3763 Fax: 81(44) 754-3329 http://www.fujitsu.co.jp/ North and South America FUJITSU MICROELECTRONICS, INC. Semiconductor Division 3545 North First Street San Jose, CA 95134-1804, USA Tel: (408) 922-9000 Fax: (408) 922-9179 Customer Response Center Mon. - Fri.: 7 am - 5 pm (PST) Tel: (800) 866-8608 Fax: (408) 922-9179 http://www.fujitsumicro.com/ Europe FUJITSU MIKROELEKTRONIK GmbH Am Siebenstein 6-10 D-63303 Dreieich-Buchschlag Germany Tel: (06103) 690-0 Fax: (06103) 690-122 http://www.fujitsu-ede.com/ Asia Pacific FUJITSU MICROELECTRONICS ASIA PTE LTD #05-08, 151 Lorong Chuan New Tech Park Singapore 556741 Tel: (65) 281-0770 Fax: (65) 281-0220 All Rights Reserved. The contents of this document are subject to change without notice. Customers are advised to consult with FUJITSU sales representatives before ordering. The information and circuit diagrams in this document are presented as examples of semiconductor device applications, and are not intended to be incorporated in devices for actual use. Also, FUJITSU is unable to assume responsibility for infringement of any patent rights or other rights of third parties arising from the use of this information or circuit diagrams. FUJITSU semiconductor devices are intended for use in standard applications (computers, office automation and other office equipment, industrial, communications, and measurement equipment, personal or household devices, etc.). CAUTION: Customers considering the use of our products in special applications where failure or abnormal operation may directly affect human lives or cause physical injury or property damage, or where extremely high levels of reliability are demanded (such as aerospace systems, atomic energy controls, sea floor repeaters, vehicle operating controls, medical devices for life support, etc.) are requested to consult with FUJITSU sales representatives before such use. The company will not be responsible for damages arising from such use without prior approval. Any semiconductor devices have an inherent chance of failure. You must protect against injury, damage or loss from such failures by incorporating safety design measures into your facility and equipment such as redundancy, fire protection, and prevention of over-current levels and other abnormal operating conditions. If any products described in this document represent goods or technologies subject to certain restrictions on export under the Foreign Exchange and Foreign Trade Law of Japan, the prior authorization by Japanese government will be required for export of those products from Japan. http://www.fmap.com.sg/ F9811 FUJITSU LIMITED Printed in Japan 129