From owner-freebsd-hackers Tue Jul 29 21:26:06 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id VAA06604 for hackers-outgoing; Tue, 29 Jul 1997 21:26:06 -0700 (PDT) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id VAA06590 for ; Tue, 29 Jul 1997 21:25:55 -0700 (PDT) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id NAA18299; Wed, 30 Jul 1997 13:55:21 +0930 (CST) From: Michael Smith Message-Id: <199707300425.NAA18299@genesis.atrad.adelaide.edu.au> Subject: Re: Sharing interrupts In-Reply-To: <33e1a2da.17148628@smtp-gw01.ny.us.ibm.net> from John Kelly at "Jul 30, 97 03:55:20 am" To: mouth@ibm.net (John Kelly) Date: Wed, 30 Jul 1997 13:55:20 +0930 (CST) Cc: msmith@atrad.adelaide.edu.au, freebsd@atipa.com, hackers@FreeBSD.ORG, terry@lambert.org X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk 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 [[