Spectrum PCI.412 User manual

SPECTRUM SYSTEMENTWICKLUNG MICROELECTRONIC GMBH xAHRENSFELDER WEG 13-17 x22927 GROSSHANSDORF xGERMANY
TEL.: +49 (0)4102-6956-0 xFAX: +49 (0)4102-6956-66 xEMAIL: info@spec.de xINTERNET: http://www.spec.de
31.03.2004
PCI.412
10/40 MHz 4 channel
12 bit transient recorder
for PCI bus
Hardware Manual
Driver Manual

© Spectrum Systementwicklung Microelectronic GmbH - 2004
Ahrensfelder Weg 13-17, 22927 Grosshansdorf, Germany
SBench is a registered trademark of Spectrum Systementwicklung Microelectronic GmbH.
MS-DOS, Windows and Windows NT are trademarks or registered trademarks of Microsoft Corporation.
LabVIEW is a trademark of National Instruments Corporation.
MATLAB is a registered trademark of The MathWorks Inc.
Agilent VEE is a trademark of Agilent.
FlexPro is a registered trademark of Weisang & Co.
DASYLab is a registered trademark of DATALOG GmbH.
Spectrum reserves the right to make improvements and/or changes to the products and/or programs at any time in order to improve
design and to supply the best product possible.

PCI.412 manual 31.03.2004
Page 3of 26
Table of Contents
Table of Contents ................................................................................................................................................. 3
Preface ................................................................................................................................................................5
Product Introduction............................................................................................................................................. 6
General Information..........................................................................................................................................................6
Software .........................................................................................................................................................................6
Additional information ......................................................................................................................................................6
Order information ............................................................................................................................................................6
Installation .......................................................................................................................................................... 7
System Requirements ............................................................................................................................................................7
Hardware Installation ...........................................................................................................................................................7
Driver Installation.................................................................................................................................................................7
DOS ..................................................................................................................................................................................8
Win 98/ME/2000/XP (WDM)..............................................................................................................................................8
Windows 95 (VXD)..............................................................................................................................................................8
Windows NT (Legacy) ..........................................................................................................................................................9
Windows NT...................................................................................................................................................................9
Installation for Linux............................................................................................................................................................10
Login............................................................................................................................................................................10
Select the right driver ......................................................................................................................................................10
Load Driver ...................................................................................................................................................................10
Major Number...............................................................................................................................................................10
Installing the Device........................................................................................................................................................10
End ..............................................................................................................................................................................10
Info ..............................................................................................................................................................................11
Utilities.............................................................................................................................................................................11
SBench 5.x....................................................................................................................................................................11
DRVCONFG.EXE ...........................................................................................................................................................11
PCITEST.EXE ..................................................................................................................................................................11
Hardware Description........................................................................................................................................ 12
Trigger Information.............................................................................................................................................................12
Option Synchronisation ......................................................................................................................................................12
Block diagram PCI.412 ......................................................................................................................................................13
Technical data...................................................................................................................................................................13
Placement PCI.412.............................................................................................................................................................14
Connectors....................................................................................................................................................................14
AC/DC jumper ..............................................................................................................................................................15
50 Ohm jumper .............................................................................................................................................................15
Digital inputs PCI.412.....................................................................................................................................................15
Sync Bus .......................................................................................................................................................................15
Software Description.......................................................................................................................................... 16
General Information ...........................................................................................................................................................16
Header files on CD ............................................................................................................................................................16
DLLTYP.H.......................................................................................................................................................................16
SPECTRUM.H ................................................................................................................................................................16
REGS.H ........................................................................................................................................................................16
ERRORS.H.....................................................................................................................................................................16
Driver functions..................................................................................................................................................................16
int16 SpcInitPCIBoards (int16* count, int16* PCIVersion).....................................................................................................17
int16 SpcInitBoard (int16 nr, int16 typ)..............................................................................................................................17
int16 SpcSetParam (int16 nr, int32 reg, int32 value) ...........................................................................................................17
int16 SpcGetParam (int16 nr, int32 reg, int32* value).........................................................................................................17
int16 SpcSetData (int16 nr, int16 ch, int32 start, int32 len, dataptr data) ...............................................................................17
int16 SpcGetData (int16 nr, int16 ch, int32 start, int32 len, dataptr data) ..............................................................................18
Error Codes...................................................................................................................................................................18
Valid Board Types..........................................................................................................................................................18
Hints for programming the boards.....................................................................................................................................19
Software - Register .............................................................................................................................................................19
PCI register....................................................................................................................................................................19
PCI Features register .......................................................................................................................................................19
Error registers ................................................................................................................................................................19
Status register ................................................................................................................................................................20
Command register..........................................................................................................................................................20

PCI.412 manual 31.03.2004
Page 4of 26
Synchronisation (Option) .................................................................................................................................................20
Memory register.............................................................................................................................................................21
Posttrigger register..........................................................................................................................................................21
Features register.............................................................................................................................................................21
Input range register.........................................................................................................................................................21
Triggermode register.......................................................................................................................................................22
Triggerlevel register ........................................................................................................................................................23
Multiple Recording (Option).............................................................................................................................................23
Samplerate register.........................................................................................................................................................24
Data format...................................................................................................................................................................24
Example of Driver use.........................................................................................................................................................25
Transfer speed...................................................................................................................................................................26

PCI.412 manual 31.03.2004
Page 5of 26
Vorwort
Diese Anleitung enthält detailierte Informationen über die
Hardware Möglichkeiten der PCI.412 von Spectrum
Systementwicklung. Diese Informationen enthalten die
technischen Daten, die Spezifikationen, die Beschreibung der
Schnittstellen.
Außerdem führt diese Beschreibung durch den
Installationsprozess sowohl der Karte als auch der Treiber für
das jeweilige Betriebssystem.
Zuletzt enthält dieses Handbuch die komplette Software
Beschreibung der Karte und des zugehörigen Treibers. Der Leser
wird in die Lage versetzt diese Karte in einem beliebigen PC
System unter einem der unterstützten Betrienbssysteme
einzusetzen.
Achtung, in diesem Handbuch ist keine Beschreibung der
speziellen Treiber für die Produkte von Drittherstellern wie
LabVIEW oder MatLab enthalten. Diese Treiber sind nicht im
normalen Lieferumfang enthalten.
Neuerungen der Karte, zusätzliche Optionen oder Speicher-
aufrüstungen werden auf der Homepage http://www.spec.de
bekannt gegeben. Hier kann ebenfalls die neueste Treiberverison
mit den letzten Fehlerbereinigungen gefunden werden.
Preface
This manual provides detailed information on the hardware
features of the PCI.412 from Spectrum Systementwicklung. This
information includes specifications, block diagram, connector
description.
In addition, this guide takes you through the process of installing
your board and also describes the installation of the delivered
driver package for each operating system.
Finally this manual provides you with the complete software
information of the board and the related driver. The reader of
this manual is able to integrate the board in any PC system with
one of the supported operating systems.
Please note that in this manual there is no description for specific
driver parts like LabVIEW or MatLab software that are not
normally enclosed in the hardware.
For any new information on the board as well as new available
options or memory upgrades please contact our website
http://www.spec.de. You will also find the actual driver
package with the latest bug fixes on our site.
Spectrum reserves the right to make changes at any time in order to improve design and to supply the best
product possible.

PCI.412 manual 31.03.2004
Page 6of 26
Product Introduction
Allgemeine Information
Der Transientenrekorder PCI.412 ist ein schneller, hochauflö-
sender A/D Wandler für den PCI Bus. Seine 4 ADCs ermögli-
chen die simultane Erfassung mehrerer Signale ohne die Nach-
teile gemultiplexter Systeme. Außerdem stehen noch 16 Bit
Digitaleingänge zur Verfügung, die mit dem gleichen Takt
aufgezeichnet werden.
Jeder Kanal besitzt eine eigene Triggerlogik, die mit denen der
anderen Kanäle verknüpft werden kann. Die verschiedenen
Betriebsarten wie Speichersegmentierung, interner/externer Takt
und Trigger, sowie Pre/Posttrigger ermöglichen dem Anwender
eine einfache Anpassung an sein spezielles Meßproblem.
Mit einem speziellen Takt / Trigger Bus lassen sich mehrere
Karten zu einem vielkanaligen System ausbauen.
Anwendungsbeispiele: Radar, Ultraschall, LDA/PDA,
Qualitätssicherung, Spektroskopie
General Information
The PCI.412 transient recorder is a fast high resolution
A/D-Converter for PCI based systems. Its 4 independent ADCs
enable the simultaneously sampling of signals without the
problems of multiplexed systems. Additionally 16 bits of digital
inputs are available. These inputs are sampled with the same
clock as the analogue inputs.
Each channel has its own triggerlogic, which can be linked
together. The different modes, e.g. memory segmentation,
internal/external clock and trigger as well as the pre- and
posttrigger capability makes it easy to adapt this recorder to the
measuring problem.
By using a special clock- and trigger bus the user may upgrade
the PCI.412 to a measuring system with high channel count.
Application: Radar, Supersonics, LDA/PDA, Quality
managment, Spectroscopie
Software
Kostenlos mitgeliefert werden Treiber für Linux, DOS und
Windows 9x/ME/NT/2000/XP. Für die einfache Program-
mierung sind Beispiele in C/C++, Delphi und Visual Basic
enthalten. Darüber hinaus steht zur komfortablen Steuerung die
Signalverarbeitungssoftware SBench 5.2 kostenlos zur Ver-
fügung. Außerdem sind Treiber für LabVIEW, DASYLab,
MATLAB und VEE erhältlich.
Software
Drivers for Linux, DOS and Windows 9x/ME/NT/2000/XP as
well as programming examples for C/C++, Delphi and Visual
Basic are delivered with the board. Comfortable programming,
initialising and data display are performed by the free-of-charge
Windows program SBench 5.2. Software drivers for LabVIEW,
DASYLab, MATLAB and VEE are available.
Additional information
To minimise noise keep the PCI.412 away from the power supply-
The PCI.412 operates with components having very high power consumption. Therefore it is highly recommended to place the board near
the cooling fan. Do not use the PCI.412 in hermetic closed systems.
Order information
PCI.412 40 MHz PCI.412 with 512 kSamples memory, 40 MHz, including drivers PCI412-40
PCI.412 10 MHz PCI.412 with 512 kSamples memory, 10 MHz, including drivers PCI412-10
Option 2 M Memory upgrading to 2 MSamples PCI412-2
Multiple recording Memory segmentation for fast repetition rates PCI412-mr
Gate Gated sampling with an external control signal PCI412-gs
Cascading Synchronisation of several PCI.412 for multi-channel-systems PCI412-ks
Input range 3 user specific input ranges between r500 mV and r2.5 V bipolar or unipolar PCI412-ir
SBench 5.0 Signal processing software for Win 95/98, Win 2000, Win NT SBENCH5
DASYLab driver Drivers for DASYLab 5.0 for Win 95/98, Win 2000 and Win NT PCI412-dl
HP-VEE driver Drivers for HP-VEE 5.0 for Win 95/98, Win 2000 and Win NT PCI412-hp
LabVIEW driver Drivers for LabVIEW 4.0 for Win 3.11, Win 95/98, Win 2000 and Win NT PCI412-lv
MatLab driver Drivers for MatLab 5.0 for Win 95/98, Win 2000 and Win NT MATLAB

PCI.412 manual 31.03.2004
Page 7of 26
Installation
System Anforderungen
PCI basierter IBM kompatibler PC mit mindestens einem freien
PCI Steckplatz in voller Länge. Der PCI-Bus muß mindestens der
Revision 2.1. genügen. Die Karte arbeitet nicht in einem PCI-Bus
Revision 2.0 oder früher. Wenn mehr als eine Karte im System
installiert werden soll, so empfehlen wir einen zusätzlichen Lüfter
für die Karten einzusetzen.
System Requirements
PCI based IBM PC compatible PC with at least one free full-
length PCI slot. The PCI bus version must be at least revision 2.1.
The boards will not work with older PCI busses of revision 2.0. If
you are installing more than one board in your PC, an additional
cooling fan is strongly recommended.
Hardware Installation
(1) Schalten Sie den PC aus.
(2) Öffnen Sie das Gehäuse.
(3) Wählen Sie einen freien PCI Steckplatz der benötigten
Länge aus. Wenn in Ihrem System kein zusätzlicher Lüfter
installiert ist, so ist die beste Wahl ein Steckplatz, in dem
die Karte nicht direkt neben einer anderen Karte plaziert
ist. Wenn Ihr System einen oder mehrere zusätzliche Lüfter
besitzt, so plazieren Sie die Karte direkt in deren Luftstrom.
(4) Installieren Sie die Karte in dem ausgewählten Steckplatz.
Achten Sie dabei besonders auf den korrekten Sitz des PCI
Steckers im Steckplatz.
(5) Schrauben Sie die Karte an der Frontblende am Gehäuse
fest.
(6) Wenn Sie eine PCI Karte in voller Baulänge erstanden
haben, so liegt Ihrer Karte ein Kartenhalter bei (bei Karten
mit SMB Steckern ist dieser bereits montiert). Es wird
empfohlen diesen Kartenhalter zu installieren, um die Karte
fest im System zu fixieren. Wenn Sie eine Karte mit 9 mm
BNC Steckern haben, so ist nur die nachträgliche Montage
des Bügels an der bereits installierten Karte mit einem
kurzen Schraubendreher möglich.
(7) Starten Sie das System.
(8) Wenn Ihr System nicht bootet, überprüfen Sie bitte den
korrekten Sitz der Karte in ihrem Steckplatz. Starten Sie
danach das System neu.
(9) Wenn Ihr System immer noch nicht bootet kann es jetzt ein
Problem in der Zusammenarbeit mit anderen PCI Karten
geben. Deinstallieren Sie bitte alle anderen PCI Karten bis
auf die Grafikkarte und versuchen Sie das System in dieser
Konfiguration zu starten. Wenn diese Maßnahme zum
Erfolg führt, so muß vermutlich die Reihenfolge der PCI
Karten in Ihrem System geändert werden.
Hardware Installation
(1) Power off your PC.
(2) Open the cover.
(3) Select a free PCI slot of the required length. If you are using
a system with no additional cooling fans, it is the best
decision to put the board in a slot not adjacent to any other
board. If you have a system with additional cooling fans,
place the PCI board in front of a cooling fan.
(4) Install the board in this slot. Make sure that the PCI
connector is right struck into the slot.
(5) Use a screw to fix the bracket to the PC.
(6) If your board has full PCI length a retainer is delivered with
the board (on boards with SMB connectors this retainer is
already installed). It is recommended to use this retainer to
fix the board in the system. If you have a board with 9 mm
BNC connectors, it is not possible to install the retainer
before inserting the board in the system. You need to install
the retainer with a short screwdriver to the already installed
board.
(7) Reboot the system.
(8) If your system will not boot, please check whether the
board is struck correctly into the PCI connector and reboot
again.
(9) If your system will not boot after this, there may be a
problem with other PCI boards. Please de-install all other
PCI boards and try to boot the system without them. If this
works, you may have to change the order of the PCI boards
in the system.
Treiber Installation
Spectrum liefert einen Kartentreiber aus, der alle Karten
unterstützt. Dieser Treiber hat auf allen Betriebssystemen ein
einheitliches Interface. Mit Vorstellung der Treiberversion 3.00,
die jetzt einen WDM kompatiblen Treiber enthält, mußte eine
Unterteilung in PCI und ISA Karten gemacht werden. Bitte
wählen Sie den passenden Treiber anhand der Tabelle aus.
Wenn Sie ISA und PCI Karten von Spectrum gemischt in einem
System benutzen, so nutzen Sie bitte den ISA Treiber.
Driver Installation
Spectrum supplies one driver that supports all boards with an
unique interface for all operating systems. With introduction of
the new version 3.00 which includes a WDM style driver there
has been a separation made between PCI and ISA boards.
Please use the matching driver that is listed in the table. If you
mix ISA and PCI boards from Spectrum in your system you need
to use the ISA driver.
Operating System PCI boards only PCI and ISA mixed ISA boards only
Windows XP WDM driver (Windows 98/ME/2000/XP) Legacy driver (Windows NT) Legacy driver (Windows NT)
Windows 2000 WDM driver (Windows 98/ME/2000/XP) Legacy driver (Windows NT) Legacy driver (Windows NT)
Windows ME WDM driver (Windows 98/ME/2000/XP) VXD driver (Windows 95) VXD driver (Windows 95)
Windows 98 WDM driver (Windows 98/ME/2000/XP) VXD driver (Windows 95) VXD driver (Windows 95)
Windows NT Legacy driver (Windows NT) Legacy driver (Windows NT) Legacy driver (Windows NT)
Windows 95 VXD driver (Windows 95) VXD driver (Windows 95) VXD driver (Windows 95)

PCI.412 manual 31.03.2004
Page 8of 26
DOS OBJ files (DOS driver) OBJ files (DOS driver) OBJ files (DOS driver)
Linux Linux Kernel Module Linux Kernel Module Linux Kernel Module
DOS
Der Treiber für DOS besteht aus einem Satz Objektdateien zum
Linken in ein DOS Programm. Die Treiber Dateien können auf
der CD im Verzeichnis \DRIVER\DOS auf der Diskette gefunden
werden. Beispiele zur Nutzung von Borland C++ 3.1 sind
ebenfalls vorhanden. Zur Benutzung der Treiber müssen nur die
Objekt Dateien *.OBJ und die Header Dateien *.H ins
Arbeitsverzeichnis kopiert werden.
Wenn die Beispielprogramme bei der Arbeit mit DOS nicht
laufen, so kann es hier zu einem Problem mit den im System
installierten Software Treibern gekommen sein. Starten Sie das
System erneut ohne irgendwelche installierten Treiber. Wenn das
Programm so läuft, fügen Sie Schritt für Schritt Ihre Treiber
wieder in das System ein, um den problematischen Treiber
herauszufinden.
Auf einigen Motherboards kann es zu Problemen mit älteren
Versionen der Datei EMM386.EXE kommen. Die Version 6.22
läuft hier korrekt. Es kann daher nötig sein, diese Datei gegen
eine neuere Version auszutauschen.
DOS
The driver consists of a set of object files ready to link to a DOS
program. The driver files are found on CD in the directory
\DRIVER\DOS on the driver disk. Examples for the use with
Borland C++ 3.1 are included. To use the driver files, just copy
the object *.OBJ and header *.H files to your working directory.
If the example files are not working when using DOS operating
system, there may be problems with the installed software
drivers. Start the system once again without any software drivers
installed. After this install the drivers step by step to find out the
problematic software driver. On some motherboards, there may
be problems when using older versions of EMM386.EXE. The
version 6.22 works correctly. It may be necessary to update this
driver to a higher version.
Win 98/ME/2000/XP (WDM)
Wenn das Betriebssystem Windows 98, Windows ME,
Windows 2000 oder Windows XP installiert ist, wird die PCI
Karte nach dem nächsten Start automatisch erkannt. Das System
bietet die direkte Installation eines Treibers für die Karte an.
Wählen Sie hier als Installationsquelle die mitgelieferte CD. Die
Treiberdateien befinden sich im Verzeichnis
\Driver\Win98_2k_XP. Die Treiber stehen sofort nach der
Installation ohne Neustart des Systems zur Verfügung.
Die Treiber bestehen aus einer 32 Bit DLL, die alle Funktionen
des Treibers enthält, und einem WDM-Kernel-Treiber (SYS). Die
DLL kann mit allen Systemen benutzt werden, die eine
Schnittstelle zu 32 Bit Windows DLLs anbieten. Beispiele für
Microsoft Visual C++, Borland Delphi und Microsoft Visual Basic
sind ebenfalls enthalten.
Falls Sie Visual C++ benutzen, so ist es möglich, die Library
Datei SPECTRUM.LIB mit in ein Projekt zu integrieren, um die
Funktionen des Treibers auf einfache Weise in das Programm
einzubinden. Die Library Datei arbeitet nicht mit Borland
Compilern zusammen.
Die beiden DLLs unterscheiden sich nur im Aufruf der
Funktionen. Die Datei SPECTRUM.DLL exportiert die Funktionen
als _cdecl (für C, C++, Delphi), die Datei SPCSTD95.DLL als
_stdcall (für Visual Basic). Je nach benutztem Compiler kann eine
der beiden DLLs benutzt werden.
Win 98/ME/2000/XP (WDM)
When the operating system Windows 98, Windows ME,
Windows 2000 or Windows XP is installed, the PCI board will
be automatically recognised after the rebooting. The system will
ask for a driver to be installed. Select the install directory from
the Spectrum driver CD. The driver files are placed in the
directory \Driver\Win98_2k_XP. The driver is ready to use
directly after installing, no reboot is necessary.
The driver consists of a 32 bit windows DLL which includes all
functions of the driver and a WDM kernel driver (SYS). The DLL
can be used with all systems which accept 32 bit windows DLLs.
Examples for Microsoft Visual C++ 4.x, Borland Delphi and
Microsoft Visual Basic are included.
If you are using Microsoft Visual C++, you may use the delivered
library file SPECTRUM.LIB to access the driver functions easily.
The library file will not work with Borland compilers.
The only difference between the both DLLs is the calling
convention. The file SPECTRUM.DLL uses _cdecl definition (for C,
C++, Delphi), the file SPCSTD95.DLL uses _stdcall definition (for
Visual Basic). Depending on the used programming language,
one of the two DLLs may be used.
Windows 95 (VXD)
Die Treiber für Windows 95 bestehen aus einer 32 Bit DLL, die
alle Funktionen des Treibers enthält, und einem Virtual Device
Driver (VXD). Die DLL kann mit allen Systemen benutzt werden,
die eine Schnittstelle zu 32 Bit Windows DLLs anbieten. Beispiele
für Microsoft Visual C++, für Borland Delphi und für Visual Basic
sind ebenfalls enthalten.
Zur Installation des Treibers benutzen Sie bitte die auf der CD
enthaltene Installationsversion im Verzeichnis /Install/Win95Drv.
Hiermit werden alle Treiberdateien in die vorgesehenen
Verzeichnisse installiert.
Falls Sie Visual C++ benutzen, so ist es möglich, die Library
Datei SPECTRUM.LIB mit in ein Projekt zu integrieren, um die
Funktionen des Treibers auf einfache Weise in das Programm
Windows 95 (VXD)
The driver consists of a 32 bit windows DLL which includes all
functions of the driver and a virtual device driver (VXD). The DLL
can be used with all systems which accept 32 bit windows DLLs.
Examples for Microsoft Visual C++ 4.x, Borland Delphi and
Microsoft Visual Basic are included.
You need to use the install program for driver installtion. The
program is located on CD in the directory /Install/Win95Drv.
The program installs all driver files in the correct directory.
If you are using Microsoft Visual C++, you may use the delivered
library file SPECTRUM.LIB to access the driver functions easily.
The library file will not work with Borland compilers.
The only difference between the both DLLs is the calling
convention. The file SPECTRUM.DLL uses _cdecl definition (for C,

PCI.412 manual 31.03.2004
Page 9of 26
einzubinden. Die Library Datei arbeitet nicht mit Borland
Compilern zusammen.
Die beiden DLLs unterscheiden sich nur im Aufruf der
Funktionen. Die Datei SPECTRUM.DLL exportiert die Funktionen
als _cdecl (für C, C++, Delphi), die Datei SPCSTD95.DLL als
_stdcall (für Visual Basic). Je nach benutztem Compiler kann eine
der beiden DLLs benutzt werden.
C++, Delphi), the file SPCSTD95.DLL uses _stdcall definition (for
Visual Basic). Depending on the used programming language,
one of the two DLLs may be used.
Windows NT (Legacy)
Der Treiber besteht aus einem Kernel Mode Treiber für Windows
NT und einer 32 Bit DLL, die die Funktionen des Kernel Mode
Treibers benutzt. Beispiele für Microsoft Visual C++, Borland
Delphi und Microsoft Visual C++ werden ebenfalls mitgeliefert.
Windows NT (Legacy)
The driver consists of a kernel mode driver for Windows NT and
a 32 bit windows DLL which uses the functions of the kernel
mode driver. Examples for Microsoft Visual C++, Borland Delphi
and Microsoft Visual Basic are included.
Windows NT
(1) Loggen Sie sich als ADMINISTRATOR oder als ein Benutzer
mit dem Recht Treiber zu installieren und die Registry zu
ändern in Ihr System ein.
(2) Starten Sie das Setup Programm auf der Treiber CD. Sie
finden das Installationsprogramm im Verzeichnis
\Install\WinNTDrv.
(3) Das Installationsprogramm installiert den Kernel Mode
Treiber und die 32 Bit Windows DLL, sowie einige
Hilfsprogramme im Verzeichnis Spectrum GmbH. Die
Registry wird ebenfalls angepaßt.
(4) Starten Sie den Computer neu.
(5) Die PCI Karten werden automatisch vom Kernel erkannt und
eingetragen.
(6) Falls der Geräte Treiber nicht korrekt startet (Eine Nachricht
im Event Log von der Datei SPCDRV.SYS), ist der Treiber
nicht korrekt konfiguriert. Bitte überprüfen Sie, ob mit dem
Programm DRVCONFG.EXE, ob die Standard Karte PCI
Board eingetragen ist.
Windows NT
(1) Login as ADMINISTRATOR or with another account having
the right to install drivers and to change the registry.
(2) Start the setup program on the driver CD. The installation
program is found in the directory \Install\WinNTDrv.
(3) The installation routine will install the kernel mode driver,
the 32 bit windows DLL and some utilities in the program
folder Spectrum GmbH. It will also update the registry.
(4) Restart the computer
(5) The PCI boards are automatically detected by the kernel
driver.
(6) If the service does not start correct (A message in the event
log from the service SpcDrv.SYS), the driver is not setup
correctly. Please run DRVCONFG.EXE and check weather
the standard board is correctly set to PCI Board
Falls Sie Visual C++ benutzen, so ist es möglich, die Library
Datei SPECTRUM.LIB mit in ein Projekt zu integrieren, um die
Funktionen des Treibers auf einfache Weise in das Programm
einzubinden. Die Library Datei arbeitet nicht mit Borland
Compilern zusammen.
Es werden die beiden DLLs SPECTRUM.DLL und SPCSTDNT.DLL
installiert. Die beiden DLLs unterscheiden sich nur im Aufruf der
Funktionen. Die Datei SPECTRUM.DLL exportiert die Funktionen
als _cdecl (für C, C++, Delphi), die Datei SPCSTDNT.DLL als
_stdcall (für Visual Basic). Je nach benutztem Compiler kann eine
der beiden DLLs benutzt werden.
If you are using Microsoft Visual C++, you may use the delivered
library file SPECTRUM.LIB to access the driver functions easily.
The library file will not work with Borland compilers.
The both DLLs SPECTRUM.DLL and SPCSTDNT.DLL are installed.
The only difference between the both DLLs is the calling
convention. The file SPECTRUM.DLL uses _cdecl definition (for C,
C++, Delphi), the file SPCSTD95.DLL uses _stdcall definition (for
Visual Basic). Depending on the used programming language,
one of the two DLLs may be used.

PCI.412 manual 31.03.2004
Page 10 of 26
Installation für Linux
Der Treiber besteht aus einem ladbaren Kernel Modul für alle
Karten. Beispiele für Gnu C werden ebenfalls mitgeliefert.
Installation for Linux
The driver consists of a loadable kernel module for all boards.
Examples for Gnu C are also delivered.
Login
Loggen Sie sich als root ein oder als Benutzer mit dem Recht
Module zu laden und Devices anzulegen.
Auswahl des richtigen Treibers
Die Verwendung von Linux-Kernel-Modulen hängt stark von der
Kernelversion sowie der verwendeten Distribution ab. Diesem
Umstand Rechnung tragend werden die Spectrum Treiber in
verschiedenen Versionen ausgeliefert. Bitte wählen Sie das am
besten passende Archiv für Ihre Installation aus.
Treiber laden
Der Linux Treiber wird als ladbares Kernel Modul spc.o
ausgeliefert. Der Treiber enthält alle Spectrum PCI, CompactPCI
und ISA Karten. Die PCI und CompactPCI Karten werden
automatisch erkannt.
Laden Sie das Modul mit insmod f spc.o.
Der insmod Befehl kann die Warnung generieren, daß das
Kernel Modul für eine andere Kernel Version kompiliert wurde.
Dies Meldung können Sie ignorieren.
Wenn das Kernel-Modul nicht in Ihrere Linux Installation geladen
werden kann, so ist es notwendig den Treiber auf Ihrem System
neu zu kompilieren. Bitte setzen Sie sich mit Spectrum in
Verbindung, um die benötigten Sourcedateien zu bekommen.
Major Number
Für den Zugriff auf den Treiber benötigen Sie die zugeteilte
Major number. Sie finden diese Zahl in /proc/devices. Der
Treiber trägt den Namen spec. Normalerweise ist diese
Nummer 254, kann aber auch je nach vorher installierten
Treibern davon abweichen.
Device anlegen
Als letzten Schritt muß ein Device mit dem Treiber verknüpft
werden. Dieses geschieht über den Befehl mknod. Als Major
number wird die in /proc/devices gefunden Zahl eingetragen.
Als Minor Number der Index der Karte die angesprochen wird.
Die Indexzählung beginnt bei 0.
mknod /dev/spc0 c 254 0 für die erste Karte
mknod /dev/spc1 c 254 1 für die zweite Karte
Stellen Sie sicher, daß alle Benutzer, die mit dem Treiber
arbeiten müssen Schreibrechte für das neu angelegte Device
haben. Dafür können Sie allen Personen Schreibrechte für das
Device erteilen: chmod a+w /dev/spc0.
Ende
Die Karte kann jetzt über das angelegte Device angesprochen
werden. Das genaue Vorgehen kann aus den Beispielen
entnommen werden.
Nach einem Neustart von Linux ist es nur nötig das Treiber
Modul zu laden. Das Device muß nur geändert werden, falls die
Major Number nicht mehr stimmt.
Login
Login as root or login as a user who has the right to load
modules and to install devices.
Select the right driver
Linux kernel modules are heavily depending on the kernel
version and distribution. Therefore the kernel driver for the
Spectrum boards is shipped in different versions. Please select
the archieve that is best matching your installed version.
Load Driver
The linux driver is shipped as the loadable kernel module spc.o.
The driver includes all Spectrum PCI, CompactPCI and ISA
boards. All PCI and CompactPCI boards are recognised
automatically.
Load the module with insmod f spc.o
The insmod command could generate a warning that the driver
module was compiled for an other kernel version. You could
ignore this warning.
It is not possible to use the driver module with linux versions prior
to kernel version 2.0.
If the kernel module could not be loaded in your linux installation
it is necessary to compile the driver directly on your system.
Please contact Spectrum to get the needed source files.
Major Number
For accessing the device driver it is necessary to know the major
number of the driver. This number is listed in /proc/devices. The
device driver is called spec in this list. Normally this number is
254 but this depends on the already installed device drivers.
Installing the Device
You connect a device to the driver with the mknod command.
The major number is the number found in /proc/devices. The
minor number is the index of the board starting with 0.
mknod /dev/spc0 c 254 0 for the first board
mknod /dev/spc1 c 254 1 for the second board
Make sure that the users that should work with the driver has
write rights to access the device. Therefore you should give all
persons all rights to the device: chmod a+w /dev/spc0
End
The board could now be accessed using the device. See the
example files for more information.
After restarting linux it is only necessary to load the driver again.
The device must only be changed if the major number has
changed.

PCI.412 manual 31.03.2004
Page 11 of 26
Der Zugriff auf das Linux Device erfolgt mit Read und Write
Befehlen sowie ioctl Befehlen. Eine Umsetzung dieser Befehle in
die Standard Treiber Schnittstelle von Spectrum kann über die
Datei spcioctl.inc realisiert werden. Das genaue Vorgehen ist
aus den Beispielen ersichtlich.
Accessing the linux device is done with read and write
commands and ioctl commands. These commands could be
converted to the standard Spectrum driver interface with the file
spcioctl.inc. See the examples for this.
Info
Informationen über die installierte Spectrum Karten können unter
/proc/spectrum abgefragt werden. Für ISA Karten ist hier der
Typ und die Basisadresse sichtbar. Für PCI Karten sind alle
grundlegenden Informationen aus dem onboard EEProm
aufgelistet.
Info
Information about the installed boards could be found in the
/proc/spectrum file. For ISA boards the board type and the
base address are listed. For PCI boards the basic information
from the onboard EEProm is listed.
Hilfsprogramme Utilities
SBench 5.x
Auf der CD wird eine Vollversion von SBench 5.x mitgeliefert.
Das Programm unterstützt alle aktuellen Erfassungs-, Ausgabe-
und Digital I/O Karten von Spectrum. Je nach verwendeter Karte
und nach Konfiguration des Programms kann SBench als
Digitales Speicheroszilloskop, als Spectrumanalyser, als
Logikanalyser oder einfach als Datenerfassungssystem benutzt
werden. Verschiedenen Import- und Exportfunktionen erlauben
die einfache Nutzung von SBench mit diversen anderen
Programmen.
Eine Installationsversion ist im Verzeichnis /Install/SBench5 auf
der CD zu finden. Im Verzeichnis /Manuals auf der CD ist eine
kurze Anleitung zur Bedienung von SBench in Deutsch und
Englisch zu finden. Eine aktuelle Version ist jederzeit aus dem
Internet unter www.spec.de zu bekommen.
SBench 5.x
A full version of SBench 5.x is delivered with the board on CD.
The program supports all actual acquisition, generator and
digital I/O boards from Spectrum. Depending on the used board
and the software setup, one could use SBench as a digital
storage oscilloscope, a spectrum analyser, a logic analyser or
simply as a data recording front end. Different export and import
formats allow the use of SBench together with a variety of other
programs.
An install version of the program is found in the directory
/Install/SBench5 on CD. There is also a short program
description in german and english in the /Manuals directory.
A current version could be downloaded from the internet at
www.spec.de at any time.
DRVCONFG.EXE
Automatisch installiert im Ordner Spectrum GmbH bei der
Installation des Windows NT Treibers. Dieses Programm erlaubt
die Änderung der Treiber Konfiguration der Spectrum ISA Karten
unter Windows NT. Für PCI Karten braucht das Programm nicht
benutzt werden. Das Programm ändert die Eintragungen in der
Registry. Die neue Konfiguration wird beim nächsten Start des
Systems benutzt.
DRVCONFG.EXE
Installed in the folder Spectrum GmbH when installing the
Windows NT driver. This utility manages the driver configuration
of the Spectrum ISA boards for Windows NT. The program need
not to be used for PCI boards. The utility changes the registry.
The new configuration will only be used after the next reboot of
the system.
PCITEST.EXE
Zu finden auf der Treiber CD im Verzeichnis \UTILS. Dieses
Hilfsprogramm sammelt alle verfügbaren Informationen über alle
im System installierten Spectrum PCI Karten. Die Informationen
werden aus dem on-board EEProm ausgelesen und angezeigt.
Das Programm läuft nur unter DOS oder in der DOS-Box von
Windows 3.11 oder Windows 9x/ME. Das Programm läuft
nicht unter Windows NT/2000/XP.
PCITEST.EXE
Found on the driver CD in the directory \UTILS. This utility will
collect some information about all installed Spectrum PCI boards.
The information of the onboard EEPROM will be read out and
shown. The utility will only work with DOS, Windows 3.1x,
Windows 9x and Windows ME. It will not work with Windows
NT/2000/XP.

PCI.412 manual 31.03.2004
Page 12 of 26
Hardware Description
Trigger Informationen
Nach dem Start der PCI.412 werden die Eingänge abgetastet
und die konvertierten Daten im Speicher abgelegt (Der Speicher
arbeitet als Ringbuffer, die Daten werden kontinuierlich in den
Speicher geschrieben). Die Triggerereignisse werden ignoriert
bis der programmierte Speicher einmal komplett mit Daten gefüllt
ist. Danach wird die Triggerverarbeitung freigeschaltet.
Wenn der Software Trigger ausgewählt wurde, wird sofort ein
Triggerereignis erkannt. Wird der TTL Trigger benutzt, so wird
ein Triggerereignis erkannt, wenn das TTL Signal am Eingang
(Connector 4) von LOW Pegel zu HIGH Pegel wechselt
(steigende Flanke) oder von HIGH Pegel zu LOW Pegel wechselt
(fallende Flanke).
Ist der Kanaltrigger (Kanal 0/1/2/3) selektiert, so werden die
sechs höchstwertigen Bits des AD-Wandlers mit dem im
Triggerlevel Register programmierten Wert verglichen. Wird der
Wert vom anliegenden Signal gekreuzt (Von kleiner zu größer
bei steigender Flanke, oder von größer zu kleiner bei fallender
Flanke), wird ein Triggerereigniss erkannt.
Der Status ändert sich zu Trigger found und der Postcounter
fängt an den programmierten Posttrigger Wert herunter zu
zählen. Wenn dieser Wert Null erreicht, stoppt die PCI.412 und
der Status ändert sich auf Ready.
Trigger Information
After the PCI.412 has been started it samples the input signals
and stores the converted data to the memory. (The memory
operates as a circular buffer, so data are written continuously to
the RAM). No triggerevents are processed until the programmed
memory is filled one time completely with data. Afterwards the
trigger sequencer will be enabled.
If Software trigger is used a triggerevent is detected immediately.
Using the TTL trigger will cause a triggerevent if the external TTL
input will go from low to high (rising edge) or from high to low
(falling edge).
When the triggermode is set to channel-trigger (channel
0/1/2/3) the 6 MSBs of the ADC are compared to the
programmed value in the trigger-level-register. If the value is
crossed by the signal (less to greater when rising edge, or
greater to less when falling edge) a triggerevent is detected. It is
possible to combinate the triggerevents of up to four channels
with AND or OR. Using the AND-combination, all triggerevents
have to be recognized. Using the OR-combination, any
triggerevent will trigger the board.
The status will be change to trigger found and the postcounter
starts counting down the posttrigger value. After the postcounter
reaches zero the PCI.412 stops and signals ready in the status
register.
Option Synchronisierung
Diese Option erlaubt es, mehrere Karten dieses Typs miteinander
intern zu synchronisieren, um auf einfache Art und Weise
synchrone Mehrkanalsystem aufzubauen.
Eine Karte wird als Master konfiguriert und generiert den Takt
und die Triggerinformation für die anderen (Slave) Karten. Alle
Karten laufen synchron mit exakt dem gleichen Abtasttakt.
Option Synchronisation
This option allows it to connect several boards from Spectrum to
generate a synchronously multi-channel system.
One board is dedicated as the master board and generates
clock and trigger signals for the other (slave) boards. All boards
are running synchronously.

PCI.412 manual 31.03.2004
Page 13 of 26
Block diagram PCI.412
Technical data
Resolution 12 bit Input range r500 mV r1 V r2 V
Samplerate 160 kHz up to 10 MHz / 40 MHz Offset error d5 LSB d4 LSB d3 LSB
Bandwidth DC 3 dB 0 Hz to 14 MHz / 21 MHz Gain error d2 % d1.5 % d1.0 %
Bandwidth AC 3 dB 20 Hz to 14 MHz / 21 MHz Noise d3 LSB d3 LSB d3 LSB
Differential linearity error ±0.5 LSB typ. (ADC) Crosstalk -60 dB -63 dB -66 dB
Integral linearity error r2 LSB typ. (ADC)
SFDR fs = 1 MHz fck = 40 MHz 69 dBFS typ. (ADC)
ENOB fs = 1 MHz, fck=40 MHz 10.8 bit typ. (ADC) Dimension 312 mm x 109 mm
ENOB fs=10 MHz, fck=40 MHz 10.8 bit typ. (ADC) Connector 3 mm BNC female
Aperture jitter 1.2 ps rms (ADC) Input impedance 50 Ohm or 1 MOhm || 15 pF
Multi: Trigger to 1stsample delay 0 to 4 samples (fix) Overvoltage protection r20 V
Multi: Recovery time d3 samples Warm up time 10 minutes
Trigger output delay 6 to 14 samples (fix) Operating temperatur 0qC - 50qC
Trigger accuracy 1 sample Storage temperatur -10qC - 70qC
Digital input to analog input delay 1 to 8 samples (fix) Humidity 10% to 90% non condensing
Ext. clock: output delay 5.5 ns
Ext. clock: delay to internal clock 10 ns +3.3 V +5 V +12 V -12 V
Sync: board to board trigger jitter 0 samples Power comsumption (A) 0 mA 2650 mA 35 mA 0 mA
Sync: board to board clock delay d1.5 ns Power consumption (W) 0.0 W 13.3 W 0.4 W 0.0 W

PCI.412 manual 31.03.2004
Page 14 of 26
Placement PCI.412
-'&FK
-2KPFK
-'&FK
-2KPFK
- '&FK
- ([W 7ULJ2KP
- ([W &ON2KP
-2KPFK
- '&FK
- 2KPFK
' LJ LWD O,QSXWVFK
6\QF%XV
' LJ LWD O,QSXWVFK
' LJ LWD O,QSXWVFK
' LJ LWD O,QSXWVFK
Connectors
The PCI.412 has six 3 mm BNC connectors.
Connector 0: analogue channel 0.
Connector 1: analogue channel 1.
Connector 2: analogue channel 2
Connector 3: analogue channel 3
Connector 4: triggermode = TTLPOS or TTLNEG: external trigger input
triggermode zTTLPOS and TTLNeg trigger output
Connector 5: EXTERNALCLOCK = 1 clock input
EXTERNALCLOCK = 0 clock output

PCI.412 manual 31.03.2004
Page 15 of 26
AC/DC jumper
channel 0 channel 1 channel 2 channel 3
J2 set ch0 DC J9 set ch1 DC J16 set ch2 DC J23 set ch3 DC
J2 clear ch0 AC J9 clear ch1 AC J16 clear ch2 AC J23 clear ch3 AC
50 Ohm jumper
channel 0 channel 1 channel 2 channel 3
J1 set ch0 50 Ohm J8 set ch1 50 Ohm J15 set ch2 50 Ohm J22 set ch3 50 Ohm
J1 clear ch0 1 MOhm J8 clear ch1 1 MOhm J15 clear ch2 1 MOhm J22 clear ch3 1 MOhm
Digital inputs PCI.412
J3 ch0 bit 0 J17 ch2 bit 0
J4 ch0 bit 1 J18 ch2 bit 1
J5 ch0 bit 2 J19 ch2 bit 2
J6 ch0 bit 3 J20 ch2 bit 3
J10 ch1 bit 0 J24 ch3 bit 0
J11 ch1 bit 1 J25 ch3 bit 1
J12 ch1 bit 2 J26 ch3 bit 2
J13 ch1 bit 3 J27 ch3 bit 3
Sync Bus
Carries the signals for synchronisation of multiple PCI.412
Pin 1 Sample Clock
Pin 3 Sync Trigger
Pin 5, 7, 9 not used
Pin 2, 4, 6, 8, 10 GND

PCI.412 manual 31.03.2004
Page 16 of 26
Software Description
Allgemeine Information
Der Spectrum Treiber besteht aus einem Satz Funktionen zur
Manipulation der Register auf der Karte und zum Daten Transfer
in beide Richtungen. Es gibt nur einen Treiber für alle Karten von
Spectrum. Abhängig von der Funktionalität der Karte und dem
benutzten Bus werden nicht alle Funktionen des Treibers von
allen Karten unterstützt. Die unterschiedliche Funktionalität der
Karten ist mit Hilfe von kartenspezifischen Registern realisiert.
Der Treiber ist für verschiedene Betriebssysteme erhältlich und
wird unter allen Betriebssystemen auf die gleiche Art und Weise
programmiert.
General Information
The SPECTRUM driver consists of a set of functions to manipulate
registers on the board and to transfer data from or to the board.
There is only one driver for all the SPECTRUM boards.
Depending on the functionality of the board and the used bus
not all functions will be implemented for all boards. The different
functionality of the boards is implemented with the help of board
specific registers. The driver is available for different operating
systems but will be programmed the same way on all operating
systems.
Header Dateien auf CD
DLLTYP.H
Enthält alle Plattform spezifischen Definitionen der Datentypen
und der Funktionsdeklarationen. Alle Datentypen basieren auf
diesen Definitionen.
SPECTRUM.H
Definiert die sechs Funktionen des Treibers. Alle Definitionen sind
aus der Datei DLLTYP.H entnommen. Die Funktionen selbst
werden weiter unten beschrieben.
REGS.H
Definiert alle Register und Kommandos, die im Spectrum Treiber
für die verschiedenen Karten benutzt werden. Die Register, die
von einer Karte benutzt werden sind weiter unten im
kartenspezifischen Teil beschrieben.
ERRORS.H
Listet alle möglichen Errorcodes der Funktionen auf.
Header files on CD
DLLTYP.H
Includes the platform specific definitions for data types and
function declarations. All data types are based on this
definitions.
SPECTRUM.H
Defines the six functions of the driver. All definitions are taken
from the file DLLTYP.H. The functions itself are described below.
REGS.H
Defines all registers and commands which are used in the
SPECTRUM driver for the different boards. The registers a board
uses are described in the board specific part of the
documentation.
ERRORS.H
Lists all possible error codes of the functions.
Funktionen des Treibers
Der Spectrum Treiber besteht aus den folgenden sechs
Funktionen. Die Funktionen sind in der Header-Datei
SPECTRUM.H definiert. Abhängig von dem Funktionsumfang der
Karte und dem verwendeten Bussystem sind nur einige der
Funktionen für die spezielle Karte notwendig. Bei einigen Karten
werden nicht alle Parameter der Funktion unterstützt.
Driver functions
The SPECTRUM driver consists of the following six functions. The
functions are declared in the header file SPECTRUM.H.
Depending on the functionality of the board and the used bus
only some of the functions are used for the specific board. Not
all board specific drivers will interpret all parameters of a
function.
PAD52
PAD82a/b
PAD242
PCI.412
PCI.212
PCI.208
CPCI.208
PCI.-248
PCI.-258
PCI.DIO32
PAD1232
PAD1616
PAD164
DAP116
PCK400
TRS582
PADCO-06
MI.30xx
MI.31xx
MI.40xx
MI.45xx
MI.60xx
MI.70xx
SpcInitPCIBoards ---+++++++-------+++++
+
SpcInitBoard +++-------+++++++------
SpcSetParam ++++++++++++++++++++++
+
SpcGetParam +++++++++++++-++++++++
+
SpcSetData ---------+---+-+-----+
+
SpcGetData +++++++++++++----++++-
+

PCI.412 manual 31.03.2004
Page 17 of 26
int16 SpcInitPCIBoards (int16* count, int16* PCIVersion)
count adr of 16 bit integer number of found PCI boards
PCIVersion adr of 16 bit integer found PCI version
return 16 bit integer error code of function like listed below
Initialises all installed PCI boards. The board numbers will start with zero. The number of PCI boards will be given back in the value
Count. All installation parameters will be read from the hardware.
Using Windows NT the boards are already installed in the registry. This function just gives back the values of the
kernel driver.
Linux initialises the boards while loading the kernel module. This function is not available under Linux.
int16 SpcInitBoard (int16 nr, int16 typ)
nr 16 bit integer number of the board to be defined in range 0-15
typ 16 bit integer type of the defined board listed in REGS.H
return 16 bit integer error code of function like listed below
Defines a board for the driver. The driver supports up to 16 boards at the same time. For all ISA boards the type of installed board
must be defined before using the driver the first time. All other functions just use the board number to access the board. After
initialising the board all parameters will be set to default values.
Using Windows NT the board is already installed in the registry. This function will then just compare the board type with the already
installed one.
Linux initialises the boards while loading the kernel module. This function is not available under Linux.
int16 SpcSetParam (int16 nr, int32 reg, int32 value)
nr 16 bit integer number of the board as defined by SpcInit...
reg 32 bit integer register to be changed
value 32 bit integer value for the register
return 16 bit integer error code of function like listed below
Sets a register to a defined value or executes a command. The board must be initialised before. When using ISA boards, all installation
parameters must be set before (address, installed memory, ...). The allowed registers for the driver are listed in the board specific part of
the documentation.
When using Windows NT the installation parameters may not be changed, they are set in the registry using the
driver configuration utility.
int16 SpcGetParam (int16 nr, int32 reg, int32* value)
nr 16 bit integer number of the board as defined by SpcInit...
reg 32 bit integer register to be read
value adr of 32 bit integer value from the register
return 16 bit integer error code of function like listed below
Reads a register or a status information of the board. The board must be initialised before. When using ISA boards, the installation
address must be set before. The allowed registers for the driver are listed in the board specific part of the documentation.
int16 SpcSetData (int16 nr, int16 ch, int32 start, int32 len, dataptr data)
nr 16 bit integer number of the board as defined by SpcInit...
ch 16 bit integer channel to be written to
start 32 bit integer startvalue to be written
len 32 bit integer number of values to be written
data huge ptr to datadata to be written
return 16 bit integer error code of function like listed below
Writes data to the board for a specific channel. The board must be initialised before. When using ISA boards, all installation parameters
must be set before (address, installed memory, ...). The Start and Len parameter are implemented on all PCI boards. On ISA boards the
whole data will be written in one turn. The data must be in twos complement format (standard integer format).

PCI.412 manual 31.03.2004
Page 18 of 26
int16 SpcGetData (int16 nr, int16 ch, int32 start, int32 len, dataptr data)
nr 16 bit integer number of the board as defined by SpcInit...
ch 16 bit integer channel to be read
start 32 bit integer startvalue to be read
len 32 bit integer number of values to be read
data huge ptr to data data space for read values
return 16 bit integer error code of function like listed below
Reads data from the board from a specific channel. The board must be initialised before. When using ISA boards, all installation
parameters must be set before (address, installed memory, ...). The Start and Len parameter are implemented on all PCI boards. On
ISA boards the whole data will be read in one turn. The read out data is in the twos complement format and could be directly used for
data processing as standard integer values.
Error Codes
error name value
(hex)
value
(dec.)
description
ERR_OK 0 0 Execution OK, no error.
ERR_INIT 1 1 The board number is not in the range of 0 to 15. When initialisation is executed: the board number is
yet initialised, the old definition will be used.
ERR_NR 2 2 The board is not initialised yet. Use the function SpcInitBoard or SpcInitPCIBoards first.-
ERR_TYP 3 3 Initialisation only: The type of board is unknown.
ERR_FNCNOTSUPPORTED 4 4 This function is not supported by the hardware version.
ERR_LASTERR 10 16 Old Error waiting to be read.
ERR_ABORT 20 32 Abort of wait function
ERR_BOARDLOCKED 30 48
Access to the driver already locked by another program. Stop the other program before starting this one.
ERR_REG 100 256 The register is not valid for this type of board.
ERR_VALUE 101 257 The value for this register is not in a valid range, the allowed values and ranges are listed in the board
specific documentation.
ERR_FEATURE 102 258 Feature is not installed on this board
ERR_SEQUENCE 103 259 Channel sequence is not allowed.
ERR_READABORT 104 260 Data read is not allowed after aborting the data acquisition.
ERR_NOACCESS 105 261 Access to this register denied. No access for user allowed.
ERR_POWERDOWN 106 262 Not allowed if powerdown mode is activated.
ERR_CHANNEL 110 272 The channel number may not be accessed on the board: Either it is not a valid channel number or the
channel is not accessible due to the actual setup (e.g. Only channel 0 is accessible in interlace mode)
ERR_RUNNING 120 288 The board is still running, this function is not available now or this register is not accessible now.
ERR_ADJUST 130 304 Automatic adjustion has reported an error. Please check the boards inputs.
ERR_NOPCI 200 512 No PCI BIOS is found on the system.
ERR_PCIVERSION 201 513 The PCI bus has the wrong version. SPECTRUM PCI boards require PCI revision 2.1 or higher.
ERR_PCINOBOARDS 202 514 No SPECTRUM PCI boards found.
ERR_PCICHECKSUM 203 515 The checksum of the board information has failed.
ERR_DMALOCKED 204 516 DMA buffer not available now.
ERR_MEMALLOC 205 517 Internal memory allocation failed.
ERR_FIFOBUFOVERRUN 300 768 Driver buffer overrun in FIFO mode.
ERR_FIFOHWOVERRUN 301 769 Hardware buffer overrun in FIFO mode.
ERR_FIFOFINISHED 302 770 FIFO transfer has been finished, programmed number of buffers has been transferred.
ERR_FIFOSETUP 309 777 FIFO setup not possible, transfer rate to high (max 250 MB/s)
ERR_TIMESTAMP_SYNC 310 784 Synchronisation to external reference clock failed.
Valid Board Types
board type(hex) type (dec) board type(hex) type (dec) board type(hex) type (dec)
PAD52 600 1536 PAD1616a 500 1280 PCI.212 300 384
PAD82 200 512 PAD1616b 510 1296 PCI.208 1000 4096
PAD82a 210 528 PAD164/2 900 2304 PCI.412 1100 4352
PAD82b 220 544 PAD164/5 910 2320 PCI.DIO32 1200 4608
PAD242 700 1792 PADCO-06 1400 5120 PCI.248 1300 4864
PAD1232-10 400 1024 PCK400 800 2048 PCI.258 1600 5632
PAD1232-30 410 1040 DAP116 100 256 MI.3010 3010 12304
PAD1232-40 420 1056 TRS582 1500 5376 ... ... ...

PCI.412 manual 31.03.2004
Page 19 of 26
Hints for programming the boards
Programming an ISA board is done in the following steps:
initialise and define boards with function SpcInitBoard (Windows NT: utility DRVCONFG.EXE)
set installation parameters like address, installed memory, version with function SpcSetParam
set user specific parameters and start board (loop)
Programming an PCI board is done by the following steps:
initialise PCI boards automatically with function SpcInitPCIBoards
read out installation parameters for all found PCI boards like version, installed memory
set user specific parameters and start board (loop)
If you are using ISA and PCI boards in one system at the same time, use the function SpcInitPCIBoards first and initialise the ISA
boards after this. The function SpcInitPCIBoards uses the first board numbers and will overwrite other definitions.
It is only necessary to define the boards once for the driver with the functions SpcInitPCIBoards and SpcInitBoard. If you are defining the
boards again, you will get an error code from the function and the old definition is still used. You may ignore this error.
Software - Register
These software register are to be used for the functions SpcSetParam and SpcGetParam of the software driver. All constants are found in
the header file REGS.H.
PCI register
These Registers are set by the driver after PCI initialisation. The information is found in the on-board ROM. The program PCITEST.EXE on
the driver disk will give the same informations.
register name reg no. r/w
SPC_PCITYP 2000 rtype of board as listed above
SPC_PCIVERSION 2010 rboard revision: high part in bit 8..15, Low part in bit 0..7
SPC_PCIDATE 2020 rproduction date: month in bit 0..7, year in bit 16..31
SPC_PCISERIALNO 2030 rserial number of the PCI.412
SPC_PCISAMPLERATE 2100 rmax. samplerate as 32 bit integer value
SPC_PCIMEMSIZE 2110 rinstalled memory in bytes as 32 bit integer value
SPC_PCIFEATURES 2120 rinstalled features as a bitfield. See description beneath.
PCI Features register
Bit 31 not used
...
Bit 8 not used
Bit 7 option synchronisation master: board is clock-master for synchronisation.
Bit 6 option synchronisation slave : board is clock-slave for synchronisation.
Bit 5 option gated sampling installed.
Bit 4 not used
Bit 3 not used
Bit 2 not used
Bit 1 not used
Bit 0 option multiple recording installed.
Error registers
If one action caused an error in the driver this error and the register and value where it occurs will be saved. The driver is then locked until
the error is read out using the SPC_LASTERRORCODE function. All other functions will lead to the same errorcode unless the error is
cleared by reading SPC_LASTERRORCODE.
name value (dec) r/w
SPC_LASTERRORCODE 999999 rerrorcode of the last error as defined in errors.h
SPC_LASTERRORREG 999998 rsoftware register which causes the error
SPC_LASTERRORVALUE 999997 rvalue which causes the error
SPC_LASTERRORTEXT 999996 rCopies a short explanation of the error to a string. The argument value must be a
pointer to a string with at least ERRORTEXTLEN characters.

PCI.412 manual 31.03.2004
Page 20 of 26
Status register
Status information can be read at any time. The other parameters can only be written and the data can be read if the board is stopped.
register name reg no. r/w
SPC_STATUS 10 rStatus register, values listed below.
Status code value
SPC_RUN 0Board is running.
SPC_TRIGGER 10 Trigger event has been found.
SPC_READY 20 Recording has stopped.
Command register
The command register executes commands like start and stop or synchronises the board with other boards.
register name reg no. r/w
SPC_COMMAND 0wCommand register, allowed values listed below.
status code value
SPC_START 10 starts the board with the current register settings. If the settings of the input range has
been set since the last start of the board, the driver will hold a 200 ms delay before
starting to wait the relais settling time.
SPC_STOP 20 stops the board, data in memory is undefined.
SPC_SYNCMASTER 100 synchronisation with internal sync bus, this board works as clock master
SPC_SYNCSLAVE 110 synchronisation with internal sync bus, this board works as clock slave
SPC_NOSYNC 120 no synchronisation
SPC_SYNCTRIGGERMASTER 101 synchronisation: board generates trigger for all boards
SPC_SYNCTRIGGERSLAVE 111 synchronisation: board receives trigger from trigger master board.
Synchronisation (Option)
This option allows it to connect several boards from Spectrum to generate a multi-channel system. It is possible to connect several PCI.412.
One board is the clock master and generates the clock for the other (slave) boards. The clock master is defined in hardware and has the
synchronisation master bit set in the PCI features register (see above). Only one board may be the clock master. At runtime any of the
synchronised boards may be defined as a trigger master and generates trigger information for the other boards.
The boards have to be installed and connected in a defined order to work correctly. Use the label on the board to determine which board
must be installed in which slot. Connect the boards with the delivered flat ribbon cable and use the sync-connector as shown in the
placement. Do not change the board order, the synchronisation will only work with this installation: Master Slave0 Slave1
Slave2 ...
If the boards are synchronised, they must be programmed in the following steps:
(1) Set all parameters for all boards except the sync information
(2) Set the sync information for the clock-master board.
(3) Set the sync information for all clock-slave boards.
(2) Start all trigger-slave boards.
(3) Start the trigger-master board.
All boards will run with the clock generated by the clock-master board. Only the trigger-master board may generate a trigger. The trigger
settings for the trigger-slave boards will be ignored.
Table of contents
Other Spectrum Voice Recorder manuals