SC16C852SV_1 © NXP B.V. 2008. All rights reserved.
Product data sheet Rev. 01 — 23 September 2008 10 of 48
NXP Semiconductors
SC16C852SV
Dual UART with 128-byte FIFOs, IrDA, and XScale VLIO bus interface
SC16C852SV will suspend TX transmissions as soon as the stop bit of the character in
process is shifted out. Transmission is resumed after the CTSx input returns to a logic 0,
indicating more data may be sent.
When AFCR1[2] is set to 1, then the function of CTSx pin is mapped to the DSRx pin, and
the function of RTS is mapped to DTRx pin. DSRx and DTRx pins will behave as
described above for CTSx and RTSx.
With the automatic hardware flow control function enabled, an interrupt is generated when
the receive FIFO reaches the programmed trigger level. The RTSx (or DTRx) pin will not
be forced to a logic 1 (RTS off) until the receive FIFO reaches the next trigger level.
However, the RTSx (or DTRx) pin will return to a logic 0 after the receive buffer (FIFO) is
unloaded to the next trigger level below the programmed trigger level. Under the above
described conditions, the SC16C852SV will continue to accept data until the receive FIFO
is full.
When TXINTLVL, RXINTLVL, FLWCNTH and FLWCNTL in the First Extra Register Set
are all zeroes, the hardware and software flow control trigger levels are set by FCR[7:4];
see Table 5.
When either TXINTLVL, RXINTLVL, FLWCNTH or FLWCNTL in the First Extra Register
Set contains any value other than 0x00, the hardware and software flow control trigger
levels are set by FLWCNTH and FLWCNTL. The content in FLWCNTH determines how
many bytes are in the receive FIFO before RTSx (or DTRx) is de-asserted or XOFF is
sent. The content of FLWCNTL determines how many bytes are in the receive FIFO
before RTSx (or DTRx) is asserted, or XON is sent.
In 128-byte FIFO mode, hardware and software flow control trigger levels can be set to
any value between 1 and 128 in granularity of 1. The value of FLWCNTH should always
be greater than FLWCNTL. The UART does not check for this condition automatically, and
if this condition is not met spurious operation of the device might occur. When using
FLWCNTH and FWLCNTL, these registers must be initialized to the proper values before
hardware or software flow control is enabled via the EFR register.
6.6 Software flow control
When software flow control is enabled, the SC16C852SV compares one or two
sequentially received data characters with the programmed Xon or Xoff character
value(s). If the received character(s) match the programmed Xoff values, the
SC16C852SV will halt transmission (TX) as soon as the current character(s) has
completed transmission. When a match occurs, ISR bit 4 will be set (if enabled via IER[5])
and the interrupt output pin (if receive interrupt is enabled) will be activated. Following a
suspension due to a match of the Xoff characters’ values, the SC16C852SV will monitor
the receive data stream for a match to the Xon1/Xon2 character value(s). If a match is
found, the SC16C852SV will resume operation and clear the flags (ISR[4]).
Reset initially sets the contents of the Xon/Xoff 8-bit flow control registers to a logic 0.
Following reset, the user can write any Xon/Xoff value desired for software flow control.
Different conditions can be set to detect Xon/Xoff characters and suspend/resume
transmissions (see Table 24). When double 8-bit Xon/Xoff characters are selected, the
SC16C852SV compares two consecutive receive characters with two software flow
control 8-bit values (Xon1, Xon2, Xoff1, Xoff2) and controls TX transmissions accordingly.
SC16C852SV_1 © NXP B.V. 2008. All rights reserved.
Product data sheet Rev. 01 — 23 September 2008 11 of 48
NXP Semiconductors
SC16C852SV
Dual UART with 128-byte FIFOs, IrDA, and XScale VLIO bus interface
Under the above described flow control mechanisms, flow control characters are not
placed (stacked) in the receive FIFO. When using software flow control, the Xon/Xoff
characters cannot be used for data transfer.
In the event that the receive buffer is overfilling, the SC16C852SV automatically sends an
Xoff character (when enabled) via the serial TX output to the remote UART. The
SC16C852SV sends the Xoff1/Xoff2 characters as soon as the number of received data
in the receive FIFO passes the programmed trigger level. To clear this condition, the
SC16C852SV will transmit the programmed Xon1/Xon2 characters as soon as the
number of characters in the receive FIFO drops below the programmed trigger level.
6.7 Special character detect
A special character detect feature is provided to detect an 8-bit character when EFR[5] is
set. When an 8-bit character is detected, it will be placed on the user-accessible data
stack along with normal incoming RXA/RXB data. This condition is selected in conjunction
with EFR[3:0] (see Table 24). Note that software flow control should be turned off when
using this special mode by setting EFR[3:0] to all zeroes.
The SC16C852SV compares each incoming receive character with Xoff2 data. If a match
occurs, the received data will be transferred to the FIFO, and ISR[4] will be set to indicate
detection of a special character. Although Table 7 “SC16C852SV internal registers” shows
Xon-1, Xon-2, Xoff-1, Xoff-2 with eight bits of character information, the actual number of
bits is dependent on the programmed word length. Line Control Register bits LCR[1:0]
define the number of character bits, that is, either 5 bits, 6 bits, 7 bits or 8 bits. The word
length selected by LCR[1:0] also determine the number of bits that will be used for the
special character comparison. Bit 0 in the Xon-1, Xon-2, Xoff-1, Xoff-2 registers
corresponds with the LSB bit for the received character.
6.8 Interrupt priority and time-out interrupts
The interrupts are enabled by IER[7:0]. Care must be taken when handling these
interrupts. Following a reset, if Interrupt Enable Register (IER) bit1=1,theSC16C852SV
will issue a Transmit Holding Register interrupt. This interrupt must be serviced prior to
continuing operations. The ISR indicates the current singular highest priority interrupt
only. A condition can exist where a higher priority interrupt masks the lower priority
interrupt(s) (see Table 12). Only after servicing the higher pending interrupt will the lower
priority interrupt(s) be reflected in the status register. Servicing the interrupt without
investigating further interrupt conditions can result in data errors.
Receive Data Ready and Receive Time Out have the same interrupt priority (when
enabled by IER[0]), and it is important to serve these interrupts correctly. The receiver
issues an interrupt after the number of characters have reached the programmed trigger
level. In this case, the SC16C852SV FIFO may hold more characters than the
programmed trigger level. Following the removal of a data byte, the user should re-check
LSR[0] to see if there are any additional characters. A Receive Time Out will not occur if
the receive FIFO is empty. The time-out counter is reset at the center of each stop bit
received or each time the Receive Holding Register (RHR) is read. The actual time-out
value is 4 character time, including data information length, start bit, parity bit, and the
size of stop bit, that is, 1×, 1.5×, or 2× bit times.
SC16C852SV_1 © NXP B.V. 2008. All rights reserved.
Product data sheet Rev. 01 — 23 September 2008 12 of 48
NXP Semiconductors
SC16C852SV
Dual UART with 128-byte FIFOs, IrDA, and XScale VLIO bus interface
6.9 Programmable baud rate generator
The SC16C852SV UART contains a programmable rational baud rate generator that
takes any clock input and divides it by a divisor in the range between 1 and (2
16
1). The
SC16C852SV offers the capability of dividing the input frequency by rational divisor. The
fractional part of the divisor is controlled by the CLKPRES register in the First Extra
Register Set.
where:
N is the integer part of the divisor in DLL and DLM registers;
M is the fractional part of the divisor in CLKPRES register;
f
XTAL1
is the clock frequency at XTAL1 pin;
SAMPR is the sampling rate in SAMPR register (16×, 8×, 4×)
Prescaler = 1 when MCR[7] is set to 0.
Prescaler = 4 when MCR[7] is set to 1.
Remark: should always be less than 1.
A single baud rate generator is provided for the transmitter and receiver. The
programmable baud rate generator is capable of operating with a frequency of up to
80 MHz. To obtain maximum data rate, it is necessary to use full rail swing on the clock
input. The SC16C852SV can be configured for internal or external clock operation. For
internal clock operation, an industry standard crystal is connected externally between the
XTAL1 and XTAL2 pins (see Figure 5). Alternatively, an external clock can be connected
to the XTAL1 pin (see Figure 6) to clock the internal baud rate generator for standard or
custom rates (see Table 6).
The generator divides the input 16× clock by any divisor from 1 to (2
16
1). The
SC16C852SV divides the basic external clock by 16. The baud rate is configured via the
CLKPRES, DLL and DLM internal register functions. Customized baud rates can be
achieved by selecting the proper divisor values for the MSB and LSB sections of the baud
rate generator.
Fig 4. Prescalers and baud rate generator block diagram
baud rate
f
XTAL1
MCR 7[] SAMPR N
M
SAMPR
--------------------
+


××
-------------------------------------------------------------------------------------------------
=
M
SAMPR
--------------------
002aac645
OSCILLATOR
XTAL1
XTAL2
DIVIDE-BY-1
DIVIDE-BY-4
CLKPRES
[3:0]
BAUD RATE
GENERATOR
(DLL, DLM)
transmitter and
receiver clock
MCR[7] = 0
MCR[7] = 1

SC16C852SVIET,157

Mfr. #:
Manufacturer:
NXP Semiconductors
Description:
UART Interface IC UART 2-CH 128Byte FIFO 1.8V 36-Pin
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union

Products related to this Datasheet