Hi
We are interfacing the processor 66AK2G12 with LTC 2345-18 ADC over SPI bus.
The LTC 2345-18 is an 8 channel, 18 bit ADC . The ADC sends 24 bits of data per channel( 6 extra bits to identify channel number and for SoftSPAN configuration). All the channels are sampled simultaneously. The digital values for all the channels are available together after the Start of Conversion signal is provided.
To transfer 24bits/channel * 8 channels, from the ADC buffer to Processor RAM, 24 bytes needs to be transferred at once from the processor to the ADC over SPI bus. Since we have a requirement of very high sampling rate, we wanted to use EDMA to handle the data transfer to minimize the interrupts to the CPU
We planned to use the AB sync mode and the PaRAM set is configured as follows:
PaRAM set fields |
Value(in Hex) |
Remarks |
OPT |
80000004 |
Supervisor level=1 AB SYNC mode |
SRC |
SRC address |
Address of a global TX buffer containing 24 bytes of data. The buffer contains values from 1 to 24 in steps of 1. |
ACNT |
1 |
1 byte transfer |
BCNT |
18 |
24 byte transfer |
DST |
DST address |
Address of SPIDAT0 register |
SRCBIDX |
1 |
Since ACNT is 1 |
DSTBIDX |
0 |
Since destination is a register |
LINK |
FFFF |
No Link |
BCNTRLD |
18 |
1 byte transfer |
SRCCIDX |
18 |
Since ACNT is 1, and it is A sync mode |
DSTCIDX |
0 |
Since ACNT is 1, and it is A sync mode |
CCNT |
1 |
|
But what is observed is that only 1st and last byte is getting transferred.
Could you please let us know if the PaRAM set is configured correctly. If yes, then why is not transferring 24 bytes of data.