Initiating a DMA Transfer
Step 1
Make sure the system is not in BI-mode (refer to steps 7-9 of "Setting Up A24/A32 Slave
Images on the Bus" on page 105).
Step 2
Set the VINEN bit (located in the SCV64 Mode Control Register) to enable SCV64 func-
tions.
Step 3
Program the MBLT, BLT, DMAD16 and DMARD bits (located in the SCV64 Mode
Control Register) according to the type of DMA to be performed (i.e. D16/32/64, discrete
or block transfers, reads or writes).
Step 4
Load the beginning local address into SCV64 DMA Local Address Register.
Step 5
Load the beginning VMEbus address into SCV64 DMA VMEbus Address Register. (Note:
the DMA24 bit of the SCV64 Mode Control Register will override whatever addressing
mode is implied by the VMEbus address being transferred to (A24:D16, etc.), and the
A24PO bit will have no effect on the DMA's transfers).
Step 6
Load the transfer count into SCV64 DMA Transfer Count Register.
Step 7
Make sure that transmit FIFO is in decoupled mode by clearing the TXATOM bit (located
in the SCV64 Mode Control Register).
Step 8
Make sure that the LBERR, VBERR, DONE and DMAGO bits (located in the SCV64
Control and Status Register) are cleared.
Step 9
Set the DMAGO bit to begin the DMA operation.
Step 10 Wait for the DONE bit to become set which means that the DMA has completed.
NOTE: If an error occurs during the DMA, it will stop and either the DLBER or VBERR
bit will be set and the DONE bit will be cleared in the SCV64 Control and Status Register.
Example:
To start a 2 Kbyte, D32 write DMA with discrete cycles from local address 20001000h to an A24
VME address of 90000000h, perform the following steps:
Step 1
Exit BI-mode. Follow steps 7-9 of the section "Setting Up A24/A32 Slave Images on the
Bus" on page 105.
Step 2
Set bit 31 of SCV64 Mode Control Register enabling SCV64 functions.
Step 3
Clear the MBLT, BLT, and DMARD bits of SCV64 Mode Control Register. MBLT low
selects no D64 transfer, BLT low selects discrete VMEbus cycles and DMARD low selects
writes from the local to the VMEbus. DMAD16 is a don't care, no BLT transfers. (These
bits do not exist on a DARF32.)
Step 4
Write 1000h to SCV64 DMA Local Address Register to load the local address 20001000h.
(The top 5 bits are unused.)
Step 5
Write 90000000h to SCV64 DMA VMEbus Address Register to load a VME address of
90000000h.
Extensible Single Board Computer/Controller User's Manual 109
Performance Computer
Need help?
Do you have a question about the PT-VME161 and is the answer not in the manual?