Other Parts Discussed in Thread: CC1310, SYSCONFIG
Hi,
I have written my own spi driver largely based on SPICC26X2DMA.C. I've recently changed it to use Ping Pong mode rather than Basic mode. My understanding is that ping pong mode should be suitable for all transfers but it fails when the transfer size is a single byte. I have inserted an 'if' statement that will use Basic mode unless the data size is larger than the maximum 1024. This works.
So my questions:
1) Why won't ping pong mode work for a transfer size of one single byte? It may well do, but it fails for me where Basic mode works.
2) How does arbitration come into play? I'm only using dma for the spi and nothing else and so there will not be any channel switching based on priorities. I thought I could set UDMA_ARB_1024 but it doesn't work in any mode. I set it to UDMA_ARB_4 and it does, even for single byte transfers (basic mode). What am I missing?
Thanks,
Andy