1 rx fifo, Rx fifo -66, Psc fifo system -66 – Freescale Semiconductor MPC5200B User Manual

Page 584

Advertising
background image

PSC FIFO System

MPC5200B Users Guide, Rev. 1

Freescale Semiconductor

15-73

Figure 15-22. PSC FIFO System

15.4.1

RX FIFO

The RX FIFO space is 512 Byte. For an Rx FIFO, the “Alarm” value is not the amount of “data” in the Rx FIFO. Instead, an interrupt occurs
as a result of the amount of empty space remaining in the Rx FIFO. These facts are described in

Figure 15-22

.

If it is known how much data is needed in the Rx FIFO to cause an interrupt, the value that must be written into the “Alarm” register is:

the FIFO size, minus the number of data bytes in the FIFO

Unlike the “Alarm” value, ”Granularity” value represents a number of data bytes, not empty space.

NOTE

In AC97, the number of data bytes are 4-times the number of time slot samples in the FIFO. Because,
each 20-bit sample uses an entire 32-bit longword in the FIFO.

For the Rx FIFO, the value can be between 0 and 7 bytes only. Therefore, the interrupt has hysteresis. For example, the interrupt goes active
when the Rx FIFO is “almost full” (i.e., amount of empty space is less than the “Alarm” level). It stays active until enough data is read out of
the Rx FIFO so that the amount of data left in the FIFO is less than the “Granularity” level.

For the example (see

Figure 15-22)

it means:

The requestor to the BestComm to emptying the RX FIFO becomes active if the empty space in the FIFO is less the 8 Bytes (504 date
Bytes are in the FIFO).

The requester became inactive if 4Bytes are left in the FIFO. (508 Byte space now)

When BestComm is servicing the FIFO’s, this process works well. However, if the CPU is servicing the FIFO’s, the interrupt has no hysteresis.
For Example, the “Alarm” level is used for both activating and deactivating the CPU interrupt.

first received Byte

last received Byte

first Byte to send

last Byte to send

0

1FF

1FF

0

Transmitter

Tx Line

Receiver

Rx Line

CommBus or IPB

Alarm Level

“almost Full”

Granularity

Level

Alarm Level

“almost Empty”

Granularity

Level

empty FIFO

Space

empty FIFO

Space

(example: 0x010)

(example: 0x008)

(example: 0x004)

(example: 0x005)

(value multiply by 4)

Address:

Interface

Advertising