
Fast AMBA Peripherals
12-23
GMS30C7201 Data Sheet
12.3.6 Ir Data Register
The Ir data register (IrData) is a 32-bit register corresponding to the transmit and
receive buffers used by the MIr and FIr interfaces.
Receive Data FIFO
When IrData is read, the lower 32 bits of the bottom entry of the 37-bit two-stage
receiver buffer are accessed. Bits 33-36 are used as tags to indicate various conditions
which occur during reception of each piece of data. The tag bits are transferred down
to the buffer along with the data word which encountered the condition. Bit 32 of the
buffer is automatically transferred to the end of frame (EOF) flag, bit 33 to the CRC error
(CRE) flag, and bit 34 to the receiver overrun (ROR) flag, all within MIr/FIr status
register 1. Bits 35 and 36 indicate whether the received data word contains less than
four valid data bytes, as occurs on the last word of a received packet that is not an
integer multiple of four bytes long. The user can read these flags to determine if the
value at the bottom of the buffer represents the last word within the frame and/or
encountered an error during reception. After checking the flags, the buffer value can
then be read.
The end/error in FIFO (EIF) status bit is set within status register 0 whenever one or
more of the tag bits (32-36) are set within the receive buffer. When EIF is set, an
interrupt is generated and the receive buffer DMA request is disabled so that the user
can manually empty the buffer, checking the end of frame, CRC error, and overrun error
flags in status register 1 first before removing each data value from the buffer. After the
buffer is flushed, the user can re-enable DMA servicing by clearing the EIF bit.
Transmit Data FIFO
When IrData is written, the transmit buffer is accessed. Data is removed from the buffer
one piece at a time by the transmit logic. Unlike the receive data FIFO, the transmit data
FIFO may only contain32-bit words. In order to transmit a frame containing a non-
integer number of words (multiple of four bytes) the Ir Data Tail Register must be used
to store the final one, two or three bytes of the frame (see
12.3.7 Ir Data Tail Register
on page 12-24).
Figure 12-5: Bit locations within the Ir Data Register
shows the bit locations
corresponding to the data field, end of frame bit, as well as the cyclical redundancy
check and receiver overrun error bits within the Ir Data Register. Note that both buffers
Bit
Name
Description
7
–
0
AMV
Address Match Value
8-bit value used by receiver logic to compare to address of incoming frames. If
address matches store frame address, control and data in receive buffer; if address
does not match, ignore frame and search for preamble.
Note: an address of 0hFF (all 1) in the incoming frame automatically generates a
match (AMV is ignored).
Table 12-26: IrAmv Register