Hi,
We are starting to use the RM48's CRC generator. According to the documentation (section 14.1 on spnu503c - RM48x Technical Reference Manual) it can generate data compression on 8, 16,32, and 64 data sizes, from which I understand that the resulting PSA signature may be configured to have 8, 16, 32, and 64bits.
We managed to generate a CRC64 of a set of data on EMIF SDRAM with no problems, using FULL_CPU_MODE (based on spna235 - Using the CRC Module on Hercules-BasedMicrocontrollers)
However, our application requires CRC32 but I found no reference on how to do it.
Can somebody point me where can I get the info on how to generate CRC32 using the embedded CRC generator?
The code currently in use is:
uint64_t CalculateHWCrc64Signature(uint64_t * data, uint32_t len) { uint64_t return_value; crcModConfig_t crc_param; crcConfig_t crc_config; crc_config.crc_channel = CRC_CH1; crc_config.mode = CRC_FULL_CPU; crc_config.pcount = 0u; /* All counters are disabled in Full CPU mode */ crc_config.scount = 0u; /* All counters are disabled in Full CPU mode */ crc_config.wdg_preload = 0u; /* All counters are disabled in Full CPU mode */ crc_config.block_preload = 0u; /* All counters are disabled in Full CPU mode */ crcSetConfig(crcREG, &crc_config); crc_param.crc_channel = crc_config.crc_channel; crc_param.mode = crc_config.mode; crc_param.src_data_pat = (uint64_t *)data; crc_param.data_length = len; crcChannelReset(crcREG, CRC_CH1); crcSignGen(crcREG, &crc_param); return_value = crcGetPSASig(crcREG, CRC_CH1); return return_value; }
Just complementing, the following thread deals with CRC16 and by that time (2013) it was not possible.
https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/287774?RM48-CRC16-Help