AnsweredAssumed Answered

Can K26 perform hardware CRC within its DMA engine?

Question asked by Lucas Magasweran on Jan 7, 2016
Latest reply on Jan 14, 2016 by Norm Davies

Is it possible to perform a CRC within the DMA engine of an SPI read on the K26 or similar Kinetis MCU?


I currently use the KSDK to issue a `DSPI_DRV_EdmaMasterTransfer()` followed by a `CRC_DRV_GetCrcBlock()` to validate the data. It would be ideal if the KSDK `DSPI_DRV_EdmaMasterGetTransferStatus()` could be augmented to return not only the number of frames transferred but also a CRC result. i.e.


dspi_status_t DSPI_DRV_EdmaMasterGetTransferStatus(uint32_t instance, uint32_t * framesTransferred, uint16_t * crcResult)


I have read through the K26 reference manual but could not find a configuration option for the DMA engine or a way to feed the output of a DMA transfer through the CRC data register.


Is this possible? Does the ARM Kinetis support this optimization? I am more than happy to add support for this to the KSDK drivers as necessary.


Thanks for the advice.