2S1P - Dual Serial/Single EPP Parallel Interface

The ECB 2S1P (or SPP for short) board provides two RS-232 level serial interfaces and a single PC/AT-compatible Centronics parallel port using the Texas Instruments TL16C552 multiport interface chip.

ECB 2S1P Board Plot

EBC 2S1P board as-built.


The ECB 2S1P board provides two 8250/16C550 similar serial interfaces (which is clocked at 1.8432mhz to provide common baud rates from 300 to 115,200) and a single PC/AT-EPP compatible parallel printer port using the TL16C552B PLCC chip and related level shifters. Two TTL-level headers are provoded for those wanting to use USB TTL interfaces directly.

The board was developed primarily for and tested for use with the SBC-188 80C188-based processor board, but it should work with other boards. The SBC-188 BIOS has been modified to enable MS-DOS to use this board as standard COM/LPT ports (albeit at non-standard port addresses).

As a point of note, the board is NOT compatible with the ST16C552 due to a different pin arrangement.

Construction Notes

Resistor Arrays

The resistor arrays (RN501, RN502) that are part of the RC damper circuit for the parallel port are isolated resistors, not the more common bussed resistor arrays that most builders have in stock. They are also an uncommon value (27 ohms) for your typical RetroBrew build. The schematic shows this difference, but if you go straight by the BOM, that difference isn't clear.


AT/EPP: this jumper controls the parallel port mode supported by the 16C552. For use with DOS, I leave it in the most-compatible AT mode.

DCE/DTE: these jumpers (one for each port) controls whether the port acts as a terminal (DTE) or a modem (DCE); effectively a chip-controlled null-modem switch.

RTS/DTR: these jumpers select which handshaking signal appears at the TTL-level 6-pin header.

INT/NMI: these jumpers control which interupt line the respective port is mapped to; unused with the current drivers, so leave open.

BRD_SEL: this jumper controls which ECB port range the board is assigned to. For the SBC-188, this is offset by 0x400 in software (so, Cx = $4Cx) due to how off-board ports are mapped by the SBC-188 card.


None in version 1.0-001 (the first production run).


The UAR/T used is a derivative of the Intel 8251 UAR/T so most basic code will run without significant modification. To use with MS-DOS on the SBC-188, TSR (terminate and stay resident) drivers are required to provide replacement BIOS functions (none of the BIOSes, including the latest BIOS-050, do not have any code to support the board). Additionally, most DOS programs assume that the serial and parallel ports live at specific I/O port addresses and are interrupt-capable. On versions of the SBC-188 prior to version 3, the interrupt system doesn't conveniently allow for interrupt-driven serial ports such as the 2S1P, so the 2S1P has to be run in “polled” mode. It's expected that version 3 of the SBC-188 will have a usable/trappable interrupt that can be connected to the 2S1P to allow for most software to work; the I/O port and interrupt selection allocation will still be an issue but that's easier to deal with.

The software should be considered “beta” quality.


ECB 2S1P-1.0-001_sch.pdf 724Kb2019-12-27
ECB 2S1P-1.0-001_pcb.pdf 500Kb2019-12-27
ECB 2S1P-1.0-001_design.zip 2.1Mb2020-01-12
ECB 2S1P_driver_rel01.zip 39Kb2020-01-17

boards/ecb/2s1p/start.txt · Last modified: 2022/05/22 14:41 by rcini
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0