
Philips Semiconductors
PNX15xx Series
Volume 1 of 1
Chapter 23: LAN100 — Ethernet Media Access Controller
PNX15XX_SER_3
Koninklijke Philips Electronics N.V. 2006. All rights reserved.
Product data sheet
Rev. 3 — 17 March 2006
23-52
Figure 9 illustrates what the memory transactions and the MII Interface transactions
for this example could look like.
Each pair of nibbles on the MII Interface is transferred to memory as a byte after
being delayed by 128 or 136 cycles for ltering by the receive lter and buffer
modules. The LAN100 removes the preamble, frame start delimiter, and CRC from
the MII data and checks the CRC. To limit the probability of NoDescriptor errors, the
LAN100 buffers two descriptors. After the write to memory is acknowledged for data
and status, the RxProduceIndex is updated. The software device driver should now
process the receive data, after which the it should update the RxConsumeIndex. For
100 Mb/s and 10 Mb/s the waveforms look identical except for frequency: in 10 Mb/s
mode the MII receive input clock is 2.5 MHz and in 100 Mb/s mode the input clock is
25 MHz.
In case an RMII PHY is connected to the MII Interface, the data communication
between the LAN100 and the PHY takes place at half the data-width and twice the
clock frequency (50 MHz). In
Figure 9, the signal marked “MII receive data” will have
doubled frequency for the 100Mb/s mode. In 10Mb/s mode, data will only be
transmitted once every 10 clock cycles; an external clock gate disables the 50MHz
clock for the 9 cycles.
Figure 9:
Receive example waves
MMIO cmd
MMIO write data
Descr. read cmd.
Descr. read data
Descr. read last
MII receive data
Data write trans/cmd
Data write cmd/data
Data request ack.
Data receive ack.
Status write cmd.
Status write data
Status write last
Status request ack.
Status receive ack.
RxProduceIndex
RxConsumeIndex
MMIO write enable Rx DMA
Buffer two descriptors
Packet already
underway when enabled,
discard for receive
Preamble
128-136 cycles delay
due to ltering
First data in packet
CRC
Status written
tag status and data
Both tags acknowledged,
update ProduceIndex,
set interrupts
0
1
2
3
MMIO write, update
RxConsumeIndex
Last data in fragment,
Write fragment status