Summary: SPARC Solaris Serial > 38.4K baud

From: Ivor Durham (durham@mv.us.adobe.com)
Date: Wed May 17 1995 - 10:29:43 CDT


I recently requested help with driving the serial ports on a
SPARCstation 5 at 57.6K baud. Others also asked me to pass on what I
learned. The short answer is that it appears to be possible to
generate 51.2K baud and 76.8K baud, but not 57.6K baud. I have
appended information derived from the specification of the Z8530
controller driven by the "zs" driver. It might be a useful addition to
the FAQ. Thanks to Marc Boucher (marc@cam.org) and Andrew Gabriel
(Andrew@cucumber.demon.co.uk) for pointers to the time constant table
in the driver and a shell script template for creating a driver patch.

The Zilog Z8530 SCC Serial Communications Controller determines the speed
of its communications through a Baud Rate Generator. The BRG is programmed
using a 16-bit "Time Constant" (TC) which is related to the baud rate through
the following formula:

                     Clock Frequency
        Baud Rate = ---------------
                      2 * (TC + 2)

The TC's used by the delivered "zs" driver (/kernel/drv/zs) are:

        3070 (50 bps) 2046 (75 bps) 1394 (110 bps) ...
        14 (9600 bps) 6 (19200 bps) 2 (38400 bps)

Using these TCs to solve the formula for "Clock Frequency" (CF) gives
307200 (300 * 1024). The remaining possible smaller values for TC are
one and zero. Using the derived CF in the formula produce 1 -> 51200
and 0 -> 76800. Alas the TC required for 57.6K would be 2/3 (0.66666...).



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:10:25 CDT