Hello friends,
i am using the uDMA module to transmit data via SPI. The processor is the TM4C1231H6PMI. To determine, when the transfer is complete, i have got the information from somewhere, that i can use the SSI interrupt SSI_DMATX, e.g.
SSIIntEnable(SSI0_BASE, SSI_DMATX);
This works well enough. However, now i want to get deeper into analyzing the timings here, and since the interrupt seems to be thrown a little bit earlier than the actual data transmission is complete, i want to know how exactly this interrupt source is specified.
Surprisingly, SSI_DMATX doesn't seem to be specified at all. May this be the case?
In the TivaWare™ Peripheral Driver Library USER’S GUIDE it only says:
Description:
This function enables the indicated SSI interrupt sources. Only the sources that are enabled
can be reflected to the processor interrupt; disabled sources have no effect on the proces-
sor. The ui32IntFlags parameter can be any of the SSI_TXFF, SSI_RXFF, SSI_RXTO, or
SSI_RXOR values.
In the driver library, the macro resolves to the bit 0x20 in the interrupt register:
// ssi.h #define SSI_DMATX 0x00000020 // DMA Transmit complete
However, in the datasheet (DS-TM4C1231H6PM-15553.2700), the bit 0x20 is specified as reserved in Register 6: SSI Interrupt Mask (SSIIM), offset 0x014.
I need to know the exact behaviour of this interrupt, though. Am i using the documentation incorrectly, or is my documentation not up to date?
Cheers,
Janos