Communication Processor Module
MOTOROLA
MPC823 USER’S MANUAL
16-455
I2
C
COMMUNICATION
16
PROCESSOR
MODULE
Bits 0–2—Reserved
These bits are reserved and should be set to 0.
BO—Byte Ordering
You should set this bit to select the required byte ordering of the data buffer.
00 =
The DEC/Intel convention is used for byte ordering (swapped operation) and
is also called little-endian byte ordering. The transmission order of bytes within
a buffer word is reversed in comparison to the Motorola mode. This mode is
supported only for 32-bit port size memory.
01 =
PowerPC little-endian byte ordering. As data is transmitted onto the serial line
from the data buffer, the least-significant byte of the buffer double-word
contains data to be transmitted earlier than the most-significant byte of the
same buffer double-word.
1X = Motorola byte ordering (normal operation) is also called big-endian byte
ordering. As data is transmitted onto the serial line from the data buffer, the
most-significant byte of the buffer word contains data to be transmitted earlier
than the least-significant byte of the same buffer word.
AT—Address Type 1–3
These bits contain the function code value used during the SDMA channel memory
access. AT0 is driven with a 1 to identify this SDMA channel access as a DMA-type
access.
MRBLR—The I2C controller has a maximum receive buffer length register entry to
define its receive buffer length and it defines the maximum number of bytes that the
MPC823 writes to a receive buffer on that I2C controller before moving to the next
buffer. The MPC823 writes fewer bytes to the buffer than the MRBLR value if an error
or end-of-frame occurs, but it never writes more bytes than the MRBLR value. Buffers
you supply for the MPC823 to use should always be at least as long as MRBLR. The
I2C transmit buffers are not affected by the value you program into MRBLR and they
can be individually chosen to have varying lengths, as needed. You choose the number
of bytes to be transmitted by programming the DATA LENGTH field in the TX buffer
descriptor.
MRBLR is not intended to be dynamically changed while an I2C controller is operating.
However, if it is modified in a single bus cycle with one 16-bit move (not two 8-bit bus
cycles back-to-back), a dynamic change in receive buffer length can be successfully
achieved. This occurs when the communication processor module moves control to the
next RX buffer descriptor in the table. Thus, a change to MRBLR does not have an
immediate effect. To guarantee the exact RX buffer descriptor on which the change
occurs, you should only change MRBLR when the I2C receiver is disabled. The MRBLR
value should be greater than zero and should be even if the character length of the data
is greater than eight bits.