HI,
I use DK-TM4C123 + TI-RTOS + TI-RTOS spi driver. SSI0 in slave mode using DMA runs with the following parameters
exchSpiParams.transferMode = SPI_MODE_CALLBACK;
exchSpiParams.transferCallbackFxn = SSI0_DATA_TRANSFER;
exchSpiParams.mode = SPI_SLAVE;
exchSpiParams.bitRate = AM_EXCH_BITRATE;
exchSpiParams.dataSize = AM_EXCH_DATA_SIZE;
exchSpiParams.frameFormat = SPI_POL0_PHA0;
SSI1 not work with DMA for exclusion situations according ERRATA
DMA # 01 In Three Cases, two Peripherals Cannot Both be Programmed to use μDMA
Revision (s) Affected: 6 and 7.
Description: For the following pairs of peripherals, both peripherals cannot both be configured to use
μDMA:
• SSI0 and SSI1
• UART2 and USB0EP1
• UART0 and UART2
Workaround (s): Configure peripherals such that the combinations of peripherals listed above are not both
using μDMA.
I may be incorrectly use SPI_MODE_CALLBACK?
My transferCallbackFxn:
Void SSI0_DATA_TRANSFER(SPI_Handle handle, SPI_Transaction *transaction){
UInt transferOK;
transferOK =SPI_transfer(handle, transaction);
if(transferOK) {
/* Print contents of master receive buffer */
System_printf("Din SPI: %d\n", din_dout_data_rx.din_data);
}
else {
System_printf("Unsuccessful Din SPI transfer");
}
}
SSI0_DATA_TRANSFER called from SWI
DMA generates an error
I waiting for a reply,