Messages in this thread | | | Date | Tue, 20 Apr 1999 13:13:30 -0700 | From | David Schleef <> | Subject | Re: A/D converter |
| |
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/
| |