Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jul 1997 13:55:20 +0930 (CST)
From:      Michael Smith <msmith@atrad.adelaide.edu.au>
To:        mouth@ibm.net (John Kelly)
Cc:        msmith@atrad.adelaide.edu.au, freebsd@atipa.com, hackers@FreeBSD.ORG, terry@lambert.org
Subject:   Re: Sharing interrupts
Message-ID:  <199707300425.NAA18299@genesis.atrad.adelaide.edu.au>
In-Reply-To: <33e1a2da.17148628@smtp-gw01.ny.us.ibm.net> from John Kelly at "Jul 30, 97 03:55:20 am"

next in thread | previous in thread | raw e-mail | index | archive | help
John Kelly stands accused of saying:
> >
> >That depends on whether you feel like violating the bus standard.
> 
> It can be done without violating any standards.  In fact, the TTL
> logic level standards are what make it possible.  With your being
> knowledgeable in "bus interface design," it's strange you don't
> already know this.

If you are using a diode-OR construction with pullup resistors (your
previous component listing implies this is about the only technique
that you could be using), you will have to be using schottky or germanium
diodes to meet the V0 specification.  You also violate the I1 specification
unless you change the resistor values depending on the number of cards
you have inserted.

Then you violate the termination standard by putting DC loads at
various points along the bus.

> >Very few boards these days use the 8259.  Most, if not all, of the
> >current chipsets use a logically equivalent macrocell, however their
> >electrical characteristics are likely to be very different to those of
> >a 70's vintage NMOS device.
> 
> You're the one who brought up the 8259, calling it an "8250."

I specifically and intentionally referenced the 8250 in the context of
the sio driver and its enabling/disabling of tristate drive from the
UART to the IRQ line.

> It established a reference design, and its input logic level specs
> agree precisely with the TTL logic level standards.  Even if clone
> makers didn't follow the 8259's input logic voltages, they would
> certainly follow the input logic voltages of the TTL standard itself,
> which not by coincidence, match the input logic voltages of the 8259.

Actually, most of the chipsets currently in use are CMOS or BiCMOS,
and use the 30%/60% 0/-/1 logic level set, usually with TTL-friendly
output drivers.

> >Using diodes and resistors to convert totem-pole outputs into
> >open-collector-like outputs is highschool electronics.
> 
> What a negative spin on a positive idea.

Urk.  Do you actually work with fast digital electronics?  Diode-OR in
a fast environment is _disgusting_; you have a made-to-order impedance
mismatch, an RC network with an unknown time constant (and a funny
knee in the curve to boot), and a beaut spike generator (think about
Toff on your 1n4148 as the TP output on the other side of it drives
high).

> Why should it require an electrical engineer to make a few simple
> calculations and modifications?

Because these aren't actually "simple".  It's like asking why, if all
it takes to make a nuclear explosion is a critical mass of
fissionables, it took a horde of physicists many years to get it
right.

> Butcher my cards?  Now you're losing credibility.  Anyone with real
> experience in electronics should be able to solder a few simple parts
> to a PCB without ruining the board or its components.  Or haven't you
> heard of the common practice of rework and repair?

Taking a card and modifying it out of spec. counts as "butchering".

> The notion that serial cards with totem-pole outputs cannot share an
> edge-triggered ISA interrupt is a widespread misconception, promoted
> and sustained by those who believe that "tampering" with a factory
> product amounts to technologic sacrilege.

I really don't give a rat's ass what you do with your hardware, and in
fact my own inclinations lie in a very similar plane; I have a lot of
hardware that doesn't look very much at all like it did when it left
the factory.

The gripe I have is that you are claiming that what you are doing is 
perfectly right and correct, whilst I am describing it more accurately
as a bletcherous hack which can have some very unpleasant side effects.

This isn't meant to detract from the fact that, at least for you, it
works; all I ask is that you and other people understand and admit
the basically ugly nature of what you are doing.

Just as an aside; the concept of "sharing" an edge-triggered interrupt
is laughable in itself.

> Stay tuned.  I'll post the technique as soon as I can write it up.

Parts : 1 signal diode (1n4148 or equivalent)
        1 0.25W resistor, 220 ohms.  (red, red, brown if you need that)

Locate the interrupt output from the UART, on pin 30 of the 40-pin DIP
package.  You may have to backtrack from the IRQ jumpers on the card
if your card uses a different package or an integrated device.

Cut the track from this pin, and solder your diode across the gap,
with the cathode end (the one with the black band) towards the ISA
bus.  Solder the resistor from the anode end of the diode to ground.

Sound about right?

-- 
]] Mike Smith, Software Engineer        msmith@gsoft.com.au             [[
]] Genesis Software                     genesis@gsoft.com.au            [[
]] High-speed data acquisition and      (GSM mobile)     0411-222-496   [[
]] realtime instrument control.         (ph)          +61-8-8267-3493   [[
]] Unix hardware collector.             "Where are your PEZ?" The Tick  [[



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199707300425.NAA18299>