Jameco Electronics Rabbit 3000 User Manual

Page 192

Advertising
background image

User’s Manual

183

with new incoming data. Similarly, writing the data to the SxAR register causes the trans-
mitter to start a byte transmit operation, eliminating the need for the software to issue the
Start Transmit command. The effect of these codes is different, depending on whether the
mode is internal clock or external clock.

To transmit in internal clock mode, the user must first load the data register (which must
be empty) and then store the send code. When the shift register finishes sending the cur-
rent character, if any, the data register will be loaded into the shift register and transmitted
by an 8-clock burst. One character can be in the process of transmitting while another
character is waiting in the data register tagged with the send code. The send code is effec-
tively double-buffered.

To receive a character in internal clock mode, the receive shift register should be idle. The
user then stores the receive code in the control register. A burst of 8 clocks will be gener-
ated and the sender must detect the clocks and shift output data to the data line on the fall-
ing edge of each clock. The receiver will sample the data on the rising edge of each clock
for clock modes 00 and 01 or the falling edge for clock modes 10 and 11. The receive
mode cannot double-buffer characters when using the internal clock. The shift register
must be idle before another character receive can be initiated. However, the interrupt
request and character ready takes place on the rising edge of the last clock pulse. If the
next receive code is stored before the natural location of the next falling edge, another
receive will be initiated without pausing the clock. To do this, the interrupt has to be ser-
viced within 1/2 clock.

To transmit each byte in external clock mode, the user must load the data register and then
store the send code. When the shift register is idle and the receiver provides a clock burst,
the data bits are transferred to the shift register and are shifted out. Once the transfer is
made to the shift register, a new byte can be loaded into the transmit register and a new
send code can be stored.

To receive a byte in external clock mode, the user must set the receive code for the first
byte and then store the receive code for the next byte after each byte is removed from the
data register. Since the receive code must be stored before the transmitter sends the next
byte, the receiver must service the interrupt within 1/2 baud clock to maintain full-speed
transmission. This is usually not practical unless a flow control arrangement is made or
the transmitter inserts gaps between the clock bursts.

In order to carry on high-speed communication, the best arrangement will usually be for
the receiver to provide the clock. When the receiver provides the clock, the transmitter
should always be able to keep up because it is double-buffered and has a full character
time to answer the transmitter data register empty interrupt. The receiver will answer
interrupts that are generated on the last clock rising edge. If the interrupt can be serviced
within 1/2 clock, there will be no pause in the data rate. If it takes the receiver longer to
answer, then there will be a gap between bytes, the length of which depends on the inter-
rupt latency. For example, if the baud rate is 400,000 bps, then up to 50,000 bytes per sec-
ond could be transmitted, or a byte every 20 µs. No data will be lost if the transmitter can

Advertising
This manual is related to the following products: