Communication Processor Module
MOTOROLA
MPC823 USER’S MANUAL
16-379
SMC
COMMUNICATION
16
PROCESSOR
MODULE
MRBLR—Each serial management controller has one maximum receive buffer length
register to define the receive buffer length. The MRBLR defines the maximum number
of bytes that the MPC823 writes to a receive buffer on the serial management controller
before it moves on to the next buffer. The MPC823 can write fewer bytes to the buffer
than MRBLR if a condition, such as an error or end-of-frame occurs, but it never writes
more bytes than the MRBLR value. It follows then, that buffers you supply should
always be at least as long as the MRBLR. The transmit buffers for a serial management
controller are not affected in any way by the value programmed into the MRBLR.
Transmit buffers can be individually chosen to have varying lengths. The number of
bytes to be transmitted is chosen by programming the DATA LENGTH field in the TX
buffer descriptor.
RBPTR—The receiver buffer descriptor pointer for each SMC channel points to the
next buffer descriptor the receiver transfers data to when it is in idle state or to the
current buffer descriptor during frame processing. After a reset or when the end of the
buffer descriptor table is reached, the communication processor module initializes this
pointer to the value programmed in the RBASE entry. Although you will not usually need
to write the RBPTR in most applications, you can modify it when the receiver is disabled
or when you are sure no receive buffer is currently being used.
TBPTR—The transmitter buffer descriptor pointer for each SMC channel points to the
next buffer descriptor the transmitter transfers data from when it is in idle state or to the
current buffer descriptor during frame transmission. After a reset or when the end of the
buffer descriptor table is reached, the communication processor module initializes this
pointer to the value programmed in the TBASE register. Although you will not usually
need to write TBPTR in most applications, you can modify it when the receiver is
disabled or when you are sure no receive buffer is currently being used.
Note:
The MRBLR is not intended to be changed dynamically while a serial
management 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) then 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 the MRBLR while the SMC receiver is
disabled. The value of MRBLR should be greater than zero and should be even
if the character length of the data is greater than 8 bits.