I have the XTWR-ADCDAC-LTC. I need to book the LTC2600 for all of the channel at very fast rate.
It would be nice to get the DMA work without any polling or interrupt for updating in burst all of the DAC channels.
It seems impossible to do.
The DAC requires transfer of three or four bytes each one framed by the CS for every channel.
The SPI wants to transfer no more than 2 bytes. The DMA has the option to frame with the CS every transfer or the full
datalength. I don't see how to frame three or four bytes still the transfer continuing without any uC intervention.
The best solution I see is to transfer in chunk of three or four bytes with the CS continuously enabled, than in the DMA callback restart a new transfer with the next frame, all of this eight times for every tick of processing.
In the end there is not so much to get from the DMA respect to the interrupt driven SPI, considering the KSDK function DSPI_MasterTransferEDMA(...) is not so light.
Maybe there is a way to bypass the limitations of the KSDK with some modifications in the initialization code.
I would like to get suggestion on the subject...