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