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