Hello you all,
I have been trying to use DMA to transfer 14 bits (12 from GPIO5 and 2
from GPIO 6 of the processor) from the expansion header to a certain
memory address. I have written a small program but it seems to be
working. The DMA configuration (a part of the total program) that I
have until now is shown bellow:
// DMA4 Configuration index=0
dma[0x078/4] = dma[0x078/4] | 0x00009001; //FIFO Config.
dma[0x06C/4] = dma[0x06C/4] | 0x00000020; //Mem. post-
dma[0x080/4] = dma[0x080/4] | 0x00004000; //Channel
dma[0x098/4] = 0x00000001; //Frame Number
dma[0x094/4] = 0x000004FF; //Elements per frame
dma[0x090/4] = 0x003C0002; //Ch. source/dest.
dma[0x09C/4] = 0x49058038; //Source
dma[0x0A0/4] = 0x80F00000; //Destination Adress
dma[0x0A4/4] = 0x00000000; //Source
dma[0x0A8/4] = 0x00000000; //source frame
dma[0x0AC/4] = 0x00000000; //
Destination element index
dma[0x0B0/4] = 0x00000000; //Destination
//Start the transfer
dma[0x090/4] = 0x003C0082;
I have checked the destination memory and the data is not there.
If I am using Software-Triggered (nonsynchronized) transfer, would it
be possible to check if the registers 0x480560B4, 0x480560B8,
0x480560BC, have the correct current source and destination address,
and the current element number? I don't see anything relevant values
for my transfer in these registers.
Another question is: what is the speed of the data transfering? Do I
need to enable any clock for it? I have seen the example in SPRF98E
but I can't figure it out...
I would appreciate any help.