ST16C552 ST16C552A DUAL UART WITH 16-BYTE FIFO AND PARALLEL PRINTER PORT December 2003 DESCRIPTION The ST16C552/ST16C552A (552/552A) is a dual universal asynchronous receiver and transmitter (UART) with an added bi-directional parallel port that is directly compatible with a CENTRONICS type printer. The parallel port is designed such that the user can configure it as general purpose I/O interface, or for connection to other printer devices. The 552/552A provides enhanced UART functions with 16 byte FIFO’s, a modem control interface, and data rates up to 1.5Mbps. Onboard status registers provide the user with error indications and operational status. The system interrupts and control may be tailored to meet user requirements. An internal loop-back capability allows onboard diagnostics. A programmable baud rate generator is provided to select transmit and receive clock rates from 50 bps to 1.5 Mbps. The 552/552A is available in a 68 pin PLCC package. The 552/552A is compatible with the 16C450 and 16C550. The difference between the ST16C552 and ST16C552A is the logic state of the printer port, INTP interrupt. The INTP interrupt is active high (logic 1) on the ST16C552 whereas INTP is active low (logic 0) on the ST16C552A part when the interrupt latch mode is selected. The 552/552A is fabricated in an advanced CMOS process with power down mode to reduce the power consumption. The 552A does not support the power down mode. PLCC Package -RXRDYA -CDB GND -RIB -DSRB CLK -CSB GND BIDEN ACK PE -BUSY SLCT VCC ERROR RXB -RXRDYB 8 7 6 5 4 3 2 1 68 67 66 65 64 63 62 61 TXB 10 60 INTB -DTRB 11 59 INTP -RTSB 12 58 -SLCTIN -CTSB 13 57 INIT D0 14 56 -AUTOFDXT D1 15 55 -STROBE D2 16 54 GND D3 17 53 PD0 D4 18 52 PD1 D5 19 51 PD2 D6 20 50 PD3 D7 21 49 PD4 -TXRDYA 22 48 PD5 VCC 23 47 PD6 -RTSA 24 46 PD7 -DTRA 25 45 INTA TXA 26 44 RDOUT 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 GND -CDA -RIA -DSRA -CSA A2 A1 A0 -IOW -IOR -CSP -RESET VCC RXA -TXRDYB INTSEL ST16C552CJ68 ST16C552ACJ68 -CTSA Added features in device revision "F" and newer: • 5V Tolerant Inputs • Pin to pin and functional compatible to ST16C452/ 452PS, TL16C552 • 2.97 to 5.5 volt operation • Software compatible with INS8250, NS16C550 • 1.5 Mbps transmit/receive operation (24MHz) • 16 byte transmit FIFO • 16 byte receive FIFO with error flags • Independent transmit and receive control • Modem and printer status registers • UART port and printer port Bi-directional • Printer port direction set by single control bit or 8 bit pattern (AA/55) • Modem control signals (-CTS, -RTS, -DSR, -DTR, -RI, -CD) • Programmable character lengths (5, 6, 7, 8) • Even, odd, or no parity bit generation and detection • TTL compatible inputs, outputs • Power down mode 9 FEATURES ORDERING INFORMATION Part number Pins Package Operating temperature Device Status ST16C552CJ68 ST16C552ACJ68 ST16C552IJ68 ST16C552AIJ68 68 68 68 68 PLCC PLCC PLCC PLCC 0° C to + 70° C 0° C to + 70° C -40° C to + 85° C -40° C to + 85° C Active Active Active Active Rev. 3.40 EXAR Corporation, 48720 Kato Road, Fremont, CA 94538 • (510) 668-7000 • FAX (510) 668-7017 ST16C552/552A Transmit FIFO Registers Transmit Shift Register TX A,B Receive FIFO Registers Receive Shift Register RX A,B Printer Data Ports PD0-PD7 Inter Connect Bus Lines & Control signals A0-A2 -CSA -CSB -CSP Register Select Logic D0-D7 -IOR -IOW -RESET BIDEN Data bus & Control Logic Figure 1, Block Diagram Printer Control Logic -STROBE INIT -AUTOFDX -SELCTIN PE, SELECT -BUSY, -ACK ERROR Clock & Baud Rate Generator CLK INT A,B INTP -RXRDY -TXRDY Interrupt Control Logic -DTR A,B -RTS A,B Rev. 3.40 2 Modem Control Logic -CTS A,B -RI A,B -CD A,B -DSR A,B ST16C552/552A SYMBOL DESCRIPTION Symbol Pin Signal Type Pin Description A0 35 I Address-0 Select Bit - Internal registers address selection. A1 34 I Address-1 Select Bit - Internal registers address selection. A2 33 I Address-2 Select Bit - Internal registers address selection. -ACK 68 I Acknowledge (with internal pull-up) - General purpose input or line printer acknowledge (active low). a logic 0 from the printer, indicates successful data transfer to the print buffer. -AutoFDXT 56 I/O General purpose I/O (open drain, with internal pull-up) or automatic line feed (open drain input with internal pull-up). When this signal is low the printer should automatically line feed after each line is printed. BIDEN 1 I Bi-Direction Enable - PD7-PD0 direction select. A logic 0 sets the parallel port for I/O Select Register Control. A logic 1 sets the parallel port for Control Register Bit-5 Control. BUSY 66 I Busy (with internal pull-up) - General purpose input or line printer busy (active high). can be used as an output from the printer to indicate printer is not ready to accept data. CLK 4 I Clock Input. - An external clock must be connected to this pin to clock the baud rate generator and internal circuitry (see Programmable Baud Rate Generator). This input is not 5V tolerant. -CSA 32 I Chip Select A - A logic 0 at this pin enables the serial channel-A UART registers for CPU data transfers. -CSB 3 I Chip Select B - A logic 0 at this pin enables the serial channel-B UART registers for CPU data transfers. -CSP 38 I Printer Port Chip Select - (active low). A logic 0 at this pin enables the parallel printer port registers and/or PD7-PD0 for external CPU data transfers. D0-D7 14-21 I/O Data Bus (Bi-directional) - These pins are the eight bit, three state data bus for transferring information to or from the controlling CPU. D0 is the least significant bit and the first data bit in a transmit or receive serial data stream. Rev. 3.40 3 ST16C552/552A SYMBOL DESCRIPTION Symbol Pin Signal Type 63 I GND 2,7,54 27 Pwr Signal and Power Ground. INIT 57 I/O Initialize (open drain, with internal pull-up) - General purpose I/O signal. This pin may be connected for initialization service of a connected line printer. Generally when this signal is a logic 0, any connected printer will be initialized. 45,60 O Interrupt output A/B ( three state active high) - These pins provide individual channel interrupts, INT A-B. INT A-B are enabled when MCR bit-3 is set to a logic 1, interrupts are enabled in the interrupt enable register (IER), and when an interrupt condition exists. Interrupt conditions include: receiver errors, available receiver buffer data, transmit buffer empty, or when a modem status flag is detected. -INTP 59 O Printer Interrupt, - This pin can be used to signal the interrupt status of a connected printer. This pin basically tracks the -ACK input pin, When INTSEL is a logic 0 and interrupts are enabled by bit-4 in the control register. A latched mode can be selected by setting INTSEL to a logic 1. In this case the interrupt -INTP is generated normally but does not return to the inactive state until the trailing edge of the read cycle (-IOR pin). -INTP is three stated until CON bit-4 is set to a logic 1. The difference between the ST16C552 and ST16C552A is the output state of INTP. INTP is active high (logic 1) on the ST16C552 whereas INTP is active low (logic 0) on the ST16C552A part when the interrupt latch mode is selected. INTSEL 43 I Interrupt Select mode - This pin selects the interrupt type for the printer port (-INTP). When this pin is a logic 0, the external -ACK signal state is generally followed, minus some minor propagation delay. Making this pin a logic 1 or connecting it to VCC will set the interrupt latched mode. In this case the printer interrupt (-INTP) will not return to a logic 0 on the 552 or a logic 1 on the 552A (552A is inverted), until the -ERROR INT A/B Pin Description Error, Printer (with internal pull-up) - General purpose input or line printer error. This pin may be connected to the active low (logic 0) output of a printer to indicate an error condition. Rev. 3.40 4 ST16C552/552A SYMBOL DESCRIPTION Symbol Pin Signal Type Pin Description trailing edge of -IOR (end of the external CPU read cycle). -IOR 37 I Read strobe.- A logic 0 transition on this pin will place the contents of an Internal register defined by address bits A0A2 for either UART channels A/B or A0-A1 for the printer port, onto D0-D7 data bus for a read cycle by an external CPU. -IOW 36 I Write strobe.- A logic 0 transition on this pin will transfer the data on the internal data bus (D0-D7), as defined by either address bits A0-A2 for UART channels A/B or A0-A1 for the printer port, into an internal register during a write cycle from an external CPU. 46-53 I/O Printer Data port (Bi-directional three state) - These pins are the eight bit, three state data bus for transferring information to or from an external device (usually a printer). D0 is the least significant bit. PD7-PD0 are latched during a write cycle (output mode). PE 67 I Paper Empty - General purpose input or line printer paper empty (Internal pull-up). This pin can be connected to provide a printer out of paper indication. RDOUT 44 O Read Out (active high) - This pin goes to a logic 1 when the external CPU is reading data from the 552/552A. This signal can be used to enable/disable external transceivers or other logic functions. -RESET 39 I Master Reset (active low) - a logic 0 on this pin will reset the internal registers and all the outputs. The UART transmitter output and the receiver input will be disabled during reset time. (See ST16C552/552A External Reset Conditions for initialization details.) 9,61 O Receive Ready A/B (active low). This function is associated with the dual channel UARTs and provide the RX FIFO/ RHR status for individual receive channels (A-B). A logic 0 indicates there is receive data to read/unload, i.e., receive ready status with one or more RX characters available in the FIFO/RHR. This pin is a logic 1 when the FIFO/RHR is empty or when the programmed trigger level has not been PD7-PD0 -RXRDY A/B Rev. 3.40 5 ST16C552/552A SYMBOL DESCRIPTION Symbol Pin Signal Type Pin Description reached. SLCT 65 I Select (with internal pull-up) - General purpose input or line printer select status. Normally this pin is connected to a printer output (active low) that indicates the ready status of a printer, i.e., on-line and/or on-line and ready. -SLCTIN 58 I/O Select In (open drain, with internal pull-up) - General purpose I/O or line printer select. This pin can be read via Bit-3 in the printer command register, or written via bit-3 in the printer control register. As this pin is open-drain, it can be wire-or’d with other outputs. Normally this signal is connected with a printer to select the printer with an active low. -STROBE 55 I/O Strobe (open drain, with internal pull-up) - General purpose I/O or data strobe output. Normally this output is connected to a printer and indicates that valid data is available at the printer port (PD0-PD7). 22,42 O Transmit Ready A/B (active low). These outputs provide the TX FIFO/THR status for individual transmit channels (A-B). As such, an individual channel’s -TXRDY A-B buffer ready status is indicated by logic 0, i.e., at least one location is empty and available in the FIFO or THR. This pin goes to a logic 1 when there are no more empty locations in the FIFO or THR. 23,40,64 Pwr 2.97 to 5.5V power supply input. All inputs are 5V tolerant except for XTAL1 and all printer port inputs for devices with revision "F" and newer. -CD A/B 29,8 I Carrier Detect (active low) - These inputs are associated with individual UART channels A through B. A logic 0 on this pin indicates that a carrier has been detected by the modem for that channel. -CTS A/B 28,13 I Clear to Send (active low) - These inputs are associated with individual UART channels, A through B. A logic 0 on this pin(s) indicates the modem or data set is ready to accept transmit data from the 552/552A for the given channel. Status can be tested by reading MSR bit-4 for that channel(s). -CTS has no -TXRDY A/B VCC Rev. 3.40 6 ST16C552/552A SYMBOL DESCRIPTION Symbol Pin Signal Type Pin Description effect on the transmit or receive operation. -DSR A/B 31,5 I Data Set Ready (active low) - These inputs are associated with individual UART channels, A through B. A logic 0 on this pin(s) indicates the modem or data set is powered-on and is ready for data exchange with the UART. This pin has no effect on the UART’s transmit or receive operation. -DTR A/B 25,11 O Data Terminal Ready (active low) - These outputs are associated with individual UART channels, A through B. A logic 0 on this pin(s) indicates that the 552/552A is poweredon and ready. This pin can be controlled via the modem control register for channel(s) A-B. Writing a logic 1 to MCR bit-0 will set the -DTR output to logic 0, enabling the modem. This pin will be a logic 1 after writing a logic 0 to MCR bit0, or after a reset. This pin has no effect on the UART’s transmit or receive operation. -RI A/B 30,6 I Ring Indicator (active low) - These inputs are associated with individual UART channels, A through B. A logic 0 on this pin(s) indicates the modem has received a ringing signal from the telephone line(s). A logic 1 transition on this input pin will generate an interrupt for the ringing channel(s). This pin does not have any effect on the transmit or receive operation. -RTS A/B 24,12 O Request to Send (active low) - These outputs are associated with individual UART channels, A through B. A logic 0 on the -RTS pin(s) indicates the transmitter has data ready and waiting to send for the given channel(s). Writing a logic 1 in the modem control register (MCR bit-1) will set this pin to a logic 0 indicating data is available. After a reset this pin will be set to a logic 1. This pin does not have any effect on the transmit or receive operation. RX A/B 41,62 I Receive Data Input, RX A-B. - These inputs are associated with individual serial channel(s) to the 552. The RX signal will be a logic 1 during reset, idle (no data), or when the transmitter is disabled. During the local loop-back mode, the RX input pins are disabled and TX data is internally connected to the Rev. 3.40 7 ST16C552/552A Symbol Pin Signal Type Pin Description UART RX Inputs, internally. TX A/B 26,10 O Transmit Data, TX A-B - These outputs are associated with individual serial transmit channel(s) from the 552/552A. The TX signal will be a logic 1 during reset, idle (no data), or when the transmitter is disabled. During the local loopback mode, the TX output pins are disabled and TX data is internally connected to the UART RX Inputs. GENERAL DESCRIPTION However with the 16 byte FIFO in the 552/552A, the data buffer will not require unloading/loading for 1.53 ms. This increases the service interval giving the external CPU additional time for other applications and reducing the overall UART interrupt servicing time. In addition, the 4 selectable levels of FIFO trigger interrupt is uniquely provided for maximum data throughput performance especially when operating in a multi-channel environment. The FIFO memory greatly reduces the bandwidth requirement of the external controlling CPU, increases performance, and reduces power consumption. The 552/552A provides serial asynchronous receive data synchronization, parallel-to-serial and serial-toparallel data conversions for both the transmitter and receiver sections. These functions are necessary for converting the serial data stream into parallel data that is required with digital data systems. Synchronization for the serial data stream is accomplished by adding start and stops bits to the transmit data to form a data character (character orientated protocol). Data integrity is insured by attaching a parity bit to the data character. The parity bit is checked by the receiver for any transmission bit errors. The electronic circuitry to provide all these functions is fairly complex especially when manufactured on a single integrated silicon chip. The 552/552A represents such an integration with greatly enhanced features. The 552/552A is fabricated with an advanced CMOS process. The 552/552A combines the package functions of a dual UART and a printer interface on a single integrated chip. The 552/552A UART is indented to be software compatible with the INS8250/NS16C550 while the bi-directional printer interface mode is intended to operate with a CENTRONICS type parallel printer. However, the printer interface is designed such that it may be configured to operate with other parallel printer interfaces or used as a general purpose parallel interface. The 552/552A is available in two versions, the ST16C552 and the ST16C552A. The 552A provides a active low (logic 0) interrupt for the printer port (INTP) while the 552 provides an active high (logic 1) INTP interrupt. Additionally, the 552A does not support the power down feature. The 552/552A is an upward solution that provides 16 bytes of transmit and receive FIFO memory, instead of none in the 16C452. The 552/552A is designed to work with high speed modems and shared network environments, that require fast data processing time. Increased performance is realized in the 552/552A by the transmit and receive FIFO’s. This allows the external processor to handle more networking tasks within a given time. For example, the ST16C452 without a receive FIFO, will require unloading of the RHR in 95.5 microseconds (This example uses a character length of 11 bits, including start/stop bits at 115.2Kbps). This means the external CPU will have to service the receive FIFO every 100 microseconds. The 552/552A is capable of operation to 1.5Mbps with a 24 MHz external clock input. With an external clock input of 1.8432 MHz the user can select data rates up to 115.2 Kbps. Rev. 3.40 8 ST16C552/552A registers (PR), I/O status register (SR), I/O select register (IOSEL), and a command and control register (COM/CON). Register functions are more fully described in the following paragraphs. The rich feature set of the 552/552A is available through internal registers. Selectable receive FIFO trigger levels, selectable TX and RX baud rates, modem interface controls, and a power-down mode are all standard features. Following a power on reset or an external reset, the 552/552A is software compatible with the previous generation, 16C452. FUNCTIONAL DESCRIPTIONS Functional Modes Two functional user modes are selectable for the 552/ 552A package. The first of these provides the dual UART functions, while the other provides the functions of a parallel printer interface. These features are available through selection at the package interface select pins. UART A-B Functions The UART mode provides the user with the capability to transfer information between an external CPU and the 552/552A package. A logic 0 on chip select pins CSA or -CSB allows the user to configure, send data, and/or receive data via the UART channels A-B. Printer Port Functions The Printer mode provides the user with the capability to transfer information between an external CPU and the 552/552A parallel printer port. A logic 0 on chip select pin -CSP allows the user to configure, send data, and/ or receive data via the bi-directional parallel 8-bit data bus, PD0-PD7. Internal Registers The 552/552A provides 12 internal registers for monitoring and control of the UART functions and another 6 registers for monitoring and controlling the printer port. These resisters are shown in Table 4 below. The UART registers function as data holding registers (THR/RHR), interrupt status and control registers (IER/ISR), a FIFO control register (FCR), line status and control registers (LCR/LSR), modem status and control registers (MCR/ MSR), programmable data rate (clock) control registers (DLL/DLM), and a user assessable scratchpad register (SPR). The printer port registers functions data holding Rev. 3.40 9 ST16C552/552A Table 4, INTERNAL REGISTER DECODE A2 A1 A0 READ MODE WRITE MODE General Register Set (THR/RHR, IER/ISR, MCR/MSR, LCR/LSR, SPR): Note 1* 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Receive Holding Register Interrupt Status Register Line Status Register Modem Status Register Scratchpad Register Transmit Holding Register Interrupt Enable Register FIFO Control Register Line Control Register Modem Control Register Scratchpad Register Baud Rate Register Set (DLL/DLM): Note *2 0 0 0 0 0 1 LSB of Divisor Latch MSB of Divisor Latch LSB of Divisor Latch MSB of Divisor Latch Printer Port Set (PR/SR/IOSEL/COM/CON): Note *3 X X X 0 0 1 0 1 0 PORT REGISTER STATUS REGISTER COMMAND REGISTER PORT REGISTER I/O SELECT REGISTER CONTROL REGISTER Note 1* The General Register set is accessible only when CS A or CS B is a logic 0. Note 2* The Baud Rate register set is accessible only when CS A or CS B is a logic 0 and LCR bit-7 is a logic 1. Note 3*: Printer Port Register set is accessible only when -CSP is a logic 0 in conjunction with the states of the interface signal BIDEN and Printer Control Register bit-5 or IOSEL register. Rev. 3.40 10 ST16C552/552A FIFO Operation P (Programmed word length) + 12. To convert the time out value to a character value, the user has to consider the complete word length, including data information length, start bit, parity bit, and the size of stop bit, i.e., 1X, 1.5X, or 2X bit times. The 16 byte transmit and receive data FIFO’s are enabled by the FIFO Control Register (FCR) bit-0. The user can set the receive trigger level via FCR bits 6/ 7 but not the transmit trigger level. The transmit interrupt trigger level is set to 16 following a reset. The receiver FIFO section includes a time-out function to ensure data is delivered to the external CPU. An interrupt is generated whenever the Receive Holding Register (RHR) has not been read following the loading of a character or the receive trigger level has not been reached. Example -A: If the user programs a word length of 7, with no parity and one stop bit, the time out will be: T = 4 X 7( programmed word length) +12 = 40 bit times. The character time will be equal to 40 / 9 = 4.4 characters, or as shown in the fully worked out example: T = [(programmed word length = 7) + (stop bit = 1) + (start bit = 1) = 9]. 40 (bit times divided by 9) = 4.4 characters. Hardware/Software and Time-out Interrupts Example -B: If the user programs the word length = 7, with parity and one stop bit, the time out will be: T = 4 X 7(programmed word length) + 12 = 40 bit times. Character time = 40 / 10 [ (programmed word length = 7) + (parity = 1) + (stop bit = 1) + (start bit = 1) = 4 characters. The interrupts are enabled by IER bits 0-3. Care must be taken when handling these interrupts. Following a reset the transmitter interrupt is enabled, the 552/552A will issue an interrupt to indicate that transmit holding register is empty. This interrupt must be serviced prior to continuing operations. The LSR register provides the current singular highest priority interrupt only. It could be noted that CTS and RTS interrupts have lowest interrupt priority. A condition can exist where a higher priority interrupt may mask the lower priority CTS/RTS interrupt(s). Only after servicing the higher pending interrupt will the lower priority CTS/ RTS interrupt(s) be reflected in the status register. Servicing the interrupt without investigating further interrupt conditions can result in data errors. Programmable Baud Rate Generator The 552/552A supports high speed modem technologies that have increased input data rates by employing data compression schemes. For example a 33.6Kbps modem that employs data compression may require a 115.2Kbps input data rate. A 128.0Kbps ISDN modem that supports data compression may need an input data rate of 460.8Kbps. The 552/552A can support a standard data rate of 921.6Kbps. When two interrupt conditions have the same priority, it is important to service these interrupts correctly. Receive Data Ready and Receive Time Out have the same interrupt priority (when enabled by IER bit-3). The receiver issues an interrupt after the number of characters have reached the programmed trigger level. In this case the 552/552A FIFO may hold more characters than the programmed trigger level. Following the removal of a data byte, the user should recheck LSR bit-0 for 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 (see Figure 4, Receive Time-out Interrupt). The actual time out value is T (Time out length in bits) = 4 X Single baud rate generator is provided for the transmitter and receiver, allowing independent TX/RX channel control. The programmable Baud Rate Generator is capable of accepting an input clock up to 24 MHz, as required for supporting a 1.5Mbps data rate. The 552/552A requires that an external clock source be connected to the CLK input pin to clock the internal baud rate generator for standard or custom rates. (see Baud Rate Generator Programming below). The generator divides the input 16X clock by any divisor from 1 to 216 -1. The 552/552A divides the basic external clock by 16. The basic 16X clock provides table rates to support standard and custom applications using the Rev. 3.40 11 ST16C552/552A same system design. The rate table is configured via the 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 baud rate generator. for selecting the desired final baud rate. The example in Table 5 below, shows the selectable baud rate table available when using a 1.8432 MHz external clock input. Programming the Baud Rate Generator Registers DLM (MSB) and DLL (LSB) provides a user capability Table 5, BAUD RATE GENERATOR PROGRAMMING TABLE (1.8432 MHz CLOCK): Output Baud Rate MCR Output 16 x Clock Divisor (Decimal) User 16 x Clock Divisor (HEX) DLM Program Value (HEX) DLL Program Value (HEX) 50 110 150 300 600 1200 2400 4800 7200 9600 19.2k 38.4k 57.6k 115.2k 2304 1047 768 384 192 96 48 24 16 12 6 3 2 1 900 417 300 180 C0 60 30 18 10 0C 06 03 02 01 09 04 03 01 00 00 00 00 00 00 00 00 00 00 00 17 00 80 C0 60 30 18 10 0C 06 03 02 01 Rev. 3.40 12 ST16C552/552A DMA Operation together internally (See Figure 6). The -CTS, -DSR, -CD, and -RI are disconnected from their normal modem control inputs pins, and instead are connected internally to -DTR, -RTS, INT enable and MCR bit-2. Loopback test data is entered into the transmit holding register via the user data bus interface, D0-D7. The transmit UART serializes the data and passes the serial data to the receive UART via the internal loop-back connection. The receive UART converts the serial data back into parallel data that is then made available at the user data interface, D0-D7. The user optionally compares the received data to the initial transmitted data for verifying error free operation of the UART TX/RX circuits. The 552/552A FIFO trigger level provides additional flexibility to the user for block mode operation. LSR bits 5-6 provide an indication when the transmitter is empty or has an empty location(s). The user can optionally operate the transmit and receive FIFO’s in the DMA mode (FCR bit-3). When the transmit and receive FIFO’s are enabled and the DMA mode is deactivated (DMA Mode “0”), the 552/552A activates the interrupt output pin for each data transmit or receive operation. When DMA mode is activated (DMA Mode “1”), the user takes the advantage of block mode operation by loading or unloading the FIFO in a block sequence determined by the receive trigger level and the transmit FIFO. In this mode, the 552/552A sets the interrupt output pin when characters in the transmit FIFO is below 16, or the characters in the receive FIFO’s are above the receive trigger level. In this mode, the receiver and transmitter interrupts are fully operational. The Modem Control Interrupts are also operational. However, the interrupts can only be read using lower four bits of the Modem Control Register (MCR bits 0-3) instead of the four Modem Status Register bits 4-7. The interrupts are still controlled by the IER. Power Down Mode The 552 is designed to operate with low power consumption. The 552 (only) is designed with a special power down mode to further reduce power consumption when the chip is not being used. When MCR bit7 and IER bit-5 are enabled (set to a logic 1), the 552 powers down. The use of two power down enable bits helps to prevent accidental software shut-down. The 552 will remain powered down until disabled by setting either IER bit-5 or MCR bit-7 to a logic 0. Loop-back Mode The internal loop-back capability allows onboard diagnostics. In the loop-back mode the normal modem interface pins are disconnected and reconfigured for loop-back internally. MCR register bits 0-3 are used for controlling loop-back diagnostic testing. In the loop-back mode INT enable and MCR bit-2 in the MCR register (bits 2,3) control the modem -RI and -CD inputs respectively. MCR signals -DTR and -RTS (bits 0-1) are used to control the modem -CTS and -DSR inputs respectively. The transmitter output (TX) and the receiver input (RX) are disconnected from their associated interface pins, and instead are connected Rev. 3.40 13 ST16C552/552A Transmit FIFO Registers Transmit Shift Register Receive FIFO Registers Receive Shift Register Inter Connect Bus Lines & Control signals A0-A2 -CSA -CSB -CSP Register Select Logic Printer Data Ports Printer Control Logic TX A,B MCR Bit-4=1 D0-D7 -IOR -IOW -RESET BIDEN Data bus & Control Logic Figure 6, INTERNAL LOOP-BACK MODE DIAGRAM RX A,B PD0-PD7 -STROBE INIT -AUTOFDX -SELCTIN PE, SELECT -BUSY, -ACK ERROR -RTS INT A,B INTP -RXRDY -TXRDY Interrupt Control Logic Modem Control Logic -CD -DTR Clock & Baud Rate Generator -RI (-OP1) -DSR (-OP2) CLK -CTS Rev. 3.40 14 ST16C552/552A Printer Port input and/or output functions. The signals have internal pull-up resistors and can be wire-or’d. Normally, STROBE is used to strobe PD0-PD7 bus data into a printer input buffer. -SLCTIN normally selects the printer while AutoFDXT signals the printer to auto-linefeed. Other signals provide similar printer functions but are not bi-directional. The printer functions for these signals are described in table 1, Symbol Description. The 552/552A contains a general purpose 8-bit parallel interface port that is designed to directly interface with a CENTRONICS Printer. A number of the control/ interrupt signals and the 8-bit data bus have been designed as bi-directional data buses. This allows the interface to function with other device parallel data bus applications. Signal -ACK is used to generate an -INTP interface interrupt that would normally be connected to the user CPU. -INTP can be made to follow the -ACK signal, normal mode (see Figure 7) or it can be configured for the latch mode. In the latch mode the interrupt is not cleared until printer status register (SR) is read. Another signal (INIT) can be made to function as an outgoing or incoming interrupt, or combined with other interrupts to provide a common wire-or interrupt output. Interface signals -STROBE, -AutoFDXT, and -SLCTIN are bi-directional and can be used as combinations of The interface provides a mode steering signal called BIDEN. BIDEN controls the bi-directional 8-bit data bus (PD0-PD7) direction, input or output. When BIDEN is a logic 1 a single control bit (D5) in the control register sets the input or output mode. Setting BIDEN to a logic 0 however sets an IBM interface compatible mode. In this mode the bus direction (input/output) is set by eight data bits in the IOSEL register. An AA (Hex) pattern sets the input mode while a 55 (hex) pattern sets the output mode. I/O direction is depicted in Table 6 below. Table 6, PD0-PD7 I/O DIRECTION MODE SELECTION PORT DIRECTION Input mode Output mode Output mode Input mode BIDEN CONTROL REGISTER (D5) I/O SELECT REGISTER 0 0 1 1 X (Note 4) X (Note 4) 0 1 AA Hex 55 Hex X (Note 4) X (Note 4) Note: 4 = don’t care Rev. 3.40 15 ST16C552/552A REGISTER FUNCTIONAL DESCRIPTIONS The following table delineates the assigned bit functions for the eighteen 552/552A internal registers. The assigned bit functions are more fully defined in the following paragraphs. Table 7, ST16C552/552A INTERNAL REGISTERS A2 A1 A0 Register [Default] Note 5* BIT-7 BIT-6 BIT-5 BIT-4 BIT-3 BIT-2 BIT-1 BIT-0 General Register Set: Note 1* 0 0 0 RHR [XX] bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 0 0 0 THR [XX] bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 0 0 1 IER [00] 0 0 En Pwr down mode 0 Modem Status Interrupt Receive Line Status interrupt Transmit Holding Register interrupt Receive Holding Register 0 1 0 FCR [00] RCVR trigger (MSB) RCVR trigger (LSB) 0 0 DMA mode select XMIT FIFO reset RCVR FIFO reset FIFO enable 0 1 0 ISR [01] FIFO’s enabled FIFO’s enabled 0 0 INT priority bit-2 INT priority bit-1 INT priority bit-0 INT status 0 1 1 LCR [00] divisor latch enable set break set parity even parity parity enable stop bits word length bit-1 word length bit-0 1 0 0 MCR [00] Pwr down 0 0 loop back INT A/B enable [X] -RTS -DTR 1 0 1 LSR [60] FIFO data error THR & TSR empty THR. empty break interrupt framing error parity error overrun error receive data ready 1 1 0 MSR [X0] CD RI DSR CTS delta -CD delta -RI delta -DSR delta -CTS 1 1 1 SPR [FF] bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 Special Register Set: Note *2 0 0 0 DLL [XX] bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 0 0 1 DLM [XX] bit-15 bit-14 bit-13 bit-12 bit-11 bit-10 bit-9 bit-8 Rev. 3.40 16 ST16C552/552A A2 A1 A0 Register [Default] Note 5* BIT-7 BIT-6 BIT-5 BIT-4 BIT-3 BIT-2 BIT-1 BIT-0 Printer Port Register Set: Note 3* [X] 0 0 PR[00] bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 [X] 0 0 PR[00] bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 [X] 0 1 SR[4F] -Busy -ACK PE SLCT Error State -IRQ logic “1” logic “1” [X] 0 1 IOSEL bit-7 bit-6 bit-5 bit-4 bit-3 bit-2 bit-1 bit-0 [X] 1 0 COM[E0] logic “1” logic “1” logic “1” -INTP Enable -SLCTIN INIT -Auto FDXT -STROBE [X] 1 0 CON[00] [X] [X] PD 0-7 IN/OUT -INTP Enable -SLCTIN INIT -Auto FDXT -STROBE Note 1* The General Register set is accessible only when CS A or CS B is a logic 0. Note 2* The Baud Rate register set is accessible only when CS A or CS B is a logic 0 and LCR bit-7 is a logic 1. Note 3*: Printer Port Register set is accessible only when -CSP is a logic 0 in conjunction with the states of the interface signal BIDEN and Printer Control Register bit-5 or IOSEL register. Note 5* The value between the square brackets represents the register’s initialized HEX value, X =N/A. MODEM (UART) REGISTER DESCRIPTIONS one FIFO location available). Transmit (THR) and Receive (RHR) Holding Registers The serial receive section also contains an 8-bit Receive Holding Register, RHR. Receive data is removed from the 552/552A and receive FIFO by reading the RHR register. The receive section provides a mechanism to prevent false starts. On the falling edge of a start or false start bit, an internal receiver counter starts counting clocks at the 16x clock rate. After 7 1/2 clocks the start bit time should be shifted to the center of the start bit. At this time the start bit is sampled and if it is still a logic 0 it is validated. Evaluating the start bit in this manner prevents the receiver from assembling a false character. Receiver status codes will be posted in the LSR. The serial transmitter section consists of an 8-bit Transmit Hold Register (THR) and Transmit Shift Register (TSR). The status of the THR is provided in the Line Status Register (LSR). Writing to the THR transfers the contents of the data bus (D7-D0) to the THR, providing that the THR or TSR is empty. The THR empty flag in the LSR register will be set to a logic 1 when the transmitter is empty or when data is transferred to the TSR. Note that a write operation can be performed when the transmit holding register empty flag is set (logic 0 = FIFO full, logic 1= at least Rev. 3.40 17 ST16C552/552A Interrupt Enable Register (IER) D) LSR BIT-6 will indicate when both the transmit FIFO and transmit shift register are empty. The Interrupt Enable Register (IER) masks the interrupts from receiver ready, transmitter empty, line status and modem status registers. These interrupts would normally be seen on the INT A,B output pins. E) LSR BIT-7 will indicate any FIFO data errors. IER BIT-0: This interrupt will be issued when the FIFO has reached the programmed trigger level or is cleared when the FIFO drops below the trigger level in the FIFO mode of operation. Logic 0 = Disable the receiver ready interrupt. (normal default condition) Logic 1 = Enable the receiver ready interrupt. IER Vs Receive FIFO Interrupt Mode Operation When the receive FIFO (FCR BIT-0 = a logic 1) and receive interrupts (IER BIT-0 = logic 1) are enabled, the receive interrupts and register status will reflect the following: A) The receive data available interrupts are issued to the external CPU when the FIFO has reached the programmed trigger level. It will be cleared when the FIFO drops below the programmed trigger level. IER BIT-1: This interrupt will be issued whenever the THR is empty and is associated with bit-1 in the LSR register. Logic 0 = Disable the transmitter empty interrupt. (normal default condition) Logic 1 = Enable the transmitter empty interrupt. B) FIFO status will also be reflected in the user accessible ISR register when the FIFO trigger level is reached. Both the ISR register status bit and the interrupt will be cleared when the FIFO drops below the trigger level. IER BIT-2: This interrupt will be issued whenever a fully assembled receive character is transferred from the RSR to the RHR/FIFO, i.e., data ready, LSR bit-0. Logic 0 = Disable the receiver line status interrupt. (normal default condition) Logic 1 = Enable the receiver line status interrupt. C) The data ready bit (LSR BIT-0) is set as soon as a character is transferred from the shift register to the receive FIFO. It is reset when the FIFO is empty. IER Vs Receive/Transmit FIFO Polled Mode Operation IER BIT-3: Logic 0 = Disable the modem status register interrupt. (normal default condition) Logic 1 = Enable the modem status register interrupt. When FCR BIT-0 equals a logic 1; resetting IER bits 0-3 enables the 552/552A in the FIFO polled mode of operation. Since the receiver and transmitter have separate bits in the LSR either or both can be used in the polled mode by selecting respective transmit or receive control bit(s). IER BIT -4: Not Used - initialized to a logic 0. IER BIT-5: (ST16C552 only) Logic 0 = Disable the power down mode. (normal default condition). The ST16C552A does not support the power down mode and this bit is set to “0”. Logic 1 = Enable the power down mode (MCR bit-7 must also be a logic 1 before power down will be activated). A) LSR BIT-0 will be a logic 1 as long as there is one byte in the receive FIFO. B) LSR BIT 1-4 will provide the type of errors encountered, if any. C) LSR BIT-5 will indicate when the transmit FIFO is empty. Rev. 3.40 18 ST16C552/552A IER BIT 6-7: Not Used - initialized to a logic 0. FCR BIT-2: Logic 0 = No FIFO transmit reset. (normal default condition) Logic 1 = Clears the contents of the transmit FIFO and resets the FIFO counter logic (the transmit shift register is not cleared or altered). This bit will return to a logic 0 after clearing the FIFO. FIFO Control Register (FCR) This register is used to enable the FIFO’s, clear the FIFO’s, set the receive FIFO trigger levels, and select the DMA mode. The DMA, and FIFO modes are defined as follows: FCR BIT-3: Logic 0 = Set DMA mode “0”. (normal default condition) Logic 1 = Set DMA mode “1.” DMA MODE Mode 0 Set and enable the interrupt for each single transmit or receive operation, and is similar to the ST16C450 mode. Transmit Ready (-TXRDY) will go to a logic 0 when ever an empty transmit space is available in the Transmit Holding Register (THR). Receive Ready (-RXRDY) will go to a logic 0 whenever the Receive Holding Register (RHR) is loaded with a character. Mode 1 Set and enable the interrupt in a block mode operation. The transmit interrupt is set when the transmit FIFO is below the programmed trigger level. -TXRDY remains a logic 0 as long as one empty FIFO location is available. The receive interrupt is set when the receive FIFO fills to the programmed trigger level. However the FIFO continues to fill regardless of the programmed level until the FIFO is full. -RXRDY remains a logic 0 as long as the FIFO fill level is above the programmed trigger level. Transmit operation in mode “0”: When the 552/552A is in the ST16C450 mode (FIFO’s disabled, FCR bit-0 = logic 0) or in the FIFO mode (FIFO’s enabled, FCR bit-0 = logic 1, FCR bit-3 = logic 0) and when there are no characters in the transmit FIFO or transmit holding register, the -TXRDY pin will be a logic 0. Once active the -TXRDY pin will go to a logic 1 after the first character is loaded into the transmit holding register. Receive operation in mode “0”: When the 552/552A is in mode “0” (FCR bit-0 = logic 0) or in the FIFO mode (FCR bit-0 = logic 1, FCR bit3 = logic 0) and there is at least one character in the receive FIFO, the -RXRDY pin will be a logic 0. Once active the -RXRDY pin will go to a logic 1 when there are no more characters in the receiver. FCR BIT-0: Logic 0 = Disable the transmit and receive FIFO. (normal default condition) Logic 1 = Enable the transmit and receive FIFO. This bit must be a “1” when other FCR bits are written to or they will not be programmed. Transmit operation in mode “1”: When the 552/552A is in FIFO mode ( FCR bit-0 = logic 1, FCR bit-3 = logic 1 ), the -TXRDY pin will be a logic 1 when the transmit FIFO is completely full. It will be a logic 0 if one or more FIFO locations are empty. FCR BIT-1: Logic 0 = No FIFO receive reset. (normal default condition) Logic 1 = Clears the contents of the receive FIFO and resets the FIFO counter logic (the receive shift register is not cleared or altered). This bit will return to a logic 0 after clearing the FIFO. Receive operation in mode “1”: When the 552/552A is in FIFO mode (FCR bit-0 = logic 1, FCR bit-3 = logic 1) and the trigger level has been reached, or a Receive Time Out has occurred, the RXRDY pin will go to a logic 0. Once activated, it will go to a logic 1 after there are no more characters in the FIFO. Rev. 3.40 19 ST16C552/552A FCR BIT 4-5: Not Used - initialized to a logic 0. Interrupt Status Register (ISR) The 552/552A provides four levels of prioritized interrupts to minimize external software interaction. The Interrupt Status Register (ISR) provides the user with four interrupt status bits. Performing a read cycle on the ISR will provide the user with the highest pending interrupt level to be serviced. No other interrupts are acknowledged until the pending interrupt is serviced. Whenever the interrupt status register is read, the interrupt status is cleared. However it should be noted that only the current pending interrupt is cleared by the read. A lower level interrupt may be seen after rereading the interrupt status bits. The Interrupt Source Table 8 (below) shows the data values (bits 0-3) for the four prioritized interrupt levels and the interrupt sources associated with each of these interrupt levels: FCR BIT 6-7: (logic 0 or cleared is the default condition, RX trigger level = 1) These bits are used to set the trigger level for the receive FIFO interrupt. An interrupt is generated when the number of characters in the FIFO equals the programmed trigger level. However the FIFO will continue to be loaded until it is full. BIT-7 BIT-6 RX FIFO trigger level 0 0 1 1 0 1 0 1 01 04 08 14 Table 8, INTERRUPT SOURCE TABLE Priority Level 1 2 2 3 4 [ISR BITS] Bit-3 Bit-2 Bit-1 Bit-0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 Source of the interrupt LSR (Receiver Line Status Register) RXRDY (Received Data Ready) RXRDY (Receive Data time out) TXRDY (Transmitter Holding Register Empty) MSR (Modem Status Register) Rev. 3.40 20 ST16C552/552A ISR BIT-0: Logic 0 = An interrupt is pending and the ISR contents may be used as a pointer to the appropriate interrupt service routine. Logic 1 = No interrupt pending. (normal default condition) ISR BIT 1-3: (logic 0 or cleared is the default condition) These bits indicate the source for a pending interrupt at interrupt priority levels 1, 2, and 3 (See Interrupt Source Table). ISR BIT 6-7: (logic 0 or cleared is the default condition) These bits are set to a logic 0 when the FIFO’s are not being used in the 16C450 mode. They are set to a logic 1 when the FIFO’s are enabled in the 16C552/552A mode. The Line Control Register is used to specify the asynchronous data communication format. The word length, the number of stop bits, and the parity are selected by writing the appropriate bits in this register. LCR BIT 0-1: (logic 0 or cleared is the default condition) These two bits specify the word length to be transmitted or received. Word length 0 0 1 1 0 1 0 1 5 6 7 8 Stop bit length (Bit time(s)) 0 1 1 5,6,7,8 5 6,7,8 1 1-1/2 2 LCR BIT-4: If the parity bit is enabled with LCR bit-3 set to a logic 1, LCR BIT-4 selects the even or odd parity format. Logic 0 = ODD Parity is generated by forcing an odd number of logic 1’s in the transmitted data. The receiver must be programmed to check the same format. (normal default condition) Logic 1 = EVEN Parity is generated by forcing an even the number of logic 1’s in the transmitted. The receiver must be programmed to check the same format. Line Control Register (LCR) BIT-0 Word length LCR BIT-3: Parity or no parity can be selected via this bit. Logic 0 = No parity. (normal default condition) Logic 1 = A parity bit is generated during the transmission, receiver checks the data and parity for transmission errors. ISR BIT 4-5: (logic 0 or cleared is the default condition) Not Used - initialized to a logic 0. BIT-1 BIT-2 LCR BIT-5: If the parity bit is enabled, LCR BIT-5 selects the forced parity format. LCR BIT-5 = logic 0, parity is not forced. (normal default condition) LCR BIT-5 = logic 1 and LCR BIT-4 = logic 0, parity bit is forced to a logical 1 for the transmit and receive data. LCR BIT-5 = logic 1 and LCR BIT-4 = logic 1, parity bit is forced to a logical 0 for the transmit and receive data. LCR BIT-2: (logic 0 or cleared is the default condition) The length of stop bit is specified by this bit in conjunction with the programmed word length. Rev. 3.40 21 ST16C552/552A LCR Bit-5 LCR Bit-4 LCR Bit-3 X 0 0 1 1 X 0 1 0 1 0 1 1 1 1 loop-back mode this bit is use to write the state of the modem -RI interface signal. Parity selection MCR BIT-3: (Used to control the modem -CD signal in the loop-back mode.) Logic 0 = Forces INT (A-B) outputs to the three state mode. (normal default condition) In the Loop-back mode, sets -CD internally to a logic 1. Logic 1 = Forces the INT (A-B) outputs to the active mode. In the Loop-back mode, sets -CD internally to a logic 0. No parity Odd parity Even parity Force parity odd parity Forced even parity LCR BIT-6: When enabled the Break control bit causes a break condition to be transmitted (the TX output is forced to a logic 0 state). This condition exists until disabled by setting LCR bit-6 to a logic 0. Logic 0 = No TX break condition. (normal default condition) Logic 1 = Forces the transmitter output (TX) to a logic 0 for alerting the remote receiver to a line break condition. MCR BIT-4: Logic 0 = Disable loop-back mode. (normal default condition) Logic 1 = Enable local loop-back mode (diagnostics). MCR BIT 5-6: Not Used - initialized to a logic 0. MCR BIT-7: Logic 0 = Disable power down mode. (normal, default condition, 552 only) Logic 1 = Enable power down mode (IER bit-5 must also be a logic 1 before power down will be activated). LCR BIT-7: The internal baud rate counter latch and Enhance Feature mode enable. Logic 0 = Divisor latch disabled. (normal default condition) Logic 1 = Divisor latch and enhanced feature register enabled. Line Status Register (LSR) This register provides the status of data transfers between. the 552/552A and the CPU. Modem Control Register (MCR) LSR BIT-0: Logic 0 = No data in receive holding register or FIFO. (normal default condition) Logic 1 = Data has been received and is saved in the receive holding register or FIFO. This register controls the interface with the modem or a peripheral device. MCR BIT-0: Logic 0 = Force -DTR output to a logic 1. (normal default condition) Logic 1 = Force -DTR output to a logic 0. LSR BIT-1: Logic 0 = No overrun error. (normal default condition) Logic 1 = Overrun error. A data overrun error occurred in the receive shift register. This happens when additional data arrives while the FIFO is full. In this case the previous data in the shift register is overwritten. Note that under this condition the data byte in the receive shift register is not transferred into the FIFO, therefore the data in the FIFO is not corrupted by the error. MCR BIT-1: Logic 0 = Force -RTS output to a logic 1. (normal default condition) Logic 1 = Force -RTS output to a logic 0. MCR BIT-2: This bit is used in the Loop-back mode only. In the Rev. 3.40 22 ST16C552/552A break indication is in the current FIFO data. This bit is cleared when RHR register is read. LSR BIT-2: Logic 0 = No parity error. (normal default condition) Logic 1 = Parity error. The receive character does not have correct parity information and is suspect. In the FIFO mode, this error is associated with the character at the top of the FIFO. Modem Status Register (MSR) This register provides the current state of the control interface signals from the modem, or other peripheral device that the 552/552A is connected to. Four bits of this register are used to indicate the changed information. These bits are set to a logic 1 whenever a control input from the modem changes state. These bits are set to a logic 0 whenever the CPU reads this register. LSR BIT-3: Logic 0 = No framing error. (normal default condition) Logic 1 = Framing error. The receive character did not have a valid stop bit(s). In the FIFO mode this error is associated with the character at the top of the FIFO. LSR BIT-4: Logic 0 = No break condition. (normal default condition) Logic 1 = The receiver received a break signal (RX was a logic 0 for one character frame time). In the FIFO mode, only one break character is loaded into the FIFO. MSR BIT-0: Logic 0 = No -CTS Change (normal default condition) Logic 1 = The -CTS input to the 552/552A has changed state since the last time it was read. A modem Status Interrupt will be generated. MSR BIT-1: Logic 0 = No -DSR Change. (normal default condition) Logic 1 = The -DSR input to the 552/552A has changed state since the last time it was read. A modem Status Interrupt will be generated. LSR BIT-5: This bit is the Transmit Holding Register Empty indicator. This bit indicates that the UART is ready to accept a new character for transmission. In addition, this bit causes the UART to issue an interrupt to CPU when the THR interrupt enable is set. The THR bit is set to a logic 1 when a character is transferred from the transmit holding register into the transmitter shift register. The bit is reset to logic 0 concurrently with the loading of the transmitter holding register by the CPU. In the FIFO mode this bit is set when the transmit FIFO is empty; it is cleared when at least 1 byte is written to the transmit FIFO. MSR BIT-2: Logic 0 = No -RI Change. (normal default condition) Logic 1 = The -RI input to the 552/552A has changed from a logic 0 to a logic 1. A modem Status Interrupt will be generated. MSR BIT-3: Logic 0 = No -CD Change. (normal default condition) Logic 1 = Indicates that the -CD input to the has changed state since the last time it was read. A modem Status Interrupt will be generated. LSR BIT-6: This bit is the Transmit Empty indicator. This bit is set to a logic 1 whenever the transmit holding register and the transmit shift register are both empty. It is reset to logic 0 whenever either the THR or TSR contains a data character. In the FIFO mode this bit is set to one whenever the transmit FIFO and transmit shift register are both empty. MSR BIT-4: Normally MSR bit-4 bit is the compliment of the -CTS input. However in the loop-back mode, this bit is equivalent to the RTS bit in the MCR register. MSR BIT-5: DSR (active high, logical 1). Normally this bit is the compliment of the -DSR input. In the loop-back mode, this bit is equivalent to the DTR bit in the MCR register. LSR BIT-7: Logic 0 = No Error. (normal default condition) Logic 1 = At least one parity error, framing error or Rev. 3.40 23 ST16C552/552A MSR BIT-6: RI (active high, logical 1). Normally this bit is the compliment of the -RI input. In the loop-back mode this bit is equivalent to MCR bit-2 in the MCR register. SR BIT 1-0: Not Used - initialized to a logic 1. SR BIT-2: Logic 0 = an interrupt is pending When INTSEL is a logic 0, SR bit-2 basically tracks the -ACK input interface pin (returns to a logic 1 when the -ACK input returns to a logic 1). However when INTSEL is a logic 1, the latched mode is selected, SR bit-2 goes to a logic 0 with the -ACK input but does not return to a logic 1 until the end of the read cycle, i.e., reading SR will set this bit to a logic 1. Logic 1 = no interrupt is pending. (normal inactive state) MSR BIT-7: CD (active high, logical 1). Normally this bit is the compliment of the -CD input. In the loop-back mode this bit is equivalent to MCR bit-3 in the MCR register. Note: Whenever any MSR bit 0-3: is set to logic “1”, a MODEM Status Interrupt will be generated. Scratchpad Register (SPR) The ST16C552/552A provides a temporary data register to store 8 bits of user information. SR BIT-3: Logic 0 = -ERROR input is a logic 0. Logic 1 = -ERROR input is a logic 1. (normal inactive state) PRINTER PORT REGISTER DESCRIPTIONS SR BIT-4: Logic 0 = SLCT input is a logic 0. (normal inactive state) Logic 1 = SLCT input is a logic 1. Port Register (PR) PR BIT 0-7: Printer Data port (Bi-directional) - These pins are the eight bit data bus for transferring information to or from an external device (usually a printer). D0 is the least significant bit. PD7-PD0 are latched during a write cycle (output mode). SR BIT-5: Logic 0 = PE input is a logic 0. (normal inactive state) Logic 1 = PE input is a logic 1. I/O Select Register (IOSEL) SR BIT-6: Logic 0 = -ACK input is a logic 0. Logic 1 = -ACK input is a logic 1. (normal inactive state) This bit is used in conjunction with the state of BIDEN to set the direction (input/output) of the PD7-PD0 data bus. This register is used only when BIDEN is a logic 0. Logic 55 (Hex) + BIDEN 0 = PD7-PD0 are set for output mode Logic AA (Hex) + BIDEN 0 = PD7-PD0 are set for input mode SR BIT-7: Logic 0 = BUSY input is a logic 0 Logic 1 = BUSY input is a logic 1 (normal inactive state) Command Register (COM) Status Register (SR) This register provides the printer port input logical states and the status of the interrupt -INTP based on the condition of the -ACK printer port interface signal. The logical state of these pins is dependent on external interface signals. This register provides the printer port input logical states and the status of the printer interrupt INIT, which is based on the state of CON bit-1. COM BIT-0: -STROBE is a bi-directional signal with an open Rev. 3.40 24 ST16C552/552A source driver and internal pull-up so that it may be wireor’d with other outputs. COM bit-1 is used to read status while CON bit 1 is used to set an output state. If it is to function as an input, CON bit-1 shall be set to a logic 1 first. Logic 0 = -STROBE pin is a logic 1. (normal default condition) Logic 1 = -STROBE pin is a logic 0. Logic 1 = Interrupt (-INTP output) is enabled COM BIT 5-7: Not Used - initialized to a logic 1. Control Register (CON) This register provides control of the printer port output logical states and controls the printer interrupts INIT and -INTP. With the exception of PD 0-7 IN/OUT, the status of this register may be read by reading the COM register. COM BIT-1: -AutoFDXT is a bi-directional signal with an open source driver and internal pull-up so that it may be wire-or’d with other outputs. COM bit-1 is used to read status while CON bit 1 is used to set an output state. If it is to function as an input, CON bit-1 shall be set to a logic 1 first. Logic 0 = -AutoFDXT pin is a logic 1. (normal default condition) 1= -AutoFDXT pin is a logic 0. CON BIT-0: The -STROBE output control bit is under software control, i.e., the hardware will not generate a strobe. It is up to software to return the state of -STROBE to the inactive (logic 1) state. The hardware driver is open drain so that -STROBE may be wire-or’d. The state of this bit can be read using COM bit-0. Logic 0 = -STROBE output is set to a logic 1. (normal default condition) Logic 1 = -STROBE output is set to a logic 0. COM BIT-2: INIT is a bi-directional signal with an open source driver and internal pull-up so that it may be wire-or’d with other outputs. COM bit-2 is used to read status while CON bit 2 is used to set an output state. If it is to function as an input, CON bit-1 shall be set to a logic 1 first. Logic 0 = INIT pin is a logic 0. (normal default condition) Logic 1 = INIT pin is a logic 1. CON BIT-1: The -AutoFDXT output control bit is set by software using CON bit-1. The hardware driver is open drain so that -AutoFDXT may be wire-or’d. The state of this bit can be read using COM bit-1. Logic 0 = -AutoFDXT output is set to a logic 1. (normal default condition) Logic 1 = -AutoFDXT output is set to a logic 0. COM BIT-3: -SLCTIN is a bi-directional signal with an open source driver and internal pull-up so that it may be wire-or’d with other outputs. COM bit-1 is used to read status while CON bit 1 is used to set an output state. If it is to function as an input, CON bit-1 shall be set to a logic 1 first. Logic 0 = -SLCTIN pin is a logic 1 (normal default condition) Logic 1 = -SLCTIN pin is a logic 0 CON BIT-2: The INIT output control bit is set by software using CON bit-2. The hardware driver is open drain so that INIT may be wire-or’d. The state of this bit can be read using COM bit-2. Logic 0 = INIT output is set to a logic 0. (normal default condition) Logic 1 = INIT output is set to a logic 1. COM BIT-4: This bit allows the state of -INTP to be read back by the external CPU. Logic 0 = Interrupt (-INTP output) is disabled (normal default condition) CON BIT-3: The -SLCTIN output control bit is set by software using CON bit-3. The hardware driver is open drain so that -AutoFDXT may be wire-or’d. The state of this bit can be read using COM bit-3. Rev. 3.40 25 ST16C552/552A Logic 0 = -SLCTIN output is set to a logic 1. (normal default condition) Logic 1 = -SLCTIN output is set to a logic 0. ST16C552/552A EXTERNAL RESET CONDITION REGISTERS (UART) CON BIT-4: This bit enables or masks the printer interrupt output -INTP. The state of this bit can be read using COM bit4. Logic 0 = Disable -INTP output. (normal default condition) Logic 1 = Enable -INTP output. IER ISR LCR MCR LSR CON BIT-5: This bit is used in conjunction with the state of BIDEN to set the direction (input/output) of the PD7-PD0 data bus. Logic 0 + BIDEN 1 = PD7-PD0 are set for output mode (normal default condition) Logic 1 + BIDEN 1 = PD7-PD0 are set for input mode MSR FCR REGISTERS Printer Port CON BIT 6-7: Not Used - initialized to a logic 1. IOSEL SR Rev. 3.40 26 RESET STATE BITS 0-7=0 ISR BIT-0=1, ISR BITS 1-7=0 LCR BITS 0-7=0 MCR BITS 0-7=0 LSR BITS 0-4=0, LSR BITS 5-6=1 LSR, BIT 7=0 MSR BITS 0-3=0, MSR BITS 4-7=input signals FCR BITS 0-7=0 RESET STATE COM CON IOSEL BITS-0-7=0 SR BITS 0-1=1, BITS 2-7=input signals COM BITS 0-4=0, BITS 5-7=1 CON BITS 0-5=0, BITS 6-7=1 SIGNALS RESET STATE TX A/B -RTS A/B -DTR A/B INT A/B, P -RXRDY A/B -TXRDY A/B PD0-PD7 -STROBE -AutoFDXT INIT -SLCTIN High High High Three state mode High Low Low, output mode High, output mode High, output mode Low, output mode High, output mode ST16C552/552A AC ELECTRICAL CHARACTERISTICS TA=0° - 70°C (-40° - +85°C for Industrial grade packages), Vcc=3.3 - 5.0 V ± 10% unless otherwise specified. Symbol T1w,T2w T3w T6s T7d T7w T7h T9d T12d T12h T13d T13w T13h T15d T16s T16h T17d T18d T19d T20d T21d T22d T23d T24d T25d T26d T27d T28d T39w T40s T41h T42d T43d TR N Parameter Clock pulse duration Oscillator/Clock frequency Address setup time -IOR delay from chip select -IOR strobe width Chip select hold time from -IOR Read cycle delay Delay from -IOR to data Data disable time -IOW delay from chip select -IOW strobe width Chip select hold time from -IOW Write cycle delay Data setup time Data hold time Delay from -IOW to output Delay to set interrupt from MODEM input Delay to reset interrupt from -IOR Delay from stop to set interrupt Delay from -IOR to reset interrupt Delay from stop to interrupt Delay from initial INT reset to transmit start Delay from -IOW to reset interrupt Delay from stop to set -RxRdy Delay from -IOR to reset -RxRdy Delay from -IOW to set -TxRdy Delay from start to reset -TxRdy -ACK pulse width PD7 - PD0 setup time PD7 - PD0 hold time Delay from -ACK low to interrupt low Delay from -IOR to reset interrupt Reset pulse width Baud rate devisor Limits 3.3 Min Max 17 Limits 5.0 Min Max 17 40 35 40 1 45 45 24 35 1 40 40 24 ns Rclk ns ns Rclk 40 1 40 40 8 ns Rclk ns ns Rclk ns ns ns ns ns ns Rclk 24 0 10 25 0 30 35 25 10 40 0 40 20 5 25 15 10 25 0 30 15 5 8 45 1 45 45 8 Rev. 3.40 27 100 pF load 100 pF load 50 40 5 10 35 0 40 75 15 30 10 10 40 1 Conditions ns MHz ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns 8 8 Units 216-1 75 10 25 5 5 40 1 216-1 100 pF load 100 pF load ST16C552/552A ABSOLUTE MAXIMUM RATINGS Supply range Voltage at any pin Operating temperature Storage temperature Package dissipation 7 Volts GND - 0.3 V to VCC +0.3 V -40° C to +85° C -65° C to 150° C 500 mW DC ELECTRICAL CHARACTERISTICS TA=0° - 70°C (-40° - +85°C for Industrial grade packages), Vcc=2.97 - 5.5V unless otherwise specified. Symbol Parameter VILCK VIHCK VIL VIH VIH VOL VOL VOH VOH IIL ICL ICC CP RIN Clock input low level Clock and printer port input high level Input low level Input high level (Rev "E" and older) Input high level (Rev "F" and newer) Output low level on all outputs Output low level on all outputs Output high level Output high level Input leakage Clock leakage Avg power supply current Input capacitance Internal pull-up resistance Limits 3.3 Min Max Limits 5.0 Min Max -0.3 2.4 -0.3 2.0 2.0 -0.5 3.0 -0.5 2.2 2.2 0.6 VCC 0.8 VCC 5.5 0.6 VCC 0.8 VCC 5.5 0.4 0.4 2.4 2.0 ±10 ±10 1.5 5 9 ±10 ±10 3 5 22 Units V V V V V V V V V µA µA mA pF kΩ Note: See the Symbol Description Table, for a listing of pins having internal pull-up resistors. Rev. 3.40 28 Conditions IOL= 4 mA IOL= 4 mA IOH= -4 mA IOH= -1 mA ST16C552/552A Va li d Add r ess A0 -A 2 Va li d Add r ess T7 h T 6s T 7w A ct iv e -C S A ct iv e T 7w -IO R T7 h T 6s T9 d A ct iv e T12 d T12 h T12 d T12 h Va li d D a ta D 0 -D 7 Va li d D a ta X 5 52 -R D -2 General read timing Valid A d dr e ss A0-A2 Valid A d dr e ss T7h T6s -C S A ctive A ctive T1 3 w -IOW T1 5d T1 3 w A ctive T16s D 0-D 7 T7h T6s T1 6h D a ta T16s T1 6h D a ta X5 52 -R D -2 General write timing Rev. 3.40 29 ST16C552/552A T1w T2w EXTERNAL CLOCK EX-CK-1 T3w External clock timing -IOW Active T17d -RTS -DTR Change of state Change of state -CD -CTS -DSR Change of state Change of state T18d T18d INT Active Active Active T19d Active -IOR Active Active T18d Change of state -RI X552-MD-1 Modem input/output timing Rev. 3.40 30 ST16C552/552A START BIT RX STOP BIT DATA BITS (5-8) D0 D1 D2 D3 D4 D5 5 DATA BITS 6 DATA BITS 7 DATA BITS D6 D7 PARITY BIT NEXT DATA START BIT T20d Active INT T21d Active -IOR 16 BAUD RATE CLOCK Receive timing Rev. 3.40 31 X552-RX-1 ST16C552/552A START BIT RX STOP BIT DATA BITS (5-8) D0 D1 D2 D3 D4 D5 D6 D7 PARITY BIT NEXT DATA START BIT T25d Active Data Ready -RXRDY T26d -IOR Active X552-RX-2 Receive ready timing in none FIFO mode Rev. 3.40 32 ST16C552/552A START BIT RX STOP BIT DATA BITS (5-8) D0 D1 D2 D3 D4 D5 D6 D7 PARITY BIT First byte that reaches the trigger level T25d Active Data Ready -RXRDY T26d -IOR Active X552-RX-3 Receive timing in FIFO mode Rev. 3.40 33 ST16C552/552A START BIT TX STOP BIT DATA BITS (5-8) D0 D1 D2 D3 D4 D5 5 DATA BITS 6 DATA BITS 7 DATA BITS D7 PARITY BIT NEXT DATA START BIT T22d Active Tx Ready INT T24d T23d -IOW D6 Active Active 16 BAUD RATE CLOCK Transmit timing Rev. 3.40 34 X552-TX-1 ST16C552/552A START BIT TX STOP BIT DATA BITS (5-8) D0 D1 D2 D3 D4 D5 D6 D7 PARITY BIT -IOW D0-D7 NEXT DATA START BIT Active T28d BYTE #1 T27d -TXRDY Active Transmitter ready Transmitter not ready X552-TX-2 Transmit ready timing in none FIFO mode Rev. 3.40 35 ST16C552/552A START BIT DATA BITS (5-8) TX D0 D1 D2 D3 D4 STOP BIT D5 D6 5 DATA BITS D7 PARITY BIT 6 DATA BITS 7 DATA BITS -IOW Active T28d D0-D7 BYTE #16 T27d -TXRDY FIFO Full X552-TX-3 Transmit ready timing in FIFO mode Rev. 3.40 36 ST16C552/552A T39w -ACK T40d T42d INTP T43d -IOR T40s NORMAL MODE INTERRUPT LATCHED MODE SELECT INTSEL T41h PD0-PD7 VALID DATA X552-PR-1 Printer port timing (552 only) Rev. 3.40 37 ST16C552/552A T39w -ACK T40d T42d INTP T43d -IOR T40s NORMAL MODE INTERRUPT LATCHED MODE SELECT INTSEL T41h PD0-PD7 VALID DATA X552-PR-2 Printer port timing (552A only) Rev. 3.40 38 ST16C552/552A EXPLANATION OF DATA SHEET REVISIONS: FROM TO 3.30 3.40 CHANGES Added revision history. Added Device Status in Ordering Information. Device revisions of "F" and newer have 5V tolerant inputs except for XTAL1 and printer port inputs. Device revisions of "E" and older do not have 5V tolerant inputs. DATE Dec 2003 NOTICE EXAR Corporation reserves the right to make changes to the products contained in this publication in order to improve design, performance or reliability. EXAR Corporation assumes no responsibility for the use of any circuits described herein, conveys no license under any patent or other right, and makes no representation that the circuits are free of patent infringement. Charts and schedules contained here in are only for illustration purposes and may vary depending upon a user's specific application. While the information in this publication has been carefully checked; no responsibility, however, is assumed for inaccuracies. EXAR Corporation does not recommend the use of any of its products in life support applications where the failure of the product can reasonably be expected to cause failure of the life support system or to significantly affect its safety or effectiveness. Products are not authorized for use in such applications unless EXAR Corporation receives, in writing, assurances to its satisfaction that: (a) the risk of injury or damage has been minimized; (b) the user assumes all such risks; (c) potential liability of EXAR Corporation is adequately protected under the circumstances. Copyright 2003 EXAR Corporation Datasheet September 2003 Send your UART technical inquiry with technical details to hotline: [email protected] Reproduction, in part or whole, without prior written consent of EXAR Corporation is prohibited. Rev. 3.40 39