Last year I replaced the NXP SCC2692A dual UART (DUART) with the SCC26C92, which has a number of added features. To quote from the NXP data sheet:
Its differences from the 2692 are: 8 character receiver, 8 character transmit FIFOs, watch dog timer for each receiver, mode register 0 is added, extended baud rate and overall faster speeds and programmable receiver and transmitter interrupts.
Not mentioned was that the 26C92's response to the control inputs (chip select, etc.) is substantially faster than the 2692, which allows a high Ø2 clock rate without wait-stating.
The interesting improvements are in the FIFOs and the higher supported communication rates. The receiver FIFOs are also present in the 2692, but can only buffer four bytes. The transmitter FIFOs are new and create an opportunity to reduce the overall interrupt processing load when a lot of output is being generated, e.g., when a full-screen paint is required. Whereas the 2692 had a one byte transmit buffer and generated an IRQ each time a byte was serialized and shifted out to the TIA-232 interface, the 26C92 makes it possible for the IRQ part of the DUART's driver to keep stuffing bytes into the transmitter FIFO until the DUART says it's full, after which the IRQ handler can go on to something else and not return until the FIFO is empty. The result is that a lot fewer IRQs will occur during transmission.
Also worth noting is that the 26C92 supports extended baud rate tables, with a maximum standard speed of 230.4Kbps versus 38.4Kbps [edited] with the 2692. By coupling the receive and transmit clocks directly to the built-in counter/timer and setting the latter to the minimum underflow period of 1.8432 MHz (the X1 clock divided by 2), reception and transmission at 921.6Kbps is possible—if the system can stay with an interrupt rate of about 11,520 per second per channel. As the 26C92 can be set up to operate in
TIA-485 mode, a non-Ethernet local area network running at an effective rate of about 91KBps could be rigged up with a little programming and suitable line drivers. While that's nowhere near the speed of 10Base-T Ethernet, it's still plenty fast.
I finally got around to reworking POC V1.1's DUART driver to take advantage of the 26C92's improvements (the holdup was my now-abandoned quest to achieve a year of uptime with POC V1.1). As part of the rework, I am now running the console port at 115.2Kbps, which is the maximum speed supported by the ADDS terminal I am using as a console. I've also increased the auxiliary port speed to 115.2Kbps for testing purposes. The console port speed increase doesn't increase the apparent terminal display rate, since that is influenced by design factors unrelated to communication speed. However, the tripled communication speed on the auxiliary port is very noticeable when transferring a lot of code from my UNIX development machine.
The Equinox SST serial hardware in my UNIX server can support a maximum speed of 230.4Kbps simultaneously on all 16 channels, which speed also happens to be the highest at which the 26C92 can be run using the standard baud rate generator tables. Sooner or later I'll give 230.4Kbps a try on the auxiliary port and see if I can transfer a program without error at that speed.
———————————————————————————————————————————————————————————————————————
Edit: The 2692's maximum speed using the standard baud rate tables is 38.4Kbps.