150
Rabbit 4000 Microprocessor User’s Manual
17.3 Operation
17.3.1 Asynchronous Mode
The steps to set up Serial Ports E – F for asynchronous operation are identical to those
17.3.2 HDLC Mode
The following steps explain how to set up Serial Ports E – F for the HDLC mode. When the
internal clock is selected, the Rabbit 4000 is in control of all transmit and receive operations,
so an interrupt is not required. When an external clock is selected, operations can be han-
dled by either polling the status byte or by a serial port interrupt; the performance will be
better with an interrupt.
1. Write the interrupt vector for the interrupt service routine to the internal interrupt table.
2. Set up the desired data transmit and clock pins by writing to the appropriate parallel
port function register (PxFR) and alternate output register (PxALR or PxAHR).
3. Select the appropriate mode by writing to SxCR (receive input port and clock source).
Also select the interrupt priority.
4. Select additional options by writing to SxER (data encoding, idle line condition, under-
run behavior, and combined or separate clocks).
5. Write the desired divider value to TATxR for the appropriate serial port, or else write a
divider to the dedicated 15-bit divider in SxDLR and SxDHR. If the dedicated divider
is to be used, write a 1 to the most-significant bit of SxDHR to enable it. In either case,
the overall clock divider will be the value in the appropriate register plus one.
6. To start transmission of a packet, write the first byte to SxDR. If internal clock is
selected, the transmission will begin immediately; if an external clock is selected the
transmission will begin when the clock is detected.
7. Continue writing bytes when space is available in the transmit buffer until the final byte
of the packet. If a CRC is to be appended to the packet, write the final byte to SxAR. If
no CRC is required, write the final byte to SxLR and just a closing flag will be appended.
If it is desirable to abort the current packet, write 11 to bits 6–7 of SxCR, and an abort
pattern will be transmitted.
8. The receiver will be synchronized on flag bytes and will reset the CRC. By monitoring
the received bytes, decisions can be made about the incoming packet; if it is not desired
(i.e., it is not addressed to this device), writing a 01 to bits 6–7 of SxCR will force the
receiver back into the flag search mode.