Philips Semiconductors Product data sheet
SC28L198Octal UART for 3.3 V and 5 V supply voltage
2006 Aug 10
13
For sources other than receiver and transmitters the user may set
the high order bits of an interrupt source’s bid value, thus tailoring
the relative priority of the interrupt sources. The priority of the
receivers and transmitters is controlled by the fill level of their
respective FIFOs. The more filled spaces in the RxFIFO the higher
the bid value; the more empty spaces in the TxFIFO the higher its
priority. Channels whose programmable high order bits are set will
be given interrupt priority higher than those with zeros in their high
order bits , thus allowing increased flexibility. The transmitter and
receiver bid values contain the character counts of the associated
FIFOs as high order bits in the bid value. Thus, as a receiver’s
RxFIFO fills, it bids with a progressively higher priority for interrupt
service. Similarly, as empty space in a transmitter’s TxFIFO
increases, its interrupt arbitration priority increases.
IACKN Cycle, Update CIR
When the host CPU responds to the interrupt, it will usually assert
the IACKN signal low. This will cause the OCTART to generate an
IACKN cycle in which the condition of the interrupting device is
determined. When IACKN asserts, the last valid interrupt number is
captured in the CIR. The value captured presents most of the
important details of the highest priority interrupt at the moment the
IACKN (or the ”Update CIR” command) was asserted.
The Octal UART will respond to the IACKN cycle with an interrupt
vector. The interrupt vector may be a fixed value, the content of the
Interrupt Vector Register, or ,when ”Interrupt Vector Modification is
enabled via ICR, it may contain codes for the interrupt type and/or
interrupting channel. This allows the interrupt vector to steer the
interrupt service directly to the proper service routine. The interrupt
value captured in the CIR remains until another IACKN cycle occurs
or until an ”Update CIR” command is given to the OCTART. The
interrupting channel and interrupt type fields of the CIR set the
current ”interrupt context” of the OCTART. The channel component
of the interrupt context allows the use of Global Interrupt Information
registers that appear at fixed positions in the register address map.
For example, a read of the Global RxFIFO will read the channel B
RxFIFO if the CIR interrupt context is channel b receiver. At another
time read of the GRxFIFO may read the channel D RxFIFO (CIR
holds a channel D receiver interrupt) and so on. Global registers
exist to facilitate qualifying the interrupt parameters and for writing to
and reading from FIFOs without explicitly addressing them.
The CIR will load with x’00 if IACKN or Update CIR is asserted when
the arbitration circuit is NOT asserting and interrupt. In this
condition there is no arbitration value that exceeds the threshold
value.
Polling
Many users prefer polled to interrupt driven service where there are
a large number of fast data channels and/or the host CPU’s other
interrupt overhead is low. The Octal UART is functional in this
environment.
The most efficient method of polling is the use of the ”update CIR”
command (with the interrupt threshold set to zero) followed by a
read of the CIR. This dummy write cycle will perform the same CIR
capture function that an IACKN falling edge would accomplish in an
interrupt driven system. A subsequent read of the CIR, at the same
address, will give information about an interrupt, if any. If the CIR
contains 0s, no interrupt is awaiting service. If the value is
non–zero, the fields of the CIR may be decoded for type, channel
and character count information. Optionally, the global interrupt
registers may be read for particular information about the interrupt
status or use of the global RxD and TxD registers for data transfer
as appropriate. The interrupt context will remain in the CIR until
another update CIR command or an IACKN cycle is initiated by the
host CPU occurs. The CIR loads with x’00 if Update CIR is asserted
when the arbitration circuit has NOT detected arbitration value that
exceeds the threshold value.
Traditional methods of polling status registers may also be used.
They of course are less efficient but give the most variable and
quickest method of changing the order in which interrupt sources
are evaluated and interrogated.
Enabling and Activating Interrupt sources
An interrupt source becomes enabled when its interrupt capability is
set by writing to the Interrupt Mask Register, IMR. An interrupt
source can never generate an IRQN or have its ”bid” or interrupt
number appear in the CIR unless the source has been enabled by
the appropriate bit in an IMR.
An interrupt source is active if it is presenting its bid to the interrupt
arbiter for evaluation. Most sources have simple activation
requirements. The watch-dog timer, break received, Xon/Xoff or
Address Recognition and change of state interrupts become active
when the associated events occur and the arbitration value
generated thereby exceeds the threshold value programmed in the
ICR (Interrupt Control Register).
The transmitter and receiver functions have additional controls to
modify the condition upon which the initiation of interrupt ”bidding”
begins: the TxINT and RxINT fields of the MR0 and MR2 registers.
These fields can be used to start bidding or arbitration when the
RxFIFO is not empty, 50% full, 75% full or 100% full. For the
transmitter it is not full, 50% empty, 75% empty and empty.
Example: To increase the probability of transferring the contents of a
nearly full RxFIFO, do not allow it to start bidding until 50% or 75%
full. This will prevent its relatively high priority from winning the
arbitration process at low fill levels. A high threshold level could
accomplish the same thing, but may also mask out low priority
interrupt sources that must be serviced. Note that for fast channels
and/or long interrupt latency times using this feature should be used
with caution since it reduces the time the host CPU has to respond
to the interrupt request before receiver overrun occurs.
Setting Interrupt Priorities
The bid or interrupt number presented to the interrupt arbiter is
composed of character counts, channel codes, fixed and
programmable bit fields. The interrupt values are generated for
various interrupt sources as shown in the table below: The value
represented by the bits 9 to 3 in the table below are compared
against the value represented by the “Threshold. The “Threshold”
,bits 6 to 0 of the ICR (Interrupt Control Register), is aligned such
that bit 6 of the threshold is compared to bit 9 of the interrupt value
generated by any of the sources. When ever the value of the
interrupt source is greater than the threshold the interrupt will be
generated.
The channel number arbitrates only against other channels. The
threshold is not used for the channel arbitration. This results in
channel D having the highest arbitration number. The decreasing
order is H to A. If all other parts of an arbitration are equal then the
channel number will determine which channel will dominate in the
arbitration process
.
Philips Semiconductors Product data sheet
SC28L198Octal UART for 3.3 V and 5 V supply voltage
2006 Aug 10
14
Table 1. Interrupt Arbitration Priority
Type B9 B8 B7 B6 B5 B4 B3 Bits 2:0
Receiver w/o error RxFIFO Byte Count –1 0 0 1 Channel No
Receiver w/ error RxFIFO Byte Count –1 1 0 1 Channel No
Transmitter 0 TxFIFO Byte Count –1 0 0 Channel No
Change of Break Programmed Field 0 0 1 0 Channel No
Change of State Programmed Field 0 1 1 0 Channel No
Xon/Xoff Programmed Field 0 1 1 1 Channel No
Address Recognition Programmed Field 0 0 1 1 Channel No
Receiver Watch-dog RxFIFO Byte Count –1 As RxFIFO Above Channel No
Threshold Bits 6:0 of Interrupt Control Register 000
Note several characteristics of the above table in bits 6:3. These
bits contain the identification of the bidding source as indicated
below:
x001 Receiver without error
x101 Receiver with error
xx00 Transmitter
0010 Change of Break
0110 Change of State on I/O Ports
0111 Xon/Xoff Event
0011 Address Recognition
The codes form bits 6:3 drive part of the interrupt vector modification
and the Global Interrupt Type Register. The codes are unique to
each source type and Identify them completely. The channel
numbering progresses from ”a” to ”d” as the binary numbers 000 to
011 and identify the interrupting channel uniquely. As the channels
arbitrate ”d” will have the highest bidding value and ”a” the lowest
Note that the transmitter byte count is off–set from that of the
receiver by one bit. This is to give the receiver more authority in the
arbitration since and over–run receiver corrupts the message but an
under–run transmitter is not harmful. This puts some constraints on
how the threshold value is selected. If a threshold is chosen that
has its MSB set to one then a transmitter can never generate an
interrupt! Of course the counter point to this is the desire to set the
interrupt threshold high so interrupts occur only when a maximum or
near maximum number of characters may be transferred.
To give some control over this dilemma control bits have been
provided in the MR0 and MR2 registers of each channel to
individually control when a receiver or transmitter may interrupt. The
use of these bits will prevent a receiver or a transmitter from
entering the arbitration process even though its FIFO fill level is
above that indicated by the threshold value set. The bits in the MR0
and MR2 register are named TxINT (MR0[5:4]) and RxINT
(MR2[3:2])
The watch-dog is included in the table above to show that it affects
the arbitration. It does not have an identity of its own. A barking
watch-dog will prevent any other source type from entering the
arbitration process except enabled receivers. The threshold is
effectively set to zero when any watch-dog times out. The receivers
arbitrate among them selves and the one with the highest fill level
will win the process. Note that the receiver wining the bid may not
be the one that caused the watch-dog to bark.
The fields labeled ”Programmed Field” are the contents of the
Bidding Control Registers, BCRs, for these sources. Setting these
bits to high values can elevate the interrupt importance of the
sources they represent to values almost as high as a full receiver.
For example a COS event may be very important when it represents
the DSR (Data Set Ready) signal from the modem. In this case its
arbitration value should be high. Once the DSR is recognized then
its arbitration value could be reduced or turned off.
There is a single arbiter interrupt number that is not associated with
any of the UART channels. It is the ”Threshold Value” and is
comprised of 7 bits from the Interrupt Control Register, ICR, and
three zeros in the channel field. It is only when one or more of
the enabled interrupt sources generates a arbitration value
larger than the threshold value that the IRQN will be asserted.
When the threshold bidding value is larger than any other bidding
value then the IRQN will be withdrawn. In this condition the CIR will
be loaded with if the IRQN or ”Update CIR” command is asserted.
Because the channels are numbered from 0 to 3 ( A to D) channel 3
will win the bid when all other parts of the bid are equal.
Note: Based on this coding for the receiver and transmitter, a
transmitter would not win a bid in the situation where the Count
Field = 0 unless the threshold value is equal or less than
0000011. A single empty slot is left in the TxFIFO or a single
filled slot in the RxFIFO will bid with a value of zero.
MODES OF OPERATION
Major Modes
Four major modes of operation (normal, auto echo, local loop back
and remote loop back) are provided and are controlled by MR2[7:6].
Three of these may be considered diagnostic. See the MR2 register
description.
The normal mode is the usual mode for data I/O operation. Most
reception and transmission will use the normal mode.
In the auto echo mode, the transmitter automatically re-transmits
any character captured by the channel’s receiver. The receiver 1x
clock is used for the transmitter. This mode returns the received
data back to the sending station one bit time delayed from its
departure. Receiver to host communication is normal. Host to
transmitter communication has no meaning.
In the local loop back mode (used for diagnostic purposes) the
transmitter is internally connected to the receiver input. The
transmitter 1x clock used for the receiver. The RxD input pin is
ignored and the transmitter TxD output pin is held high. This
configuration allows the transmitter to send data to the receiver
without any external parameters to affect the transmission of data.
All status bits, interrupt conditions and processor interface operate
normally. It is recommended that this mode be used when
initially verifying processor to UART interface. The
communication between the transmitter and receiver is entirely
within the UART – it is essentially ”talking to itself”.
Philips Semiconductors Product data sheet
SC28L198Octal UART for 3.3 V and 5 V supply voltage
2006 Aug 10
15
The remote loop back mode (also used for diagnostic purposes) is
similar to auto echo except that the characters are not sent to the
local CPU, nor is the receiver status updated. The received data is
sent directly to the transmitter where it is sent out on the TxD output.
The received data is not sent to the receive FIFO and hence the
host will not normally be participating in any diagnostics.
Minor Modes
The minor modes provide additional features within the major
modes. In general the minor modes provide a reduction in the
control burden and a less stringent interrupt latency time for the host
processor. These modes could be invoked in all of the major
modes.. However it may not be reasonable in many situations.
Watch-dog Timer Time–out Mode
Each receiver in the Octal UART is equipped with a watch-dog timer
that is enabled by the ”Watch-dog Timer Enable Register (WTER).
The watch-dog ”barks” (times out) if 64 counts of the receiver clock
(64 bit times) elapse with no RxFIFO activity. RxFIFO events are a
read of the RxFIFO or GRxFIFO, or the push of a received character
into the RxFIFO. The timer resets when the (G)RxFIFO is read or if
another character is pushed into the RxFIFO. The receiver
watch-dog timer is included to allow detection of the very last
character(s) of a received message that may be waiting in the
RxFIFO, but are too few in number to successfully initiate an
interrupt. The watch-dog timer is enabled for counting if the
channel’s bit in the Watch Dog Timer Control Register (WDTCR) is
set. Note: a read of the GRxFIFO will reset the watch-dog timer of
only the channel specified in the current interrupt context. Other
watch-dogs are unaffected.
The watch-dog timer may generate an input to the interrupt arbiter if
IMR[6] is set. The status of the Watch-dog timer can be seen as Bit
6 of the Interrupt Status Register, ISR[6]. When a Watch-dog timer
that is programmed to generate an interrupt times out it enters the
arbitration process. It will then only allow receivers to enter the
enter the arbitration. All other sources are bidding sources are
disabled. The receivers arbitrate only amongst themselves.. The
receiver only interrupt mode of the interrupt arbiter continues until
the last watch-dog timer event has been serviced. While in the
receiver only interrupt mode, the control of the interrupt threshold
level is also disabled. The receivers arbitrate only between
themselves. The threshold value is ignored. The receiver with the
most FIFO positions filled will win the bid. Hence the user need not
reduce the bidding threshold level in the ICR to see the interrupt
from a nearly empty RxFIFO that may have caused the watch-dog
time–out.
Note: When any watch-dog times our only the receivers arbitrate.
There is no increase in the probability of receiver being serviced
causing the overrun of another receiver since they will still have
priority based upon received character count.
The interrupt will be cleared automatically upon the push of the next
character received or when the RxFIFO or GRxFIFO is read. The
ICR is unaffected by the watch-dog time–out interrupt and normal
interrupt threshold level sensing resumes after the last watch-dog
timer event has been processed. If other interrupt sources are
active, the IRQN pin may remain low.
Wake Up Mode
The SC28L198 provides two modes of this common asynchronous
“party line” protocol: the new automatic mode with 3 sub modes and
the default Host operated mode. The automatic mode has several
sub modes (see below). In the full automatic the internal state
machine devoted to this function will handle all operations
associated with address recognition, data handling, receiver enables
and disables. In both modes the meaning of the parity bit is
changed. It is often referred to as the A/D bit or the address/data
bit. It is used to indicate whether the byte presently in the receiver
shift register is an ”address” byte or a ”data” byte. ”1” usually means
address; ”0” data.
Its purpose is to allow several receivers connected to the same data
source to be individually addressed. Of course addressing could be
by group also. Normally the ”Master” would send an address byte to
all receivers ”listening” The receiver would then recognize its
address and enable itself receiving the following data stream. Upon
receipt of an address not its own it would then disable itself. As
descried below appropriate status bits are available to describe the
operation.
Enabling the Wake Up mode
This mode is selected by programming bits MR1[4:3] to ’11’. The
sub modes are controlled by bits 6, 1, 0 in the MR0 register. Bit 6
controls the loading of the address byte to the RxFIFO and MR0[1:0]
determines the sub mode as shown in the following table.
MR0[1:0] = 00 Normal Wake Up Mode (default). Host controls
operation via interrupts and commands written to
the command register (CR).
MR0[1:0] = 01 Auto wake. Enable receiver on address
recognition for this station. Upon recognition of
its assigned address, in the Auto Wake mode,
the local receiver will be enabled and normal
receiver communications with the host will be
established.
MR0[1:0] = 10 Auto Doze. Disable receiver on address
recognition, not for this station. Upon recognition
of an address character that is not its own, in the
Auto Doze mode, the receiver will be disabled
and the address just received either discarded or
pushed to the RxFIFO depending on the
programming of MR0[6].
MR0[1:0] = 11 Auto wake and doze. Both modes above. The
programming of MR0[1:0] to 11 will enable both
the auto wake and auto doze features.
The enabling of the wake–up mode executes a partial enabling
of the receiver state machine. Even though the receiver has
been reset the wake up mode will over ride the disable and
reset condition.
Normal Wake up (The default configuration)
In the default configuration for this mode of operation, a ’master
station transmits an address character followed by data characters
for the addressed ’slave’ station. The slave stations, whose
receivers are normally disabled (not reset), examine the received
data stream and interrupts the CPU (by setting RxRDY) only upon
receipt of an address character. The CPU (host) compares the
received address to its station address and enables the receiver if it
wishes to receive the subsequent data characters. Upon receipt of
another address character, the CPU may disable the receiver to
initiate the process again
. A transmitted character consists of a start bit, the programmed
number of data bits, an address/data (A/D) bit, and the programmed
number of stop bits. The polarity of the transmitted A/D bit is
selected by the CPU by programming bit MR1[2]. MR1[2] = 0
transmits a zero in the A/D bit position which identifies the
corresponding data bits as data. MR1[2] = 1 transmits a one in the
A/D bit position which identifies the corresponding data bits as an
address. The CPU should program the mode register prior to
loading the corresponding data bytes into the TxFIFO.

SC28L198A1A,529

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