On 7/9/2006 at 5:23 PM Allison wrote:
If you forget how many init bytes you sent, your
software is broken
or Alzhimers. Also issuing a reset command after a data port read
works. The 8251/9551/2651 and related varients are all annoying
about that. In general I dislike chips that need to be pumped with a
string of bytes to one address for init. However most behave and it's
not that hard to sort out. However since most of the S100 crates I have
and many systems I've built 8251s are familiar and used as I still
have tubes of them. However it's not my first choice for Sync ops
though for async its fine.
Ah, I remember now. The 8251, after a power-up reset, is set to input two
mode words. However, if it's driven by an application that is unaware of
when the last system reset was done, is caught with a problem if it
attempts to program the chip with an "internal reset" command. IIRC, the
way out of this was to output a zero byte before the "Internal Reset"
command. The zero byte, if a mode word, set the 8251 into a sync mode; if
issued as a command, would set various handshaking lines. In either case,
the 8251 was ready to accept a real command byte, which then could be used
to set the mode.
One thing about the 8251 docs was the strange use of "high" and "low"
and
"one" and "zero". As in "high will force the RTS/ line to
zero". Very
confusing.
Cheers,
Chuck