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