Re: A/D converter

David Schleef (ds@stm.lbl.gov)
Tue, 20 Apr 1999 13:13:30 -0700


On Tue, Apr 20, 1999 at 01:13:40PM -0400, Richard B. Johnson wrote:
> On Tue, 20 Apr 1999, David Woodhouse wrote:
>
> >
> > root@chaos.analogic.com said:
> > > You do not swap to timer channel 0, you need the highest priority
> > > interrupt for the main timer.
> >
> > You can reprogram the priorities.
> >
>
> The priorities are only programable relative to which per-controller
> interrupt has the highest priority. The CMOS timer is hard-wired to
> IRQ8, which is already the highest priority for the second (cascaded)
> controller. To make this assembly the highest priority, you would
> need to make IRQ2, the cascade, the highest priority. This means that
> IRQ1 (the keyboard --also hardwired) would become the lowest priority.
> Further, given this, the IRQ you want to steal, IRQ0, becomes the next
> lowest priority in the system. In PCI/SMP machines, where you use
> the APIC chip, this gets even further from reality because the CMOS
> timer doesn't even get there.
>
> As I said, you do not swap to timer channel zero.
>
> There is, furthermore, no reason to do so. The fact that the original
> inquiry was about an ADC that "ran" at 70 kHz, means nothing about
> the speed at which it was expected to interrupt. In fact, the
> maximum rate at which you can interrupt Linux, and record that an
> interrupt occurred in your ISR (nothing else), is almost, but not
> quite, 50 kHz on a dual pentium running 400 MHz with a 100 Mhz main
> bus. I have a device-driver module which does little more than measure
> these kinds of things if you are interested.

This A/D converter board is most likely just a A/D converter chip
and a few TTLs (yes, TTLs, not PLAs or eq.) tying it to the ISA
bus. It is only remotely likely that it has a FIFO, so at 70 khz,
you only have a 14 us window to grab the sample off the board. It
probably has a status register that indicates an overrun, but that
doesn't help anything, and for a few broken boards, an overrun means
that you have to power-cycle your computer.

These types of boards are relics of the mid-80's, and are horribly
overpriced for what they do, by perhaps a factor of 10 or 100. I've
written Linux drivers for too many of them...

It's possible to use RTLinux to use this board effectively, but
it's akin to using a WinModem. Not using RTLinux makes you
seriously vulnerable to interrupt latency. Either case is a
waste of CPU.

dave...

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/