English
Language : 

XR88C92 Datasheet, PDF (23/32 Pages) Exar Corporation – DUAL UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER
XR88C92/192
PROGRAMMING EXAMPLES
The following examples show how to initialize the XR88C92/192 for various operating conditions:
A) The first example will initialize channel A of an XR88C92 device for regular RX/TX. The operating parameters will
be 9600 baud, 8 word length, no parity and 1 stop bit.
Operation Register Value Remarks
Write
Write
Write
Write
Write
Write
Write
Write
Write
Read
CRA
CRA
CRA
CRA
MR0A
MR1A
MR2A
CSRA
CRA
SRA
0x20
0x30
0x40
0xB0
0x00
0x13
0x07
0xBB
0x05
; reset RX (receiver)
; reset TX (transmitter)
; reset error status
; reset MR pointer to MR0
; use normal baud rate table. Now MR pointer points to MR1
; select word length & parity. Now MR pointer points to MR2
; normal mode (not loopback) & 1 stop bit
; 9600 baud for RX & TX - clock source is XTAL1
; enable RX & TX
; should get a value 0x0C
B) This example will show how to use hardware flow control for both RX (RTS via OP0) and TX (CTS via IP0):
Write
Write
Write
CRA
MR1A
MR2A
0x10
0x93
0x17
; reset MR pointer to MR1
; select auto RTS control. The -RTS signal is sent via output OP0
; select auto CTS control. The input IP0 serves as the -CTS signal
C) This example will configure clock sources for TX and RX of both channels and C/T. Specifically, XTAL1 will be
used as channel A's TX clock; IP4 as channel A's 16X RX clock; IP5 as channel B's 1X TX clock and XTAL1 as
channel B's RX clock. Also, the C/T will be initialized in the timer mode and IP2 will be used as its clock source.
Some of these will be programmed to appear at the multi-purpose output pins:
Write
Write
Write
Write
Write
Read
Write
ACR
CTPU
CTPL
CSRA
CSRB
STCR
OPCR
0x40
0x00
0x05
0xEB
0xBF
0x06
; C/T initialized in timer mode & IP2 chosen as its clock source
; also, bit-7 = 0, therefore baud rate Set1 has been selected
; It is essential to program CTPU & CTPL before programming OP3
; as C/T output (see below)
; channel A RX clock source: IP4-16X, TX clock source: XTAL1 (if MR0A
; bits 2 and 0 = 0, the TX baud rate is 9600)
; channel B RX clock source: XTAL1 (9600 baud), TX clock source: IP5-1X
; Start the C/T
; C/T output appears at OP3 and channel A's TX 1X clock (this is XTAL1
; clock divided by 16) at OP2.
D) The next example will show how to configure and run channel B's transmitter in a multi-drop application. Note that
all other relevant parameters should be configured already, like baud rate etc.
Write
Write
Write
Write
Write
Write
Write
Read
CRB
MR1B
CRB
TXB
CRB
MR1B
TXB
SRB
0x10
0x1B
0x04
address
0x10
0x13
data
; reset MR pointer to MR1
; word length = 8 and use A/D tag in the place of parity
; Enable transmitter of channel B
; Send the address first (A/D tag = 1)
; reset MR pointer to MR1
; change A/D tag = 0
; You can load the data (A/D tag = 0) immediately after the address. There
; is no need to wait till the transmitter is empty. Load all the data.
; Check to see if the transmitter is empty & ready. You need to do this
; before you can load the next address.
; Repeat the last 5 steps to load different addresses and their data.
Rev. 1.31
23