ADLINK PCM-9112+ User Manual

Page 64

Advertising
background image

56

C/C++ Library

5.14 _9112_AD_DMA_Start

@ Description

This function will perform A/D conversion N times with DMA data
transfer. It takes place in the background which will not stop until the Nth
conversion has completed or your program executes a
_9112_AD_DMA_Stop() function to stop the process.

After executing this function, it is necessary to check the status of the
operation by using the function _9112_AD_DMA_Status(). This function is
performed on single A/D channel when the A/D channel auto-scan is set as
FALSE. If the A/D channel auto-scan is TRUE, the conversion will be multiple
channels by sequence.

The PCI-9112 Bus mastering DMA is different from tradition PC style DMA. It
is described below:

Bus Mastering DMA mode for PCI-9112:

PCI bus mastering offers the highest possible speed available on the PCI-
9112. When the function _9112_AD_Set_Mode is set as AD_MODE_2
(Timer Trigger & DMA transfer) or AD_MODE_5 (External Trigger & DMA
transfer), it will enable PCI bus mastering operation. This is conceptually
similar to DMA (Direct Memory Access) transfers in a PC but is really PCI
bus mastering. It does not use an 8237-style DMA controller in the host
computer and therefore isn't limited to 64K maximum groups. PCI-9112 bus
mastering works as follows:

1. To set up the bus mastering, first do all normal PCI-9112 initialization

necessary to control the board in status mode. This includes testing
for the presence of the PCI BIOS, determining the base addresses,
slot number, vendor and device ID's, I/O or memory, space
allocation, etc. Please make sure your PCI-9112 is plugged into a
bus-mastering slot, otherwise this function will not work.

2. Load the PCI controller with the count and 32-bit physical address of

the start of previously allocated destination memory, which will accept
A/D data. This count is the number of bytes (not longwords!)
transferred during the bus mastering operation and can be a large
number up to 64 million (2^26) bytes. Although the PCI-9112
transfers are always longwords, this is 16 million longwords (2^24) or
32 million A/D samples but use the bytecount.

Advertising