This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RM48L952: RM48L952 CRC peripheral

Part Number: RM48L952

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