Adlink's NuDAQ 7300ArevB on Linux 2.4.x (http://www.adlink.com.tw/products/DataAcquisition/cPCI-7300.htm) Donour Sizemore (donour@uchicago.edu) 11/01/2001 Abstract: Adlink's Linux configuration documentation is neither concise nor complete with regard to their NuDAQ 7300 line of high-speed PCI-I/O cards. Slight revisions don't always make it to their printed manuals. The 7300A (revision B) is a very high-speed digital I/O card for PCI bus systems. The card has a 100 pin SCSI-like interface with an even split of 50 lines of ground and 50 signal. The card also has some onchip buffering and timing mechanisms. More info can be acquired at at adlink's website. Hardware requirements: The 7300ARevB naturally requires a computer with a PCI bus, but more importantly it requires the Bus Mastering feature available with recent PCI specifications. The card will NOT work with earlier an PCI spec'd bus. Software requirements: The first thing to do is download Adlink's PCIS-DASK/X package from: (http://www.adlink.com.tw/download_area/software/PCIS-DASK.htm) It includes the pci-dask libraries and sample programs. Adlink hasn't (as of Nov 2001) released the source for their Linux drivers. As a result, 7300 users are confined to the supported kernel releases. There's not fundamental reason why the drivers won't work for different releases, but some things have changed dramatically inside 2.4 since 2.4.0. I don't asvise it. Currently, 2.4.2, 2.4.3, 2.4.4, and 2.4.6 are supported. I suspect that 2.4.14 release is forthcoming. Another important note is that Adlink's drivers are NOT SMP safe. Attempting to load the drivers on an SMP kernel will result in a warning. It works, but there's no guarantee of correct timing results. The included README is very helpful. Follow the directions. Reserve some (using the mem= kernel parameter) upper memory if you want to do continuous I/O. Run the dask_conf utility and choose 7300B. Yes, I know. The card is a 7300A, but the numbering here represents the revision not the model. Run dask_inst.pl to install the drivers. If installation fails (it often does for no apparent reason) you can load p7300b.o by hand. However, it requires adl_mem_mgr.o to me loaded as well. Using the driver: For the time being, I'll skip the description of how to build interface cabling for the card. The pinout diagram is on page 21 of the online manual [1]. summary of pinout diagram- There are two main I/O ports. PortA (pins 85-100) and PortB (pins 51-66). Each one is a 16 pin bidirectional data port. 51 and 85 are the least significant bits, respectively. This gives us the 3 standard modes of operation. * DI32 * DO32 * DI16DO16 Each port has an associated ACK, REQ, and TRIG bit. There are also four aux pins at 70-73. These are available as either additional I/O or control lines. pci-dask interface - The pci-dask package provides the libpci_dask library for third party applications. include/dask.h provides all the function headers and more important ALL the return types, which are not detailed in the manual. Each pci device is identified by an unsigned short (U16), returned by Register_Card (PCI_7300A_RevB, xx). Obviously, the must be called before using the device. I16 DO_7300B_Config (U16 CardNumber, U16 PortWidth, U16 TrigSource, U16 WaitStatus, U16 Terminator, U16 O_Cntrl_Pol, U32 FifoThreshold); I16 DI_7300B_Config (U16 CardNumber, U16 PortWidth, U16 TrigSource, U16 WaitStatus, U16 Terminator, U16 I_Cntrl_Pol, BOOLEAN clear_fifo, BOOLEAN disable_di); These are used for initial device configuration (i.e. setting port mode, trigger source, termination state). Browse the included sample programs for usage. They are not well documented. The functions DO_ContWritePort DO_PGStart DO_PGStop DI_ContReadPort are documented fairly well in the manual, so I'll not explain their usage here. The linux driver has a host of other functions that I've never used and have been left out of all documentation. They are also changing fairly often as Adlink tries to keep up with the aggressive kernel release schedule. Remember to check out include/dask.h as soon as you install the pci-dask package. Bib: 1) NuDAQ 7300ArevB User's Guide http://www.adlink.com.tw/publications/manual/NuIPC3UIO/CP7300AManual.PDF