Tool/software: Code Composer Studio
With the same HW and SW I am doing a SPI2 TX DMA of 16 words every 200us. When I set the SPIEN bit the process starts outputting data. I read the data in ok on SPI4 RX DMA every 200us. The problem is the SPI2 TX does not stop , unless I clear the SPIEN bit at about 100us later. The baud rate is 2M so there is plenty of time. Every 200us:
if ((spi2_dma_buf[SPI_DMA_SIZE-1] & 0xFFFF)!=(spi4_dma_buf[SPI_DMA_SIZE-1])) //SPI_DMA_SIZE-1
match_err++;
for (k=0;k<(SPI_DMA_SIZE);k++)
spi2_dma_buf[k] += 1;
/* Set up dma for SPI4 receive */
spiREG4->INT0 = (spiREG4->INT0 | 0x00010000); /* ENABLE DMAREQEN */
/* Set up dma for SPI2 transmit */
spiREG2->INT0 = (spiREG2->INT0 | 0x00010000); /* ENABLE DMAREQEN */
A scope shows continual data. Why will it not stop?