8251 troubles

Chuck Guzis cclist at sydex.com
Sun Apr 27 13:12:06 CDT 2008


Date: Sun, 27 Apr 2008 08:23:09 -0700
From: dwight elvey <dkelvey at hotmail.com>

I'm going to assume that you have an 8251A, not an 8251.  If the 
latter, either sell it to a collector or have it bronzed and made 
into a tieclasp.  There are substantial differences between the -A 
and non-A parts, all annoying.

Glancing at your code, I'm a bit puzzled by the final initialization 
byte of 0x10.  Why isn't this, say, 0x37? Why would you disable the 
receiver?  8251A commands are bit-inclusive; that is, ALL bits in the 
command register are interpreted independently of one another.  Thus, 
0x10 sent to the command register doesn't just reset the error flags, 
it also disables the transmitter and receiver and drops DTR and RTS.

The implication is that since the command register's write-only, you 
have to remember the last command you sent if you want to reset the 
error flag.  One of the minor annoyances of a few early Intel 
peripherals.

Anent that last one--make certain that your handshake lines 
(RTS/CTS/DTR) are set to the proper levels--an inactive CTS will 
prevent the 8251A from transmitting.

Hope this helps,
Chuck



More information about the cctalk mailing list