On 4/14/05, Scott Stevens <chenmel at earthlink.net> wrote:
I'm also prejudiced because a few years back I
worked in a team on a
Intel 80296 based telemetry project that included an 8530 in the design.
I never had to touch that code, but one of the guys who did absolutely
despised the 8530. I took the liberty of handing him a copy of the
NetBSD code for the chip, which I think helped him understand it a
little better.
I should look at that code sometime, mostly out of curiosity.
. If I'm not wrong (from my cursory glance over the
datasheet) it's a very stateful part that the
programmer has to be well
versed in the care and feeding of.
My recollection of it with COMBOARDs is that the most important thing
is not to feed the chip too fast from the bus side. The second most
important thing is to understand what register you are accessing and
calling it up properly. We were using the 4MHz parts with an 8MHz
68000. Our design was basic - a single PAL to handle address
selection and R/W sorts of things, and a simple interrupt design. No
DMA. We were only dealing with speeds up to 64kbps sync serial, so
the lack of DMA didn't kill us. The 4MHz parts just about did. The
code that thwacked on the serial chip took a while to refine to a
simple set of elements that worked reliably. One trick I remember was
that we *always* made sure to have some minimum number of cycles
between picking and internal register, and accessing that register.
The most ordinary technque was a fixed number of NOPs after writing to
the initial register.
I don't know anything about how the SPARCs or the Mac interfaced to
the Z8530, but our design was particularly inexpensive, but it was
fast enough to talk to the required interfaces. Even so, there _were_
tips and tricks we'd learned the hard way. As I said, I should have a
look at the NetBSD code and compare tricks.
It's still a nice chip, especially if one wants to talk sync or async
from the same port. I _think_ there's an updated
version with a
multi-character internal buffer (Z85230?), but it's much less
common
than the original.
-ethan