Philips Semiconductors Product data sheet
SC28L198Octal UART for 3.3 V and 5 V supply voltage
2006 Aug 10
10
software reset is issued through command 3x of the Command
register (CR). The disable is done by setting the transmitter disable
bit also in the command register. If the transmitter is disabled, it
continues operating until the character currently being transmitted, if
any, is completely sent, including the stop bit. When reset the
transmitter stops immediately, drives the transmitter serial data out
put to a high level and discards any data in the TxFIFO.
Transmission of “break”s
Transmission of a break character is often needed as a
synchronizing condition in a data stream. The “break” is defined as a
start bit followed by all zero data bits by a zero parity bit (if parity is
enabled) and a zero in the stop bit position. The forgoing is the
minimum time to define a break. The transmitter can be forced to
send a break (continuous low condition) by issuing a start break
command via the CR. This command does not have any timing
associated with it. Once issued the TxD output will be driven low
(the spacing condition) and remain there until the host issues a
command to “stop break” via the CR or the transmitter is issued a
software or hardware reset. In normal operation the break is usually
much longer than one character time.
1x and 16x modes, Transmitter
The transmitter clocking has two modes: 16x and 1x. Data is
always sent at the 1x rate. However the logic of the transmitter may
be operated with a clock that is 16 times faster than the data rate or
at the same rate as the data i.e. 1x. All clocks selected internally
for the transmitter (and the receiver) will be 16x clocks. Only when
an external clock is selected may the transmitter logic and state
machine operate in the 1x mode. The 1x or 16x clocking makes
little difference in transmitter operation. (this is not true in the
receiver) In the 16X clock mode the transmitter will recognize a byte
in the TxFIFO within 1/16 to 2/16 bit time and thus begin
transmission of the start bit; in the 1x mode this delay may be up to
2 bit times.
Transmitter FIFO
The transmitter buffer memory is a 16 byte by 8 bit ripple FIFO. The
host writes characters to this buffer. This buffer accepts data only
when the transmitter is enabled. The transmitter state machine
reads them out in the order they were received and presents them to
the transmitter shift register for serialization. The transmitter adds
the required start, parity and stop bits as required the MR2 register
programming. The start bit (always one bit time in length) is sent
first followed by the least significant bit (LSB) to the most significant
bit (MSB) of the character, the parity bit (if used) and the required
stop bit(s).
Logic associated with the FIFO encodes the number of empty
positions available in a four bit value. This value is concatenated
with the channel number and type interrupt type identifier and
presented to the interrupt arbitration system. The encoding of the
”positions empty” value is always 1 less than the number of
available positions. Thus, an empty TxFIFO will bid with the value
or 15; when full it will not bid at all; one position empty bids with the
value 0. A full FIFO will not bid since a character written to it will be
lost
Normally a TxFIFO will present a bid to the arbitration system when
ever it has one or more empty positions. The MR0[5:4] allow the
user to modify this characteristic so that bidding will not start until
one of four levels (empty, 3/4 empty, 1/2 empty, not full) have been
reached. As will be shown later this feature may be used to make
slight improvements in the interrupt service efficiency. A similar
system exists in the receiver.
Receiver
The receiver accepts serial data on the RxD pin, converts the serial
input to parallel format, checks for start bit, stop bit, parity bit (if
any),framing error or break condition, and presents the assembled
character and its status condition to the CPU via the RxFIFO. Three
status bits are FIFOed with each character received. The RxFIFO is
really 11 bits wide; eight data and 3 status. Unused FIFO bits for
character lengths less than 8 bits are set to zero. It is important to
note that receiver logic considers the entire message to be
contained within the start bit to the stop bit. It is not aware that a
message may contain many characters. The receiver returns to its
idle mode at the end of each stop bit! As described below it
immediately begins to search for another start bit which is normally,
of course, immediately forth coming.
1x and 16x mode, Receiver
The receiver operates in one of two modes; 1x and 16x. Of the two,
the 16x is more robust and the preferred mode. Although the 1x
mode may allow a faster data rate is does not provide for the
alignment of the receiver 1x data clock to that of the transmitter.
This strongly implies that the 1x clock of the remote transmitter is
available to the receiver; the two devices are physically close to
each other.
The 16x mode operates the receiver logic at a rate 16 times faster
than the 1x data rate. This allows for validation of the start bit,
validation of level changes at the receiver serial data input (RxD),
and a stop bit length as short as 9/16 bit time. Of most importance
in the 16x mode is the ability of the receiver logic to align the phase
of the receiver 1x data clock to that of the transmitter with an
accuracy of less than 1/16 bit time.
When the receiver is enabled ( via the CR register) it begins looking
for a high to low (mark to space) transition on the RxD input pin. If a
transition is detected, an internal counter running at 16 times the
data rate is reset to zero. If the RxD remains low and is still low
when the counter reaches a count of 7 the receiver will consider this
a valid start bit and begin assembling the character. If the RxD input
returns to a high state the receiver will reject the previous high to low
(mark to space) transition on the RxD input pin. This action is the
”validation” of the start bit and also establishes the phase of the
receiver 1x clock to that of the transmitter The counter operating at
16x the data rate is the generator for the 1x data rate clock. With
the phase of the receiver 1x clock aligned to the falling of the start
bit (and thus aligned to the transmitter clock) AND with a valid start
bit having been verified the receiver will continue receiving bits by
sampling the RxD input on the rising edge of the 1x clock that is
being generated by the above mentioned counter running 16 times
the data rate. Since the falling edge of the 1x clock was aligned to
falling edge of the start bit then the rising of the clock will be in the
”center” of the bit cell.
This action will continue until a full character has been assembled.
Parity , framing, and stop bit , and break status is then assembled
and the character and its status bits are loaded to the RxFIFO At
this point the receiver has finished its task for that character and will
immediately begin the search for another start bit.
Receiver Status Bits
There are five (5) status bits that are evaluated with each byte (or
character) received: received break, framing error, parity error,
overrun error, and change of break. The first three are appended to
each byte and stored in the RxFIFO. The last two are not
necessarily related to the a byte being received or a byte that is in
the RxFIFO. They are however developed by the receiver state
machine
Philips Semiconductors Product data sheet
SC28L198Octal UART for 3.3 V and 5 V supply voltage
2006 Aug 10
11
. The ”received break” will always be associated with a zero byte in
the RxFIFO. It means that zero character was a break character
and not a zero data byte. The reception of a break condition will
always set the ”change of break” (see below) status bit in the
Interrupt Status Register(ISR).
A framing error occurs when a non zero character was seen and
that character has a zero in the stop bit position.
The parity error indicates that the receiver generated parity was not
the same as that sent by the transmitter.
The overrun error occurs when the RxFIFO is full, the receiver shift
register is full and another start bit is detected. At this moment the
receiver has 17 valid characters and the start bit of the 18th has
been seen. At this point the host has approximately 7/16 bit time to
read a byte from the RxFIFO or the overrun condition will be set and
the 18th character will overrun the 17th and the 19th the 18th and so
on until an open position in the RxFIFO is seen. The meaning of the
overrun is that data has been lost. Data in the RxFIFO remains
valid. The receiver will begin placing characters in the RxFIFO as
soon as a position becomes vacant.
Note: Precaution must be taken when reading an overrun FIFO.
There will be 16 valid characters. Data will begin loading as soon as
the first character is read. The 17
th.
character will have been
received as valid but it will not be known how many characters were
lost between the two characters of the 16
th.
and 17
th.
reads of the
RxFIFO
The ”Change of break” means that either a break has been detected
or that the break condition has been cleared. This bit is available in
the ISR. The beginning of a break will be signaled by the break
change bit being set in the ISR AND the received break bit being set
in the SR. At the termination of the break condition only the change
of break in the ISR will be set. After the break condition is detected
the termination of the break will only be recognized when the RxD
input has returned to the high state for two successive edges of the
1x clock; 1/2 to 1 bit time.
The receiver is disabled by reset or via CR commands. A disabled
receiver will not interrupt the host CPU under any circumstance in
the normal mode of operation. If the receiver is in the multi-drop or
special mode, it will be partially enabled and thus may cause an
interrupt. Refer to section on Wake–Up and minor modes and the
register description for MR1 for more information.
Receiver FIFO
The receiver buffer memory is a 16 byte ripple FIFO with three
status bits appended to each data byte. (The FIFO is then 16 11 bit
”words”). The receiver state machine gathers the bits from the
receiver shift register and the status bits from the receiver logic and
writes the assembled byte and status bits to the RxFIFO. Logic
associated with the FIFO encodes the number of filled positions for
presentation to the interrupt arbitration system. The encoding is
always 1 less than the number of filled positions. Thus, a full
RxFIFO will bid with the value or 15; when empty it will not bit at all;
one position occupied bids with the value 0. An empty FIFO will not
bid since no character is available. Normally RxFIFO will present a
bid to the arbitration system when ever it has one or more filled
positions. The MR2[3:2 bits allow the user to modify this
characteristic so that bidding will not start until one of four levels
(one or more filled, 1/2 filled, 3/4 filled, full) have been reached. As
will be shown later this feature may be used to make slight
improvements in the interrupt service efficiency. A similar system
exists in the transmitter.
RxFIFO Status: Status reporting modes
The description below applies to the upper three bits in the ”Status
Register” These three bits are not ”in the status register”; They are
part of the RxFIFO. The three status bits at the top of the RxFIFO
are presented as the upper three bits of the status register included
in each UART.
The error status of a character , as reported by a read of the SR
(status register upper three bits) can be provided in two ways, as
programmed by the error mode control bit in the mode register:
”Character mode ” or the ”Block Mode”. The block mode may be
further modified (via a CR command) to set the status bits as the
characters enter the FIFO or as they are read from the FIFO.
In the ’character’ mode, status is provided on a character by
character basis as the characters are read from the RxFIFO: the
”status” applies only to the character at the top of the RxFIFO – The
next character to be read
In the ’block’ mode, the status provided in the SR for these three bits
is the logical OR of the status for all characters coming to the top of
the RxFIFO, since the last reset error command was issued. In this
mode each of the status bits stored in the RxFIFO are passed
through a latch as they are sequentially read. If any of the
characters has an error bit set then that latch will set and remain set
until reset with an ”Reset Error” command from the command
register or a receiver reset. The purpose of this mode is indicating
an error in the data block as opposed to an error in a character
The latch used in the block mode to indicate ”problem data” is
usually set as the characters are read out of the RxFIFO. Via a
command in the CR the latch may be configured to set the latch as
the characters are pushed (loaded to) the RxFIFO. This gives the
advantage of indicating ”problem data” 16 characters earlier .
In either mode, reading the SR does not affect the RxFIFO. The
RxFIFO is ’popped’ only when the RxFIFO is read. Therefore, the
SR should be read prior to reading the corresponding data
character.
If the RxFIFO is full when a new character is received, that
character is held in the receive shift register until a RxFIFO position
is available. At this time there are 17 valid characters in the
RxFIFO. If an additional character is received while this state exists,
the contents of the RxFIFO are not affected: the character
previously in the shift register is lost and the overrun error status bit,
SR[4], will be set upon receipt of the start bit of the new
(overrunning) character.
I/O ports
Each of the eight UARTs includes four I/O ports equipped with
”change of state” detectors. The pins are individually programmable
for an input only function or one of three output functions. These
functions are controlled by the ”I/O Port Configuration Register
(I/OPCR)) They will normally be used for the RTSN–CTSN, DTR
hardware signals, RxD or TxD input or output clocks or switch inputs
as well as data out put from the I/OPIOR register.
It is important to note that the input circuits are always active. That
is the signal on a port, whether it is derived from an internal or
external source is always available to the internal circuits associated
with an input on that port.
The ”Change of State” (COS) detectors are sensitive to both a 1 to 0
or a 0 to 1 transition. The detectors are controlled by the internal
38.4 KHz baud rate and will signal a change when a transition has
been stable for two rising edges of this clock. Thus a level on the
I/O ports must be stable for 26 s to 52 s. Defining a port as an
output will disable the COS detector at that port. The condition of
Philips Semiconductors Product data sheet
SC28L198Octal UART for 3.3 V and 5 V supply voltage
2006 Aug 10
12
the four I/O pins and their COS detectors is available at any time in
the IPR (Input Port Register)
The control of data and COS enable for these ports is through the
I/OPIOR register. This is a read/write register and gives individual
control to the enabling of the change of state detectors and also to
the level driven by I/O pins when programmed to drive the logic level
written to the four lower bits of the I/OPIOR. A read of this register
will indicate the data on the pin at the time of the read and the state
of the enabled COS detectors.
General Purpose Pins
In addition to the I/O ports for each UART four other ports are
provided which service the entire chip. Two are dedicated as inputs
and one as an output. The G
IN
1 and G
IN
0 are the input pins; G
OUT
0
the output. These ports are multiplexed to nearly every functional
unit in the chip. See the registers which describe the multitude of
connections available for these pins. The G
OUT
0 pin is highly
multiplexed output and is controlled by four (4) registers: GPOSR,
GPOR, GPOC and GPOD. The G
IN
0 and G
IN
1 pins are available to
the receivers and transmitters, BRG counters and the G
OUT
0 pin.
Global Registers
The ”Global Registers”, 19 in all, are driven by the interrupt system.
These are not real hardware devices. They are defined by the
content of the CIR (Current Interrupt Register) as a result of an
interrupt arbitration. In other words they are indirect registers
pointed to by the content of the CIR. The list of global register
follows:
GIBCR The byte count of the interrupting FIFO
GICR Channel number of the interrupting channel
GITR Type identification of interrupting channel
GRxFIFO Pointer to the interrupting receiver FIFO
GTxFIFO Pointer to the interrupting transmitter FIFO
A read of the GRxFIFO will give the content of the RxFIFO that
presently has the highest bid value. The purpose of this system is
to enhance the efficiency of the interrupt system. The global
registers and the CIR update procedure are further described in the
Interrupt Arbitration
system
Character Recognition
The character recognition circuits are basically designed to provide
general purpose character recognition. Additional control logic has
been added to allow for Xon/Xoff flow control and for recognition of
the address character in the multi-drop or ”wake–up” mode. This
logic also allows for the generation of an interrupts in either the
general purpose recognition mode or the specific conditions
mentioned above.
Xon Xoff Characters
The programming of these characters is usually done individually.
However a method has been provided to write to all of registers in
one operation. There are ”Gang Load” and a ”Gang Write”
commands provided in the channel A Command Register. When
these commands are executed all registers are programmed with
the same characters. The ”write” command loads a used defined
character; the ’load” command loads the standard Xon/Xoff
characters. Xon is x’11; Xoff x’13’. Any enabling of the Xon/Xoff
functions will use the contents of the Xon and Xoff character
registers as the basis on which recognition is predicated.
Multi-drop or Wake up or 9 bit mode
This mode is used to address a particular UART among a group
connected to the same serial data source. Normally it is
accomplished by redefining the meaning of the parity bit such that it
indicates a character as address or data. While this method is fully
supported in the SC28L198 it also supports recognition of the
character itself. Upon recognition of its address the receiver will be
enabled and data pushed onto the RxFIFO.
Further the Address recognition has the ability, if so programmed, to
disable (not reset) the receiver when an address is seen that is not
recognized as its own. The particular features of ”Auto Wake and
Auto Doze” are described in the detail descriptions below.
Note: Care should be taken in the programming of the character
recognition registers. Programming x’00, for example, may result in
a break condition being recognized as a control character. This will
be further complicated when binary data is being processed.
Character Stripping
The MR0 register provides for stripping the characters used for
character recognition. Recall that the character recognition may be
conditioned to control several aspects of the communication.
However this system is first a character recognition system. The
status of the various states of this system are reported in the XISR
and ISR registers. The character stripping of this system allows for
the removal of the specified control characters from the data stream:
two for the Xon /Xoff and one for the wake up. Via control in the
MR0 register these characters may be discarded (stripped) from the
data stream when the recognition system “sees” them or they may
be sent on the RxFIFO. Whether they are stripped or not the
recognition will process them according to the action requested: flow
control, wake up, interrupt generation, etc. Care should be
exercised in programming the stripping option if noisy environments
are encountered. If a normal character was corrupted to an Xoff
character turned off the transmitter and it was then stripped, then the
stripping action could make it difficult to determine the cause of
transmitter stopping.
Interrupt Arbitration and IRQN generation
Interrupt arbitration is the process used to determine that an
interrupt request should be presented to the host. The arbitration is
carried out between the ”Interrupt Threshold” and the ”sources”
whose interrupt bidding is enabled by the IMR. The interrupt
threshold is part of the ICR (Interrupt Control Register) and is a
value programmed by the user. The ”sources” present a value to
the interrupt arbiter. That value is derived from four fields: the
channel number, type of interrupt source, FIFO fill level, and
programmable value. . Only when one or more of these values
exceeds the threshold value in the interrupt control register will the
interrupt request (IRQN) be asserted.
Following assertion of the IRQN the host will either assert
IACKN(Interrupt Acknowledge) or will use the command to ”Update
the CIR”. At the time either action is taken the CIR will capture the
value of the source that is prevailing in the arbitration process. (Call
this value the winning bid)
The value in the CIR is the central quantity that results from the
arbitration. It contains the identity of the interrupting channel, the
type of interrupt in that channel (RxD, TxD, COS etc.) the fill levels
of the RxD or TxD FIFOs and , in the case of an RxD interrupt an
indicator of error data or good data. It also drives the Global
Registers associated with the interrupt. Most importantly it drives
the modification of the Interrupt Vector.
The arbitration process is driven by the Sclk. It scans the 10 bits of
the arbitration bus at the Sclk rate developing a value for the CIR
every 22 Sclk cycles. New arbitration values presented to the
arbitration block during an arbitration cycle will be evaluated in the
next arbitration cycle.

SC28L198A1BE,528

Mfr. #:
Manufacturer:
NXP Semiconductors
Description:
UART Interface IC 3V-5V 8CH UART INTEL/MOT INTRF
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union