Xenomai API  2.6.5
pcimio.c File Reference

Hardware driver for NI PCI-MIO E series cards. More...

Include dependency graph for pcimio.c:

Detailed Description

Hardware driver for NI PCI-MIO E series cards.

Copyright (C) 1997-8 David A. Schleef ds@sc.nosp@m.hlee.nosp@m.f.org

This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Xenomai; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Description: National Instruments PCI-MIO-E series and M series (all boards)

Author: ds, John Hallen, Frank Mori Hess, Rolf Mueller, Herbert Peremans, Herman Bruyninckx, Terry Barnaby Status: works Devices: [National Instruments] PCI-MIO-16XE-50 (ni_pcimio), PCI-MIO-16XE-10, PXI-6030E, PCI-MIO-16E-1, PCI-MIO-16E-4, PCI-6014, PCI-6040E,PXI-6040E, PCI-6030E, PCI-6031E, PCI-6032E, PCI-6033E, PCI-6071E, PCI-6023E, PCI-6024E, PCI-6025E, PXI-6025E, PCI-6034E, PCI-6035E, PCI-6052E, PCI-6110, PCI-6111, PCI-6220, PCI-6221, PCI-6224, PCI-6225, PCI-6229, PCI-6250, PCI-6251, PCIe-6251, PCI-6254, PCI-6259, PCIe-6259, PCI-6280, PCI-6281, PXI-6281, PCI-6284, PCI-6289, PCI-6711, PXI-6711, PCI-6713, PXI-6713, PXI-6071E, PCI-6070E, PXI-6070E, PXI-6052E, PCI-6036E, PCI-6731, PCI-6733, PXI-6733, PCI-6143, PXI-6143

These boards are almost identical to the AT-MIO E series, except that they use the PCI bus instead of ISA (i.e., AT). See the notes for the ni_atmio.o driver for additional information about these boards.

By default, the driver uses DMA to transfer analog input data to memory. When DMA is enabled, not all triggering features are supported.

Note that the PCI-6143 is a simultaneous sampling device with 8 convertors. With this board all of the convertors perform one simultaneous sample during a scan interval. The period for a scan is used for the convert time in an Analgoy cmd. The convert trigger source is normally set to TRIG_NOW by default.

The RTSI trigger bus is supported on these cards on subdevice

  1. See the Analogy library documentation for details.

References: 341079b.pdf PCI E Series Register-Level Programmer Manual 340934b.pdf DAQ-STC reference manual 322080b.pdf 6711/6713/6715 User Manual 320945c.pdf PCI E Series User Manual 322138a.pdf PCI-6052E and DAQPad-6052E User Manual

ISSUES:

  • When DMA is enabled, XXX_EV_CONVERT does not work correctly.
  • Calibration is not fully implemented
  • SCXI is probably broken for m-series boards
  • Digital I/O may not work on 673x.
  • Information (number of channels, bits, etc.) for some devices may be incorrect. Please check this and submit a bug if there are problems for your device.
  • Need to deal with external reference for DAC, and other DAC properties in board properties
  • Deal with at-mio-16de-10 revision D to N changes, etc.
  • Need to add other CALDAC type
  • Need to slow down DAC loading. I don't trust NI's claim that two writes to the PCI bus slows IO enough. I would prefer to use a4l_udelay(). Timing specs: (clock) AD8522 30ns DAC8043 120ns DAC8800 60ns MB88341 ?